mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-02 09:01:38 -05:00
render/gles2: Don't double import dmabuf
We can double import a dmabuf if we use it as a texture target and a render target. Instead, let's unify render targets and texture dmabuf imports to use wlr_gles2_buffer which manages the EGLImageKHR
This commit is contained in:
parent
665055a1a0
commit
cb5f67431b
3 changed files with 74 additions and 85 deletions
|
|
@ -108,6 +108,7 @@ struct wlr_gles2_buffer {
|
|||
EGLImageKHR image;
|
||||
GLuint rbo;
|
||||
GLuint fbo;
|
||||
GLuint tex;
|
||||
|
||||
struct wlr_addon addon;
|
||||
};
|
||||
|
|
@ -121,6 +122,7 @@ struct wlr_gles2_texture {
|
|||
// GL_TEXTURE_2D == mutable
|
||||
// GL_TEXTURE_EXTERNAL_OES == immutable
|
||||
GLenum target;
|
||||
bool owns_tex;
|
||||
GLuint tex;
|
||||
|
||||
EGLImageKHR image;
|
||||
|
|
@ -130,7 +132,7 @@ struct wlr_gles2_texture {
|
|||
// Only affects target == GL_TEXTURE_2D
|
||||
uint32_t drm_format; // used to interpret upload data
|
||||
// If imported from a wlr_buffer
|
||||
struct wlr_buffer *buffer;
|
||||
struct wlr_gles2_buffer *buffer;
|
||||
struct wlr_addon buffer_addon;
|
||||
};
|
||||
|
||||
|
|
@ -157,6 +159,8 @@ struct wlr_gles2_render_timer *gles2_get_render_timer(
|
|||
struct wlr_render_timer *timer);
|
||||
struct wlr_gles2_texture *gles2_get_texture(
|
||||
struct wlr_texture *wlr_texture);
|
||||
struct wlr_gles2_buffer *gles2_buffer_get_or_create(struct wlr_gles2_renderer *renderer,
|
||||
struct wlr_buffer *wlr_buffer);
|
||||
|
||||
struct wlr_texture *gles2_texture_from_buffer(struct wlr_renderer *wlr_renderer,
|
||||
struct wlr_buffer *buffer);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue