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;
|
CoglDisplay *display;
|
||||||
|
|
||||||
gboolean connected;
|
gboolean connected;
|
||||||
|
CoglDriverId driver_override;
|
||||||
CoglDriver *driver;
|
CoglDriver *driver;
|
||||||
CoglTextureDriver *texture_driver;
|
CoglTextureDriver *texture_driver;
|
||||||
const CoglWinsysVtable *winsys_vtable;
|
const CoglWinsysVtable *winsys_vtable;
|
||||||
|
@ -277,6 +277,21 @@ _cogl_renderer_choose_driver (CoglRenderer *renderer,
|
|||||||
invalid_override = driver_name;
|
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)
|
if (driver_override != COGL_DRIVER_ID_ANY)
|
||||||
{
|
{
|
||||||
gboolean found = FALSE;
|
gboolean found = FALSE;
|
||||||
@ -536,6 +551,14 @@ cogl_renderer_get_proc_address (CoglRenderer *renderer,
|
|||||||
return winsys->renderer_get_proc_address (renderer, name);
|
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
|
CoglDriverId
|
||||||
cogl_renderer_get_driver_id (CoglRenderer *renderer)
|
cogl_renderer_get_driver_id (CoglRenderer *renderer)
|
||||||
{
|
{
|
||||||
|
@ -196,6 +196,24 @@ typedef enum
|
|||||||
COGL_DRIVER_ID_GLES2,
|
COGL_DRIVER_ID_GLES2,
|
||||||
} CoglDriverId;
|
} 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:
|
* cogl_renderer_get_driver_id:
|
||||||
* @renderer: A connected #CoglRenderer
|
* @renderer: A connected #CoglRenderer
|
||||||
|
Loading…
x
Reference in New Issue
Block a user