[cairo-commit] glitz/src glitz.c, 1.6, 1.7 glitz.h, 1.7,
1.8 glitz_agl_surface.c, 1.6, 1.7 glitz_glx_info.c, 1.4,
1.5 glitz_glx_surface.c, 1.7, 1.8 glitz_glxext.h, 1.3,
1.4 glitz_glxint.h, 1.6, 1.7 glitz_programmatic.c, 1.4,
1.5 glitz_surface.c, 1.8, 1.9 glitz_texture.c, 1.4,
1.5 glitz_util.c, 1.3, 1.4 glitzint.h, 1.11, 1.12
David Reveman
commit at pdx.freedesktop.org
Wed May 12 17:47:34 PDT 2004
Committed by: davidr
Update of /cvs/cairo/glitz/src
In directory pdx:/tmp/cvs-serv30558/src
Modified Files:
glitz.c glitz.h glitz_agl_surface.c glitz_glx_info.c
glitz_glx_surface.c glitz_glxext.h glitz_glxint.h
glitz_programmatic.c glitz_surface.c glitz_texture.c
glitz_util.c glitzint.h
Log Message:
Added copy area operation
Index: glitz.c
===================================================================
RCS file: /cvs/cairo/glitz/src/glitz.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** a/glitz.c 10 May 2004 15:14:39 -0000 1.6
--- b/glitz.c 13 May 2004 00:47:32 -0000 1.7
***************
*** 589,593 ****
clip.y1 = y_dst;
clip.x2 = clip.x1 + width;
! clip.y2 = clip.y1 + height;
gl->scissor (clip.x1, dst->height - (clip.y1 + height), width, height);
--- 589,593 ----
clip.y1 = y_dst;
clip.x2 = clip.x1 + width;
! clip.y2 = clip.y1 + height;
gl->scissor (clip.x1, dst->height - (clip.y1 + height), width, height);
***************
*** 875,876 ****
--- 875,985 ----
glitz_surface_destroy (intermediate);
}
+
+ void
+ glitz_copy_area (glitz_surface_t *src,
+ glitz_surface_t *dst,
+ int x_src,
+ int y_src,
+ int width,
+ int height,
+ int x_dst,
+ int y_dst)
+ {
+ glitz_bounding_box_t box, src_box, dst_box;
+ int status;
+
+ if (SURFACE_PROGRAMMATIC (dst) || SURFACE_PROGRAMMATIC (src))
+ return;
+
+ box.x1 = x_src;
+ box.y1 = y_src;
+ box.x2 = box.x1 + width;
+ box.y2 = box.y1 + height;
+
+ src_box.x1 = src_box.y1 = 0;
+ src_box.x2 = src->width;
+ src_box.y2 = src->height;
+
+ glitz_intersect_bounding_box (&box, &src_box, &src_box);
+
+ box.x1 = x_dst;
+ box.y1 = y_dst;
+ box.x2 = box.x1 + (src_box.x2 - src_box.x1);
+ box.y2 = box.y1 + (src_box.y2 - src_box.y1);
+
+ dst_box.x1 = dst_box.y1 = 0;
+ dst_box.x2 = dst->width;
+ dst_box.y2 = dst->height;
+
+ glitz_intersect_bounding_box (&box, &dst_box, &dst_box);
+
+ x_src = src_box.x1;
+ y_src = src_box.y1;
+ width = dst_box.x2 - dst_box.x1;
+ height = dst_box.y2 - dst_box.y1;
+ x_dst = dst_box.x1;
+ y_dst = dst_box.y1;
+
+ if (width <= 0 || height <= 0) {
+ glitz_surface_status_add (dst, GLITZ_STATUS_BAD_COORDINATE_MASK);
+ return;
+ }
+
+ status = 0;
+ if (glitz_surface_try_push_current (dst,
+ GLITZ_CN_SURFACE_DRAWABLE_CURRENT)) {
+ if (src != dst)
+ status = glitz_surface_make_current_read (src);
+ else
+ status = 1;
+
+ if (status) {
+ if (src->format->doublebuffer)
+ dst->gl->read_buffer (GLITZ_GL_BACK);
+ if (dst->format->doublebuffer)
+ dst->gl->draw_buffer (GLITZ_GL_BACK);
+
+ dst->gl->disable (GLITZ_GL_SCISSOR_TEST);
+ dst->gl->disable (GLITZ_GL_DITHER);
+ glitz_set_operator (dst->gl, GLITZ_OPERATOR_SRC);
+
+ dst->gl->pixel_zoom (1.0, 1.0);
+ glitz_set_raster_pos (dst->gl, x_dst, dst->height - (y_dst + height));
+ dst->gl->copy_pixels (x_src, src->height - (y_src + height),
+ width, height, GLITZ_GL_COLOR);
+ } else
+ glitz_composite (GLITZ_OPERATOR_SRC, src, NULL, dst,
+ x_src, y_src, 0, 0, x_dst, y_dst, width, height);
+ status = 1;
+ glitz_surface_pop_current (dst);
+ }
+
+ if (!status) {
+ if (glitz_surface_try_push_current (src,
+ GLITZ_CN_SURFACE_DRAWABLE_CURRENT)) {
+ glitz_texture_copy_surface (&dst->texture, src,
+ &dst_box, x_src, y_src);
+ status = 1;
+ }
+ glitz_surface_pop_current (src);
+ }
+
+ if (!status) {
+ int rowstride, bytes_per_pixel;
+ char *pixel_buf;
+
+ bytes_per_pixel = MAX ((dst->format->bpp / 8), (src->format->bpp / 8));
+
+ rowstride = width * bytes_per_pixel;
+ rowstride = (rowstride + 3) & -4;
+ pixel_buf = malloc (height * rowstride);
+ if (!pixel_buf) {
+ glitz_surface_status_add (dst, GLITZ_STATUS_NO_MEMORY_MASK);
+ return;
+ }
+ glitz_surface_read_pixels (src, x_src, y_src, width, height, pixel_buf);
+ glitz_surface_draw_pixels (dst, x_dst, y_dst, width, height, pixel_buf);
+ }
+
+ glitz_surface_dirty (dst, &dst_box);
+ }
Index: glitz.h
===================================================================
RCS file: /cvs/cairo/glitz/src/glitz.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** a/glitz.h 11 May 2004 08:56:08 -0000 1.7
--- b/glitz.h 13 May 2004 00:47:32 -0000 1.8
***************
*** 499,502 ****
--- 499,512 ----
int width,
int height);
+
+ void
+ glitz_copy_area (glitz_surface_t *src,
+ glitz_surface_t *dst,
+ int x_src,
+ int y_src,
+ int width,
+ int height,
+ int x_dst,
+ int y_dst);
#if defined(__cplusplus) || defined(c_plusplus)
Index: glitz_agl_surface.c
===================================================================
RCS file: /cvs/cairo/glitz/src/glitz_agl_surface.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** a/glitz_agl_surface.c 10 May 2004 15:14:39 -0000 1.6
--- b/glitz_agl_surface.c 13 May 2004 00:47:32 -0000 1.7
***************
*** 87,90 ****
--- 87,96 ----
}
+ static glitz_bool_t
+ _glitz_agl_surface_make_current_read (void *abstract_surface)
+ {
+ return 0;
+ }
+
static const struct glitz_surface_backend glitz_agl_surface_backend = {
_glitz_agl_surface_create_similar,
***************
*** 94,98 ****
_glitz_agl_surface_get_texture,
_glitz_agl_surface_update_size,
! _glitz_agl_surface_flush
};
--- 100,105 ----
_glitz_agl_surface_get_texture,
_glitz_agl_surface_update_size,
! _glitz_agl_surface_flush,
! _glitz_agl_surface_make_current_read
};
***************
*** 108,112 ****
} else
glitz_texture_copy_surface (&surface->base.texture, &surface->base,
! &surface->base.dirty_box);
surface->base.hint_mask &= ~GLITZ_INT_HINT_DIRTY_MASK;
--- 115,121 ----
} else
glitz_texture_copy_surface (&surface->base.texture, &surface->base,
! &surface->base.dirty_box,
! surface->base.dirty_box.x1,
! surface->base.dirty_box.y1);
surface->base.hint_mask &= ~GLITZ_INT_HINT_DIRTY_MASK;
Index: glitz_glx_info.c
===================================================================
RCS file: /cvs/cairo/glitz/src/glitz_glx_info.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** a/glitz_glx_info.c 9 May 2004 20:54:51 -0000 1.4
--- b/glitz_glx_info.c 13 May 2004 00:47:32 -0000 1.5
***************
*** 133,136 ****
--- 133,138 ----
info->glx.destroy_pbuffer = (glitz_glx_destroy_pbuffer_t)
glitz_glx_get_proc_address (info, "glXDestroyPbuffer");
+ info->glx.make_context_current = (glitz_glx_make_context_current_t)
+ glitz_glx_get_proc_address (info, "glXMakeContextCurrent");
info->glx.need_lookup = 0;
Index: glitz_glx_surface.c
===================================================================
RCS file: /cvs/cairo/glitz/src/glitz_glx_surface.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** a/glitz_glx_surface.c 10 May 2004 15:14:39 -0000 1.7
--- b/glitz_glx_surface.c 13 May 2004 00:47:32 -0000 1.8
***************
*** 85,88 ****
--- 85,105 ----
}
+ static glitz_bool_t
+ _glitz_glx_surface_make_current_read (void *abstract_surface)
+ {
+ glitz_glx_surface_t *surface = (glitz_glx_surface_t *) abstract_surface;
+ glitz_glx_static_proc_address_list_t *glx =
+ &surface->screen_info->display_info->thread_info->glx;
+
+ if (glx->make_context_current && surface->drawable)
+ return
+ glx->make_context_current (surface->screen_info->display_info->display,
+ glXGetCurrentDrawable (),
+ surface->drawable,
+ glXGetCurrentContext ());
+ else
+ return 0;
+ }
+
static const struct glitz_surface_backend glitz_glx_surface_backend = {
_glitz_glx_surface_create_similar,
***************
*** 92,96 ****
_glitz_glx_surface_get_texture,
_glitz_glx_surface_update_size,
! _glitz_glx_surface_flush
};
--- 109,114 ----
_glitz_glx_surface_get_texture,
_glitz_glx_surface_update_size,
! _glitz_glx_surface_flush,
! _glitz_glx_surface_make_current_read
};
***************
*** 122,126 ****
if (surface->base.hint_mask & GLITZ_INT_HINT_DIRTY_MASK) {
glitz_texture_copy_surface (&surface->base.texture, &surface->base,
! &surface->base.dirty_box);
surface->base.hint_mask &= ~GLITZ_INT_HINT_DIRTY_MASK;
}
--- 140,146 ----
if (surface->base.hint_mask & GLITZ_INT_HINT_DIRTY_MASK) {
glitz_texture_copy_surface (&surface->base.texture, &surface->base,
! &surface->base.dirty_box,
! surface->base.dirty_box.x1,
! surface->base.dirty_box.y1);
surface->base.hint_mask &= ~GLITZ_INT_HINT_DIRTY_MASK;
}
Index: glitz_glxext.h
===================================================================
RCS file: /cvs/cairo/glitz/src/glitz_glxext.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** a/glitz_glxext.h 9 May 2004 20:54:51 -0000 1.3
--- b/glitz_glxext.h 13 May 2004 00:47:32 -0000 1.4
***************
*** 106,109 ****
--- 106,111 ----
typedef void (* glitz_glx_destroy_pbuffer_t)
(Display *display, GLXPbuffer pbuffer);
+ typedef Bool (* glitz_glx_make_context_current_t)
+ (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
#ifndef GLX_ARB_multisample
Index: glitz_glxint.h
===================================================================
RCS file: /cvs/cairo/glitz/src/glitz_glxint.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** a/glitz_glxint.h 9 May 2004 20:54:51 -0000 1.6
--- b/glitz_glxint.h 13 May 2004 00:47:32 -0000 1.7
***************
*** 61,64 ****
--- 61,65 ----
glitz_glx_create_pbuffer_t create_pbuffer;
glitz_glx_destroy_pbuffer_t destroy_pbuffer;
+ glitz_glx_make_context_current_t make_context_current;
glitz_bool_t need_lookup;
} glitz_glx_static_proc_address_list_t;
Index: glitz_programmatic.c
===================================================================
RCS file: /cvs/cairo/glitz/src/glitz_programmatic.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** a/glitz_programmatic.c 6 May 2004 14:55:03 -0000 1.4
--- b/glitz_programmatic.c 13 May 2004 00:47:32 -0000 1.5
***************
*** 90,97 ****
static void
! _glitz_programmatic_surface_realize (void *abstract_surface) {}
static void
! _glitz_programmatic_surface_show (void *abstract_surface) {}
static const struct glitz_surface_backend
--- 90,103 ----
static void
! _glitz_programmatic_surface_update_size (void *abstract_surface) {}
static void
! _glitz_programmatic_surface_flush (void *abstract_surface) {}
!
! static glitz_bool_t
! _glitz_programmatic_surface_make_current_read (void *abstract_surface)
! {
! return 0;
! }
static const struct glitz_surface_backend
***************
*** 102,107 ****
_glitz_programmatic_surface_pop_current,
_glitz_programmatic_surface_get_texture,
! _glitz_programmatic_surface_realize,
! _glitz_programmatic_surface_show
};
--- 108,114 ----
_glitz_programmatic_surface_pop_current,
_glitz_programmatic_surface_get_texture,
! _glitz_programmatic_surface_update_size,
! _glitz_programmatic_surface_flush,
! _glitz_programmatic_surface_make_current_read
};
***************
*** 125,129 ****
glitz_surface_init (&surface->base,
&glitz_programmatic_surface_backend,
! NULL, NULL, 1, 1, NULL, 0);
surface->base.hint_mask |= GLITZ_HINT_PROGRAMMATIC_MASK;
--- 132,136 ----
glitz_surface_init (&surface->base,
&glitz_programmatic_surface_backend,
! NULL, NULL, MAXSHORT, MAXSHORT, NULL, 0);
surface->base.hint_mask |= GLITZ_HINT_PROGRAMMATIC_MASK;
Index: glitz_surface.c
===================================================================
RCS file: /cvs/cairo/glitz/src/glitz_surface.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** a/glitz_surface.c 10 May 2004 21:00:31 -0000 1.8
--- b/glitz_surface.c 13 May 2004 00:47:32 -0000 1.9
***************
*** 58,62 ****
if (surface->gl)
! glitz_texture_init (gl, &surface->texture,
width, height,
glitz_get_gl_format_from_bpp (format->bpp),
--- 58,62 ----
if (surface->gl)
! glitz_texture_init (&surface->texture,
width, height,
glitz_get_gl_format_from_bpp (format->bpp),
***************
*** 156,162 ****
}
! static glitz_bool_t
! _glitz_surface_try_push_current (glitz_surface_t *surface,
! glitz_constraint_t constraint)
{
if (!surface->backend->push_current (surface, constraint))
--- 156,162 ----
}
! glitz_bool_t
! glitz_surface_try_push_current (glitz_surface_t *surface,
! glitz_constraint_t constraint)
{
if (!surface->backend->push_current (surface, constraint))
***************
*** 423,450 ****
slim_hidden_def(glitz_surface_update_size);
- static void
- _glitz_set_raster_pos (glitz_gl_proc_address_list_t *gl,
- int x,
- int y)
- {
- gl->push_attrib (GLITZ_GL_TRANSFORM_BIT | GLITZ_GL_VIEWPORT_BIT);
- gl->matrix_mode (GLITZ_GL_PROJECTION);
- gl->push_matrix ();
- gl->load_identity ();
- gl->matrix_mode (GLITZ_GL_MODELVIEW);
- gl->push_matrix ();
- gl->load_identity ();
- gl->depth_range (0, 1);
- gl->viewport (-1, -1, 2, 2);
-
- gl->raster_pos_2d (0, 0);
- gl->bitmap (0, 0, 1, 1, x, y, NULL);
-
- gl->pop_matrix ();
- gl->matrix_mode (GLITZ_GL_PROJECTION);
- gl->pop_matrix ();
- gl->pop_attrib ();
- }
-
void
glitz_surface_flush (glitz_surface_t *surface,
--- 423,426 ----
***************
*** 474,478 ****
glitz_set_operator (surface->gl, GLITZ_OPERATOR_SRC);
! _glitz_set_raster_pos (surface->gl, x, surface->height - (y + height));
surface->gl->copy_pixels (x, surface->height - (y + height),
width, height, GLITZ_GL_COLOR);
--- 450,454 ----
glitz_set_operator (surface->gl, GLITZ_OPERATOR_SRC);
! glitz_set_raster_pos (surface->gl, x, surface->height - (y + height));
surface->gl->copy_pixels (x, surface->height - (y + height),
width, height, GLITZ_GL_COLOR);
***************
*** 487,490 ****
--- 463,472 ----
slim_hidden_def(glitz_surface_flush);
+ glitz_bool_t
+ glitz_surface_make_current_read (glitz_surface_t *surface)
+ {
+ return surface->backend->make_current_read (surface);
+ }
+
void
glitz_surface_dirty (glitz_surface_t *surface,
***************
*** 583,588 ****
copy the part we want, not very efficient. We only want to read the
area requested. I think it can be fixed with glPixelStore parameters. */
! if (_glitz_surface_try_push_current (surface,
! GLITZ_CN_SURFACE_DRAWABLE_CURRENT)) {
if (format == GLITZ_GL_LUMINANCE_ALPHA)
--- 565,570 ----
copy the part we want, not very efficient. We only want to read the
area requested. I think it can be fixed with glPixelStore parameters. */
! if (glitz_surface_try_push_current (surface,
! GLITZ_CN_SURFACE_DRAWABLE_CURRENT)) {
if (format == GLITZ_GL_LUMINANCE_ALPHA)
***************
*** 655,659 ****
free (pixel_buf);
}
- slim_hidden_def(glitz_surface_read_pixels);
void
--- 637,640 ----
***************
*** 665,669 ****
char *pixels)
{
! unsigned char *pixel_buf = NULL;
glitz_gl_enum_t format, type;
int bytes_per_pixel;
--- 646,650 ----
char *pixels)
{
! char *pixel_buf = NULL;
glitz_gl_enum_t format, type;
int bytes_per_pixel;
***************
*** 684,689 ****
drawable =
! _glitz_surface_try_push_current (surface,
! GLITZ_CN_SURFACE_DRAWABLE_CURRENT);
if (format == GLITZ_GL_LUMINANCE_ALPHA) {
--- 665,670 ----
drawable =
! glitz_surface_try_push_current (surface,
! GLITZ_CN_SURFACE_DRAWABLE_CURRENT);
if (format == GLITZ_GL_LUMINANCE_ALPHA) {
***************
*** 731,738 ****
if (format == GLITZ_GL_LUMINANCE_ALPHA) {
surface->gl->pixel_zoom (1.0, 1.0);
! _glitz_set_raster_pos (surface->gl, x, surface->height - y - height);
} else {
surface->gl->pixel_zoom (1.0, -1.0);
! _glitz_set_raster_pos (surface->gl, x, surface->height - y);
}
--- 712,719 ----
if (format == GLITZ_GL_LUMINANCE_ALPHA) {
surface->gl->pixel_zoom (1.0, 1.0);
! glitz_set_raster_pos (surface->gl, x, surface->height - y - height);
} else {
surface->gl->pixel_zoom (1.0, -1.0);
! glitz_set_raster_pos (surface->gl, x, surface->height - y);
}
***************
*** 762,766 ****
free (pixel_buf);
}
- slim_hidden_def(glitz_surface_draw_pixels);
void
--- 743,746 ----
Index: glitz_texture.c
===================================================================
RCS file: /cvs/cairo/glitz/src/glitz_texture.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** a/glitz_texture.c 10 May 2004 15:14:39 -0000 1.4
--- b/glitz_texture.c 13 May 2004 00:47:32 -0000 1.5
***************
*** 49,54 ****
void
! glitz_texture_init (glitz_gl_proc_address_list_t *gl,
! glitz_texture_t *texture,
unsigned int width,
unsigned int height,
--- 49,53 ----
void
! glitz_texture_init (glitz_texture_t *texture,
unsigned int width,
unsigned int height,
***************
*** 215,220 ****
glitz_texture_copy_surface (glitz_texture_t *texture,
glitz_surface_t *surface,
! glitz_bounding_box_t *box)
{
glitz_surface_push_current (surface, GLITZ_CN_SURFACE_DRAWABLE_CURRENT);
--- 214,223 ----
glitz_texture_copy_surface (glitz_texture_t *texture,
glitz_surface_t *surface,
! glitz_bounding_box_t *box,
! int x_src,
! int y_src)
{
+ int x_dst, y_dst, width, height;
+
glitz_surface_push_current (surface, GLITZ_CN_SURFACE_DRAWABLE_CURRENT);
***************
*** 224,237 ****
_glitz_texture_allocate (surface->gl, texture);
! if (box->x1 < 0) box->x1 = 0;
! if (box->y1 < 0) box->y1 = 0;
! if (box->x2 > surface->width) box->x2 = surface->width;
! if (box->y2 > surface->height) box->y2 = surface->height;
!
surface->gl->copy_tex_sub_image_2d (texture->target, 0,
! box->x1, box->y1,
! box->x1, box->y1,
! box->x2 - box->x1,
! box->y2 - box->y1);
surface->gl->flush ();
--- 227,244 ----
_glitz_texture_allocate (surface->gl, texture);
! if (x_src < 0) x_src = 0;
! if (y_src < 0) y_src = 0;
!
! x_dst = (box->x1 > 0)? box->x1: 0;
! y_dst = (box->y1 > 0)? box->y1: 0;
! width = (box->x2 < (int) texture->width)?
! box->x2 - x_dst: (int) texture->width - x_dst;
! height = (box->x2 < (int) texture->height)?
! box->y2 - y_dst: (int) texture->height - y_dst;
!
surface->gl->copy_tex_sub_image_2d (texture->target, 0,
! x_dst, y_dst,
! x_src, y_src,
! width, height);
surface->gl->flush ();
Index: glitz_util.c
===================================================================
RCS file: /cvs/cairo/glitz/src/glitz_util.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** a/glitz_util.c 10 May 2004 15:14:40 -0000 1.3
--- b/glitz_util.c 13 May 2004 00:47:32 -0000 1.4
***************
*** 191,192 ****
--- 191,216 ----
*value = x;
}
+
+ void
+ glitz_set_raster_pos (glitz_gl_proc_address_list_t *gl,
+ int x,
+ int y)
+ {
+ gl->push_attrib (GLITZ_GL_TRANSFORM_BIT | GLITZ_GL_VIEWPORT_BIT);
+ gl->matrix_mode (GLITZ_GL_PROJECTION);
+ gl->push_matrix ();
+ gl->load_identity ();
+ gl->matrix_mode (GLITZ_GL_MODELVIEW);
+ gl->push_matrix ();
+ gl->load_identity ();
+ gl->depth_range (0, 1);
+ gl->viewport (-1, -1, 2, 2);
+
+ gl->raster_pos_2d (0, 0);
+ gl->bitmap (0, 0, 1, 1, x, y, NULL);
+
+ gl->pop_matrix ();
+ gl->matrix_mode (GLITZ_GL_PROJECTION);
+ gl->pop_matrix ();
+ gl->pop_attrib ();
+ }
Index: glitzint.h
===================================================================
RCS file: /cvs/cairo/glitz/src/glitzint.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** a/glitzint.h 11 May 2004 08:48:53 -0000 1.11
--- b/glitzint.h 13 May 2004 00:47:32 -0000 1.12
***************
*** 272,275 ****
--- 272,278 ----
void
(*flush) (void *surface);
+
+ glitz_bool_t
+ (*make_current_read) (void *surface);
} glitz_surface_backend_t;
***************
*** 448,453 ****
void
! glitz_texture_init (glitz_gl_proc_address_list_t *gl,
! glitz_texture_t *texture,
unsigned int width,
unsigned int height,
--- 451,460 ----
void
! glitz_set_raster_pos (glitz_gl_proc_address_list_t *gl,
! int x,
! int y);
!
! void
! glitz_texture_init (glitz_texture_t *texture,
unsigned int width,
unsigned int height,
***************
*** 480,484 ****
glitz_texture_copy_surface (glitz_texture_t *texture,
glitz_surface_t *surface,
! glitz_bounding_box_t *box);
void
--- 487,493 ----
glitz_texture_copy_surface (glitz_texture_t *texture,
glitz_surface_t *surface,
! glitz_bounding_box_t *box,
! int x_src,
! int y_src);
void
***************
*** 511,517 ****
--- 520,533 ----
glitz_constraint_t constraint);
+ extern glitz_bool_t __internal_linkage
+ glitz_surface_try_push_current (glitz_surface_t *surface,
+ glitz_constraint_t constraint);
+
void
glitz_surface_pop_current (glitz_surface_t *surface);
+ extern glitz_bool_t __internal_linkage
+ glitz_surface_make_current_read (glitz_surface_t *surface);
+
extern void __internal_linkage
glitz_surface_bounds (glitz_surface_t *surface,
***************
*** 605,609 ****
glitz_surface_t *dst);
! extern void __internal_linkage
glitz_programs_fini (glitz_gl_proc_address_list_t *gl,
glitz_programs_t *programs);
--- 621,625 ----
glitz_surface_t *dst);
! void
glitz_programs_fini (glitz_gl_proc_address_list_t *gl,
glitz_programs_t *programs);
***************
*** 742,747 ****
slim_hidden_proto(glitz_surface_update_size)
slim_hidden_proto(glitz_surface_flush)
- slim_hidden_proto(glitz_surface_read_pixels)
- slim_hidden_proto(glitz_surface_draw_pixels)
slim_hidden_proto(glitz_surface_get_status)
slim_hidden_proto(glitz_surface_get_gl_texture)
--- 758,761 ----
***************
*** 768,772 ****
slim_hidden_proto(glitz_color_range_put_back_data)
slim_hidden_proto(glitz_color_range_set_filter)
! slim_hidden_proto(glitz_color_range_set_extend)
#endif /* GLITZINT_H_INCLUDED */
--- 782,786 ----
slim_hidden_proto(glitz_color_range_put_back_data)
slim_hidden_proto(glitz_color_range_set_filter)
! slim_hidden_proto(glitz_color_range_set_extend)
#endif /* GLITZINT_H_INCLUDED */
More information about the cairo-commit
mailing list