[mutter] cogl/gl-framebuffer: GObject:ify helper functions



commit dd55c3699c650a2e95c45df2195f09a12aa65e9a
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Tue Oct 20 11:24:43 2020 +0200

    cogl/gl-framebuffer: GObject:ify helper functions
    
    The object was still pretending to be CoglFramebuffer itself, by using
    naming and calling conventions making it seem like that. Fix that by
    passing around the driver instead of the framebuffer.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>

 cogl/cogl/driver/gl/cogl-framebuffer-gl.c | 57 ++++++++++++++++++++-----------
 1 file changed, 38 insertions(+), 19 deletions(-)
---
diff --git a/cogl/cogl/driver/gl/cogl-framebuffer-gl.c b/cogl/cogl/driver/gl/cogl-framebuffer-gl.c
index e053d0ad4d..d7407bee5c 100644
--- a/cogl/cogl/driver/gl/cogl-framebuffer-gl.c
+++ b/cogl/cogl/driver/gl/cogl-framebuffer-gl.c
@@ -57,8 +57,11 @@ context_from_driver (CoglFramebufferDriver *driver)
 }
 
 static void
-_cogl_framebuffer_gl_flush_viewport_state (CoglFramebuffer *framebuffer)
+cogl_gl_framebuffer_flush_viewport_state (CoglGlFramebuffer *gl_framebuffer)
 {
+  CoglFramebufferDriver *driver = COGL_FRAMEBUFFER_DRIVER (gl_framebuffer);
+  CoglFramebuffer *framebuffer =
+    cogl_framebuffer_driver_get_framebuffer (driver);
   float viewport_x, viewport_y, viewport_width, viewport_height;
   float gl_viewport_y;
 
@@ -97,19 +100,26 @@ _cogl_framebuffer_gl_flush_viewport_state (CoglFramebuffer *framebuffer)
 }
 
 static void
-_cogl_framebuffer_gl_flush_clip_state (CoglFramebuffer *framebuffer)
+cogl_gl_framebuffer_flush_clip_state (CoglGlFramebuffer *gl_framebuffer)
 {
+  CoglFramebufferDriver *driver = COGL_FRAMEBUFFER_DRIVER (gl_framebuffer);
+  CoglFramebuffer *framebuffer =
+    cogl_framebuffer_driver_get_framebuffer (driver);
+
   _cogl_clip_stack_flush (_cogl_framebuffer_get_clip_stack (framebuffer),
                           framebuffer);
 }
 
 static void
