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;
|
||||
if (onscreen_template)
|
||||
cogl_object_ref (onscreen_template);
|
||||
else
|
||||
display->onscreen_template = cogl_onscreen_template_new (NULL);
|
||||
|
||||
display->setup = FALSE;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user