mirror of
https://github.com/brl/mutter.git
synced 2025-02-18 06:04:10 +00:00
clutter/x11: Add API to request video memory purges to be reported
https://bugzilla.gnome.org/show_bug.cgi?id=739178
This commit is contained in:
parent
d4d2bf0f6c
commit
3691eb6d70
@ -109,6 +109,7 @@ static const gchar *atom_names[] = {
|
|||||||
#define N_ATOM_NAMES G_N_ELEMENTS (atom_names)
|
#define N_ATOM_NAMES G_N_ELEMENTS (atom_names)
|
||||||
|
|
||||||
/* various flags corresponding to pre init setup calls */
|
/* various flags corresponding to pre init setup calls */
|
||||||
|
static gboolean _want_reset_on_video_memory_purge = FALSE;
|
||||||
static gboolean _no_xevent_retrieval = FALSE;
|
static gboolean _no_xevent_retrieval = FALSE;
|
||||||
static gboolean clutter_enable_xinput = TRUE;
|
static gboolean clutter_enable_xinput = TRUE;
|
||||||
static gboolean clutter_enable_argb = FALSE;
|
static gboolean clutter_enable_argb = FALSE;
|
||||||
@ -681,7 +682,8 @@ clutter_backend_x11_get_renderer (ClutterBackend *backend,
|
|||||||
|
|
||||||
/* set the display object we're using */
|
/* set the display object we're using */
|
||||||
cogl_xlib_renderer_set_foreign_display (renderer, xdisplay);
|
cogl_xlib_renderer_set_foreign_display (renderer, xdisplay);
|
||||||
|
cogl_xlib_renderer_request_reset_on_video_memory_purge (renderer,
|
||||||
|
_want_reset_on_video_memory_purge);
|
||||||
return renderer;
|
return renderer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1027,6 +1029,30 @@ clutter_x11_has_event_retrieval (void)
|
|||||||
return !_no_xevent_retrieval;
|
return !_no_xevent_retrieval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clutter_x11_request_reset_on_video_memory_purge:
|
||||||
|
*
|
||||||
|
* If the GL driver supports the NV_robustness_video_memory_purge
|
||||||
|
* extension, this call lets applications request that it gets
|
||||||
|
* initialized, thus allowing cogl_get_graphics_reset_status() to
|
||||||
|
* report memory purged errors if they happen. Checking for the
|
||||||
|
* graphics reset status is the application's responsibility.
|
||||||
|
*
|
||||||
|
* This function can only be called before calling clutter_init().
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
clutter_x11_request_reset_on_video_memory_purge (void)
|
||||||
|
{
|
||||||
|
if (_clutter_context_is_initialized ())
|
||||||
|
{
|
||||||
|
g_warning ("%s() can only be used before calling clutter_init()",
|
||||||
|
G_STRFUNC);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_want_reset_on_video_memory_purge = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_x11_get_default_screen:
|
* clutter_x11_get_default_screen:
|
||||||
*
|
*
|
||||||
|
@ -161,6 +161,9 @@ gint clutter_x11_event_get_key_group (const ClutterEvent *event);
|
|||||||
CLUTTER_AVAILABLE_IN_ALL
|
CLUTTER_AVAILABLE_IN_ALL
|
||||||
guint clutter_x11_event_sequence_get_touch_detail (const ClutterEventSequence *sequence);
|
guint clutter_x11_event_sequence_get_touch_detail (const ClutterEventSequence *sequence);
|
||||||
|
|
||||||
|
CLUTTER_AVAILABLE_IN_ALL
|
||||||
|
void clutter_x11_request_reset_on_video_memory_purge (void);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __CLUTTER_X11_H__ */
|
#endif /* __CLUTTER_X11_H__ */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user