mirror of
https://github.com/swaywm/sway.git
synced 2026-04-22 06:46:27 -04:00
Add official fx renderer (#3)
This commit is contained in:
parent
06f19c81a4
commit
cf1ed777ae
11 changed files with 497 additions and 33 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue