[mutter] cogl/offscreen: Pass ColgOffscreenFlag when allocating
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] cogl/offscreen: Pass ColgOffscreenFlag when allocating
- Date: Sat, 30 Jan 2021 09:39:49 +0000 (UTC)
commit c7ea0b3d54053ec1bcd9ce8de3d06d1999109900
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Sun Oct 18 22:07:43 2020 +0200
cogl/offscreen: Pass ColgOffscreenFlag when allocating
So that the allocation functions don't need to peek at the cached flag
struct field.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
cogl/cogl/cogl-driver.h | 7 ++++---
cogl/cogl/cogl-offscreen.c | 4 +++-
cogl/cogl/driver/gl/cogl-framebuffer-gl-private.h | 5 +++--
cogl/cogl/driver/gl/cogl-framebuffer-gl.c | 9 +++++----
cogl/cogl/driver/nop/cogl-framebuffer-nop-private.h | 5 +++--
cogl/cogl/driver/nop/cogl-framebuffer-nop.c | 5 +++--
6 files changed, 21 insertions(+), 14 deletions(-)
---
diff --git a/cogl/cogl/cogl-driver.h b/cogl/cogl/cogl-driver.h
index d8f3cc18fe..6cf8f7b73c 100644
--- a/cogl/cogl/cogl-driver.h
+++ b/cogl/cogl/cogl-driver.h
@@ -32,7 +32,7 @@
#define __COGL_DRIVER_H
#include "cogl-context.h"
-#include "cogl-offscreen.h"
+#include "cogl-offscreen-private.h"
#include "cogl-framebuffer-private.h"
#include "cogl-attribute-private.h"
#include "cogl-sampler-cache-private.h"
@@ -74,8 +74,9 @@ struct _CoglDriverVtable
GError **error);
gboolean
- (* offscreen_allocate) (CoglOffscreen *offscreen,
- GError **error);
+ (* offscreen_allocate) (CoglOffscreen *offscreen,
+ CoglOffscreenFlags flags,
+ GError **error);
void
(* offscreen_free) (CoglOffscreen *offscreen);
diff --git a/cogl/cogl/cogl-offscreen.c b/cogl/cogl/cogl-offscreen.c
index 20154d78c1..c48f30d91d 100644
--- a/cogl/cogl/cogl-offscreen.c
+++ b/cogl/cogl/cogl-offscreen.c
@@ -106,7 +106,9 @@ cogl_offscreen_allocate (CoglFramebuffer *framebuffer,
texture_format = _cogl_texture_get_format (offscreen->texture);
_cogl_framebuffer_set_internal_format (framebuffer, texture_format);
- if (!ctx->driver_vtable->offscreen_allocate (offscreen, error))
+ if (!ctx->driver_vtable->offscreen_allocate (offscreen,
+ offscreen->create_flags,
+ error))
return FALSE;
return TRUE;
diff --git a/cogl/cogl/driver/gl/cogl-framebuffer-gl-private.h
b/cogl/cogl/driver/gl/cogl-framebuffer-gl-private.h
index 301bd8aba3..08acf814b6 100644
--- a/cogl/cogl/driver/gl/cogl-framebuffer-gl-private.h
+++ b/cogl/cogl/driver/gl/cogl-framebuffer-gl-private.h
@@ -40,8 +40,9 @@ G_DECLARE_FINAL_TYPE (CoglGlFramebuffer, cogl_gl_framebuffer,
GObject)
gboolean
-_cogl_offscreen_gl_allocate (CoglOffscreen *offscreen,
- GError **error);
+_cogl_offscreen_gl_allocate (CoglOffscreen *offscreen,
+ CoglOffscreenFlags flags,
+ GError **error);
void
_cogl_offscreen_gl_free (CoglOffscreen *offscreen);
diff --git a/cogl/cogl/driver/gl/cogl-framebuffer-gl.c b/cogl/cogl/driver/gl/cogl-framebuffer-gl.c
index 3aae555e65..d57de6203e 100644
--- a/cogl/cogl/driver/gl/cogl-framebuffer-gl.c
+++ b/cogl/cogl/driver/gl/cogl-framebuffer-gl.c
@@ -707,8 +707,9 @@ try_creating_fbo (CoglContext *ctx,
}
gboolean
-_cogl_offscreen_gl_allocate (CoglOffscreen *offscreen,
- GError **error)
+_cogl_offscreen_gl_allocate (CoglOffscreen *offscreen,
+ CoglOffscreenFlags flags,
+ GError **error)
{
CoglFramebuffer *framebuffer = COGL_FRAMEBUFFER (offscreen);
CoglContext *ctx = cogl_framebuffer_get_context (framebuffer);
@@ -747,7 +748,7 @@ _cogl_offscreen_gl_allocate (CoglOffscreen *offscreen,
gl_framebuffer = ensure_gl_framebuffer (framebuffer);
gl_fbo = &gl_framebuffer->gl_fbo;
- if (((offscreen->create_flags & COGL_OFFSCREEN_DISABLE_DEPTH_AND_STENCIL) &&
+ if (((flags & COGL_OFFSCREEN_DISABLE_DEPTH_AND_STENCIL) &&
try_creating_fbo (ctx,
offscreen->texture,
offscreen->texture_level,
@@ -823,7 +824,7 @@ _cogl_offscreen_gl_allocate (CoglOffscreen *offscreen,
cogl_framebuffer_update_samples_per_pixel (framebuffer,
gl_fbo->samples_per_pixel);
- if (!(offscreen->create_flags & COGL_OFFSCREEN_DISABLE_DEPTH_AND_STENCIL))
+ if (!(flags & COGL_OFFSCREEN_DISABLE_DEPTH_AND_STENCIL))
{
/* Record that the last set of flags succeeded so that we can
try that set first next time */
diff --git a/cogl/cogl/driver/nop/cogl-framebuffer-nop-private.h
b/cogl/cogl/driver/nop/cogl-framebuffer-nop-private.h
index 95b6365178..1397ebf693 100644
--- a/cogl/cogl/driver/nop/cogl-framebuffer-nop-private.h
+++ b/cogl/cogl/driver/nop/cogl-framebuffer-nop-private.h
@@ -38,8 +38,9 @@
#include "cogl-context-private.h"
gboolean
-_cogl_offscreen_nop_allocate (CoglOffscreen *offscreen,
- GError **error);
+_cogl_offscreen_nop_allocate (CoglOffscreen *offscreen,
+ CoglOffscreenFlags flags,
+ GError **error);
void
_cogl_offscreen_nop_free (CoglOffscreen *offscreen);
diff --git a/cogl/cogl/driver/nop/cogl-framebuffer-nop.c b/cogl/cogl/driver/nop/cogl-framebuffer-nop.c
index f9db69c917..602b80421c 100644
--- a/cogl/cogl/driver/nop/cogl-framebuffer-nop.c
+++ b/cogl/cogl/driver/nop/cogl-framebuffer-nop.c
@@ -43,8 +43,9 @@ _cogl_framebuffer_nop_flush_state (CoglFramebuffer *draw_buffer,
}
gboolean
-_cogl_offscreen_nop_allocate (CoglOffscreen *offscreen,
- GError **error)
+_cogl_offscreen_nop_allocate (CoglOffscreen *offscreen,
+ CoglOffscreenFlags flags,
+ GError **error)
{
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]