cogl/onscreen: Make swap_buffer/region CoglOnscreen class vfuncs
No need to go via the "winsys" vtable. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
This commit is contained in:

committed by
Robert Mader

parent
60e1516b1c
commit
fe72876b20
@ -955,7 +955,7 @@ ensure_crtc_modes (CoglOnscreen *onscreen)
|
||||
meta_onscreen_native_set_crtc_mode (onscreen, renderer_gpu_data);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
|
||||
const int *rectangles,
|
||||
int n_rectangles,
|
||||
@ -979,7 +979,7 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
|
||||
MetaGpuKms *render_gpu = onscreen_native->render_gpu;
|
||||
MetaKmsDevice *render_kms_device = meta_gpu_kms_get_kms_device (render_gpu);
|
||||
ClutterFrame *frame = user_data;
|
||||
const CoglWinsysVtable *parent_vtable;
|
||||
CoglOnscreenClass *parent_class;
|
||||
gboolean egl_context_changed = FALSE;
|
||||
gboolean use_modifiers;
|
||||
MetaPowerSave power_save_mode;
|
||||
@ -996,12 +996,12 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
|
||||
|
||||
update_secondary_gpu_state_pre_swap_buffers (onscreen);
|
||||
|
||||
parent_vtable = meta_get_renderer_native_parent_vtable ();
|
||||
parent_vtable->onscreen_swap_buffers_with_damage (onscreen,
|
||||
rectangles,
|
||||
n_rectangles,
|
||||
frame_info,
|
||||
user_data);
|
||||
parent_class = COGL_ONSCREEN_CLASS (meta_onscreen_native_parent_class);
|
||||
parent_class->swap_buffers_with_damage (onscreen,
|
||||
rectangles,
|
||||
n_rectangles,
|
||||
frame_info,
|
||||
user_data);
|
||||
|
||||
renderer_gpu_data = meta_renderer_native_get_gpu_data (renderer_native,
|
||||
render_gpu);
|
||||
@ -2104,8 +2104,12 @@ meta_onscreen_native_class_init (MetaOnscreenNativeClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
CoglFramebufferClass *framebuffer_class = COGL_FRAMEBUFFER_CLASS (klass);
|
||||
CoglOnscreenClass *onscreen_class = COGL_ONSCREEN_CLASS (klass);
|
||||
|
||||
object_class->dispose = meta_onscreen_native_dispose;
|
||||
|
||||
framebuffer_class->allocate = meta_onscreen_native_allocate;
|
||||
|
||||
onscreen_class->swap_buffers_with_damage =
|
||||
meta_onscreen_native_swap_buffers_with_damage;
|
||||
}
|
||||
|
Reference in New Issue
Block a user