buffer: add width and height
This commit is contained in:
parent
6595db6409
commit
1fa9e0203b
|
@ -32,6 +32,8 @@ struct wlr_buffer_impl {
|
||||||
struct wlr_buffer {
|
struct wlr_buffer {
|
||||||
const struct wlr_buffer_impl *impl;
|
const struct wlr_buffer_impl *impl;
|
||||||
|
|
||||||
|
int width, height;
|
||||||
|
|
||||||
bool dropped;
|
bool dropped;
|
||||||
size_t n_locks;
|
size_t n_locks;
|
||||||
|
|
||||||
|
@ -47,7 +49,7 @@ struct wlr_buffer {
|
||||||
* they should call wlr_buffer_drop.
|
* they should call wlr_buffer_drop.
|
||||||
*/
|
*/
|
||||||
void wlr_buffer_init(struct wlr_buffer *buffer,
|
void wlr_buffer_init(struct wlr_buffer *buffer,
|
||||||
const struct wlr_buffer_impl *impl);
|
const struct wlr_buffer_impl *impl, int width, int height);
|
||||||
/**
|
/**
|
||||||
* Unreference the buffer. This function should be called by producers when
|
* Unreference the buffer. This function should be called by producers when
|
||||||
* they are done with the buffer.
|
* they are done with the buffer.
|
||||||
|
|
|
@ -7,9 +7,11 @@
|
||||||
#include "util/signal.h"
|
#include "util/signal.h"
|
||||||
|
|
||||||
void wlr_buffer_init(struct wlr_buffer *buffer,
|
void wlr_buffer_init(struct wlr_buffer *buffer,
|
||||||
const struct wlr_buffer_impl *impl) {
|
const struct wlr_buffer_impl *impl, int width, int height) {
|
||||||
assert(impl->destroy);
|
assert(impl->destroy);
|
||||||
buffer->impl = impl;
|
buffer->impl = impl;
|
||||||
|
buffer->width = width;
|
||||||
|
buffer->height = height;
|
||||||
wl_signal_init(&buffer->events.destroy);
|
wl_signal_init(&buffer->events.destroy);
|
||||||
wl_signal_init(&buffer->events.release);
|
wl_signal_init(&buffer->events.release);
|
||||||
}
|
}
|
||||||
|
@ -212,6 +214,9 @@ struct wlr_client_buffer *wlr_client_buffer_import(
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int width, height;
|
||||||
|
wlr_resource_get_buffer_size(resource, renderer, &width, &height);
|
||||||
|
|
||||||
struct wlr_client_buffer *buffer =
|
struct wlr_client_buffer *buffer =
|
||||||
calloc(1, sizeof(struct wlr_client_buffer));
|
calloc(1, sizeof(struct wlr_client_buffer));
|
||||||
if (buffer == NULL) {
|
if (buffer == NULL) {
|
||||||
|
@ -219,7 +224,7 @@ struct wlr_client_buffer *wlr_client_buffer_import(
|
||||||
wl_resource_post_no_memory(resource);
|
wl_resource_post_no_memory(resource);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
wlr_buffer_init(&buffer->base, &client_buffer_impl);
|
wlr_buffer_init(&buffer->base, &client_buffer_impl, width, height);
|
||||||
buffer->resource = resource;
|
buffer->resource = resource;
|
||||||
buffer->texture = texture;
|
buffer->texture = texture;
|
||||||
buffer->resource_released = resource_released;
|
buffer->resource_released = resource_released;
|
||||||
|
|
Loading…
Reference in New Issue