Home | History | Annotate | Download | only in main

Lines Matching full:ctx

55 supported_buffer_bitmask(const struct gl_context *ctx,
63 ASSERT(ctx->Extensions.EXT_framebuffer_object);
64 for (i = 0; i < ctx->Const.MaxColorAttachments; i++) {
214 * current ctx->DrawBuffer is a window-system framebuffer (Name=0) or
216 * In the former case, we update the per-context ctx->Color.DrawBuffer
231 GET_CURRENT_CONTEXT(ctx);
232 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); /* too complex... */
235 _mesa_debug(ctx, "glDrawBuffer %s\n", _mesa_lookup_enum_by_nr(buffer));
243 = supported_buffer_bitmask(ctx, ctx->DrawBuffer);
247 _mesa_error(ctx, GL_INVALID_ENUM,
254 _mesa_error(ctx, GL_INVALID_OPERATION,
261 _mesa_drawbuffers(ctx, 1, &buffer, &destMask);
266 if (ctx->Driver.DrawBuffers)
267 ctx->Driver.DrawBuffers(ctx, 1, &buffer);
268 else if (ctx->Driver.DrawBuffer)
269 ctx->Driver.DrawBuffer(ctx, buffer);
288 GET_CURRENT_CONTEXT(ctx);
289 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
294 if (n < 0 || n > (GLsizei) ctx->Const.MaxDrawBuffers) {
295 _mesa_error(ctx, GL_INVALID_VALUE, "glDrawBuffersARB(n)");
299 supportedMask = supported_buffer_bitmask(ctx, ctx->DrawBuffer);
311 _mesa_error(ctx, GL_INVALID_ENUM, "glDrawBuffersARB(buffer)");
316 _mesa_error(ctx, GL_INVALID_OPERATION,
322 _mesa_error(ctx, GL_INVALID_OPERATION,
333 _mesa_drawbuffers(ctx, n, buffers, destMask);
340 if (ctx->Driver.DrawBuffers)
341 ctx->Driver.DrawBuffers(ctx, n, buffers);
342 else if (ctx->Driver.DrawBuffer)
343 ctx->Driver.DrawBuffer(ctx, n > 0 ? buffers[0] : GL_NONE);
352 updated_drawbuffers(struct gl_context *ctx)
354 FLUSH_VERTICES(ctx, _NEW_BUFFERS);
357 if (ctx->API == API_OPENGL && !ctx->Extensions.ARB_ES2_compatibility) {
358 struct gl_framebuffer *fb = ctx->DrawBuffer;
376 * \param ctx current context
384 _mesa_drawbuffers(struct gl_context *ctx, GLuint n, const GLenum *buffers,
387 struct gl_framebuffer *fb = ctx->DrawBuffer;
393 const GLbitfield supportedMask = supported_buffer_bitmask(ctx, fb);
412 updated_drawbuffers(ctx);
429 updated_drawbuffers(ctx);
436 updated_drawbuffers(ctx);
446 for (buf = fb->_NumColorDrawBuffers; buf < ctx->Const.MaxDrawBuffers; buf++) {
448 updated_drawbuffers(ctx);
452 for (buf = n; buf < ctx->Const.MaxDrawBuffers; buf++) {
458 for (buf = 0; buf < ctx->Const.MaxDrawBuffers; buf++) {
459 if (ctx->Color.DrawBuffer[buf] != fb->ColorDrawBuffer[buf]) {
460 updated_drawbuffers(ctx);
461 ctx->Color.DrawBuffer[buf] = fb->ColorDrawBuffer[buf];
474 _mesa_update_draw_buffers(struct gl_context *ctx)
480 assert(_mesa_is_winsys_fbo(ctx->DrawBuffer));
482 for (i = 0; i < ctx->Const.MaxDrawBuffers; i++)
483 buffers[i] = ctx->Color.DrawBuffer[i];
485 _mesa_drawbuffers(ctx, ctx->Const.MaxDrawBuffers, buffers, NULL);
492 * \param ctx the rendering context
497 _mesa_readbuffer(struct gl_context *ctx, GLenum buffer, GLint bufferIndex)
499 struct gl_framebuffer *fb = ctx->ReadBuffer;
505 ctx->Pixel.ReadBuffer = buffer;
511 ctx->NewState |= _NEW_BUFFERS;
526 ctx);
527 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
530 _mesa_debug(ctx, "glReadBuffer %s\n", _mesa_lookup_enum_by_nr(buffer));
532 fb = ctx->ReadBuffer;
535 _mesa_debug(ctx, "glReadBuffer %s\n", _mesa_lookup_enum_by_nr(buffer));
545 _mesa_error(ctx, GL_INVALID_ENUM,
549 supportedMask = supported_buffer_bitmask(ctx, fb);
551 _mesa_error(ctx, GL_INVALID_OPERATION,
559 _mesa_readbuffer(ctx, buffer, srcBuffer);
560 ctx->NewState |= _NEW_BUFFERS;
565 if (ctx->Driver.ReadBuffer)
566 (*ctx->Driver.ReadBuffer)(ctx, buffer);