mirror of
https://github.com/brl/mutter.git
synced 2024-12-23 19:42:05 +00:00
context: Add create_backend() vfunc
This lets the context implementation create a backend. Will later be used in a 'setup' phase. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861>
This commit is contained in:
parent
434f5e5b7b
commit
6e4d3e0f85
@ -21,6 +21,7 @@
|
||||
#ifndef META_CONTEXT_PRIVATE_H
|
||||
#define META_CONTEXT_PRIVATE_H
|
||||
|
||||
#include "meta/meta-backend.h"
|
||||
#include "meta/meta-context.h"
|
||||
#include "meta/meta-enums.h"
|
||||
|
||||
@ -34,6 +35,9 @@ struct _MetaContextClass
|
||||
GError **error);
|
||||
|
||||
MetaCompositorType (* get_compositor_type) (MetaContext *context);
|
||||
|
||||
MetaBackend * (* create_backend) (MetaContext *context,
|
||||
GError **error);
|
||||
};
|
||||
|
||||
#endif /* META_CONTEXT_PRIVATE_H */
|
||||
|
@ -43,8 +43,16 @@ test_env.set('G_TEST_BUILDDIR', meson.build_root())
|
||||
test_env.set('MUTTER_TEST_PLUGIN_PATH', '@0@'.format(default_plugin.full_path()))
|
||||
|
||||
test_context_sources = [
|
||||
'meta-backend-test.c',
|
||||
'meta-backend-test.h',
|
||||
'meta-context-test.c',
|
||||
'meta-context-test.h',
|
||||
'meta-gpu-test.c',
|
||||
'meta-gpu-test.h',
|
||||
'meta-monitor-manager-test.c',
|
||||
'meta-monitor-manager-test.h',
|
||||
'monitor-test-utils.c',
|
||||
'monitor-test-utils.h',
|
||||
'test-utils.c',
|
||||
'test-utils.h',
|
||||
]
|
||||
@ -82,12 +90,6 @@ unit_tests = executable('mutter-test-unit-tests',
|
||||
'unit-tests.c',
|
||||
'boxes-tests.c',
|
||||
'boxes-tests.h',
|
||||
'meta-backend-test.c',
|
||||
'meta-backend-test.h',
|
||||
'meta-gpu-test.c',
|
||||
'meta-gpu-test.h',
|
||||
'meta-monitor-manager-test.c',
|
||||
'meta-monitor-manager-test.h',
|
||||
'meta-wayland-test-driver.c',
|
||||
'meta-wayland-test-driver.h',
|
||||
'monitor-config-migration-unit-tests.c',
|
||||
@ -116,12 +118,6 @@ headless_start_test = executable('mutter-headless-start-test',
|
||||
sources: [
|
||||
test_context_sources,
|
||||
'headless-start-test.c',
|
||||
'meta-backend-test.c',
|
||||
'meta-backend-test.h',
|
||||
'meta-gpu-test.c',
|
||||
'meta-gpu-test.h',
|
||||
'meta-monitor-manager-test.c',
|
||||
'meta-monitor-manager-test.h',
|
||||
],
|
||||
include_directories: tests_includepath,
|
||||
c_args: tests_c_args,
|
||||
@ -133,12 +129,6 @@ headless_start_test = executable('mutter-headless-start-test',
|
||||
stage_view_tests = executable('mutter-stage-view-tests',
|
||||
sources: [
|
||||
test_context_sources,
|
||||
'meta-backend-test.c',
|
||||
'meta-backend-test.h',
|
||||
'meta-gpu-test.c',
|
||||
'meta-gpu-test.h',
|
||||
'meta-monitor-manager-test.c',
|
||||
'meta-monitor-manager-test.h',
|
||||
'monitor-test-utils.c',
|
||||
'monitor-test-utils.h',
|
||||
'stage-view-tests.c',
|
||||
|
@ -22,10 +22,18 @@
|
||||
|
||||
#include "tests/meta-context-test.h"
|
||||
|
||||
#include <glib.h>
|
||||
#include <gio/gio.h>
|
||||
|
||||
#include "tests/meta-backend-test.h"
|
||||
#include "tests/test-utils.h"
|
||||
#include "wayland/meta-wayland.h"
|
||||
#include "wayland/meta-xwayland.h"
|
||||
|
||||
#ifdef HAVE_NATIVE_BACKEND
|
||||
#include "backends/native/meta-backend-native.h"
|
||||
#endif
|
||||
|
||||
struct _MetaContextTest
|
||||
{
|
||||
GObject parent;
|
||||
@ -58,6 +66,46 @@ meta_context_test_get_compositor_type (MetaContext *context)
|
||||
return META_COMPOSITOR_TYPE_WAYLAND;
|
||||
}
|
||||
|
||||
static MetaBackend *
|
||||
create_nested_backend (MetaContext *context,
|
||||
GError **error)
|
||||
{
|
||||
return g_initable_new (META_TYPE_BACKEND_TEST,
|
||||
NULL, error,
|
||||
NULL);
|
||||
}
|
||||
|
||||
#ifdef HAVE_NATIVE_BACKEND
|
||||
static MetaBackend *
|
||||
create_headless_backend (MetaContext *context,
|
||||
GError **error)
|
||||
{
|
||||
return g_initable_new (META_TYPE_BACKEND_NATIVE,
|
||||
NULL, error,
|
||||
"headless", TRUE,
|
||||
NULL);
|
||||
}
|
||||
#endif /* HAVE_NATIVE_BACKEND */
|
||||
|
||||
static MetaBackend *
|
||||
meta_context_test_create_backend (MetaContext *context,
|
||||
GError **error)
|
||||
{
|
||||
MetaContextTest *context_test = META_CONTEXT_TEST (context);
|
||||
|
||||
switch (context_test->type)
|
||||
{
|
||||
case META_CONTEXT_TEST_TYPE_NESTED:
|
||||
return create_nested_backend (context, error);
|
||||
#ifdef HAVE_NATIVE_BACKEND
|
||||
case META_CONTEXT_TEST_TYPE_HEADLESS:
|
||||
return create_headless_backend (context, error);
|
||||
#endif /* HAVE_NATIVE_BACKEND */
|
||||
}
|
||||
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
||||
MetaContext *
|
||||
meta_create_test_context (MetaContextTestType type)
|
||||
{
|
||||
@ -78,6 +126,7 @@ meta_context_test_class_init (MetaContextTestClass *klass)
|
||||
|
||||
context_class->configure = meta_context_test_configure;
|
||||
context_class->get_compositor_type = meta_context_test_get_compositor_type;
|
||||
context_class->create_backend = meta_context_test_create_backend;
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user