region: make wlr_region_create private

This function should only be called from the handler for
wl_compositor.create_region requests.
This commit is contained in:
Simon Ser 2021-01-18 12:31:20 +01:00
parent 3d7aa73867
commit 45f992b27b
4 changed files with 17 additions and 10 deletions

View File

@ -0,0 +1,13 @@
#ifndef TYPES_WLR_REGION_H
#define TYPES_WLR_REGION_H
#include <wlr/types/wlr_region.h>
/*
* Creates a new region resource with the provided new ID. If `resource_list` is
* non-NULL, adds the region's resource to the list.
*/
struct wl_resource *region_create(struct wl_client *client,
uint32_t version, uint32_t id);
#endif

View File

@ -12,13 +12,6 @@
#include <pixman.h> #include <pixman.h>
#include <wayland-server-protocol.h> #include <wayland-server-protocol.h>
/*
* Creates a new region resource with the provided new ID. If `resource_list` is
* non-NULL, adds the region's resource to the list.
*/
struct wl_resource *wlr_region_create(struct wl_client *client,
uint32_t version, uint32_t id, struct wl_list *resource_list);
pixman_region32_t *wlr_region_from_resource(struct wl_resource *resource); pixman_region32_t *wlr_region_from_resource(struct wl_resource *resource);
#endif #endif

View File

@ -2,9 +2,9 @@
#include <stdlib.h> #include <stdlib.h>
#include <wayland-server-core.h> #include <wayland-server-core.h>
#include <wlr/types/wlr_compositor.h> #include <wlr/types/wlr_compositor.h>
#include <wlr/types/wlr_region.h>
#include <wlr/types/wlr_surface.h> #include <wlr/types/wlr_surface.h>
#include <wlr/util/log.h> #include <wlr/util/log.h>
#include "types/wlr_region.h"
#include "util/signal.h" #include "util/signal.h"
#define COMPOSITOR_VERSION 4 #define COMPOSITOR_VERSION 4
@ -131,7 +131,7 @@ static void compositor_create_surface(struct wl_client *client,
static void compositor_create_region(struct wl_client *client, static void compositor_create_region(struct wl_client *client,
struct wl_resource *resource, uint32_t id) { struct wl_resource *resource, uint32_t id) {
wlr_region_create(client, wl_resource_get_version(resource), id, NULL); region_create(client, wl_resource_get_version(resource), id, NULL);
} }
static const struct wl_compositor_interface compositor_impl = { static const struct wl_compositor_interface compositor_impl = {

View File

@ -4,6 +4,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <wayland-server-core.h> #include <wayland-server-core.h>
#include <wlr/types/wlr_region.h> #include <wlr/types/wlr_region.h>
#include "types/wlr_region.h"
static void region_add(struct wl_client *client, struct wl_resource *resource, static void region_add(struct wl_client *client, struct wl_resource *resource,
int32_t x, int32_t y, int32_t width, int32_t height) { int32_t x, int32_t y, int32_t width, int32_t height) {
@ -41,7 +42,7 @@ static void region_handle_resource_destroy(struct wl_resource *resource) {
free(reg); free(reg);
} }
struct wl_resource *wlr_region_create(struct wl_client *client, struct wl_resource *region_create(struct wl_client *client,
uint32_t version, uint32_t id, struct wl_list *resource_list) { uint32_t version, uint32_t id, struct wl_list *resource_list) {
pixman_region32_t *region = calloc(1, sizeof(pixman_region32_t)); pixman_region32_t *region = calloc(1, sizeof(pixman_region32_t));
if (region == NULL) { if (region == NULL) {