projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mesa: implement glGet for AMD_framebuffer_multisample_advanced
[mesa.git]
/
src
/
mesa
/
main
/
points.c
diff --git
a/src/mesa/main/points.c
b/src/mesa/main/points.c
index 7d6e5a5e17f50e33aa3ceb6bbebf0e2daecc8976..095e2a3d707dd42b5d68456155c700cfada78d17 100644
(file)
--- a/
src/mesa/main/points.c
+++ b/
src/mesa/main/points.c
@@
-5,7
+5,6
@@
/*
* Mesa 3-D graphics library
/*
* Mesa 3-D graphics library
- * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
@@
-22,9
+21,10
@@
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
*/
*/
@@
-40,19
+40,16
@@
* \param size point diameter in pixels
* \sa glPointSize().
*/
* \param size point diameter in pixels
* \sa glPointSize().
*/
-void GLAPIENTRY
-
_mesa_PointSize( GLfloat size
)
+static ALWAYS_INLINE void
+
point_size(struct gl_context *ctx, GLfloat size, bool no_error
)
{
{
- GET_CURRENT_CONTEXT(ctx);
- ASSERT_OUTSIDE_BEGIN_END(ctx);
-
- if (size <= 0.0) {
- _mesa_error( ctx, GL_INVALID_VALUE, "glPointSize" );
+ if (ctx->Point.Size == size)
return;
return;
- }
- if (ctx->Point.Size == size)
+ if (!no_error && size <= 0.0F) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glPointSize");
return;
return;
+ }
FLUSH_VERTICES(ctx, _NEW_POINT);
ctx->Point.Size = size;
FLUSH_VERTICES(ctx, _NEW_POINT);
ctx->Point.Size = size;
@@
-62,6
+59,22
@@
_mesa_PointSize( GLfloat size )
}
}
+void GLAPIENTRY
+_mesa_PointSize_no_error(GLfloat size)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ point_size(ctx, size, true);
+}
+
+
+void GLAPIENTRY
+_mesa_PointSize( GLfloat size )
+{
+ GET_CURRENT_CONTEXT(ctx);
+ point_size(ctx, size, false);
+}
+
+
void GLAPIENTRY
_mesa_PointParameteri( GLenum pname, GLint param )
{
void GLAPIENTRY
_mesa_PointParameteri( GLenum pname, GLint param )
{
@@
-99,13
+112,12
@@
void GLAPIENTRY
_mesa_PointParameterfv( GLenum pname, const GLfloat *params)
{
GET_CURRENT_CONTEXT(ctx);
_mesa_PointParameterfv( GLenum pname, const GLfloat *params)
{
GET_CURRENT_CONTEXT(ctx);
- ASSERT_OUTSIDE_BEGIN_END(ctx);
/* Drivers that support point sprites must also support point parameters.
* If point parameters aren't supported, then this function shouldn't even
* exist.
*/
/* Drivers that support point sprites must also support point parameters.
* If point parameters aren't supported, then this function shouldn't even
* exist.
*/
-
ASSERT
(!(ctx->Extensions.ARB_point_sprite
+
assert
(!(ctx->Extensions.ARB_point_sprite
|| ctx->Extensions.NV_point_sprite)
|| ctx->Extensions.EXT_point_parameters);
|| ctx->Extensions.NV_point_sprite)
|| ctx->Extensions.EXT_point_parameters);
@@
-121,14
+133,9
@@
_mesa_PointParameterfv( GLenum pname, const GLfloat *params)
return;
FLUSH_VERTICES(ctx, _NEW_POINT);
COPY_3V(ctx->Point.Params, params);
return;
FLUSH_VERTICES(ctx, _NEW_POINT);
COPY_3V(ctx->Point.Params, params);
- ctx->Point._Attenuated = (ctx->Point.Params[0] != 1.0 ||
- ctx->Point.Params[1] != 0.0 ||
- ctx->Point.Params[2] != 0.0);
-
- if (ctx->Point._Attenuated)
- ctx->_TriangleCaps |= DD_POINT_ATTEN;
- else
- ctx->_TriangleCaps &= ~DD_POINT_ATTEN;
+ ctx->Point._Attenuated = (ctx->Point.Params[0] != 1.0F ||
+ ctx->Point.Params[1] != 0.0F ||
+ ctx->Point.Params[2] != 0.0F);
break;
case GL_POINT_SIZE_MIN_EXT:
if (params[0] < 0.0F) {
break;
case GL_POINT_SIZE_MIN_EXT:
if (params[0] < 0.0F) {
@@
-190,7
+197,7
@@
_mesa_PointParameterfv( GLenum pname, const GLfloat *params)
/* GL_POINT_SPRITE_COORD_ORIGIN was added to point sprites when the
* extension was merged into OpenGL 2.0.
*/
/* GL_POINT_SPRITE_COORD_ORIGIN was added to point sprites when the
* extension was merged into OpenGL 2.0.
*/
- if ((ctx->API == API_OPENGL && ctx->Version >= 20)
+ if ((ctx->API == API_OPENGL
_COMPAT
&& ctx->Version >= 20)
|| ctx->API == API_OPENGL_CORE) {
GLenum value = (GLenum) params[0];
if (value != GL_LOWER_LEFT && value != GL_UPPER_LEFT) {
|| ctx->API == API_OPENGL_CORE) {
GLenum value = (GLenum) params[0];
if (value != GL_LOWER_LEFT && value != GL_UPPER_LEFT) {
@@
-216,7
+223,7
@@
_mesa_PointParameterfv( GLenum pname, const GLfloat *params)
}
if (ctx->Driver.PointParameterfv)
}
if (ctx->Driver.PointParameterfv)
-
(*ctx->Driver.PointParameterfv)
(ctx, pname, params);
+
ctx->Driver.PointParameterfv
(ctx, pname, params);
}
}
@@
-232,8
+239,6
@@
_mesa_PointParameterfv( GLenum pname, const GLfloat *params)
void
_mesa_init_point(struct gl_context *ctx)
{
void
_mesa_init_point(struct gl_context *ctx)
{
- GLuint i;
-
ctx->Point.SmoothFlag = GL_FALSE;
ctx->Point.Size = 1.0;
ctx->Point.Params[0] = 1.0;
ctx->Point.SmoothFlag = GL_FALSE;
ctx->Point.Size = 1.0;
ctx->Point.Params[0] = 1.0;
@@
-255,11
+260,10
@@
_mesa_init_point(struct gl_context *ctx)
* In a core context, the state will default to true, and the setters and
* getters are disabled.
*/
* In a core context, the state will default to true, and the setters and
* getters are disabled.
*/
- ctx->Point.PointSprite = (ctx->API == API_OPENGL_CORE);
+ ctx->Point.PointSprite = (ctx->API == API_OPENGL_CORE ||
+ ctx->API == API_OPENGLES2);
ctx->Point.SpriteRMode = GL_ZERO; /* GL_NV_point_sprite (only!) */
ctx->Point.SpriteOrigin = GL_UPPER_LEFT; /* GL_ARB_point_sprite */
ctx->Point.SpriteRMode = GL_ZERO; /* GL_NV_point_sprite (only!) */
ctx->Point.SpriteOrigin = GL_UPPER_LEFT; /* GL_ARB_point_sprite */
- for (i = 0; i < Elements(ctx->Point.CoordReplace); i++) {
- ctx->Point.CoordReplace[i] = GL_FALSE; /* GL_ARB/NV_point_sprite */
- }
+ ctx->Point.CoordReplace = 0; /* GL_ARB/NV_point_sprite */
}
}