[cogl] cogl-framebuffer: Don't mark the clear clip dirty from the journal
- From: Neil Roberts <nroberts src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cogl] cogl-framebuffer: Don't mark the clear clip dirty from the journal
- Date: Wed, 4 Dec 2013 18:36:23 +0000 (UTC)
commit 550bae22d20c8d6d7cf1d090faa9c91619594077
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Fri Nov 29 16:16:37 2013 -0500
cogl-framebuffer: Don't mark the clear clip dirty from the journal
This means that we can't cache the journal read_pixels optimization.
https://bugzilla.gnome.org/show_bug.cgi?id=719582
Reviewed-by: Neil Roberts <neil linux intel com>
Reviewed-by: Robert Bragg <robert linux intel com>
cogl/cogl-attribute.c | 1 +
cogl/cogl-framebuffer-private.h | 3 +++
cogl/cogl-framebuffer.c | 8 +++++++-
3 files changed, 11 insertions(+), 1 deletions(-)
---
diff --git a/cogl/cogl-attribute.c b/cogl/cogl-attribute.c
index 7a9765b..379cc82 100644
--- a/cogl/cogl-attribute.c
+++ b/cogl/cogl-attribute.c
@@ -646,6 +646,7 @@ _cogl_flush_attributes_state (CoglFramebuffer *framebuffer,
* in the journal. For this optimization to work we need to track
* when the framebuffer really does get drawn to. */
_cogl_framebuffer_mark_mid_scene (framebuffer);
+ _cogl_framebuffer_mark_clear_clip_dirty (framebuffer);
ctx->driver_vtable->flush_attributes_state (framebuffer,
pipeline,
diff --git a/cogl/cogl-framebuffer-private.h b/cogl/cogl-framebuffer-private.h
index 507c62d..58e95b8 100644
--- a/cogl/cogl-framebuffer-private.h
+++ b/cogl/cogl-framebuffer-private.h
@@ -240,6 +240,9 @@ _cogl_framebuffer_clear_without_flush4f (CoglFramebuffer *framebuffer,
float alpha);
void
+_cogl_framebuffer_mark_clear_clip_dirty (CoglFramebuffer *framebuffer);
+
+void
_cogl_framebuffer_mark_mid_scene (CoglFramebuffer *framebuffer);
/*
diff --git a/cogl/cogl-framebuffer.c b/cogl/cogl-framebuffer.c
index 90cc382..4753b1a 100644
--- a/cogl/cogl-framebuffer.c
+++ b/cogl/cogl-framebuffer.c
@@ -224,9 +224,14 @@ _cogl_framebuffer_clear_without_flush4f (CoglFramebuffer *framebuffer,
}
void
-_cogl_framebuffer_mark_mid_scene (CoglFramebuffer *framebuffer)
+_cogl_framebuffer_mark_clear_clip_dirty (CoglFramebuffer *framebuffer)
{
framebuffer->clear_clip_dirty = TRUE;
+}
+
+void
+_cogl_framebuffer_mark_mid_scene (CoglFramebuffer *framebuffer)
+{
framebuffer->mid_scene = TRUE;
}
@@ -354,6 +359,7 @@ cogl_framebuffer_clear4f (CoglFramebuffer *framebuffer,
cleared:
_cogl_framebuffer_mark_mid_scene (framebuffer);
+ _cogl_framebuffer_mark_clear_clip_dirty (framebuffer);
if (buffers & COGL_BUFFER_BIT_COLOR && buffers & COGL_BUFFER_BIT_DEPTH)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]