mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-12-22 18:09:49 +01:00
wlr_scene: Parse out WLR_SCENE_DEBUG_DAMAGE
This commit is contained in:
parent
4ac19e9f9c
commit
17f5414b1a
3 changed files with 31 additions and 0 deletions
|
@ -45,6 +45,12 @@ wlroots reads these environment variables
|
|||
* *WLR_RENDERER_ALLOW_SOFTWARE*: allows the gles2 renderer to use software
|
||||
rendering
|
||||
|
||||
## scenes
|
||||
|
||||
* *WLR_SCENE_DEBUG_DAMAGE*: specifies debug options for screen damage related
|
||||
tasks for compositors that use scenes. (available options: NONE, RERENDER,
|
||||
HIGHLIGHT)
|
||||
|
||||
# Generic
|
||||
|
||||
* *DISPLAY*: if set probe X11 backend in `wlr_backend_autocreate`
|
||||
|
|
|
@ -71,6 +71,12 @@ struct wlr_scene_node {
|
|||
struct wlr_addon_set addons;
|
||||
};
|
||||
|
||||
enum wlr_scene_debug_damage_option {
|
||||
WLR_SCENE_DEBUG_DAMAGE_NONE,
|
||||
WLR_SCENE_DEBUG_DAMAGE_RERENDER,
|
||||
WLR_SCENE_DEBUG_DAMAGE_HIGHLIGHT
|
||||
};
|
||||
|
||||
/** The root scene-graph node. */
|
||||
struct wlr_scene {
|
||||
struct wlr_scene_node node;
|
||||
|
@ -83,6 +89,8 @@ struct wlr_scene {
|
|||
// private state
|
||||
|
||||
struct wl_listener presentation_destroy;
|
||||
|
||||
enum wlr_scene_debug_damage_option debug_damage_option;
|
||||
};
|
||||
|
||||
/** A sub-tree in the scene-graph. */
|
||||
|
|
|
@ -130,6 +130,23 @@ struct wlr_scene *wlr_scene_create(void) {
|
|||
scene_node_init(&scene->node, WLR_SCENE_NODE_ROOT, NULL);
|
||||
wl_list_init(&scene->outputs);
|
||||
wl_list_init(&scene->presentation_destroy.link);
|
||||
|
||||
char *debug_damage = getenv("WLR_SCENE_DEBUG_DAMAGE");
|
||||
if (debug_damage) {
|
||||
wlr_log(WLR_INFO, "Loading WLR_SCENE_DEBUG_DAMAGE option: %s", debug_damage);
|
||||
}
|
||||
|
||||
if (!debug_damage || strcmp(debug_damage, "none") == 0) {
|
||||
scene->debug_damage_option = WLR_SCENE_DEBUG_DAMAGE_NONE;
|
||||
} else if (strcmp(debug_damage, "rerender") == 0) {
|
||||
scene->debug_damage_option = WLR_SCENE_DEBUG_DAMAGE_RERENDER;
|
||||
} else if (strcmp(debug_damage, "highlight") == 0) {
|
||||
scene->debug_damage_option = WLR_SCENE_DEBUG_DAMAGE_HIGHLIGHT;
|
||||
} else {
|
||||
wlr_log(WLR_ERROR, "Unknown WLR_SCENE_DEBUG_DAMAGE option: %s", debug_damage);
|
||||
scene->debug_damage_option = WLR_SCENE_DEBUG_DAMAGE_NONE;
|
||||
}
|
||||
|
||||
return scene;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue