An XlibSurface provides a way to render to the X Window System using XLib. More...
Inherits Cairo::Surface.
Public Member Functions | |
XlibSurface (cairo_surface_t*cobject, bool has_reference=false) | |
Create a C++ wrapper for the C instance. | |
virtual | ~XlibSurface () |
void | set_size (int width, int height) |
Informs cairo of the new size of the X Drawable underlying the surface. | |
void | set_drawable (Drawable drawable, int width, int height) |
Informs cairo of a new X Drawable underlying the surface. | |
Drawable | get_drawable () const |
gets the Drawable object associated with this surface | |
const Display* | get_display () const |
Get the X Display for the underlying X Drawable. | |
Display* | get_display () |
Get the X Display for the underlying X Drawable. | |
Screen* | get_screen () |
Get the X Screen for the underlying X Drawable. | |
const Screen* | get_screen () const |
Get the X Screen for the underlying X Drawable. | |
Visual* | get_visual () |
Get the X Visual for the underlying X Drawable. | |
const Visual* | get_visual () const |
Get the X Visual for the underlying X Drawable. | |
int | get_depth () const |
Get the number of bits used to represent each pixel value. | |
int | get_height () const |
Get the height in pixels of the X Drawable underlying the surface. | |
int | get_width () const |
Get the width in pixels of the X Drawable underlying the surface. | |
XRenderPictFormat* | get_xrender_format () const |
Gets the X Render picture format that uses for rendering with the X Render extension. | |
Static Public Member Functions | |
static RefPtr< XlibSurface > | create (Display* dpy, Drawable drawable, Visual* visual, int width, int height) |
Creates an Xlib surface that draws to the given drawable. | |
static RefPtr< XlibSurface > | create (Display* dpy, Pixmap bitmap, Screen* screen, int width, int height) |
Creates an Xlib surface that draws to the given bitmap. | |
static Cairo::RefPtr < Cairo::XlibSurface > | create_with_xrender_format (Display* dpy, Drawable drawable, Screen* screen, XRenderPictFormat* format, int width, int height) |
Creates an Xlib surface that draws to the given drawable. |
An XlibSurface provides a way to render to the X Window System using XLib.
If you want to draw to the screen within an application that uses the X Window system, you should use this Surface type.
Cairo::XlibSurface::XlibSurface | ( | cairo_surface_t * | cobject, | |
bool | has_reference = false | |||
) | [explicit] |
Create a C++ wrapper for the C instance.
This C++ instance should then be given to a RefPtr.
cobject | The C instance. | |
has_reference | whether we already have a reference. Otherwise, the constructor will take an extra reference. |
virtual Cairo::XlibSurface::~XlibSurface | ( | ) | [virtual] |
static RefPtr<XlibSurface> Cairo::XlibSurface::create | ( | Display * | dpy, | |
Drawable | drawable, | |||
Visual * | visual, | |||
int | width, | |||
int | height | |||
) | [static] |
Creates an Xlib surface that draws to the given drawable.
The way that colors are represented in the drawable is specified by the provided visual.
dpy | an X Display | |
drawable | an X Drawable, (a Pixmap or a Window) | |
visual | the visual to use for drawing to drawable. The depth of the visual must match the depth of the drawable. Currently, only TrueColor visuals are fully supported. | |
width | the current width of drawable. | |
height | the current height of drawable. |
static RefPtr<XlibSurface> Cairo::XlibSurface::create | ( | Display * | dpy, | |
Pixmap | bitmap, | |||
Screen * | screen, | |||
int | width, | |||
int | height | |||
) | [static] |
Creates an Xlib surface that draws to the given bitmap.
This will be drawn to as a CAIRO_FORMAT_A1 object.
dpy | an X Display | |
bitmap | an X Drawable, (a depth-1 Pixmap) | |
screen | the X Screen associated with bitmap | |
width | the current width of bitmap. | |
height | the current height of bitmap. |
static Cairo::RefPtr<Cairo::XlibSurface> Cairo::XlibSurface::create_with_xrender_format | ( | Display * | dpy, | |
Drawable | drawable, | |||
Screen * | screen, | |||
XRenderPictFormat * | format, | |||
int | width, | |||
int | height | |||
) | [static] |
Creates an Xlib surface that draws to the given drawable.
The way that colors are represented in the drawable is specified by the provided picture format.
Note: If is a Window, then the function set_size() must be called whenever the size of the window changes.
dpy | an X Display | |
drawable | an X Drawable, (a Pixmap or a Window) | |
screen | the X Screen associated with | |
format | the picture format to use for drawing to . The depth of must match the depth of the drawable. | |
width | the current width of . | |
height | the current height of . |
int Cairo::XlibSurface::get_depth | ( | ) | const |
Get the number of bits used to represent each pixel value.
const Display* Cairo::XlibSurface::get_display | ( | ) | const |
Get the X Display for the underlying X Drawable.
Display* Cairo::XlibSurface::get_display | ( | ) |
Get the X Display for the underlying X Drawable.
Drawable Cairo::XlibSurface::get_drawable | ( | ) | const |
gets the Drawable object associated with this surface
int Cairo::XlibSurface::get_height | ( | ) | const |
Get the height in pixels of the X Drawable underlying the surface.
Screen* Cairo::XlibSurface::get_screen | ( | ) |
Get the X Screen for the underlying X Drawable.
const Screen* Cairo::XlibSurface::get_screen | ( | ) | const |
Get the X Screen for the underlying X Drawable.
const Visual* Cairo::XlibSurface::get_visual | ( | ) | const |
Get the X Visual for the underlying X Drawable.
Visual* Cairo::XlibSurface::get_visual | ( | ) |
Get the X Visual for the underlying X Drawable.
int Cairo::XlibSurface::get_width | ( | ) | const |
Get the width in pixels of the X Drawable underlying the surface.
XRenderPictFormat* Cairo::XlibSurface::get_xrender_format | ( | ) | const |
Gets the X Render picture format that uses for rendering with the X Render extension.
If the surface was created by cairo_xlib_surface_create_with_xrender_format() originally, the return value is the format passed to that constructor.
Return value: the XRenderPictFormat* associated with , or NULL if the surface is not an xlib surface or if the X Render extension is not available.
Since: 1.6
void Cairo::XlibSurface::set_drawable | ( | Drawable | drawable, | |
int | width, | |||
int | height | |||
) |
Informs cairo of a new X Drawable underlying the surface.
The drawable must match the display, screen and format of the existing drawable or the application will get X protocol errors and will probably terminate. No checks are done by this function to ensure this compatibility.
drawable | the new drawable for the surface | |
width | the width of the new drawable | |
height | the height of the new drawable |
void Cairo::XlibSurface::set_size | ( | int | width, | |
int | height | |||
) |
Informs cairo of the new size of the X Drawable underlying the surface.
For a surface created for a Window (rather than a Pixmap), this function must be called each time the size of the window changes. (For a subwindow, you are normally resizing the window yourself, but for a toplevel window, it is necessary to listen for ConfigureNotify events.)
A Pixmap can never change size, so it is never necessary to call this function on a surface created for a Pixmap.
width | the new width of the surface | |
height | the new height of the surface |