diff options
author | William McKinnon <[email protected]> | 2022-08-13 02:14:23 -0400 |
---|---|---|
committer | GitHub <[email protected]> | 2022-08-13 02:14:23 -0400 |
commit | cf1ed777ae56f677bcc0f832c52c04dc65be18ce (patch) | |
tree | 523dc4848d5cda83366bf8ccd6fc8cb453566a11 /sway/server.c | |
parent | 06f19c81a4d20651a9e4bb503fed77b278e1d027 (diff) |
Add official fx renderer (#3)
Diffstat (limited to 'sway/server.c')
-rw-r--r-- | sway/server.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/sway/server.c b/sway/server.c index 9bfcffaf..d6a4d00a 100644 --- a/sway/server.c +++ b/sway/server.c @@ -9,6 +9,7 @@ #include <wlr/backend/multi.h> #include <wlr/backend/session.h> #include <wlr/config.h> +#include <wlr/render/gles2.h> #include <wlr/render/wlr_renderer.h> #include <wlr/types/wlr_compositor.h> #include <wlr/types/wlr_data_control_v1.h> @@ -38,6 +39,7 @@ #include "list.h" #include "log.h" #include "sway/config.h" +#include "sway/desktop/fx_renderer.h" #include "sway/desktop/idle_inhibit_v1.h" #include "sway/input/input-manager.h" #include "sway/output.h" @@ -75,29 +77,35 @@ static void handle_drm_lease_request(struct wl_listener *listener, void *data) { bool server_init(struct sway_server *server) { sway_log(SWAY_DEBUG, "Initializing Wayland server"); - server->renderer = wlr_renderer_autocreate(server->backend); + server->wlr_renderer = wlr_renderer_autocreate(server->backend); + if (!server->wlr_renderer) { + sway_log(SWAY_ERROR, "Failed to create wlr_renderer"); + return false; + } + struct wlr_egl *egl = wlr_gles2_renderer_get_egl(server->wlr_renderer); + server->renderer = fx_renderer_create(egl); if (!server->renderer) { - sway_log(SWAY_ERROR, "Failed to create renderer"); + sway_log(SWAY_ERROR, "Failed to create fx_renderer"); return false; } - wlr_renderer_init_wl_shm(server->renderer, server->wl_display); + wlr_renderer_init_wl_shm(server->wlr_renderer, server->wl_display); - if (wlr_renderer_get_dmabuf_texture_formats(server->renderer) != NULL) { - wlr_drm_create(server->wl_display, server->renderer); + if (wlr_renderer_get_dmabuf_texture_formats(server->wlr_renderer) != NULL) { + wlr_drm_create(server->wl_display, server->wlr_renderer); server->linux_dmabuf_v1 = - wlr_linux_dmabuf_v1_create(server->wl_display, server->renderer); + wlr_linux_dmabuf_v1_create(server->wl_display, server->wlr_renderer); } server->allocator = wlr_allocator_autocreate(server->backend, - server->renderer); + server->wlr_renderer); if (!server->allocator) { sway_log(SWAY_ERROR, "Failed to create allocator"); return false; } server->compositor = wlr_compositor_create(server->wl_display, - server->renderer); + server->wlr_renderer); server->compositor_new_surface.notify = handle_compositor_new_surface; wl_signal_add(&server->compositor->events.new_surface, &server->compositor_new_surface); |