import cogl-1.22.2-10.el8

This commit is contained in:
CentOS Sources 2021-07-27 16:26:55 +00:00 committed by Andrew Lukoshko
commit 4ece135df9
6 changed files with 1014 additions and 0 deletions

1
.cogl.metadata Normal file
View File

@ -0,0 +1 @@
75f464d5156feb1b6c1fb553d543691711ff01a2 SOURCES/cogl-1.22.2.tar.xz

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/cogl-1.22.2.tar.xz

View File

@ -0,0 +1,117 @@
From 988e021960eb372be50038fdf0b2874f063c02b6 Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
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 <ajax@redhat.com>
---
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

View File

@ -0,0 +1,96 @@
From 78636289b073d67209a20145ef0dc003f2d77db6 Mon Sep 17 00:00:00 2001
From: Sian Cao <yinshuiboy@gmail.com>
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 <yinshuiboy@gmail.com>: 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

View File

@ -0,0 +1,373 @@
From d8b34ab0604d80d0be22b8b78e9aa6bf4fac7db0 Mon Sep 17 00:00:00 2001
From: Sian Cao <yinshuiboy@gmail.com>
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 <yinshuiboy@gmail.com>: initial
Bowen Li <sensor.wen@gmail.com>: 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 <config.h>
#include <string.h>
+#include <stdio.h>
#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

426
SPECS/cogl.spec Normal file
View File

