aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2018-04-26 11:34:49 +0200
committerGitHub <noreply@github.com>2018-04-26 11:34:49 +0200
commitfecb971518675254c26757c279ff971985cd2d2d (patch)
tree895833a5b0bf14b391d1c216afde4cbe095ed807 /include
parent25dddc0094f5607c40f2ec502c5c2543b4e96163 (diff)
parent449f06556aa9550540c37af0cae0d6902b29f204 (diff)
Merge pull request #902 from emersion/various-memory-leaks
Various memory leaks
Diffstat (limited to 'include')
-rw-r--r--include/wlr/render/interface.h6
-rw-r--r--include/wlr/render/wlr_renderer.h10
-rw-r--r--include/wlr/types/wlr_compositor.h4
-rw-r--r--include/wlr/types/wlr_region.h3
-rw-r--r--include/wlr/types/wlr_surface.h4
5 files changed, 15 insertions, 12 deletions
diff --git a/include/wlr/render/interface.h b/include/wlr/render/interface.h
index 9dbe7247..e7cdce0a 100644
--- a/include/wlr/render/interface.h
+++ b/include/wlr/render/interface.h
@@ -11,12 +11,6 @@
#include <wlr/types/wlr_linux_dmabuf.h>
#include <wlr/types/wlr_output.h>
-struct wlr_renderer_impl;
-
-struct wlr_renderer {
- const struct wlr_renderer_impl *impl;
-};
-
struct wlr_renderer_impl {
void (*begin)(struct wlr_renderer *renderer, uint32_t width,
uint32_t height);
diff --git a/include/wlr/render/wlr_renderer.h b/include/wlr/render/wlr_renderer.h
index eb365762..21f9c16c 100644
--- a/include/wlr/render/wlr_renderer.h
+++ b/include/wlr/render/wlr_renderer.h
@@ -6,9 +6,15 @@
#include <wlr/render/wlr_texture.h>
#include <wlr/types/wlr_box.h>
-struct wlr_output;
+struct wlr_renderer_impl;
-struct wlr_renderer;
+struct wlr_renderer {
+ const struct wlr_renderer_impl *impl;
+
+ struct {
+ struct wl_signal destroy;
+ } events;
+};
void wlr_renderer_begin(struct wlr_renderer *r, int width, int height);
void wlr_renderer_end(struct wlr_renderer *r);
diff --git a/include/wlr/types/wlr_compositor.h b/include/wlr/types/wlr_compositor.h
index 816ff713..f6be0a74 100644
--- a/include/wlr/types/wlr_compositor.h
+++ b/include/wlr/types/wlr_compositor.h
@@ -9,13 +9,15 @@ struct wlr_surface;
struct wlr_subcompositor {
struct wl_global *wl_global;
struct wl_list wl_resources;
+ struct wl_list subsurface_resources;
};
struct wlr_compositor {
struct wl_global *wl_global;
struct wl_list wl_resources;
struct wlr_renderer *renderer;
- struct wl_list surfaces;
+ struct wl_list surface_resources;
+ struct wl_list region_resources;
struct wlr_subcompositor subcompositor;
diff --git a/include/wlr/types/wlr_region.h b/include/wlr/types/wlr_region.h
index ffacea72..a79ab61d 100644
--- a/include/wlr/types/wlr_region.h
+++ b/include/wlr/types/wlr_region.h
@@ -8,8 +8,7 @@ struct wl_resource;
/*
* Implements the given resource as region.
*/
-void wlr_region_create(struct wl_client *client, struct wl_resource *res,
- uint32_t id);
+struct wl_resource *wlr_region_create(struct wl_client *client, uint32_t id);
pixman_region32_t *wlr_region_from_resource(struct wl_resource *resource);
diff --git a/include/wlr/types/wlr_surface.h b/include/wlr/types/wlr_surface.h
index 35d47926..5ff9996d 100644
--- a/include/wlr/types/wlr_surface.h
+++ b/include/wlr/types/wlr_surface.h
@@ -93,6 +93,8 @@ struct wlr_surface {
// wlr_subsurface::parent_pending_link
struct wl_list subsurface_pending_list;
+ struct wl_listener renderer_destroy;
+
void *data;
};
@@ -121,7 +123,7 @@ bool wlr_surface_has_buffer(struct wlr_surface *surface);
/**
* Create the subsurface implementation for this surface.
*/
-void wlr_surface_make_subsurface(struct wlr_surface *surface,
+struct wlr_subsurface *wlr_surface_make_subsurface(struct wlr_surface *surface,
struct wlr_surface *parent, uint32_t id);
/**