mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-04-18 15:30:43 +02:00
Add Xlib surface getter functions.
Add the following five functions: cairo_public Display * cairo_xlib_surface_get_display (cairo_surface_t *surface); cairo_public Drawable cairo_xlib_surface_get_drawable (cairo_surface_t *surface); cairo_public Screen * cairo_xlib_surface_get_screen (cairo_surface_t *surface); cairo_public Visual * cairo_xlib_surface_get_visual (cairo_surface_t *surface); cairo_public int cairo_xlib_surface_get_depth (cairo_surface_t *surface);
This commit is contained in:
parent
68915fdfcb
commit
4a4603d551
2 changed files with 81 additions and 0 deletions
|
|
@ -2009,6 +2009,72 @@ cairo_xlib_surface_set_drawable (cairo_surface_t *abstract_surface,
|
|||
surface->height = height;
|
||||
}
|
||||
|
||||
static cairo_bool_t _is_valid_xlib_surface (cairo_surface_t *abstract_surface)
|
||||
{
|
||||
return _cairo_surface_is_xlib (abstract_surface) &&
|
||||
abstract_surface->status == CAIRO_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
Drawable
|
||||
cairo_xlib_surface_get_drawable (cairo_surface_t *abstract_surface)
|
||||
{
|
||||
cairo_xlib_surface_t *surface = (cairo_xlib_surface_t *)abstract_surface;
|
||||
|
||||
/* XXX: How do we want to handle this error case? */
|
||||
if (! _is_valid_xlib_surface (abstract_surface))
|
||||
return 0;
|
||||
|
||||
return surface->drawable;
|
||||
}
|
||||
|
||||
Display *
|
||||
cairo_xlib_surface_get_display (cairo_surface_t *abstract_surface)
|
||||
{
|
||||
cairo_xlib_surface_t *surface = (cairo_xlib_surface_t *)abstract_surface;
|
||||
|
||||
/* XXX: How do we want to handle this error case? */
|
||||
if (! _is_valid_xlib_surface (abstract_surface))
|
||||
return NULL;
|
||||
|
||||
return surface->dpy;
|
||||
}
|
||||
|
||||
Screen *
|
||||
cairo_xlib_surface_get_screen (cairo_surface_t *abstract_surface)
|
||||
{
|
||||
cairo_xlib_surface_t *surface = (cairo_xlib_surface_t *)abstract_surface;
|
||||
|
||||
/* XXX: How do we want to handle this error case? */
|
||||
if (! _is_valid_xlib_surface (abstract_surface))
|
||||
return NULL;
|
||||
|
||||
return surface->screen;
|
||||
}
|
||||
|
||||
Visual *
|
||||
cairo_xlib_surface_get_visual (cairo_surface_t *abstract_surface)
|
||||
{
|
||||
cairo_xlib_surface_t *surface = (cairo_xlib_surface_t *)abstract_surface;
|
||||
|
||||
/* XXX: How do we want to handle this error case? */
|
||||
if (! _is_valid_xlib_surface (abstract_surface))
|
||||
return NULL;
|
||||
|
||||
return surface->visual;
|
||||
}
|
||||
|
||||
int
|
||||
cairo_xlib_surface_get_depth (cairo_surface_t *abstract_surface)
|
||||
{
|
||||
cairo_xlib_surface_t *surface = (cairo_xlib_surface_t *)abstract_surface;
|
||||
|
||||
/* XXX: How do we want to handle this error case? */
|
||||
if (! _is_valid_xlib_surface (abstract_surface))
|
||||
return -1;
|
||||
|
||||
return surface->depth;
|
||||
}
|
||||
|
||||
typedef struct _cairo_xlib_surface_font_private {
|
||||
Display *dpy;
|
||||
GlyphSet glyphset;
|
||||
|
|
|
|||
|
|
@ -70,6 +70,21 @@ cairo_xlib_surface_set_drawable (cairo_surface_t *surface,
|
|||
int width,
|
||||
int height);
|
||||
|
||||
cairo_public Drawable
|
||||
cairo_xlib_surface_get_drawable (cairo_surface_t *surface);
|
||||
|
||||
cairo_public Display *
|
||||
cairo_xlib_surface_get_display (cairo_surface_t *surface);
|
||||
|
||||
cairo_public Screen *
|
||||
cairo_xlib_surface_get_screen (cairo_surface_t *surface);
|
||||
|
||||
cairo_public Visual *
|
||||
cairo_xlib_surface_get_visual (cairo_surface_t *surface);
|
||||
|
||||
cairo_public int
|
||||
cairo_xlib_surface_get_depth (cairo_surface_t *abstract_surface);
|
||||
|
||||
CAIRO_END_DECLS
|
||||
|
||||
#else /* CAIRO_HAS_XLIB_SURFACE */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue