1
0
Fork 0

cogl: Remove use_stereo_stage config

Nothing sets it from the X11 backend API, so just get rid of it

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3915>
This commit is contained in:
Bilal Elmoussaoui 2024-07-31 15:45:39 +02:00 committed by Bilal Elmoussaoui
parent a1828e7212
commit 41ec1aa0ca
6 changed files with 5 additions and 111 deletions

View file

@ -54,7 +54,6 @@ typedef struct _CoglFramebufferDriverConfig
typedef struct
{
gboolean need_stencil;
gboolean stereo_enabled;
} CoglFramebufferConfig;
/* XXX: The order of these indices determines the order they are

View file

@ -57,11 +57,3 @@ cogl_onscreen_template_new (void)
return onscreen_template;
}
void
cogl_onscreen_template_set_stereo_enabled (
CoglOnscreenTemplate *onscreen_template,
gboolean enabled)
{
onscreen_template->config.stereo_enabled = enabled;
}

View file

@ -51,20 +51,4 @@ G_DECLARE_FINAL_TYPE (CoglOnscreenTemplate, cogl_onscreen_template,
COGL_EXPORT CoglOnscreenTemplate *
cogl_onscreen_template_new (void);
/**
* cogl_onscreen_template_set_stereo_enabled:
* @onscreen_template: A #CoglOnscreenTemplate template framebuffer
* @enabled: Whether framebuffers are created with stereo buffers
*
* Sets whether future #CoglOnscreen framebuffers derived from this
* template are attempted to be created with both left and right
* buffers, for use with stereo display. If the display system
* does not support stereo, then creation of the framebuffer will
* fail.
*/
COGL_EXPORT void
cogl_onscreen_template_set_stereo_enabled (
CoglOnscreenTemplate *onscreen_template,
gboolean enabled);
G_END_DECLS

View file

@ -521,11 +521,6 @@ glx_attributes_from_framebuffer_config (CoglDisplay *display,
attributes[i++] = 1;
attributes[i++] = GLX_STENCIL_SIZE;
attributes[i++] = config->need_stencil ? 2 : 0;
if (config->stereo_enabled)
{
attributes[i++] = GLX_STEREO;
attributes[i++] = TRUE;
}
attributes[i++] = None;

View file

@ -36,6 +36,7 @@
#include "clutter/clutter.h"
#include "cogl/cogl-xlib-renderer.h"
#include "core/bell.h"
#include "glib.h"
#include "meta/meta-backend.h"
typedef struct _MetaClutterBackendX11Private
@ -65,75 +66,23 @@ static const gchar *atom_names[] = {
#define N_ATOM_NAMES G_N_ELEMENTS (atom_names)
/* various flags corresponding to pre init setup calls */
static gboolean clutter_enable_stereo = FALSE;
static gboolean
check_onscreen_template (CoglRenderer *renderer,
CoglOnscreenTemplate *onscreen_template,
gboolean enable_stereo,
GError **error)
{
GError *internal_error = NULL;
cogl_onscreen_template_set_stereo_enabled (onscreen_template,
clutter_enable_stereo);
/* cogl_renderer_check_onscreen_template() is actually just a
* shorthand for creating a CoglDisplay, and calling
* cogl_display_setup() on it, then throwing the display away. If we
* could just return that display, then it would be more efficient
* not to use cogl_renderer_check_onscreen_template(). However, the
* backend API requires that we return an CoglDisplay that has not
* yet been setup, so one way or the other we'll have to discard the
* first display and make a new fresh one.
*/
if (cogl_renderer_check_onscreen_template (renderer, onscreen_template, &internal_error))
{
clutter_enable_stereo = enable_stereo;
return TRUE;
}
else
{
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
internal_error != NULL
? internal_error->message
: "Creation of a CoglDisplay failed");
g_clear_error (&internal_error);
return FALSE;
}
}
static CoglDisplay *
meta_clutter_backend_x11_get_display (ClutterBackend *clutter_backend,
CoglRenderer *renderer,
GError **error)
{
CoglOnscreenTemplate *onscreen_template;
g_autoptr (CoglOnscreenTemplate) onscreen_template = NULL;
CoglDisplay *display = NULL;
gboolean res = FALSE;
onscreen_template = cogl_onscreen_template_new ();
/* It's possible that the current renderer doesn't support transparency
* or doesn't support stereo, so we try the different combinations.
*/
if (clutter_enable_stereo)
res = check_onscreen_template (renderer, onscreen_template,
TRUE, error);
if (!res)
res = check_onscreen_template (renderer, onscreen_template,
FALSE, error);
res = cogl_renderer_check_onscreen_template (renderer,
onscreen_template,
error);
if (res)
display = cogl_display_new (renderer, onscreen_template);
g_object_unref (onscreen_template);
return display;
}
@ -239,25 +188,3 @@ meta_clutter_backend_x11_new (MetaBackend *backend)
return clutter_backend_x11;
}
void
meta_clutter_x11_set_use_stereo_stage (gboolean use_stereo)
{
if (_clutter_context_is_initialized ())
{
g_warning ("%s() can only be used before calling clutter_init()",
G_STRFUNC);
return;
}
g_debug ("STEREO stages are %s",
use_stereo ? "enabled" : "disabled");
clutter_enable_stereo = use_stereo;
}
gboolean
meta_clutter_x11_get_use_stereo_stage (void)
{
return clutter_enable_stereo;
}

View file

@ -57,6 +57,3 @@ G_DECLARE_FINAL_TYPE (MetaClutterBackendX11, meta_clutter_backend_x11,
ClutterBackend)
MetaClutterBackendX11 * meta_clutter_backend_x11_new (MetaBackend *backend);
void meta_clutter_x11_set_use_stereo_stage (gboolean use_stereo);
gboolean meta_clutter_x11_get_use_stereo_stage (void);