# Cairo::XlibSurface Class Reference

An XlibSurface provides a way to render to the X Window System using XLib. More...

Inheritance diagram for Cairo::XlibSurface:
[legend]

List of all members.

## 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.

## Detailed Description

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.

Note:
  For this surface to be availabe, cairo must have been compiled with support for XLib Surfaces

## Constructor & Destructor Documentation

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.

Parameters:

  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]`

## Member Function Documentation

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.

Note:
  If drawable is a Window, then the function cairo_xlib_surface_set_size must be called whenever the size of the window changes.

Parameters:

  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.

Returns:
  A RefPtr to the newly created surface

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.

Parameters:

  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.

Returns:
  A RefPtr to the newly created surface

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.

Parameters:

  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 .

Returns:
  the newly created surface

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.

Parameters:

  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.

Parameters:

  width | the new width of the surface
  height | the new height of the surface

The documentation for this class was generated from the following file:

- cairomm/xlib_surface.h