-_cogl_framebuffer_gl_flush_dither_state (CoglFramebuffer *framebuffer)
+cogl_gl_framebuffer_flush_dither_state (CoglGlFramebuffer *gl_framebuffer)
 {
+  CoglFramebufferDriver *driver = COGL_FRAMEBUFFER_DRIVER (gl_framebuffer);
+  CoglFramebuffer *framebuffer =
+    cogl_framebuffer_driver_get_framebuffer (driver);
   CoglContext *ctx = cogl_framebuffer_get_context (framebuffer);
-  gboolean is_dither_enabled =
-    cogl_framebuffer_get_dither_enabled (framebuffer);
+  gboolean is_dither_enabled;
 
+  is_dither_enabled = cogl_framebuffer_get_dither_enabled (framebuffer);
   if (ctx->current_gl_dither_enabled != is_dither_enabled)
     {
       if (is_dither_enabled)
@@ -121,8 +131,11 @@ _cogl_framebuffer_gl_flush_dither_state (CoglFramebuffer *framebuffer)
 }
 
 static void
-_cogl_framebuffer_gl_flush_modelview_state (CoglFramebuffer *framebuffer)
+cogl_gl_framebuffer_flush_modelview_state (CoglGlFramebuffer *gl_framebuffer)
 {
+  CoglFramebufferDriver *driver = COGL_FRAMEBUFFER_DRIVER (gl_framebuffer);
+  CoglFramebuffer *framebuffer =
+    cogl_framebuffer_driver_get_framebuffer (driver);
   CoglContext *ctx = cogl_framebuffer_get_context (framebuffer);
   CoglMatrixEntry *modelview_entry =
     _cogl_framebuffer_get_modelview_entry (framebuffer);
@@ -131,8 +144,11 @@ _cogl_framebuffer_gl_flush_modelview_state (CoglFramebuffer *framebuffer)
 }
 
 static void
-_cogl_framebuffer_gl_flush_projection_state (CoglFramebuffer *framebuffer)
+cogl_gl_framebuffer_flush_projection_state (CoglGlFramebuffer *gl_framebuffer)
 {
+  CoglFramebufferDriver *driver = COGL_FRAMEBUFFER_DRIVER (gl_framebuffer);
+  CoglFramebuffer *framebuffer =
+    cogl_framebuffer_driver_get_framebuffer (driver);
   CoglContext *ctx = cogl_framebuffer_get_context (framebuffer);
   CoglMatrixEntry *projection_entry =
     _cogl_framebuffer_get_projection_entry (framebuffer);
@@ -141,8 +157,11 @@ _cogl_framebuffer_gl_flush_projection_state (CoglFramebuffer *framebuffer)
 }
 
 static void
-_cogl_framebuffer_gl_flush_front_face_winding_state (CoglFramebuffer *framebuffer)
+cogl_gl_framebuffer_flush_front_face_winding_state (CoglGlFramebuffer *gl_framebuffer)
 {
+  CoglFramebufferDriver *driver = COGL_FRAMEBUFFER_DRIVER (gl_framebuffer);
+  CoglFramebuffer *framebuffer =
+    cogl_framebuffer_driver_get_framebuffer (driver);
   CoglContext *context = cogl_framebuffer_get_context (framebuffer);
   CoglPipelineCullFaceMode mode;
 
@@ -173,8 +192,11 @@ _cogl_framebuffer_gl_flush_front_face_winding_state (CoglFramebuffer *framebuffe
 }
 
 static void
-_cogl_framebuffer_gl_flush_stereo_mode_state (CoglFramebuffer *framebuffer)
+cogl_gl_framebuffer_flush_stereo_mode_state (CoglGlFramebuffer *gl_framebuffer)
 {
+  CoglFramebufferDriver *driver = COGL_FRAMEBUFFER_DRIVER (gl_framebuffer);
+  CoglFramebuffer *framebuffer =
+    cogl_framebuffer_driver_get_framebuffer (driver);
   CoglContext *ctx = cogl_framebuffer_get_context (framebuffer);
   GLenum draw_buffer = GL_BACK;
 
@@ -212,9 +234,6 @@ void
 cogl_gl_framebuffer_flush_state_differences (CoglGlFramebuffer *gl_framebuffer,
                                              unsigned long      differences)
 {
-  CoglFramebufferDriver *driver = COGL_FRAMEBUFFER_DRIVER (gl_framebuffer);
-  CoglFramebuffer *framebuffer =
-    cogl_framebuffer_driver_get_framebuffer (driver);
   int bit;
 
   COGL_FLAGS_FOREACH_START (&differences, 1, bit)
@@ -226,29 +245,29 @@ cogl_gl_framebuffer_flush_state_differences (CoglGlFramebuffer *gl_framebuffer,
       switch (bit)
         {
         case COGL_FRAMEBUFFER_STATE_INDEX_VIEWPORT:
-          _cogl_framebuffer_gl_flush_viewport_state (framebuffer);
+          cogl_gl_framebuffer_flush_viewport_state (gl_framebuffer);
           break;
         case COGL_FRAMEBUFFER_STATE_INDEX_CLIP:
-          _cogl_framebuffer_gl_flush_clip_state (framebuffer);
+          cogl_gl_framebuffer_flush_clip_state (gl_framebuffer);
           break;
         case COGL_FRAMEBUFFER_STATE_INDEX_DITHER:
-          _cogl_framebuffer_gl_flush_dither_state (framebuffer);
+          cogl_gl_framebuffer_flush_dither_state (gl_framebuffer);
           break;
         case COGL_FRAMEBUFFER_STATE_INDEX_MODELVIEW:
-          _cogl_framebuffer_gl_flush_modelview_state (framebuffer);
+          cogl_gl_framebuffer_flush_modelview_state (gl_framebuffer);
           break;
         case COGL_FRAMEBUFFER_STATE_INDEX_PROJECTION:
-          _cogl_framebuffer_gl_flush_projection_state (framebuffer);
+          cogl_gl_framebuffer_flush_projection_state (gl_framebuffer);
           break;
         case COGL_FRAMEBUFFER_STATE_INDEX_FRONT_FACE_WINDING:
-          _cogl_framebuffer_gl_flush_front_face_winding_state (framebuffer);
+          cogl_gl_framebuffer_flush_front_face_winding_state (gl_framebuffer);
           break;
         case COGL_FRAMEBUFFER_STATE_INDEX_DEPTH_WRITE:
           /* Nothing to do for depth write state change; the state will always
            * be taken into account when flushing the pipeline's depth state. */
           break;
         case COGL_FRAMEBUFFER_STATE_INDEX_STEREO_MODE:
-          _cogl_framebuffer_gl_flush_stereo_mode_state (framebuffer);
+          cogl_gl_framebuffer_flush_stereo_mode_state (gl_framebuffer);
           break;
         default:
           g_warn_if_reached ();


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]