backends: Update stage views and stage dimension from MetaStage
This reduces the amount of code duplication between the native and nested backend. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4331>
This commit is contained in:
parent
8b5c757bea
commit
dcd89a62e1
@ -65,4 +65,6 @@ MetaBackend * meta_stage_impl_get_backend (MetaStageImpl *stage_impl);
|
|||||||
void meta_stage_impl_add_onscreen_frame_info (MetaStageImpl *stage_impl,
|
void meta_stage_impl_add_onscreen_frame_info (MetaStageImpl *stage_impl,
|
||||||
ClutterStageView *view);
|
ClutterStageView *view);
|
||||||
|
|
||||||
|
void meta_stage_impl_rebuild_views (MetaStageImpl *stage_impl);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
|
#include "backends/meta-renderer.h"
|
||||||
#include "backends/meta-stage-view-private.h"
|
#include "backends/meta-stage-view-private.h"
|
||||||
#include "clutter/clutter-mutter.h"
|
#include "clutter/clutter-mutter.h"
|
||||||
#include "cogl/cogl.h"
|
#include "cogl/cogl.h"
|
||||||
@ -900,3 +901,14 @@ meta_stage_impl_get_backend (MetaStageImpl *stage_impl)
|
|||||||
|
|
||||||
return priv->backend;
|
return priv->backend;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_stage_impl_rebuild_views (MetaStageImpl *stage_impl)
|
||||||
|
{
|
||||||
|
MetaBackend *backend = meta_stage_impl_get_backend (stage_impl);
|
||||||
|
MetaRenderer *renderer = meta_backend_get_renderer (backend);
|
||||||
|
ClutterActor *stage = meta_backend_get_stage (backend);
|
||||||
|
|
||||||
|
meta_renderer_rebuild_views (renderer);
|
||||||
|
clutter_stage_clear_stage_views (CLUTTER_STAGE (stage));
|
||||||
|
}
|
||||||
|
@ -70,4 +70,6 @@ META_EXPORT_TEST
|
|||||||
void meta_stage_remove_watch (MetaStage *stage,
|
void meta_stage_remove_watch (MetaStage *stage,
|
||||||
MetaStageWatch *watch);
|
MetaStageWatch *watch);
|
||||||
|
|
||||||
|
void meta_stage_rebuild_views (MetaStage *stage);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
@ -498,3 +498,19 @@ meta_stage_remove_watch (MetaStage *stage,
|
|||||||
|
|
||||||
g_assert (removed);
|
g_assert (removed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_stage_rebuild_views (MetaStage *stage)
|
||||||
|
{
|
||||||
|
ClutterStageWindow *stage_window =
|
||||||
|
_clutter_stage_get_window (CLUTTER_STAGE (stage));
|
||||||
|
MetaStageImpl *stage_impl = META_STAGE_IMPL (stage_window);
|
||||||
|
MetaMonitorManager *monitor_manager =
|
||||||
|
meta_backend_get_monitor_manager (stage->backend);
|
||||||
|
int width, height;
|
||||||
|
|
||||||
|
meta_stage_impl_rebuild_views (stage_impl);
|
||||||
|
|
||||||
|
meta_monitor_manager_get_screen_size (monitor_manager, &width, &height);
|
||||||
|
clutter_actor_set_size (CLUTTER_ACTOR (stage), width, height);
|
||||||
|
}
|
||||||
|
@ -400,14 +400,11 @@ static void
|
|||||||
meta_backend_native_update_stage (MetaBackend *backend)
|
meta_backend_native_update_stage (MetaBackend *backend)
|
||||||
{
|
{
|
||||||
ClutterActor *stage = meta_backend_get_stage (backend);
|
ClutterActor *stage = meta_backend_get_stage (backend);
|
||||||
ClutterStageWindow *stage_window =
|
|
||||||
_clutter_stage_get_window (CLUTTER_STAGE (stage));
|
|
||||||
MetaStageNative *stage_native = META_STAGE_NATIVE (stage_window);
|
|
||||||
MetaMonitorManager *monitor_manager =
|
MetaMonitorManager *monitor_manager =
|
||||||
meta_backend_get_monitor_manager (backend);
|
meta_backend_get_monitor_manager (backend);
|
||||||
int width, height;
|
int width, height;
|
||||||
|
|
||||||
meta_stage_native_rebuild_views (stage_native);
|
meta_stage_rebuild_views (META_STAGE (stage));
|
||||||
|
|
||||||
meta_monitor_manager_get_screen_size (monitor_manager, &width, &height);
|
meta_monitor_manager_get_screen_size (monitor_manager, &width, &height);
|
||||||
clutter_actor_set_size (stage, width, height);
|
clutter_actor_set_size (stage, width, height);
|
||||||
|
@ -46,18 +46,6 @@ struct _MetaStageNative
|
|||||||
|
|
||||||
G_DEFINE_FINAL_TYPE (MetaStageNative, meta_stage_native, META_TYPE_STAGE_IMPL)
|
G_DEFINE_FINAL_TYPE (MetaStageNative, meta_stage_native, META_TYPE_STAGE_IMPL)
|
||||||
|
|
||||||
void
|
|
||||||
meta_stage_native_rebuild_views (MetaStageNative *stage_native)
|
|
||||||
{
|
|
||||||
MetaStageImpl *stage_impl = META_STAGE_IMPL (stage_native);
|
|
||||||
MetaBackend *backend = meta_stage_impl_get_backend (stage_impl);
|
|
||||||
MetaRenderer *renderer = meta_backend_get_renderer (backend);
|
|
||||||
ClutterActor *stage = meta_backend_get_stage (backend);
|
|
||||||
|
|
||||||
meta_renderer_rebuild_views (renderer);
|
|
||||||
clutter_stage_clear_stage_views (CLUTTER_STAGE (stage));
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
meta_stage_native_can_clip_redraws (ClutterStageWindow *stage_window)
|
meta_stage_native_can_clip_redraws (ClutterStageWindow *stage_window)
|
||||||
{
|
{
|
||||||
|
@ -28,5 +28,3 @@
|
|||||||
#define META_TYPE_STAGE_NATIVE (meta_stage_native_get_type ())
|
#define META_TYPE_STAGE_NATIVE (meta_stage_native_get_type ())
|
||||||
G_DECLARE_FINAL_TYPE (MetaStageNative, meta_stage_native,
|
G_DECLARE_FINAL_TYPE (MetaStageNative, meta_stage_native,
|
||||||
META, STAGE_NATIVE, MetaStageImpl)
|
META, STAGE_NATIVE, MetaStageImpl)
|
||||||
|
|
||||||
void meta_stage_native_rebuild_views (MetaStageNative *stage_native);
|
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
#include "backends/meta-input-settings-dummy.h"
|
#include "backends/meta-input-settings-dummy.h"
|
||||||
#include "backends/meta-monitor-manager-dummy.h"
|
#include "backends/meta-monitor-manager-dummy.h"
|
||||||
|
#include "backends/meta-stage-private.h"
|
||||||
#include "backends/x11/nested/meta-backend-x11-nested.h"
|
#include "backends/x11/nested/meta-backend-x11-nested.h"
|
||||||
#include "backends/x11/nested/meta-cursor-renderer-x11-nested.h"
|
#include "backends/x11/nested/meta-cursor-renderer-x11-nested.h"
|
||||||
#include "backends/x11/nested/meta-renderer-x11-nested.h"
|
#include "backends/x11/nested/meta-renderer-x11-nested.h"
|
||||||
@ -98,16 +99,8 @@ static void
|
|||||||
meta_backend_x11_nested_update_stage (MetaBackend *backend)
|
meta_backend_x11_nested_update_stage (MetaBackend *backend)
|
||||||
{
|
{
|
||||||
ClutterActor *stage = meta_backend_get_stage (backend);
|
ClutterActor *stage = meta_backend_get_stage (backend);
|
||||||
MetaRenderer *renderer = meta_backend_get_renderer (backend);
|
|
||||||
MetaMonitorManager *monitor_manager =
|
|
||||||
meta_backend_get_monitor_manager (backend);
|
|
||||||
int width, height;
|
|
||||||
|
|
||||||
meta_renderer_rebuild_views (renderer);
|
meta_stage_rebuild_views (META_STAGE (stage));
|
||||||
clutter_stage_clear_stage_views (CLUTTER_STAGE (stage));
|
|
||||||
|
|
||||||
meta_monitor_manager_get_screen_size (monitor_manager, &width, &height);
|
|
||||||
clutter_actor_set_size (stage, width, height);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
x
Reference in New Issue
Block a user