mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-25 22:25:58 +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
|
* *WLR_RENDERER_ALLOW_SOFTWARE*: allows the gles2 renderer to use software
|
||||||
rendering
|
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
|
# Generic
|
||||||
|
|
||||||
* *DISPLAY*: if set probe X11 backend in `wlr_backend_autocreate`
|
* *DISPLAY*: if set probe X11 backend in `wlr_backend_autocreate`
|
||||||
|
|
|
@ -71,6 +71,12 @@ struct wlr_scene_node {
|
||||||
struct wlr_addon_set addons;
|
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. */
|
/** The root scene-graph node. */
|
||||||
struct wlr_scene {
|
struct wlr_scene {
|
||||||
struct wlr_scene_node node;
|
struct wlr_scene_node node;
|
||||||
|
@ -83,6 +89,8 @@ struct wlr_scene {
|
||||||
// private state
|
// private state
|
||||||
|
|
||||||
struct wl_listener presentation_destroy;
|
struct wl_listener presentation_destroy;
|
||||||
|
|
||||||
|
enum wlr_scene_debug_damage_option debug_damage_option;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** A sub-tree in the scene-graph. */
|
/** 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);
|
scene_node_init(&scene->node, WLR_SCENE_NODE_ROOT, NULL);
|
||||||
wl_list_init(&scene->outputs);
|
wl_list_init(&scene->outputs);
|
||||||
wl_list_init(&scene->presentation_destroy.link);
|
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;
|
return scene;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue