summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mesa/main/points.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/mesa/main/points.c b/src/mesa/main/points.c
index d66af2fa156..538f3cf4444 100644
--- a/src/mesa/main/points.c
+++ b/src/mesa/main/points.c
@@ -248,7 +248,19 @@ _mesa_init_point(struct gl_context *ctx)
ctx->Point.MaxSize
= MAX2(ctx->Const.MaxPointSize, ctx->Const.MaxPointSizeAA);
ctx->Point.Threshold = 1.0;
- ctx->Point.PointSprite = GL_FALSE; /* GL_ARB/NV_point_sprite */
+
+ /* Page 403 (page 423 of the PDF) of the OpenGL 3.0 spec says:
+ *
+ * "Non-sprite points (section 3.4) - Enable/Disable targets
+ * POINT_SMOOTH and POINT_SPRITE, and all associated state. Point
+ * rasterization is always performed as though POINT_SPRITE were
+ * enabled."
+ *
+ * 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.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++) {