summaryrefslogtreecommitdiff
path: root/cogl/cogl-framebuffer.c
diff options
context:
space:
mode:
authorRobert Bragg <robert@linux.intel.com>2013-10-15 14:04:12 +0100
committerRobert Bragg <robert@linux.intel.com>2013-10-28 16:34:57 +0000
commitc1724eff6096033de4931fbc03ead14c71f252f5 (patch)
tree14e4562cd48393ceb9934cac4e2b45ca1318ddf4 /cogl/cogl-framebuffer.c
parent8d998b64c9cc57c7af0f717e3b8f936c0d989ee3 (diff)
downloadcogl-c1724eff6096033de4931fbc03ead14c71f252f5.tar.gz
framebuffer: NOP _set_color_mask if mask isn't changing
This makes cogl_framebuffer_set_color_mask immediately bail out if the given mask equals the framebuffer's current mask, since the cost of flushing the journal and flushing the gl state will hugely outweigh the cost of the check. Reviewed-by: Neil Roberts <neil@linux.intel.com> (cherry picked from commit 925174d99df7f1f4b11098e748bcc23eaa396a21)
Diffstat (limited to 'cogl/cogl-framebuffer.c')
-rw-r--r--cogl/cogl-framebuffer.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/cogl/cogl-framebuffer.c b/cogl/cogl-framebuffer.c
index 6b916cca..20863ffd 100644
--- a/cogl/cogl-framebuffer.c
+++ b/cogl/cogl-framebuffer.c
@@ -1248,6 +1248,9 @@ void
cogl_framebuffer_set_color_mask (CoglFramebuffer *framebuffer,
CoglColorMask color_mask)
{
+ if (framebuffer->color_mask == color_mask)
+ return;
+
/* XXX: Currently color mask changes don't go through the journal */
_cogl_framebuffer_flush_journal (framebuffer);