summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_cb_rasterpos.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/state_tracker/st_cb_rasterpos.c')
-rw-r--r--src/mesa/state_tracker/st_cb_rasterpos.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mesa/state_tracker/st_cb_rasterpos.c b/src/mesa/state_tracker/st_cb_rasterpos.c
index 5b0eb6022b..2ed228778e 100644
--- a/src/mesa/state_tracker/st_cb_rasterpos.c
+++ b/src/mesa/state_tracker/st_cb_rasterpos.c
@@ -38,6 +38,7 @@
#include "main/imports.h"
#include "main/macros.h"
+#include "main/feedback.h"
#include "st_context.h"
#include "st_atom.h"
@@ -145,7 +146,7 @@ rastpos_point(struct draw_stage *stage, struct prim_header *prim)
/* update raster pos */
pos = prim->v[0]->data[0];
ctx->Current.RasterPos[0] = pos[0];
- ctx->Current.RasterPos[1] = height - 1 - pos[1];
+ ctx->Current.RasterPos[1] = height - pos[1]; /* invert Y */
ctx->Current.RasterPos[2] = pos[2];
ctx->Current.RasterPos[3] = pos[3];
@@ -163,6 +164,10 @@ rastpos_point(struct draw_stage *stage, struct prim_header *prim)
ctx->Current.RasterTexCoords[i],
VERT_RESULT_TEX0 + i, VERT_ATTRIB_TEX0 + i);
}
+
+ if (ctx->RenderMode == GL_SELECT) {
+ _mesa_update_hitflag( ctx, ctx->Current.RasterPos[2] );
+ }
}