mirror of
https://github.com/brl/mutter.git
synced 2024-12-01 12:20:47 -05:00
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. Reviewed-by: Neil Roberts <neil@linux.intel.com>
This commit is contained in:
parent
21e87a9bf0
commit
476ff37fa6
@ -109,6 +109,8 @@ cogl_display_new (CoglRenderer *renderer,
|
|||||||
display->onscreen_template = onscreen_template;
|
display->onscreen_template = onscreen_template;
|
||||||
if (onscreen_template)
|
if (onscreen_template)
|
||||||
cogl_object_ref (onscreen_template);
|
cogl_object_ref (onscreen_template);
|
||||||
|
else
|
||||||
|
display->onscreen_template = cogl_onscreen_template_new (NULL);
|
||||||
|
|
||||||
display->setup = FALSE;
|
display->setup = FALSE;
|
||||||
|
|
||||||
|
@ -1005,8 +1005,7 @@ create_context (CoglDisplay *display, GError **error)
|
|||||||
|
|
||||||
g_return_val_if_fail (egl_display->egl_context == NULL, TRUE);
|
g_return_val_if_fail (egl_display->egl_context == NULL, TRUE);
|
||||||
|
|
||||||
if (display->onscreen_template &&
|
if (display->onscreen_template->swap_chain &&
|
||||||
display->onscreen_template->swap_chain &&
|
|
||||||
display->onscreen_template->swap_chain->has_alpha)
|
display->onscreen_template->swap_chain->has_alpha)
|
||||||
support_transparent_windows = TRUE;
|
support_transparent_windows = TRUE;
|
||||||
else
|
else
|
||||||
@ -1098,10 +1097,12 @@ gdl_plane_init (CoglDisplay *display, GError **error)
|
|||||||
if (rc == GDL_SUCCESS)
|
if (rc == GDL_SUCCESS)
|
||||||
rc = gdl_plane_set_attr (GDL_PLANE_DST_RECT, &dstRect);
|
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 (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,
|
rc = gdl_plane_set_uint (GDL_PLANE_NUM_GFX_SURFACES,
|
||||||
display->onscreen_template->swap_chain->length);
|
display->onscreen_template->swap_chain->length);
|
||||||
else
|
else
|
||||||
|
@ -550,8 +550,7 @@ create_context (CoglDisplay *display, GError **error)
|
|||||||
|
|
||||||
g_return_val_if_fail (glx_display->glx_context == NULL, TRUE);
|
g_return_val_if_fail (glx_display->glx_context == NULL, TRUE);
|
||||||
|
|
||||||
if (display->onscreen_template &&
|
if (display->onscreen_template->swap_chain &&
|
||||||
display->onscreen_template->swap_chain &&
|
|
||||||
display->onscreen_template->swap_chain->has_alpha)
|
display->onscreen_template->swap_chain->has_alpha)
|
||||||
support_transparent_windows = TRUE;
|
support_transparent_windows = TRUE;
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user