Lines Matching refs:ctx

42    GET_CURRENT_CONTEXT(ctx);
49 if (TEST_EQ_4V(tmp, ctx->Accum.ClearColor))
52 COPY_4FV( ctx->Accum.ClearColor, tmp );
59 GET_CURRENT_CONTEXT(ctx);
60 FLUSH_VERTICES(ctx, 0);
71 _mesa_error(ctx, GL_INVALID_ENUM, "glAccum(op)");
75 if (ctx->DrawBuffer->Visual.haveAccumBuffer == 0) {
76 _mesa_error(ctx, GL_INVALID_OPERATION, "glAccum(no accum buffer)");
80 if (ctx->DrawBuffer != ctx->ReadBuffer) {
84 _mesa_error(ctx, GL_INVALID_OPERATION,
89 if (ctx->NewState)
90 _mesa_update_state(ctx);
92 if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) {
93 _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT,
98 if (ctx->RasterDiscard)
101 if (ctx->RenderMode == GL_RENDER) {
102 _mesa_accum(ctx, op, value);
113 _mesa_clear_accum_buffer(struct gl_context *ctx)
120 if (!ctx->DrawBuffer)
123 accRb = ctx->DrawBuffer->Attachment[BUFFER_ACCUM].Renderbuffer;
128 x = ctx->DrawBuffer->_Xmin;
129 y = ctx->DrawBuffer->_Ymin;
130 width = ctx->DrawBuffer->_Xmax - ctx->DrawBuffer->_Xmin;
131 height = ctx->DrawBuffer->_Ymax - ctx->DrawBuffer->_Ymin;
133 ctx->Driver.MapRenderbuffer(ctx, accRb, x, y, width, height,
137 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum");
142 const GLshort clearR = FLOAT_TO_SHORT(ctx->Accum.ClearColor[0]);
143 const GLshort clearG = FLOAT_TO_SHORT(ctx->Accum.ClearColor[1]);
144 const GLshort clearB = FLOAT_TO_SHORT(ctx->Accum.ClearColor[2]);
145 const GLshort clearA = FLOAT_TO_SHORT(ctx->Accum.ClearColor[3]);
162 _mesa_warning(ctx, "unexpected accum buffer type");
165 ctx->Driver.UnmapRenderbuffer(ctx, accRb);
176 accum_scale_or_bias(struct gl_context *ctx, GLfloat value,
181 ctx->DrawBuffer->Attachment[BUFFER_ACCUM].Renderbuffer;
187 ctx->Driver.MapRenderbuffer(ctx, accRb, xpos, ypos, width, height,
192 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum");
223 ctx->Driver.UnmapRenderbuffer(ctx, accRb);
234 accum_or_load(struct gl_context *ctx, GLfloat value,
239 ctx->DrawBuffer->Attachment[BUFFER_ACCUM].Renderbuffer;
240 struct gl_renderbuffer *colorRb = ctx->ReadBuffer->_ColorReadBuffer;
257 ctx->Driver.MapRenderbuffer(ctx, accRb, xpos, ypos, width, height,
260 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum");
265 ctx->Driver.MapRenderbuffer(ctx, colorRb, xpos, ypos, width, height,
269 ctx->Driver.UnmapRenderbuffer(ctx, accRb);
270 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum");
312 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum");
319 ctx->Driver.UnmapRenderbuffer(ctx, accRb);
320 ctx->Driver.UnmapRenderbuffer(ctx, colorRb);
328 accum_return(struct gl_context *ctx, GLfloat value,
331 struct gl_framebuffer *fb = ctx->DrawBuffer;
338 ctx->Driver.MapRenderbuffer(ctx, accRb, xpos, ypos, width, height,
342 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum");
349 const GLboolean masking = (!ctx->Color.ColorMask[buffer][RCOMP] ||
350 !ctx->Color.ColorMask[buffer][GCOMP] ||
351 !ctx->Color.ColorMask[buffer][BCOMP] ||
352 !ctx->Color.ColorMask[buffer][ACOMP]);
359 ctx->Driver.MapRenderbuffer(ctx, colorRb, xpos, ypos, width, height,
362 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum");
391 if (ctx->Color.ColorMask[buffer][RCOMP] == 0) {
395 if (ctx->Color.ColorMask[buffer][GCOMP] == 0) {
399 if (ctx->Color.ColorMask[buffer][BCOMP] == 0) {
403 if (ctx->Color.ColorMask[buffer][ACOMP] == 0) {
417 _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum");
426 ctx->Driver.UnmapRenderbuffer(ctx, colorRb);
429 ctx->Driver.UnmapRenderbuffer(ctx, accRb);
440 _mesa_accum(struct gl_context *ctx, GLenum op, GLfloat value)
444 if (!ctx->DrawBuffer->Attachment[BUFFER_ACCUM].Renderbuffer) {
445 _mesa_warning(ctx, "Calling glAccum() without an accumulation buffer");
449 if (!_mesa_check_conditional_render(ctx))
452 xpos = ctx->DrawBuffer->_Xmin;
453 ypos = ctx->DrawBuffer->_Ymin;
454 width = ctx->DrawBuffer->_Xmax - ctx->DrawBuffer->_Xmin;
455 height = ctx->DrawBuffer->_Ymax - ctx->DrawBuffer->_Ymin;
460 accum_scale_or_bias(ctx, value, xpos, ypos, width, height, GL_TRUE);
465 accum_scale_or_bias(ctx, value, xpos, ypos, width, height, GL_FALSE);
470 accum_or_load(ctx, value, xpos, ypos, width, height, GL_FALSE);
474 accum_or_load(ctx, value, xpos, ypos, width, height, GL_TRUE);
477 accum_return(ctx, value, xpos, ypos, width, height);
480 _mesa_problem(ctx, "invalid mode in _mesa_accum()");
487 _mesa_init_accum( struct gl_context *ctx )
490 ASSIGN_4V( ctx->Accum.ClearColor, 0.0, 0.0, 0.0, 0.0 );