mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-27 06:00:22 +00:00
Drop gdk_cairo_surface_upload_to_gl() helper
There is nothing really special about this code, its just a helper for uploading pixel data to opengl, and we're not really in the business of doing opengl-specific helper functions.
This commit is contained in:
parent
90fc671ef8
commit
a299bbfc58
@ -300,7 +300,6 @@ gdk_cairo_rectangle
|
|||||||
gdk_cairo_region
|
gdk_cairo_region
|
||||||
gdk_cairo_region_create_from_surface
|
gdk_cairo_region_create_from_surface
|
||||||
gdk_cairo_draw_from_gl
|
gdk_cairo_draw_from_gl
|
||||||
gdk_cairo_surface_upload_to_gl
|
|
||||||
</SECTION>
|
</SECTION>
|
||||||
|
|
||||||
<SECTION>
|
<SECTION>
|
||||||
|
@ -61,13 +61,6 @@ void gdk_cairo_draw_from_gl (cairo_t *cr,
|
|||||||
int width,
|
int width,
|
||||||
int height);
|
int height);
|
||||||
|
|
||||||
GDK_AVAILABLE_IN_ALL
|
|
||||||
void gdk_cairo_surface_upload_to_gl (cairo_surface_t *surface,
|
|
||||||
int target,
|
|
||||||
int width,
|
|
||||||
int height,
|
|
||||||
GdkGLContext *context);
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GDK_CAIRO_H__ */
|
#endif /* __GDK_CAIRO_H__ */
|
||||||
|
49
gdk/gdkgl.c
49
gdk/gdkgl.c
@ -438,52 +438,3 @@ out:
|
|||||||
if (clip_region)
|
if (clip_region)
|
||||||
cairo_region_destroy (clip_region);
|
cairo_region_destroy (clip_region);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* gdk_cairo_surface_upload_to_gl:
|
|
||||||
* @surface: a Cairo surface
|
|
||||||
* @target: a GL texture target
|
|
||||||
* @width: the width of the texture @target
|
|
||||||
* @height: the height of the texture @target
|
|
||||||
* @context: (nullable): a #GdkGLContext, or %NULL to use the currently
|
|
||||||
* bound context
|
|
||||||
*
|
|
||||||
* Uploads the contents of a Cairo @surface to a GL texture @target.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
gdk_cairo_surface_upload_to_gl (cairo_surface_t *surface,
|
|
||||||
int target,
|
|
||||||
int width,
|
|
||||||
int height,
|
|
||||||
GdkGLContext *context)
|
|
||||||
{
|
|
||||||
cairo_rectangle_int_t rect;
|
|
||||||
cairo_surface_t *tmp;
|
|
||||||
double device_x_offset, device_y_offset;
|
|
||||||
|
|
||||||
g_return_if_fail (surface != NULL);
|
|
||||||
g_return_if_fail (context == NULL || GDK_IS_GL_CONTEXT (context));
|
|
||||||
|
|
||||||
if (context == NULL)
|
|
||||||
context = gdk_gl_context_get_current ();
|
|
||||||
|
|
||||||
cairo_surface_flush (surface);
|
|
||||||
|
|
||||||
cairo_surface_get_device_offset (surface, &device_x_offset, &device_y_offset);
|
|
||||||
|
|
||||||
rect.x = (int) device_x_offset;
|
|
||||||
rect.y = (int) device_y_offset;
|
|
||||||
rect.width = width;
|
|
||||||
rect.height = height;
|
|
||||||
tmp = cairo_surface_map_to_image (surface, &rect);
|
|
||||||
|
|
||||||
gdk_gl_context_upload_texture (context,
|
|
||||||
cairo_image_surface_get_data (tmp),
|
|
||||||
rect.width,
|
|
||||||
rect.height,
|
|
||||||
cairo_image_surface_get_stride (tmp),
|
|
||||||
GDK_MEMORY_DEFAULT,
|
|
||||||
target);
|
|
||||||
|
|
||||||
cairo_surface_unmap_image (surface, tmp);
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user