Lines Matching refs:ctx
56 GET_CURRENT_CONTEXT(ctx); in _mesa_FeedbackBuffer()
57 ASSERT_OUTSIDE_BEGIN_END(ctx); in _mesa_FeedbackBuffer()
59 if (ctx->RenderMode==GL_FEEDBACK) { in _mesa_FeedbackBuffer()
60 _mesa_error( ctx, GL_INVALID_OPERATION, "glFeedbackBuffer" ); in _mesa_FeedbackBuffer()
64 _mesa_error( ctx, GL_INVALID_VALUE, "glFeedbackBuffer(size<0)" ); in _mesa_FeedbackBuffer()
68 _mesa_error( ctx, GL_INVALID_VALUE, "glFeedbackBuffer(buffer==NULL)" ); in _mesa_FeedbackBuffer()
69 ctx->Feedback.BufferSize = 0; in _mesa_FeedbackBuffer()
75 ctx->Feedback._Mask = 0; in _mesa_FeedbackBuffer()
78 ctx->Feedback._Mask = FB_3D; in _mesa_FeedbackBuffer()
81 ctx->Feedback._Mask = (FB_3D | FB_COLOR); in _mesa_FeedbackBuffer()
84 ctx->Feedback._Mask = (FB_3D | FB_COLOR | FB_TEXTURE); in _mesa_FeedbackBuffer()
87 ctx->Feedback._Mask = (FB_3D | FB_4D | FB_COLOR | FB_TEXTURE); in _mesa_FeedbackBuffer()
90 _mesa_error( ctx, GL_INVALID_ENUM, "glFeedbackBuffer" ); in _mesa_FeedbackBuffer()
94 FLUSH_VERTICES(ctx, _NEW_RENDERMODE); /* Always flush */ in _mesa_FeedbackBuffer()
95 ctx->Feedback.Type = type; in _mesa_FeedbackBuffer()
96 ctx->Feedback.BufferSize = size; in _mesa_FeedbackBuffer()
97 ctx->Feedback.Buffer = buffer; in _mesa_FeedbackBuffer()
98 ctx->Feedback.Count = 0; /* Becaues of this. */ in _mesa_FeedbackBuffer()
105 GET_CURRENT_CONTEXT(ctx); in _mesa_PassThrough()
106 ASSERT_OUTSIDE_BEGIN_END(ctx); in _mesa_PassThrough()
108 if (ctx->RenderMode==GL_FEEDBACK) { in _mesa_PassThrough()
109 FLUSH_VERTICES(ctx, 0); in _mesa_PassThrough()
110 _mesa_feedback_token( ctx, (GLfloat) (GLint) GL_PASS_THROUGH_TOKEN ); in _mesa_PassThrough()
111 _mesa_feedback_token( ctx, token ); in _mesa_PassThrough()
120 _mesa_feedback_vertex(struct gl_context *ctx, in _mesa_feedback_vertex() argument
125 _mesa_feedback_token( ctx, win[0] ); in _mesa_feedback_vertex()
126 _mesa_feedback_token( ctx, win[1] ); in _mesa_feedback_vertex()
127 if (ctx->Feedback._Mask & FB_3D) { in _mesa_feedback_vertex()
128 _mesa_feedback_token( ctx, win[2] ); in _mesa_feedback_vertex()
130 if (ctx->Feedback._Mask & FB_4D) { in _mesa_feedback_vertex()
131 _mesa_feedback_token( ctx, win[3] ); in _mesa_feedback_vertex()
133 if (ctx->Feedback._Mask & FB_COLOR) { in _mesa_feedback_vertex()
134 _mesa_feedback_token( ctx, color[0] ); in _mesa_feedback_vertex()
135 _mesa_feedback_token( ctx, color[1] ); in _mesa_feedback_vertex()
136 _mesa_feedback_token( ctx, color[2] ); in _mesa_feedback_vertex()
137 _mesa_feedback_token( ctx, color[3] ); in _mesa_feedback_vertex()
139 if (ctx->Feedback._Mask & FB_TEXTURE) { in _mesa_feedback_vertex()
140 _mesa_feedback_token( ctx, texcoord[0] ); in _mesa_feedback_vertex()
141 _mesa_feedback_token( ctx, texcoord[1] ); in _mesa_feedback_vertex()
142 _mesa_feedback_token( ctx, texcoord[2] ); in _mesa_feedback_vertex()
143 _mesa_feedback_token( ctx, texcoord[3] ); in _mesa_feedback_vertex()
168 GET_CURRENT_CONTEXT(ctx); in _mesa_SelectBuffer()
169 ASSERT_OUTSIDE_BEGIN_END(ctx); in _mesa_SelectBuffer()
172 _mesa_error(ctx, GL_INVALID_VALUE, "glSelectBuffer(size)"); in _mesa_SelectBuffer()
176 if (ctx->RenderMode==GL_SELECT) { in _mesa_SelectBuffer()
177 _mesa_error( ctx, GL_INVALID_OPERATION, "glSelectBuffer" ); in _mesa_SelectBuffer()
181 FLUSH_VERTICES(ctx, _NEW_RENDERMODE); in _mesa_SelectBuffer()
182 ctx->Select.Buffer = buffer; in _mesa_SelectBuffer()
183 ctx->Select.BufferSize = size; in _mesa_SelectBuffer()
184 ctx->Select.BufferCount = 0; in _mesa_SelectBuffer()
185 ctx->Select.HitFlag = GL_FALSE; in _mesa_SelectBuffer()
186 ctx->Select.HitMinZ = 1.0; in _mesa_SelectBuffer()
187 ctx->Select.HitMaxZ = 0.0; in _mesa_SelectBuffer()
201 write_record(struct gl_context *ctx, GLuint value) in write_record() argument
203 if (ctx->Select.BufferCount < ctx->Select.BufferSize) { in write_record()
204 ctx->Select.Buffer[ctx->Select.BufferCount] = value; in write_record()
206 ctx->Select.BufferCount++; in write_record()
220 _mesa_update_hitflag(struct gl_context *ctx, GLfloat z) in _mesa_update_hitflag() argument
222 ctx->Select.HitFlag = GL_TRUE; in _mesa_update_hitflag()
223 if (z < ctx->Select.HitMinZ) { in _mesa_update_hitflag()
224 ctx->Select.HitMinZ = z; in _mesa_update_hitflag()
226 if (z > ctx->Select.HitMaxZ) { in _mesa_update_hitflag()
227 ctx->Select.HitMaxZ = z; in _mesa_update_hitflag()
244 write_hit_record(struct gl_context *ctx) in write_hit_record() argument
252 assert( ctx != NULL ); /* this line magically fixes a SunOS 5.x/gcc bug */ in write_hit_record()
253 zmin = (GLuint) ((GLfloat) zscale * ctx->Select.HitMinZ); in write_hit_record()
254 zmax = (GLuint) ((GLfloat) zscale * ctx->Select.HitMaxZ); in write_hit_record()
256 write_record( ctx, ctx->Select.NameStackDepth ); in write_hit_record()
257 write_record( ctx, zmin ); in write_hit_record()
258 write_record( ctx, zmax ); in write_hit_record()
259 for (i = 0; i < ctx->Select.NameStackDepth; i++) { in write_hit_record()
260 write_record( ctx, ctx->Select.NameStack[i] ); in write_hit_record()
263 ctx->Select.Hits++; in write_hit_record()
264 ctx->Select.HitFlag = GL_FALSE; in write_hit_record()
265 ctx->Select.HitMinZ = 1.0; in write_hit_record()
266 ctx->Select.HitMaxZ = -1.0; in write_hit_record()
280 GET_CURRENT_CONTEXT(ctx); in _mesa_InitNames()
281 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); in _mesa_InitNames()
284 if (ctx->RenderMode == GL_SELECT) { in _mesa_InitNames()
285 if (ctx->Select.HitFlag) { in _mesa_InitNames()
286 write_hit_record( ctx ); in _mesa_InitNames()
289 ctx->Select.NameStackDepth = 0; in _mesa_InitNames()
290 ctx->Select.HitFlag = GL_FALSE; in _mesa_InitNames()
291 ctx->Select.HitMinZ = 1.0; in _mesa_InitNames()
292 ctx->Select.HitMaxZ = 0.0; in _mesa_InitNames()
293 ctx->NewState |= _NEW_RENDERMODE; in _mesa_InitNames()
311 GET_CURRENT_CONTEXT(ctx); in _mesa_LoadName()
312 ASSERT_OUTSIDE_BEGIN_END(ctx); in _mesa_LoadName()
314 if (ctx->RenderMode != GL_SELECT) { in _mesa_LoadName()
317 if (ctx->Select.NameStackDepth == 0) { in _mesa_LoadName()
318 _mesa_error( ctx, GL_INVALID_OPERATION, "glLoadName" ); in _mesa_LoadName()
322 FLUSH_VERTICES(ctx, _NEW_RENDERMODE); in _mesa_LoadName()
324 if (ctx->Select.HitFlag) { in _mesa_LoadName()
325 write_hit_record( ctx ); in _mesa_LoadName()
327 if (ctx->Select.NameStackDepth < MAX_NAME_STACK_DEPTH) { in _mesa_LoadName()
328 ctx->Select.NameStack[ctx->Select.NameStackDepth-1] = name; in _mesa_LoadName()
331 ctx->Select.NameStack[MAX_NAME_STACK_DEPTH-1] = name; in _mesa_LoadName()
350 GET_CURRENT_CONTEXT(ctx); in _mesa_PushName()
351 ASSERT_OUTSIDE_BEGIN_END(ctx); in _mesa_PushName()
353 if (ctx->RenderMode != GL_SELECT) { in _mesa_PushName()
357 FLUSH_VERTICES(ctx, _NEW_RENDERMODE); in _mesa_PushName()
358 if (ctx->Select.HitFlag) { in _mesa_PushName()
359 write_hit_record( ctx ); in _mesa_PushName()
361 if (ctx->Select.NameStackDepth >= MAX_NAME_STACK_DEPTH) { in _mesa_PushName()
362 _mesa_error( ctx, GL_STACK_OVERFLOW, "glPushName" ); in _mesa_PushName()
365 ctx->Select.NameStack[ctx->Select.NameStackDepth++] = name; in _mesa_PushName()
381 GET_CURRENT_CONTEXT(ctx); in _mesa_PopName()
382 ASSERT_OUTSIDE_BEGIN_END(ctx); in _mesa_PopName()
384 if (ctx->RenderMode != GL_SELECT) { in _mesa_PopName()
388 FLUSH_VERTICES(ctx, _NEW_RENDERMODE); in _mesa_PopName()
389 if (ctx->Select.HitFlag) { in _mesa_PopName()
390 write_hit_record( ctx ); in _mesa_PopName()
392 if (ctx->Select.NameStackDepth == 0) { in _mesa_PopName()
393 _mesa_error( ctx, GL_STACK_UNDERFLOW, "glPopName" ); in _mesa_PopName()
396 ctx->Select.NameStackDepth--; in _mesa_PopName()
424 GET_CURRENT_CONTEXT(ctx); in _mesa_RenderMode()
426 ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, 0); in _mesa_RenderMode()
429 _mesa_debug(ctx, "glRenderMode %s\n", _mesa_lookup_enum_by_nr(mode)); in _mesa_RenderMode()
431 FLUSH_VERTICES(ctx, _NEW_RENDERMODE); in _mesa_RenderMode()
433 switch (ctx->RenderMode) { in _mesa_RenderMode()
438 if (ctx->Select.HitFlag) { in _mesa_RenderMode()
439 write_hit_record( ctx ); in _mesa_RenderMode()
441 if (ctx->Select.BufferCount > ctx->Select.BufferSize) { in _mesa_RenderMode()
444 _mesa_warning(ctx, "Feedback buffer overflow"); in _mesa_RenderMode()
449 result = ctx->Select.Hits; in _mesa_RenderMode()
451 ctx->Select.BufferCount = 0; in _mesa_RenderMode()
452 ctx->Select.Hits = 0; in _mesa_RenderMode()
453 ctx->Select.NameStackDepth = 0; in _mesa_RenderMode()
457 if (ctx->Feedback.Count > ctx->Feedback.BufferSize) { in _mesa_RenderMode()
462 result = ctx->Feedback.Count; in _mesa_RenderMode()
464 ctx->Feedback.Count = 0; in _mesa_RenderMode()
468 _mesa_error( ctx, GL_INVALID_ENUM, "glRenderMode" ); in _mesa_RenderMode()
476 if (ctx->Select.BufferSize==0) { in _mesa_RenderMode()
478 _mesa_error( ctx, GL_INVALID_OPERATION, "glRenderMode" ); in _mesa_RenderMode()
483 if (ctx->Feedback.BufferSize==0) { in _mesa_RenderMode()
485 _mesa_error( ctx, GL_INVALID_OPERATION, "glRenderMode" ); in _mesa_RenderMode()
490 _mesa_error( ctx, GL_INVALID_ENUM, "glRenderMode" ); in _mesa_RenderMode()
494 ctx->RenderMode = mode; in _mesa_RenderMode()
495 if (ctx->Driver.RenderMode) in _mesa_RenderMode()
496 ctx->Driver.RenderMode( ctx, mode ); in _mesa_RenderMode()
528 void _mesa_init_feedback( struct gl_context * ctx ) in _mesa_init_feedback() argument
531 ctx->Feedback.Type = GL_2D; /* TODO: verify */ in _mesa_init_feedback()
532 ctx->Feedback.Buffer = NULL; in _mesa_init_feedback()
533 ctx->Feedback.BufferSize = 0; in _mesa_init_feedback()
534 ctx->Feedback.Count = 0; in _mesa_init_feedback()
537 ctx->Select.Buffer = NULL; in _mesa_init_feedback()
538 ctx->Select.BufferSize = 0; in _mesa_init_feedback()
539 ctx->Select.BufferCount = 0; in _mesa_init_feedback()
540 ctx->Select.Hits = 0; in _mesa_init_feedback()
541 ctx->Select.NameStackDepth = 0; in _mesa_init_feedback()
544 ctx->RenderMode = GL_RENDER; in _mesa_init_feedback()