From 62c4b62572941180f46202d685aac1f3efb40462 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 4 Jun 2020 14:06:54 +0100 Subject: [PATCH] Post-release version bump to 1.22.9 --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index b7ba95d2..12798e9f 100644 --- a/configure.ac +++ b/configure.ac @@ -25,7 +25,7 @@ m4_define([cogl_version], dnl Since the core Cogl library has to also maintain support for the dnl Cogl 1.x API for Clutter then we track the 1.x version separately. m4_define([cogl_1_minor_version], [22]) -m4_define([cogl_1_micro_version], [8]) +m4_define([cogl_1_micro_version], [9]) m4_define([cogl_1_version], [1.cogl_1_minor_version.cogl_1_micro_version]) dnl ================================================================ -- GitLab From 2bd3cbed45d633fb15625d58e6b7cb8721b0ba98 Mon Sep 17 00:00:00 2001 From: orbea Date: Thu, 25 Mar 2021 07:17:20 -0700 Subject: [PATCH] cogl-gles2: Fix undefined references. --- cogl-gles2/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/cogl-gles2/Makefile.am b/cogl-gles2/Makefile.am index 72ec1eae..1328444e 100644 --- a/cogl-gles2/Makefile.am +++ b/cogl-gles2/Makefile.am @@ -17,6 +17,7 @@ endif AM_CFLAGS = $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) $(MAINTAINER_CFLAGS) libcogl_gles2_la_SOURCES = cogl-gles2-api.c +libcogl_gles2_la_LIBADD = $(top_builddir)/cogl/libcogl.la libcogl_gles2_la_LDFLAGS = \ -no-undefined \ -version-info @COGL_LT_CURRENT@:@COGL_LT_REVISION@:@COGL_LT_AGE@ \ -- GitLab From 988e021960eb372be50038fdf0b2874f063c02b6 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 11 Oct 2016 16:16:38 -0400 Subject: [PATCH] egl: Use eglGetPlatformDisplay not eglGetDisplay The latter requires the implementation to guess which kind of display it is. Different implementations do different thing, in particular glvnd does something different from Mesa, and it's better to be explicit about what we need. Signed-off-by: Adam Jackson --- cogl/cogl-egl.h | 1 - cogl/winsys/cogl-winsys-egl-kms.c | 3 ++- cogl/winsys/cogl-winsys-egl-private.h | 33 +++++++++++++++++++++++++++++++++ cogl/winsys/cogl-winsys-egl-wayland.c | 3 ++- cogl/winsys/cogl-winsys-egl-x11.c | 2 +- 5 files changed, 38 insertions(+), 4 deletions(-) diff --git a/cogl/cogl-egl.h b/cogl/cogl-egl.h index cea7b10..5dac55f 100644 --- a/cogl/cogl-egl.h +++ b/cogl/cogl-egl.h @@ -98,7 +98,6 @@ cogl_egl_context_get_egl_display (CoglContext *context); EGLContext cogl_egl_context_get_egl_context (CoglContext *context); - COGL_END_DECLS /* The gobject introspection scanner seems to parse public headers in diff --git a/cogl/winsys/cogl-winsys-egl-kms.c b/cogl/winsys/cogl-winsys-egl-kms.c index 4da1f14..ae9f6fc 100644 --- a/cogl/winsys/cogl-winsys-egl-kms.c +++ b/cogl/winsys/cogl-winsys-egl-kms.c @@ -342,7 +342,8 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer, goto fail; } - egl_renderer->edpy = eglGetDisplay ((EGLNativeDisplayType)kms_renderer->gbm); + egl_renderer->edpy = cogl_winsys_egl_get_display(EGL_PLATFORM_GBM_KHR, + kms_renderer->gbm); if (egl_renderer->edpy == EGL_NO_DISPLAY) { _cogl_set_error (error, COGL_WINSYS_ERROR, diff --git a/cogl/winsys/cogl-winsys-egl-private.h b/cogl/winsys/cogl-winsys-egl-private.h index 5d21b4f..27ac25c 100644 --- a/cogl/winsys/cogl-winsys-egl-private.h +++ b/cogl/winsys/cogl-winsys-egl-private.h @@ -200,4 +200,37 @@ CoglBool _cogl_winsys_egl_renderer_connect_common (CoglRenderer *renderer, CoglError **error); +static inline EGLDisplay +cogl_winsys_egl_get_display (EGLint type, void *native) +{ + EGLDisplay dpy = NULL; + const char *client_exts = eglQueryString (NULL, EGL_EXTENSIONS); + + if (g_strstr_len (client_exts, -1, "EGL_KHR_platform_base")) + { + PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display = + (void *) eglGetProcAddress ("eglGetPlatformDisplay"); + + if (get_platform_display) + dpy = get_platform_display (type, native, NULL); + + if (dpy) + return dpy; + } + + if (g_strstr_len (client_exts, -1, "EGL_EXT_platform_base")) + { + PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display = + (void *) eglGetProcAddress ("eglGetPlatformDisplayEXT"); + + if (get_platform_display) + dpy = get_platform_display (type, native, NULL); + + if (dpy) + return dpy; + } + + return eglGetDisplay ((EGLNativeDisplayType) native); +} + #endif /* __COGL_WINSYS_EGL_PRIVATE_H */ diff --git a/cogl/winsys/cogl-winsys-egl-wayland.c b/cogl/winsys/cogl-winsys-egl-wayland.c index 2e22052..463041b 100644 --- a/cogl/winsys/cogl-winsys-egl-wayland.c +++ b/cogl/winsys/cogl-winsys-egl-wayland.c @@ -289,7 +289,8 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer, } egl_renderer->edpy = - eglGetDisplay ((EGLNativeDisplayType) wayland_renderer->wayland_display); + cogl_winsys_egl_get_display (EGL_PLATFORM_WAYLAND_KHR, + wayland_renderer->wayland_display); if (!_cogl_winsys_egl_renderer_connect_common (renderer, error)) goto error; diff --git a/cogl/winsys/cogl-winsys-egl-x11.c b/cogl/winsys/cogl-winsys-egl-x11.c index 724a4d0..a7e9c2f 100644 --- a/cogl/winsys/cogl-winsys-egl-x11.c +++ b/cogl/winsys/cogl-winsys-egl-x11.c @@ -278,7 +278,7 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer, goto error; egl_renderer->edpy = - eglGetDisplay ((EGLNativeDisplayType) xlib_renderer->xdpy); + cogl_winsys_egl_get_display (EGL_PLATFORM_X11_KHR, xlib_renderer->xdpy); if (!_cogl_winsys_egl_renderer_connect_common (renderer, error)) goto error; -- 2.9.3 From 78636289b073d67209a20145ef0dc003f2d77db6 Mon Sep 17 00:00:00 2001 From: Sian Cao Date: Tue, 12 Apr 2016 11:36:51 +0800 Subject: Add GL_ARB_shader_texture_lod support The patch is used to do lod biased texturing. I can achieve faster blurring of images instead of using large blur radius. Signed-off-by: Sian Cao : initial --- cogl/cogl-context.h | 1 + cogl/cogl-glsl-shader.c | 13 +++++++++++-- cogl/cogl-types.h | 3 ++- cogl/driver/gl/gl/cogl-driver-gl.c | 7 +++++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/cogl/cogl-context.h b/cogl/cogl-context.h index 07badeb..261ce49 100644 --- a/cogl/cogl-context.h +++ b/cogl/cogl-context.h @@ -290,6 +290,7 @@ typedef enum _CoglFeatureID COGL_FEATURE_ID_PER_VERTEX_POINT_SIZE, COGL_FEATURE_ID_TEXTURE_RG, COGL_FEATURE_ID_BUFFER_AGE, + COGL_FEATURE_ID_SHADER_TEXTURE_LOD, /*< private >*/ _COGL_N_FEATURE_IDS /*< skip >*/ diff --git a/cogl/cogl-glsl-shader.c b/cogl/cogl-glsl-shader.c index 196e0c7..4fb0eb5 100644 --- a/cogl/cogl-glsl-shader.c +++ b/cogl/cogl-glsl-shader.c @@ -87,8 +87,8 @@ _cogl_glsl_shader_set_source_with_boilerplate (CoglContext *ctx, const char *vertex_boilerplate; const char *fragment_boilerplate; - const char **strings = g_alloca (sizeof (char *) * (count_in + 4)); - GLint *lengths = g_alloca (sizeof (GLint) * (count_in + 4)); + const char **strings = g_alloca (sizeof (char *) * (count_in + 5)); + GLint *lengths = g_alloca (sizeof (GLint) * (count_in + 5)); char *version_string; int count = 0; @@ -111,6 +111,15 @@ _cogl_glsl_shader_set_source_with_boilerplate (CoglContext *ctx, lengths[count++] = sizeof (texture_3d_extension) - 1; } + if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_PROGRAMMABLE) && + cogl_has_feature (ctx, COGL_FEATURE_ID_SHADER_TEXTURE_LOD)) + { + static const char shader_texture_lod_ext[] = + "#extension GL_ARB_shader_texture_lod : enable\n"; + strings[count] = shader_texture_lod_ext; + lengths[count++] = sizeof (shader_texture_lod_ext) - 1; + } + if (shader_gl_type == GL_VERTEX_SHADER) { strings[count] = vertex_boilerplate; diff --git a/cogl/cogl-types.h b/cogl/cogl-types.h index 6accf8d..77964c6 100644 --- a/cogl/cogl-types.h +++ b/cogl/cogl-types.h @@ -470,7 +470,8 @@ typedef enum COGL_FEATURE_MAP_BUFFER_FOR_READ = (1 << 21), COGL_FEATURE_MAP_BUFFER_FOR_WRITE = (1 << 22), COGL_FEATURE_ONSCREEN_MULTIPLE = (1 << 23), - COGL_FEATURE_DEPTH_TEXTURE = (1 << 24) + COGL_FEATURE_DEPTH_TEXTURE = (1 << 24), + COGL_FEATURE_SHADER_TEXTURE_LOD = (1 << 25) } CoglFeatureFlags; /** diff --git a/cogl/driver/gl/gl/cogl-driver-gl.c b/cogl/driver/gl/gl/cogl-driver-gl.c index 716d1dd..f305b6a 100644 --- a/cogl/driver/gl/gl/cogl-driver-gl.c +++ b/cogl/driver/gl/gl/cogl-driver-gl.c @@ -568,6 +568,13 @@ _cogl_driver_update_features (CoglContext *ctx, COGL_FEATURE_ID_TEXTURE_RECTANGLE, TRUE); } + if (_cogl_check_extension ("GL_ARB_shader_texture_lod", gl_extensions)) + { + flags |= COGL_FEATURE_SHADER_TEXTURE_LOD; + COGL_FLAGS_SET (ctx->features, + COGL_FEATURE_ID_SHADER_TEXTURE_LOD, TRUE); + } + if (ctx->glTexImage3D) { flags |= COGL_FEATURE_TEXTURE_3D; -- 2.9.5 From d8b34ab0604d80d0be22b8b78e9aa6bf4fac7db0 Mon Sep 17 00:00:00 2001 From: Sian Cao Date: Thu, 27 Oct 2016 15:19:32 +0800 Subject: texture: Support copy_sub_image The patch is used to implement feature similar with kwin blur effect by being abel to copy partial of framebuffer contents as texture and do post blurring. Signed-off-by: Sian Cao : initial Bowen Li : fix coding style --- cogl/cogl-atlas-texture.c | 1 + cogl/cogl-driver.h | 10 ++++++++ cogl/cogl-sub-texture.c | 1 + cogl/cogl-texture-2d-sliced.c | 1 + cogl/cogl-texture-2d.c | 30 ++++++++++++++++++++++ cogl/cogl-texture-3d.c | 1 + cogl/cogl-texture-private.h | 9 +++++++ cogl/cogl-texture-rectangle.c | 1 + cogl/cogl-texture.c | 33 ++++++++++++++++++++++++ cogl/cogl-texture.h | 9 +++++++ cogl/driver/gl/cogl-texture-2d-gl-private.h | 9 +++++++ cogl/driver/gl/cogl-texture-2d-gl.c | 39 +++++++++++++++++++++++++++++ cogl/driver/gl/gl/cogl-driver-gl.c | 1 + cogl/driver/gl/gles/cogl-driver-gles.c | 1 + cogl/driver/nop/cogl-driver-nop.c | 1 + cogl/winsys/cogl-texture-pixmap-x11.c | 1 + 16 files changed, 148 insertions(+) diff --git a/cogl/cogl-atlas-texture.c b/cogl/cogl-atlas-texture.c index 1c8b569..e411302 100644 --- a/cogl/cogl-atlas-texture.c +++ b/cogl/cogl-atlas-texture.c @@ -1027,6 +1027,7 @@ cogl_atlas_texture_vtable = FALSE, /* not primitive */ _cogl_atlas_texture_allocate, _cogl_atlas_texture_set_region, + NULL, /* copy_sub_image */ NULL, /* get_data */ _cogl_atlas_texture_foreach_sub_texture_in_region, _cogl_atlas_texture_get_max_waste, diff --git a/cogl/cogl-driver.h b/cogl/cogl-driver.h index 648228c..4a0aeaf 100644 --- a/cogl/cogl-driver.h +++ b/cogl/cogl-driver.h @@ -192,6 +192,16 @@ struct _CoglDriverVtable int level, CoglError **error); + CoglBool + (* texture_2d_copy_sub_image) (CoglTexture2D *tex_2d, + GLint xoffset, + GLint yoffset, + GLint x, + GLint y, + GLsizei width, + GLsizei height, + CoglError **error); + /* Reads back the full contents of the given texture and write it to * @data in the given @format and with the given @rowstride. * diff --git a/cogl/cogl-sub-texture.c b/cogl/cogl-sub-texture.c index 7baf95e..0a16193 100644 --- a/cogl/cogl-sub-texture.c +++ b/cogl/cogl-sub-texture.c @@ -460,6 +460,7 @@ cogl_sub_texture_vtable = FALSE, /* not primitive */ _cogl_sub_texture_allocate, _cogl_sub_texture_set_region, + NULL, /* copy_sub_image */ NULL, /* get_data */ _cogl_sub_texture_foreach_sub_texture_in_region, _cogl_sub_texture_get_max_waste, diff --git a/cogl/cogl-texture-2d-sliced.c b/cogl/cogl-texture-2d-sliced.c index e76bef6..b0b099f 100644 --- a/cogl/cogl-texture-2d-sliced.c +++ b/cogl/cogl-texture-2d-sliced.c @@ -1526,6 +1526,7 @@ cogl_texture_2d_sliced_vtable = FALSE, /* not primitive */ _cogl_texture_2d_sliced_allocate, _cogl_texture_2d_sliced_set_region, + NULL, /* copy_sub_image */ NULL, /* get_data */ _cogl_texture_2d_sliced_foreach_sub_texture_in_region, _cogl_texture_2d_sliced_get_max_waste, diff --git a/cogl/cogl-texture-2d.c b/cogl/cogl-texture-2d.c index cc28cd9..d9ab188 100644 --- a/cogl/cogl-texture-2d.c +++ b/cogl/cogl-texture-2d.c @@ -628,6 +628,35 @@ _cogl_texture_2d_set_region (CoglTexture *tex, } static CoglBool +_cogl_texture_2d_copy_sub_image (CoglTexture *tex, + GLint xoffset, + GLint yoffset, + GLint x, + GLint y, + GLsizei width, + GLsizei height, + CoglError **error) +{ + CoglContext *ctx = tex->context; + CoglTexture2D *tex_2d = COGL_TEXTURE_2D (tex); + + cogl_texture_allocate (tex, NULL); /* (abort on error) */ + + ctx->driver_vtable->texture_2d_copy_sub_image (tex_2d, + xoffset, + yoffset, + x, + y, + width, + height, + error); + + tex_2d->mipmaps_dirty = TRUE; + + return TRUE; +} + +static CoglBool _cogl_texture_2d_get_data (CoglTexture *tex, CoglPixelFormat format, int rowstride, @@ -675,6 +704,7 @@ cogl_texture_2d_vtable = TRUE, /* primitive */ _cogl_texture_2d_allocate, _cogl_texture_2d_set_region, + _cogl_texture_2d_copy_sub_image, _cogl_texture_2d_get_data, NULL, /* foreach_sub_texture_in_region */ _cogl_texture_2d_get_max_waste, diff --git a/cogl/cogl-texture-3d.c b/cogl/cogl-texture-3d.c index 8e2ff08..a59d386 100644 --- a/cogl/cogl-texture-3d.c +++ b/cogl/cogl-texture-3d.c @@ -741,6 +741,7 @@ cogl_texture_3d_vtable = TRUE, /* primitive */ _cogl_texture_3d_allocate, _cogl_texture_3d_set_region, + NULL, /* copy_sub_image */ _cogl_texture_3d_get_data, NULL, /* foreach_sub_texture_in_region */ _cogl_texture_3d_get_max_waste, diff --git a/cogl/cogl-texture-private.h b/cogl/cogl-texture-private.h index 472c41d..34ff81c 100644 --- a/cogl/cogl-texture-private.h +++ b/cogl/cogl-texture-private.h @@ -90,6 +90,15 @@ struct _CoglTextureVtable CoglBitmap *bitmap, CoglError **error); + CoglBool (* copy_sub_image) (CoglTexture *texture, + GLint xoffset, + GLint yoffset, + GLint x, + GLint y, + GLsizei width, + GLsizei height, + CoglError **error); + /* This should copy the image data of the texture into @data. The requested format will have been first passed through ctx->texture_driver->find_best_gl_get_data_format so it should diff --git a/cogl/cogl-texture-rectangle.c b/cogl/cogl-texture-rectangle.c index 65d2f06..9f533c9 100644 --- a/cogl/cogl-texture-rectangle.c +++ b/cogl/cogl-texture-rectangle.c @@ -761,6 +761,7 @@ cogl_texture_rectangle_vtable = TRUE, /* primitive */ _cogl_texture_rectangle_allocate, _cogl_texture_rectangle_set_region, + NULL, /* copy_sub_image */ _cogl_texture_rectangle_get_data, NULL, /* foreach_sub_texture_in_region */ _cogl_texture_rectangle_get_max_waste, diff --git a/cogl/cogl-texture.c b/cogl/cogl-texture.c index d93db22..1f4b43c 100644 --- a/cogl/cogl-texture.c +++ b/cogl/cogl-texture.c @@ -514,6 +514,39 @@ cogl_texture_set_region (CoglTexture *texture, } CoglBool +cogl_texture_copy_sub_image (CoglTexture *texture, + int xoffset, + int yoffset, + int x, + int y, + size_t width, + size_t height) +{ + CoglError *ignore_error = NULL; + CoglBool status; + + if (!texture->allocated) + cogl_texture_allocate (texture, NULL); + + if (!texture->vtable->copy_sub_image) + return FALSE; + + status = texture->vtable->copy_sub_image (texture, + xoffset, + yoffset, + x, + y, + width, + height, + &ignore_error); + + if (!status) + cogl_error_free (ignore_error); + return status; +} + + +CoglBool cogl_texture_set_data (CoglTexture *texture, CoglPixelFormat format, int rowstride, diff --git a/cogl/cogl-texture.h b/cogl/cogl-texture.h index 2718830..81657d1 100644 --- a/cogl/cogl-texture.h +++ b/cogl/cogl-texture.h @@ -399,6 +399,15 @@ cogl_texture_set_region (CoglTexture *texture, unsigned int rowstride, const uint8_t *data); +CoglBool +cogl_texture_copy_sub_image (CoglTexture *texture, + int xoffset, + int yoffset, + int x, + int y, + size_t width, + size_t height); + #if defined (COGL_ENABLE_EXPERIMENTAL_API) /** diff --git a/cogl/driver/gl/cogl-texture-2d-gl-private.h b/cogl/driver/gl/cogl-texture-2d-gl-private.h index e5c6585..d2f9985 100644 --- a/cogl/driver/gl/cogl-texture-2d-gl-private.h +++ b/cogl/driver/gl/cogl-texture-2d-gl-private.h @@ -109,6 +109,15 @@ _cogl_texture_2d_gl_copy_from_bitmap (CoglTexture2D *tex_2d, int dst_y, int level, CoglError **error); +CoglBool +_cogl_texture_2d_gl_copy_sub_image (CoglTexture2D *tex_2d, + GLint xoffset, + GLint yoffset, + GLint x, + GLint y, + GLsizei width, + GLsizei height, + CoglError **error); void _cogl_texture_2d_gl_get_data (CoglTexture2D *tex_2d, diff --git a/cogl/driver/gl/cogl-texture-2d-gl.c b/cogl/driver/gl/cogl-texture-2d-gl.c index 8675f52..bc15ac5 100644 --- a/cogl/driver/gl/cogl-texture-2d-gl.c +++ b/cogl/driver/gl/cogl-texture-2d-gl.c @@ -35,6 +35,7 @@ #include #include +#include #include "cogl-private.h" #include "cogl-texture-private.h" @@ -719,6 +720,44 @@ _cogl_texture_2d_gl_copy_from_bitmap (CoglTexture2D *tex_2d, return status; } +CoglBool +_cogl_texture_2d_gl_copy_sub_image (CoglTexture2D *tex_2d, + GLint xoffset, + GLint yoffset, + GLint x, + GLint y, + GLsizei width, + GLsizei height, + CoglError **error) +{ + CoglContext *ctx = COGL_TEXTURE (tex_2d)->context; + + if (ctx->current_read_buffer == NULL) + return FALSE; + + if (ctx->current_draw_buffer) + _cogl_framebuffer_flush_journal (ctx->current_draw_buffer); + + if (ctx->current_read_buffer != NULL && + ctx->current_read_buffer != ctx->current_draw_buffer) + _cogl_framebuffer_flush_journal (ctx->current_read_buffer); + + _cogl_bind_gl_texture_transient (GL_TEXTURE_2D, + tex_2d->gl_texture, + tex_2d->is_foreign); + + ctx->glCopyTexSubImage2D (GL_TEXTURE_2D, + 0, + xoffset, + yoffset, + x, + y, + width, + height); + + return TRUE; +} + void _cogl_texture_2d_gl_get_data (CoglTexture2D *tex_2d, CoglPixelFormat format, diff --git a/cogl/driver/gl/gl/cogl-driver-gl.c b/cogl/driver/gl/gl/cogl-driver-gl.c index f305b6a..f7f5020 100644 --- a/cogl/driver/gl/gl/cogl-driver-gl.c +++ b/cogl/driver/gl/gl/cogl-driver-gl.c @@ -695,6 +695,7 @@ _cogl_driver_gl = _cogl_texture_2d_gl_get_gl_handle, _cogl_texture_2d_gl_generate_mipmap, _cogl_texture_2d_gl_copy_from_bitmap, + _cogl_texture_2d_gl_copy_sub_image, _cogl_texture_2d_gl_get_data, _cogl_gl_flush_attributes_state, _cogl_clip_stack_gl_flush, diff --git a/cogl/driver/gl/gles/cogl-driver-gles.c b/cogl/driver/gl/gles/cogl-driver-gles.c index e94449f..f5ac771 100644 --- a/cogl/driver/gl/gles/cogl-driver-gles.c +++ b/cogl/driver/gl/gles/cogl-driver-gles.c @@ -476,6 +476,7 @@ _cogl_driver_gles = _cogl_texture_2d_gl_get_gl_handle, _cogl_texture_2d_gl_generate_mipmap, _cogl_texture_2d_gl_copy_from_bitmap, + _cogl_texture_2d_gl_copy_sub_image, NULL, /* texture_2d_get_data */ _cogl_gl_flush_attributes_state, _cogl_clip_stack_gl_flush, diff --git a/cogl/driver/nop/cogl-driver-nop.c b/cogl/driver/nop/cogl-driver-nop.c index 53f5975..9d88955 100644 --- a/cogl/driver/nop/cogl-driver-nop.c +++ b/cogl/driver/nop/cogl-driver-nop.c @@ -80,6 +80,7 @@ _cogl_driver_nop = _cogl_texture_2d_nop_get_gl_handle, _cogl_texture_2d_nop_generate_mipmap, _cogl_texture_2d_nop_copy_from_bitmap, + NULL, /* texture_2d_copy_from_image */ NULL, /* texture_2d_get_data */ _cogl_nop_flush_attributes_state, _cogl_clip_stack_nop_flush, diff --git a/cogl/winsys/cogl-texture-pixmap-x11.c b/cogl/winsys/cogl-texture-pixmap-x11.c index 398c357..a44cdaf 100644 --- a/cogl/winsys/cogl-texture-pixmap-x11.c +++ b/cogl/winsys/cogl-texture-pixmap-x11.c @@ -1164,6 +1164,7 @@ cogl_texture_pixmap_x11_vtable = FALSE, /* not primitive */ _cogl_texture_pixmap_x11_allocate, _cogl_texture_pixmap_x11_set_region, + NULL, /* copy_sub_image */ _cogl_texture_pixmap_x11_get_data, _cogl_texture_pixmap_x11_foreach_sub_texture_in_region, _cogl_texture_pixmap_x11_get_max_waste, -- 2.9.5