summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/intel/intel_buffers.c
diff options
context:
space:
mode:
authorIan Romanick <idr@freedesktop.org>2009-04-06 13:15:54 -0700
committerIan Romanick <ian.d.romanick@intel.com>2009-04-09 14:18:14 -0700
commit43cf0d1eebb9f425e1a0e176394b64e2cb406709 (patch)
tree70b68a94aac6cdee649786a7573c496863de648c /src/mesa/drivers/dri/intel/intel_buffers.c
parent82634ee8df7328b9235abd8352d33b0b3d953600 (diff)
intel / DRI2: Track and flush front-buffer rendering
Track two flags: whether or not front-buffer rendering is currently enabled and whether or not front-buffer rendering has been enabled since the last glFlush. If the second flag is set, the front-buffer is flushed via a loader call back. If the first flag is cleared, the second flag is cleared at this time. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kristian Høgsberg <krh@redhat.com>
Diffstat (limited to 'src/mesa/drivers/dri/intel/intel_buffers.c')
-rw-r--r--src/mesa/drivers/dri/intel/intel_buffers.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_buffers.c b/src/mesa/drivers/dri/intel/intel_buffers.c
index 0929a2c223..f1249f7635 100644
--- a/src/mesa/drivers/dri/intel/intel_buffers.c
+++ b/src/mesa/drivers/dri/intel/intel_buffers.c
@@ -202,6 +202,8 @@ intel_draw_buffer(GLcontext * ctx, struct gl_framebuffer *fb)
intel_batchbuffer_flush(intel->batch);
intel->front_cliprects = GL_TRUE;
colorRegions[0] = intel_get_rb_region(fb, BUFFER_FRONT_LEFT);
+
+ intel->front_buffer_dirty = GL_TRUE;
}
else {
if (!intel->constant_cliprect && intel->front_cliprects)
@@ -319,6 +321,12 @@ intel_draw_buffer(GLcontext * ctx, struct gl_framebuffer *fb)
static void
intelDrawBuffer(GLcontext * ctx, GLenum mode)
{
+ if (ctx->DrawBuffer->Name == 0) {
+ struct intel_context *const intel = intel_context(ctx);
+
+ intel->is_front_buffer_rendering = (mode == GL_FRONT_LEFT);
+ }
+
intel_draw_buffer(ctx, ctx->DrawBuffer);
}