Revert "cogl: Drop Rendererer.set_driver"
This reverts commit 6c22b7faba8112065a611921a538b9f66d9500bf. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4312>
This commit is contained in:
parent
a623a839fd
commit
9d5f8d464e
@ -47,6 +47,7 @@ struct _CoglRenderer
|
||||
CoglDisplay *display;
|
||||
|
||||
gboolean connected;
|
||||
CoglDriverId driver_override;
|
||||
CoglDriver *driver;
|
||||
CoglTextureDriver *texture_driver;
|
||||
const CoglWinsysVtable *winsys_vtable;
|
||||
|
@ -277,6 +277,21 @@ _cogl_renderer_choose_driver (CoglRenderer *renderer,
|
||||
invalid_override = driver_name;
|
||||
}
|
||||
|
||||
if (renderer->driver_override != COGL_DRIVER_ID_ANY)
|
||||
{
|
||||
if (driver_override != COGL_DRIVER_ID_ANY &&
|
||||
renderer->driver_override != driver_override)
|
||||
{
|
||||
g_set_error (error, COGL_RENDERER_ERROR,
|
||||
COGL_RENDERER_ERROR_BAD_CONSTRAINT,
|
||||
"Application driver selection conflicts with driver "
|
||||
"specified in configuration");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
driver_override = renderer->driver_override;
|
||||
}
|
||||
|
||||
if (driver_override != COGL_DRIVER_ID_ANY)
|
||||
{
|
||||
gboolean found = FALSE;
|
||||
@ -536,6 +551,14 @@ cogl_renderer_get_proc_address (CoglRenderer *renderer,
|
||||
return winsys->renderer_get_proc_address (renderer, name);
|
||||
}
|
||||
|
||||
void
|
||||
cogl_renderer_set_driver (CoglRenderer *renderer,
|
||||
CoglDriverId driver)
|
||||
{
|
||||
g_return_if_fail (!renderer->connected);
|
||||
renderer->driver_override = driver;
|
||||
}
|
||||
|
||||
CoglDriverId
|
||||
cogl_renderer_get_driver_id (CoglRenderer *renderer)
|
||||
{
|
||||
|
@ -196,6 +196,24 @@ typedef enum
|
||||
COGL_DRIVER_ID_GLES2,
|
||||
} CoglDriverId;
|
||||
|
||||
/**
|
||||
* cogl_renderer_set_driver:
|
||||
* @renderer: An unconnected #CoglRenderer
|
||||
*
|
||||
* Requests that Cogl should try to use a specific underlying driver
|
||||
* for rendering.
|
||||
*
|
||||
* If you select an unsupported driver then cogl_renderer_connect()
|
||||
* will fail and report an error. Most applications should not
|
||||
* explicitly select a driver and should rely on Cogl automatically
|
||||
* choosing the driver.
|
||||
*
|
||||
* This may only be called on an un-connected #CoglRenderer.
|
||||
*/
|
||||
COGL_EXPORT void
|
||||
cogl_renderer_set_driver (CoglRenderer *renderer,
|
||||
CoglDriverId driver);
|
||||
|
||||
/**
|
||||
* cogl_renderer_get_driver_id:
|
||||
* @renderer: A connected #CoglRenderer
|
||||
|
Loading…
x
Reference in New Issue
Block a user