If you want to draw to the screen within an application that uses the X Window system, you should use this Surface type.
Public Member Functions | |
void | set_drawable (Drawable drawable, int width, int height) |
Informs cairo of a new X Drawable underlying the surface. | |
void | set_size (int width, int height) |
Informs cairo of the new size of the X Drawable underlying the surface. | |
XlibSurface (cairo_surface_t *cobject, bool has_reference=false) | |
Create a C++ wrapper for the C instance. | |
virtual | ~XlibSurface () |
Static Public Member Functions | |
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 RefPtr< XlibSurface > | create (Display *dpy, Drawable drawable, Visual *visual, int width, int height) |
Creates an Xlib surface that draws to the given drawable. |
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, | |
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 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. |
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 |