[cogl/wip/msaa: 13/21] display: always ensure we have an onscreen_template
- From: Robert Bragg <rbragg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cogl/wip/msaa: 13/21] display: always ensure we have an onscreen_template
- Date: Mon, 5 Sep 2011 14:53:24 +0000 (UTC)
commit b907e9daebb45bdda61c7ae07bec81be87adb540
Author: Robert Bragg <robert linux intel com>
Date: Sun Aug 21 21:21:34 2011 +0100
display: always ensure we have an onscreen_template
If the user doesn't explicitly pass an onscreen template then instead of
leaving display->onscreen_template as NULL we now instantiate a template
ourselves. This simplifies winsys code that might want to refer to the
template since it needn't first check for a NULL pointer.
cogl/cogl-display.c | 2 ++
cogl/winsys/cogl-winsys-egl.c | 9 +++++----
cogl/winsys/cogl-winsys-glx.c | 3 +--
3 files changed, 8 insertions(+), 6 deletions(-)
---
diff --git a/cogl/cogl-display.c b/cogl/cogl-display.c
index b45560e..0eefee8 100644
--- a/cogl/cogl-display.c
+++ b/cogl/cogl-display.c
@@ -109,6 +109,8 @@ cogl_display_new (CoglRenderer *renderer,
display->onscreen_template = onscreen_template;
if (onscreen_template)
cogl_object_ref (onscreen_template);
+ else
+ display->onscreen_template = cogl_onscreen_template_new (NULL);
display->setup = FALSE;
diff --git a/cogl/winsys/cogl-winsys-egl.c b/cogl/winsys/cogl-winsys-egl.c
index 35230fc..86eaa4d 100644
--- a/cogl/winsys/cogl-winsys-egl.c
+++ b/cogl/winsys/cogl-winsys-egl.c
@@ -1005,8 +1005,7 @@ create_context (CoglDisplay *display, GError **error)
g_return_val_if_fail (egl_display->egl_context == NULL, TRUE);
- if (display->onscreen_template &&
- display->onscreen_template->swap_chain &&
+ if (display->onscreen_template->swap_chain &&
display->onscreen_template->swap_chain->has_alpha)
support_transparent_windows = TRUE;
else
@@ -1098,10 +1097,12 @@ gdl_plane_init (CoglDisplay *display, GError **error)
if (rc == GDL_SUCCESS)
rc = gdl_plane_set_attr (GDL_PLANE_DST_RECT, &dstRect);
- /* Default to triple buffering if we don't have an onscreen template */
+ /* Default to triple buffering if the swap_chain doesn't have an explicit
+ * length */
if (rc == GDL_SUCCESS)
{
- if (display->onscreen_template)
+ if (display->onscreen_template->swap_chain &&
+ display->onscreen_template->swap_chain->length != -1)
rc = gdl_plane_set_uint (GDL_PLANE_NUM_GFX_SURFACES,
display->onscreen_template->swap_chain->length);
else
diff --git a/cogl/winsys/cogl-winsys-glx.c b/cogl/winsys/cogl-winsys-glx.c
index b50af55..80e262c 100644
--- a/cogl/winsys/cogl-winsys-glx.c
+++ b/cogl/winsys/cogl-winsys-glx.c
@@ -550,8 +550,7 @@ create_context (CoglDisplay *display, GError **error)
g_return_val_if_fail (glx_display->glx_context == NULL, TRUE);
- if (display->onscreen_template &&
- display->onscreen_template->swap_chain &&
+ if (display->onscreen_template->swap_chain &&
display->onscreen_template->swap_chain->has_alpha)
support_transparent_windows = TRUE;
else
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]