mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-25 22:25:58 +01:00
buffer: introduce wlr_buffer_get_data_ptr
The function has been place in an internal header for API stability reasons.
This commit is contained in:
parent
9f33d8ad39
commit
0b9288ec0b
3 changed files with 25 additions and 0 deletions
15
include/types/wlr_buffer.h
Normal file
15
include/types/wlr_buffer.h
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#ifndef TYPES_WLR_BUFFER
|
||||||
|
#define TYPES_WLR_BUFFER
|
||||||
|
|
||||||
|
#include <wlr/types/wlr_buffer.h>
|
||||||
|
/**
|
||||||
|
* Access a pointer to the allocated data from the underlying implementation,
|
||||||
|
* and its stride.
|
||||||
|
*
|
||||||
|
* The returned pointer should be pointing to a valid memory location for read
|
||||||
|
* and write operations.
|
||||||
|
*/
|
||||||
|
bool buffer_get_data_ptr(struct wlr_buffer *buffer, void **data,
|
||||||
|
size_t *stride);
|
||||||
|
|
||||||
|
#endif
|
|
@ -19,6 +19,8 @@ struct wlr_buffer_impl {
|
||||||
void (*destroy)(struct wlr_buffer *buffer);
|
void (*destroy)(struct wlr_buffer *buffer);
|
||||||
bool (*get_dmabuf)(struct wlr_buffer *buffer,
|
bool (*get_dmabuf)(struct wlr_buffer *buffer,
|
||||||
struct wlr_dmabuf_attributes *attribs);
|
struct wlr_dmabuf_attributes *attribs);
|
||||||
|
bool (*get_data_ptr)(struct wlr_buffer *buffer, void **data,
|
||||||
|
size_t *stride);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include <wlr/types/wlr_linux_dmabuf_v1.h>
|
#include <wlr/types/wlr_linux_dmabuf_v1.h>
|
||||||
#include <wlr/util/log.h>
|
#include <wlr/util/log.h>
|
||||||
#include "render/pixel_format.h"
|
#include "render/pixel_format.h"
|
||||||
|
#include "types/wlr_buffer.h"
|
||||||
#include "util/signal.h"
|
#include "util/signal.h"
|
||||||
|
|
||||||
void wlr_buffer_init(struct wlr_buffer *buffer,
|
void wlr_buffer_init(struct wlr_buffer *buffer,
|
||||||
|
@ -65,6 +66,13 @@ bool wlr_buffer_get_dmabuf(struct wlr_buffer *buffer,
|
||||||
return buffer->impl->get_dmabuf(buffer, attribs);
|
return buffer->impl->get_dmabuf(buffer, attribs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool buffer_get_data_ptr(struct wlr_buffer *buffer, void **data,
|
||||||
|
size_t *size) {
|
||||||
|
if (!buffer->impl->get_data_ptr) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return buffer->impl->get_data_ptr(buffer, data, size);
|
||||||
|
}
|
||||||
|
|
||||||
bool wlr_resource_is_buffer(struct wl_resource *resource) {
|
bool wlr_resource_is_buffer(struct wl_resource *resource) {
|
||||||
return strcmp(wl_resource_get_class(resource), wl_buffer_interface.name) == 0;
|
return strcmp(wl_resource_get_class(resource), wl_buffer_interface.name) == 0;
|
||||||
|
|
Loading…
Reference in a new issue