weston-egl-ext.h: add GL_EXT_unpack_subimage definitions
... and use it in gl-renderer. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
committed by
Daniel Stone
parent
af5bd5da63
commit
b56c5b48ce
@@ -869,11 +869,9 @@ draw_output_border_texture(struct gl_output_state *go,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (go->border_status & (1 << side)) {
|
if (go->border_status & (1 << side)) {
|
||||||
#ifdef GL_EXT_unpack_subimage
|
|
||||||
glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, 0);
|
glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, 0);
|
||||||
glPixelStorei(GL_UNPACK_SKIP_PIXELS_EXT, 0);
|
glPixelStorei(GL_UNPACK_SKIP_PIXELS_EXT, 0);
|
||||||
glPixelStorei(GL_UNPACK_SKIP_ROWS_EXT, 0);
|
glPixelStorei(GL_UNPACK_SKIP_ROWS_EXT, 0);
|
||||||
#endif
|
|
||||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_BGRA_EXT,
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_BGRA_EXT,
|
||||||
img->tex_width, img->height, 0,
|
img->tex_width, img->height, 0,
|
||||||
GL_BGRA_EXT, GL_UNSIGNED_BYTE, img->data);
|
GL_BGRA_EXT, GL_UNSIGNED_BYTE, img->data);
|
||||||
@@ -1226,12 +1224,9 @@ gl_renderer_flush_damage(struct weston_surface *surface)
|
|||||||
struct weston_buffer *buffer = gs->buffer_ref.buffer;
|
struct weston_buffer *buffer = gs->buffer_ref.buffer;
|
||||||
struct weston_view *view;
|
struct weston_view *view;
|
||||||
bool texture_used;
|
bool texture_used;
|
||||||
|
|
||||||
#ifdef GL_EXT_unpack_subimage
|
|
||||||
pixman_box32_t *rectangles;
|
pixman_box32_t *rectangles;
|
||||||
void *data;
|
void *data;
|
||||||
int i, n;
|
int i, n;
|
||||||
#endif
|
|
||||||
|
|
||||||
pixman_region32_union(&gs->texture_damage,
|
pixman_region32_union(&gs->texture_damage,
|
||||||
&gs->texture_damage, &surface->damage);
|
&gs->texture_damage, &surface->damage);
|
||||||
@@ -1271,7 +1266,6 @@ gl_renderer_flush_damage(struct weston_surface *surface)
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef GL_EXT_unpack_subimage
|
|
||||||
glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, gs->pitch);
|
glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, gs->pitch);
|
||||||
data = wl_shm_buffer_get_data(buffer->shm_buffer);
|
data = wl_shm_buffer_get_data(buffer->shm_buffer);
|
||||||
|
|
||||||
@@ -1300,7 +1294,6 @@ gl_renderer_flush_damage(struct weston_surface *surface)
|
|||||||
gs->gl_format, gs->gl_pixel_type, data);
|
gs->gl_format, gs->gl_pixel_type, data);
|
||||||
}
|
}
|
||||||
wl_shm_buffer_end_access(buffer->shm_buffer);
|
wl_shm_buffer_end_access(buffer->shm_buffer);
|
||||||
#endif
|
|
||||||
|
|
||||||
done:
|
done:
|
||||||
pixman_region32_fini(&gs->texture_damage);
|
pixman_region32_fini(&gs->texture_damage);
|
||||||
@@ -3152,10 +3145,8 @@ gl_renderer_setup(struct weston_compositor *ec, EGLSurface egl_surface)
|
|||||||
else
|
else
|
||||||
ec->read_format = PIXMAN_a8b8g8r8;
|
ec->read_format = PIXMAN_a8b8g8r8;
|
||||||
|
|
||||||
#ifdef GL_EXT_unpack_subimage
|
|
||||||
if (check_extension(extensions, "GL_EXT_unpack_subimage"))
|
if (check_extension(extensions, "GL_EXT_unpack_subimage"))
|
||||||
gr->has_unpack_subimage = 1;
|
gr->has_unpack_subimage = 1;
|
||||||
#endif
|
|
||||||
|
|
||||||
if (check_extension(extensions, "GL_OES_EGL_image_external"))
|
if (check_extension(extensions, "GL_OES_EGL_image_external"))
|
||||||
gr->has_egl_image_external = 1;
|
gr->has_egl_image_external = 1;
|
||||||
|
|||||||
@@ -90,6 +90,13 @@ typedef struct wl_buffer * (EGLAPIENTRYP PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL) (
|
|||||||
#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB /* eglQueryWaylandBufferWL attribute */
|
#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB /* eglQueryWaylandBufferWL attribute */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_unpack_subimage
|
||||||
|
#define GL_EXT_unpack_subimage 1
|
||||||
|
#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2
|
||||||
|
#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3
|
||||||
|
#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4
|
||||||
|
#endif /* GL_EXT_unpack_subimage */
|
||||||
|
|
||||||
/* Mesas gl2ext.h and probably Khronos upstream defined
|
/* Mesas gl2ext.h and probably Khronos upstream defined
|
||||||
* GL_EXT_unpack_subimage with non _EXT suffixed GL_UNPACK_* tokens.
|
* GL_EXT_unpack_subimage with non _EXT suffixed GL_UNPACK_* tokens.
|
||||||
* In case we're using that mess, manually define the _EXT versions
|
* In case we're using that mess, manually define the _EXT versions
|
||||||
|
|||||||
Reference in New Issue
Block a user