kiwmi/include/desktop/output.h
tiosgz d5940c396c Render using wlr_scene
Apart from removing a lot of code, this commit also introduces (thanks
to wlr_scene) fine-grained damage tracking.

The lack of our own rendering code will only be an issue if the need for
custom effects (such as blur) arises; however, that's very unlikely and
it would probably require a lot of changes anyway.
2022-07-30 19:22:58 +00:00

50 lines
1.3 KiB
C

/* Copyright (c), Charlotte Meyer <dev@buffet.sh>
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#ifndef KIWMI_DESKTOP_OUTPUT_H
#define KIWMI_DESKTOP_OUTPUT_H
#include <wayland-server.h>
#include <wlr/util/box.h>
#include "desktop/stratum.h"
struct kiwmi_output {
struct wl_list link;
struct kiwmi_desktop *desktop;
struct wlr_output *wlr_output;
struct wl_listener frame;
struct wl_listener commit;
struct wl_listener destroy;
struct wl_listener mode;
struct wl_list layers[4]; // struct kiwmi_layer::link
struct wlr_scene_tree *strata[KIWMI_STRATA_COUNT];
struct wlr_box usable_area;
struct {
struct wl_signal destroy;
struct wl_signal resize;
struct wl_signal usable_area_change;
} events;
};
struct kiwmi_render_data {
struct wlr_output *output;
double output_lx;
double output_ly;
struct wlr_renderer *renderer;
struct timespec *when;
void *data;
};
void new_output_notify(struct wl_listener *listener, void *data);
void output_layout_change_notify(struct wl_listener *listener, void *data);
#endif /* KIWMI_DESKTOP_OUTPUT_H */