aboutsummaryrefslogtreecommitdiff
path: root/sway/tree/view.c
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-03-30 13:18:50 -0400
committeremersion <contact@emersion.fr>2018-03-30 17:16:35 -0400
commita776ecbb860608e0f75430a53ea75a6ed19ac746 (patch)
treef664978ac74c3fc13993ed709cc1015c025d3344 /sway/tree/view.c
parent5ac5e7d5a69e9d45a20d6d787a2665279845c74b (diff)
Add lite damage tracking
This skips the renderer if nothing has changed, and renders everything otherwise.
Diffstat (limited to 'sway/tree/view.c')
-rw-r--r--sway/tree/view.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c
index 480ff693..b7d1a41b 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -1,9 +1,10 @@
#include <wayland-server.h>
#include <wlr/types/wlr_output_layout.h>
+#include "log.h"
+#include "sway/output.h"
#include "sway/tree/container.h"
#include "sway/tree/layout.h"
#include "sway/tree/view.h"
-#include "log.h"
const char *view_get_title(struct sway_view *view) {
if (view->iface.get_prop) {
@@ -105,3 +106,18 @@ struct sway_container *container_view_destroy(struct sway_container *view) {
arrange_windows(parent, -1, -1);
return parent;
}
+
+void view_damage_whole(struct sway_view *view) {
+ struct sway_container *cont = NULL;
+ for (int i = 0; i < root_container.children->length; ++i) {
+ cont = root_container.children->items[i];
+ if (cont->type == C_OUTPUT) {
+ output_damage_whole_view(cont->sway_output, view);
+ }
+ }
+}
+
+void view_damage_from(struct sway_view *view) {
+ // TODO
+ view_damage_whole(view);
+}