From dd55c3699c650a2e95c45df2195f09a12aa65e9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Tue, 20 Oct 2020 11:24:43 +0200 Subject: [PATCH] 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: --- 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 e053d0ad4..d7407bee5 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 ();