diff options
-rw-r--r-- | include/meson.build | 6 | ||||
-rw-r--r-- | include/render/fx_renderer/fx_renderer.h | 4 | ||||
-rw-r--r-- | include/render/pass.h | 2 | ||||
-rw-r--r-- | include/scenefx/fx_renderer/fx_renderer.h | 9 | ||||
-rw-r--r-- | include/scenefx/meson.build | 1 | ||||
-rw-r--r-- | include/scenefx/types/fx/shadow_data.h (renamed from include/types/fx/shadow_data.h) | 0 | ||||
-rw-r--r-- | include/scenefx/types/wlr_scene.h (renamed from include/wlr/types/wlr_scene.h) | 2 | ||||
-rw-r--r-- | meson.build | 10 | ||||
-rw-r--r-- | render/fx_renderer/fx_pass.c | 2 | ||||
-rw-r--r-- | render/fx_renderer/fx_renderer.c | 5 | ||||
-rw-r--r-- | render/fx_renderer/meson.build | 7 | ||||
-rw-r--r-- | tinywl/tinywl.c | 8 | ||||
-rw-r--r-- | types/fx/shadow_data.c | 2 | ||||
-rw-r--r-- | types/meson.build | 9 | ||||
-rw-r--r-- | types/scene/wlr_scene.c | 4 |
15 files changed, 49 insertions, 22 deletions
diff --git a/include/meson.build b/include/meson.build new file mode 100644 index 0000000..7b80d63 --- /dev/null +++ b/include/meson.build @@ -0,0 +1,6 @@ +exclude_files = ['meson.build'] + +install_subdir('scenefx', + install_dir: get_option('includedir'), + exclude_files: exclude_files, +) diff --git a/include/render/fx_renderer/fx_renderer.h b/include/render/fx_renderer/fx_renderer.h index 4d99866..4a95634 100644 --- a/include/render/fx_renderer/fx_renderer.h +++ b/include/render/fx_renderer/fx_renderer.h @@ -13,7 +13,7 @@ #include "render/fx_renderer/shaders.h" #include "render/pass.h" -#include "types/fx/shadow_data.h" +#include "scenefx/types/fx/shadow_data.h" struct fx_pixel_format { uint32_t drm_format; @@ -166,8 +166,6 @@ struct fx_render_timer *fx_get_render_timer( struct fx_texture *fx_get_texture( struct wlr_texture *wlr_texture); -struct wlr_renderer *fx_renderer_create_with_drm_fd(int drm_fd); -struct wlr_renderer *fx_renderer_create(struct wlr_backend *backend); struct wlr_renderer *fx_renderer_create_egl(struct wlr_egl *egl); struct wlr_egl *wlr_fx_renderer_get_egl(struct wlr_renderer *renderer); diff --git a/include/render/pass.h b/include/render/pass.h index 05bf1e9..52666fe 100644 --- a/include/render/pass.h +++ b/include/render/pass.h @@ -5,7 +5,7 @@ #include <wlr/render/pass.h> #include <wlr/util/box.h> #include <wlr/render/interface.h> -#include "types/fx/shadow_data.h" +#include "scenefx/types/fx/shadow_data.h" struct fx_gles_render_pass { struct wlr_render_pass base; diff --git a/include/scenefx/fx_renderer/fx_renderer.h b/include/scenefx/fx_renderer/fx_renderer.h new file mode 100644 index 0000000..2e64ffb --- /dev/null +++ b/include/scenefx/fx_renderer/fx_renderer.h @@ -0,0 +1,9 @@ +#ifndef SCENEFX_FX_OPENGL_H +#define SCENEFX_FX_OPENGL_H + +#include <wlr/backend.h> + +struct wlr_renderer *fx_renderer_create_with_drm_fd(int drm_fd); +struct wlr_renderer *fx_renderer_create(struct wlr_backend *backend); + +#endif diff --git a/include/scenefx/meson.build b/include/scenefx/meson.build new file mode 100644 index 0000000..7f01333 --- /dev/null +++ b/include/scenefx/meson.build @@ -0,0 +1 @@ +install_headers(subdir: 'wlr') diff --git a/include/types/fx/shadow_data.h b/include/scenefx/types/fx/shadow_data.h index d96a084..d96a084 100644 --- a/include/types/fx/shadow_data.h +++ b/include/scenefx/types/fx/shadow_data.h diff --git a/include/wlr/types/wlr_scene.h b/include/scenefx/types/wlr_scene.h index f52e167..21558d8 100644 --- a/include/wlr/types/wlr_scene.h +++ b/include/scenefx/types/wlr_scene.h @@ -20,11 +20,11 @@ */ #include <pixman.h> +#include "scenefx/types/fx/shadow_data.h" #include <time.h> #include <wayland-server-core.h> #include <wlr/render/wlr_renderer.h> #include <wlr/types/wlr_damage_ring.h> -#include "types/fx/shadow_data.h" #include <wlr/types/wlr_linux_dmabuf_v1.h> #include <wlr/util/addon.h> #include <wlr/util/box.h> diff --git a/meson.build b/meson.build index 070a07a..31da09e 100644 --- a/meson.build +++ b/meson.build @@ -92,14 +92,14 @@ wayland_server = dependency('wayland-server', default_options: wayland_project_options, ) -wlroots_options = [ 'examples=false' ] +wlroots_options = [ 'examples=false', 'default_library=static' ] wlroots_version = ['>=0.17.0', '<0.18.0'] -subproject( +wlroots_is_sub = subproject( 'wlroots', default_options: wlroots_options, required: false, version: wlroots_version, -) +).found() wlroots = dependency('wlroots', version: wlroots_version, default_options: wlroots_options, @@ -126,6 +126,7 @@ drm = dependency('libdrm', 'tests=false', ], ) +xkbcommon = dependency('xkbcommon') pixman = dependency('pixman-1', version: '>=0.42.0', fallback: 'pixman', @@ -139,6 +140,7 @@ wlr_deps = [ wlroots, wayland_server, drm, + xkbcommon, pixman, math, rt, @@ -150,6 +152,8 @@ subdir('render') subdir('types') subdir('util') +subdir('include') + scenefx_inc = include_directories('include') lib_scenefx = library( diff --git a/render/fx_renderer/fx_pass.c b/render/fx_renderer/fx_pass.c index 9a8c90c..231de33 100644 --- a/render/fx_renderer/fx_pass.c +++ b/render/fx_renderer/fx_pass.c @@ -11,7 +11,7 @@ #include "render/fx_renderer/fx_renderer.h" #include "render/fx_renderer/matrix.h" #include "render/pass.h" -#include "types/fx/shadow_data.h" +#include "scenefx/types/fx/shadow_data.h" #define MAX_QUADS 86 // 4kb diff --git a/render/fx_renderer/fx_renderer.c b/render/fx_renderer/fx_renderer.c index da9437c..0b20d7e 100644 --- a/render/fx_renderer/fx_renderer.c +++ b/render/fx_renderer/fx_renderer.c @@ -20,10 +20,11 @@ #include <wlr/util/log.h> #include "render/egl.h" +#include "render/pixel_format.h" +#include "render/fx_renderer/util.h" #include "render/fx_renderer/fx_renderer.h" +#include "scenefx/fx_renderer/fx_renderer.h" #include "render/fx_renderer/matrix.h" -#include "render/fx_renderer/util.h" -#include "render/pixel_format.h" #include "util/time.h" static const GLfloat verts[] = { diff --git a/render/fx_renderer/meson.build b/render/fx_renderer/meson.build index d7160a8..10e757b 100644 --- a/render/fx_renderer/meson.build +++ b/render/fx_renderer/meson.build @@ -6,7 +6,6 @@ elif 'auto' in renderers and get_option('auto_features').disabled() endif wlr_files += files( - 'matrix.c', 'util.c', 'shaders.c', 'pixel_format.c', @@ -16,6 +15,12 @@ wlr_files += files( 'fx_renderer.c', ) +if not wlroots_is_sub + wlr_files += files([ + 'matrix.c', + ]) +endif + if 'gles2' in renderers or 'auto' in renderers egl = dependency('egl', required: 'gles2' in renderers) gbm = dependency('gbm', required: 'gles2' in renderers) diff --git a/tinywl/tinywl.c b/tinywl/tinywl.c index 03fafee..994574f 100644 --- a/tinywl/tinywl.c +++ b/tinywl/tinywl.c @@ -5,7 +5,9 @@ #include <stdlib.h> #include <stdio.h> #include <time.h> -#include <types/fx/shadow_data.h> +#include <scenefx/fx_renderer/fx_renderer.h> +#include <scenefx/types/fx/shadow_data.h> +#include <scenefx/types/wlr_scene.h> #include <unistd.h> #include <wayland-server-core.h> #include <wayland-util.h> @@ -27,10 +29,6 @@ #include <wlr/util/log.h> #include <xkbcommon/xkbcommon.h> -#include "types/wlr_scene.h" - -#include "render/fx_renderer/fx_renderer.h" - /* For brevity's sake, struct members are annotated where they are used. */ enum tinywl_cursor_mode { TINYWL_CURSOR_PASSTHROUGH, diff --git a/types/fx/shadow_data.c b/types/fx/shadow_data.c index fae76cf..a8ad8f9 100644 --- a/types/fx/shadow_data.c +++ b/types/fx/shadow_data.c @@ -1,7 +1,7 @@ #include <assert.h> #include <stdlib.h> #include <string.h> -#include "types/fx/shadow_data.h" +#include "scenefx/types/fx/shadow_data.h" #include "wlr/util/log.h" struct shadow_data shadow_data_get_default(void) { diff --git a/types/meson.build b/types/meson.build index 0527b7c..29e9c36 100644 --- a/types/meson.build +++ b/types/meson.build @@ -1,7 +1,12 @@ wlr_files += files( - 'output/wlr_output.c', 'scene/wlr_scene.c', - 'buffer/buffer.c', ) +if not wlroots_is_sub + wlr_files += files([ + 'output/wlr_output.c', + 'buffer/buffer.c', + ]) +endif + subdir('fx') diff --git a/types/scene/wlr_scene.c b/types/scene/wlr_scene.c index 8ded6a8..e9f765c 100644 --- a/types/scene/wlr_scene.c +++ b/types/scene/wlr_scene.c @@ -1,6 +1,7 @@ #define _POSIX_C_SOURCE 200809L #include <assert.h> #include <stdlib.h> +#include <scenefx/types/wlr_scene.h> #include <string.h> #include <wlr/backend.h> #include <wlr/render/gles2.h> @@ -8,7 +9,6 @@ #include <wlr/types/wlr_damage_ring.h> #include <wlr/types/wlr_matrix.h> #include <wlr/types/wlr_presentation_time.h> -#include <wlr/types/wlr_scene.h> #include <wlr/types/wlr_subcompositor.h> #include <wlr/types/wlr_xdg_shell.h> #include <wlr/util/log.h> @@ -16,7 +16,7 @@ #include <wlr/render/swapchain.h> #include "render/pass.h" -#include "types/fx/shadow_data.h" +#include "scenefx/types/fx/shadow_data.h" #include "types/wlr_buffer.h" #include "types/wlr_output.h" #include "types/wlr_scene.h" |