@ -0,0 +1,426 @@
%if 0%{?fedora} || 0%{?rhel} > 7
%global with_wayland 1
%endif
%global with_tests 1
Name: cogl
Version: 1.22.2
Release: 10%{?dist}
Summary: A library for using 3D graphics hardware to draw pretty pictures
License: LGPLv2+
URL: http://www.clutter-project.org/
Source0: http://download.gnome.org/sources/cogl/1.22/cogl-%{version}.tar.xz
# Vaguely related to https://bugzilla.gnome.org/show_bug.cgi?id=772419
# but on the 1.22 branch, and the static inline in the header is gross
# ajax promises he'll clean this up.
Patch0: 0001-egl-Use-eglGetPlatformDisplay-not-eglGetDisplay.patch
# "GL_ARB_shader_texture_lod" is used to do lod biased texturing. It
# make achieve faster blurring of images instead of using large blur radius.
Patch1: 0002-add-GL_ARB_shader_texture_lod-support.patch
# "copy_sub_image" 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.
Patch2: 0003-texture-support-copy_sub_image.patch
BuildRequires: chrpath
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(gbm)
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(gtk-doc)
BuildRequires: pkgconfig(pango)
BuildRequires: pkgconfig(xcomposite)
BuildRequires: pkgconfig(xdamage)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xfixes)
BuildRequires: pkgconfig(xrandr)
%if 0%{?with_wayland}
BuildRequires: pkgconfig(wayland-server)
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-cursor)
BuildRequires: pkgconfig(wayland-egl)
BuildRequires: pkgconfig(xkbcommon)
%endif
%if 0%{?fedora}
# From rhughes-f20-gnome-3-12 copr
Obsoletes: compat-cogl116 < 1.18
%endif
%description
Cogl is a small open source library for using 3D graphics hardware to draw
pretty pictures. The API departs from the flat state machine style of
OpenGL and is designed to make it easy to write orthogonal components that
can render without stepping on each others toes.
As well aiming for a nice API, we think having a single library as opposed
to an API specification like OpenGL has a few advantages too; like being
able to paper over the inconsistencies/bugs of different OpenGL
implementations in a centralized place, not to mention the myriad of OpenGL
extensions. It also means we are in a better position to provide utility
APIs that help software developers since they only need to be implemented
once and there is no risk of inconsistency between implementations.
Having other backends, besides OpenGL, such as drm, Gallium or D3D are
options we are interested in for the future.
%package devel
Summary: %{name} development environment
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
Header files and libraries for building and developing apps with %{name}.
%package doc
Summary: Documentation for %{name}
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%description doc
This package contains documentation for %{name}.
%if 0%{?with_tests}
%package tests
Requires: %{name} = %{version}-%{release}
Summary: Tests for %{name}
%description tests
This package contains the installable tests for %{cogl}.
%endif
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%build
CFLAGS="$RPM_OPT_FLAGS -fPIC"
%configure \
--enable-cairo=yes \
--enable-cogl-pango=yes \
--enable-gdk-pixbuf=yes \
--enable-glx=yes \
--enable-gtk-doc \
--enable-introspection=yes \
--enable-kms-egl-platform \
%if 0%{?with_wayland}
--enable-wayland-egl-platform \
--enable-wayland-egl-server \
%endif
--enable-xlib-egl-platform \
%{?with_tests:--enable-installed-tests}
make %{?_smp_mflags} V=1
%install
%make_install
#Remove libtool archives.
find %{buildroot} -name '*.la' -delete
# This gets installed by mistake
rm %{buildroot}%{_datadir}/cogl/examples-data/crate.jpg
# Remove lib64 rpaths
chrpath --delete $RPM_BUILD_ROOT%{_libdir}/libcogl-path.so
chrpath --delete $RPM_BUILD_ROOT%{_libdir}/libcogl-pango.so
%find_lang %{name}
%check
# make check
%ldconfig_scriptlets
%files -f %{name}.lang
%license COPYING
%doc NEWS README
%{_libdir}/libcogl*.so.20*
%{_libdir}/girepository-1.0/Cogl*.typelib
%files devel
%{_includedir}/cogl
%{_libdir}/libcogl*.so
%{_libdir}/pkgconfig/*.pc
%{_datadir}/gir-1.0/Cogl*.gir
%files doc
%{_datadir}/gtk-doc/html/cogl
%{_datadir}/gtk-doc/html/cogl-2.0-experimental
%if 0%{?with_tests}
%files tests
%{_datadir}/installed-tests/%{name}
%{_libexecdir}/installed-tests/%{name}
%endif
%changelog
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.22.2-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Feb 03 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.22.2-9
- Switch to %%ldconfig_scriptlets
* Wed Nov 22 2017 Troy Dawson <tdawson@redhat.com> - 1.22.2-8
- Fix spec file conditionals
* Thu Sep 28 2017 mosquito <sensor.wen@gmail.com> - 1.22.2-7
- Add GL_ARB_shader_texture_lod and copy_sub_image support (#1421055)
- Add pkgconfig(egl) BReq for rawhide
- Move BReqs to pkgconfig
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.22.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.22.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Wed May 17 2017 Owen Taylor <otaylor@redhat.com> - 1.22.2-4
- Add Requires: %%{name} = %%{version}-%%{release} to the tests subpackage
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.22.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Tue Oct 11 2016 Adam Jackson <ajax@redhat.com> - 1.22.2-2
- Prefer eglGetPlatformDisplay to eglGetDisplay
* Fri Aug 26 2016 Kalev Lember <klember@redhat.com> - 1.22.2-1
- Update to 1.22.2
- Don't set group tags
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.22.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Wed Oct 21 2015 Ray Strode <rstrode@redhat.com> 1.22.0-2
- Fix black login screen
Resolves: #1272737
* Wed Sep 16 2015 Kalev Lember <klember@redhat.com> - 1.22.0-1
- Update to 1.22.0
* Fri Aug 21 2015 Kalev Lember <klember@redhat.com> - 1.21.2-2
- Re-enable parallel make
* Fri Aug 21 2015 Kalev Lember <klember@redhat.com> - 1.21.2-1
- Update to 1.21.2
- Use make_install macro
- Mark COPYING as %%license
- Drop large ChangeLog file
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.20.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Mon Mar 23 2015 Ray Strode <rstrode@redhat.com> 1.20.0-3
- Update to upstreamed version of mgag200 fix
* Wed Mar 11 2015 Ray Strode <rstrode@redhat.com> 1.20.0-2
- Try to fix wayland on mgag200
* Mon Feb 23 2015 Kalev Lember <kalevlember@gmail.com> - 1.20.0-1
- Update to 1.20.0
* Tue Jan 20 2015 Peter Robinson <pbrobinson@fedoraproject.org> 1.18.2-10
- Enable tests subpackage (rhbz 1163429)
* Sun Nov 16 2014 Kalev Lember <kalevlember@gmail.com> - 1.18.2-9
- Obsolete compat-cogl116 from rhughes-f20-gnome-3-12 copr
* Thu Nov 13 2014 Kalev Lember <kalevlember@gmail.com> - 1.18.2-8
- Disable cogl-gst as long as we don't have clutter-gst3 (#1158676)
* Sat Nov 01 2014 Richard Hughes <rhughes@redhat.com> - 1.18.2-7
- Fix compile on RHEL, harder
* Mon Oct 27 2014 Richard Hughes <rhughes@redhat.com> - 1.18.2-6
- Fix compile on RHEL
* Fri Aug 22 2014 Kalev Lember <kalevlember@gmail.com> - 1.18.2-5
- Remove lib64 rpaths (#1132876)
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Tue Jul 22 2014 Kalev Lember <kalevlember@gmail.com> - 1.18.2-3
- Rebuilt for gobject-introspection 1.41.4
* Fri Jul 11 2014 Peter Robinson <pbrobinson@fedoraproject.org> 1.18.2-2
- Run make check but don't fail build on it
* Fri Jul 04 2014 Kalev Lember <kalevlember@gmail.com> - 1.18.2-1
- Update to 1.18.2
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.18.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Fri May 23 2014 Kalev Lember <kalevlember@gmail.com> - 1.18.0-3
- Backport an upstream fix for a totem crash
* Thu May 08 2014 Adam Jackson <ajax@redhat.com>
- Add optional installed-tests subpackage
* Mon Apr 28 2014 Richard Hughes <rhughes@redhat.com> - 1.18.0-2
- Build with --enable-cogl-gst
* Fri Mar 21 2014 Kalev Lember <kalevlember@gmail.com> - 1.18.0-1
- Update to 1.18.0
* Fri Mar 21 2014 Kalev Lember <kalevlember@gmail.com> - 1.17.5-1.gitbb10532
- Update to 1.17.5 git snapshot
* Fri Feb 21 2014 Kalev Lember <kalevlember@gmail.com> - 1.17.4-2
- Drop compat-libcogl19
* Thu Feb 20 2014 Kalev Lember <kalevlember@gmail.com> - 1.17.4-1
- Update to 1.17.4, which includes soname bump
- Build a temporary compat-libcogl19 subpackage to ease the rebuilds
* Wed Feb 05 2014 Richard Hughes <rhughes@redhat.com> - 1.17.2-1
- Update to 1.17.2
* Tue Jan 21 2014 Richard Hughes <rhughes@redhat.com> - 1.16.2-1
- Update to 1.16.2
* Wed Sep 25 2013 Dan Horák <dan[at]danny.cz> - 1.16.0-2
- fix build on big endians (#1011893)
* Tue Sep 24 2013 Kalev Lember <kalevlember@gmail.com> - 1.16.0-1
- Update to 1.16.0
* Thu Sep 12 2013 Kalev Lember <kalevlember@gmail.com> - 1.15.10-3
- More configure options for enabling the gnome-shell Wayland compositor
- Enable parallel build
* Tue Sep 10 2013 Matthias Clasen <mclasen@redhat.com> - 1.15.10-2
- Add configure options that are needed to enable the gnome-shell
Wayland compositor
* Mon Sep 02 2013 Kalev Lember <kalevlember@gmail.com> - 1.15.10-1
- Update to 1.15.10
* Thu Aug 22 2013 Kalev Lember <kalevlember@gmail.com> - 1.15.8-1
- Update to 1.15.8
* Fri Aug 09 2013 Kalev Lember <kalevlember@gmail.com> - 1.15.4-1
- Update to 1.15.4
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.14.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Wed Jun 12 2013 Kalev Lember <kalevlember@gmail.com> 1.14.0-3
- Rebuilt
* Wed May 22 2013 Adam Jackson <ajax@redhat.com> 1.14.0-2
- cogl-1.14.0-21-ge26464f.patch: Sync with 1.14 branch for a crash fix.
* Mon Mar 25 2013 Kalev Lember <kalevlember@gmail.com> 1.14.0-1
- Update to 1.14.0
* Wed Mar 13 2013 Matthias Clasen <mclasen@redhat.com> 1.13.4-2
- Enable wayland backend
* Thu Feb 21 2013 Bastien Nocera <bnocera@redhat.com> 1.13.4-1
- Update to 1.13.4
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.13.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Thu Jan 24 2013 Peter Robinson <pbrobinson@fedoraproject.org> 1.13.2-1
- Update to 1.13.2
* Mon Jan 7 2013 Peter Robinson <pbrobinson@fedoraproject.org> 1.12.2-1
- Update to 1.12.2
* Tue Sep 25 2012 Kalev Lember <kalevlember@gmail.com> - 1.12.0-1
- Update to 1.12.0
* Tue Sep 18 2012 Kalev Lember <kalevlember@gmail.com> - 1.11.6-1
- Update to 1.11.6
- Drop upstreamed cogl-1.11.4-mesa-strings.patch
* Mon Sep 17 2012 Adam Jackson <ajax@redhat.com> 1.11.4-2
- cogl-1.11.4-mesa-strings.patch: Update match strings for Mesa.
* Mon Sep 3 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 1.11.4-1
- Update to 1.11.4
* Tue Aug 21 2012 Richard Hughes <hughsient@gmail.com> - 1.11.2-1
- Update to 1.11.2
* Fri Jul 27 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.10.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Wed Jul 18 2012 Kalev Lember <kalevlember@gmail.com> - 1.10.4-1
- Update to 1.10.4
- Dropped no-framebuffer-blit patch which is included in the release
* Thu Apr 19 2012 Adel Gadllah <adel.gadllah@gmail.com> - 1.10.2-1
- Update to 1.10.2
* Tue Mar 20 2012 Kalev Lember <kalevlember@gmail.com> - 1.10.0-1
- Update to 1.10.0
* Sat Mar 10 2012 Matthias Clasen <mclasen@redhat.com> - 1.9.8-1
- Update to 1.9.8
* Sat Feb 25 2012 Matthias Clasen <mclasen@redhat.com> - 1.9.6-1
- Update to 1.9.6
* Tue Jan 17 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 1.9.4-1
- Update to 1.9.4
- http://ftp.gnome.org/pub/GNOME/sources/cogl/1.9/cogl-1.9.4.news
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.9.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Wed Nov 23 2011 Matthias Clasen <mclasen@redhat.com> 1.9.2-1
- Update to 1.9.2
* Thu Nov 03 2011 Adam Jackson <ajax@redhat.com> 1.8.2-4
- cogl-1.8.2-lp-no-framebuffer-blit.patch: Disable the subbuffer blit code
when running on llvmpipe until it's unbroken.
* Tue Nov 01 2011 Adam Jackson <ajax@redhat.com> 1.8.2-3
- cogl-1.8.2-no-drm-hax.patch: Don't try insane direct DRM vblank wait.
* Wed Oct 26 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.2-2
- Rebuilt for glibc bug#747377
* Mon Oct 17 2011 Peter Robinson <pbrobinson@fedoraproject.org> - 1.8.2-1
- 1.8.2 stable release
- http://ftp.gnome.org/pub/GNOME/sources/cogl/1.8/cogl-1.8.2.news
- Enable gdk-pixbuf2 support - Fixes RHBZ # 738092
* Mon Sep 19 2011 Peter Robinson <pbrobinson@fedoraproject.org> - 1.8.0-1
- 1.8.0 stable release
- http://ftp.gnome.org/pub/GNOME/sources/cogl/1.8/cogl-1.8.0.news
* Mon Sep 5 2011 Peter Robinson <pbrobinson@fedoraproject.org> - 1.7.8-1
- Update to 1.7.8
* Thu Aug 18 2011 Matthias Clasen <mclasen@redhat.com> - 1.7.6-1
- Update to 1.7.6
* Tue Jul 26 2011 Matthias Clasen <mclasen@redhat.com> - 1.7.4-1
- Update to 1.7.4
* Mon Jul 4 2011 Peter Robinson <pbrobinson@fedoraproject.org> - 1.7.2-1
- Update to 1.7.2
* Thu Jun 16 2011 Peter Robinson <pbrobinson@fedoraproject.org> - 1.7.0-3
- Update spec for review feedback
* Thu Jun 16 2011 Peter Robinson <pbrobinson@fedoraproject.org> - 1.7.0-2
- Update spec for review feedback
* Wed Jun 15 2011 Peter Robinson <pbrobinson@fedoraproject.org> - 1.7.0-1
- Initial Package