Cairo::XlibSurface Class Reference

Inheritance diagram for Cairo::XlibSurface:

Inheritance graph
[legend]

List of all members.


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

Public Member Functions

int get_depth () const
 Get the number of bits used to represent each pixel value.
Display * get_display ()
 Get the X Display for the underlying X Drawable.
const Display * get_display () const
 Get the X Display for the underlying X Drawable.
Drawable get_drawable () const
 gets the Drawable object associated with this surface
int get_height () const
 Get the height in pixels of the X Drawable underlying the surface.
const Screen * get_screen () const
 Get the X Screen for the underlying X Drawable.
Screen * get_screen ()
 Get the X Screen for the underlying X Drawable.
const Visual * get_visual () const
 Get the X Visual for the underlying X Drawable.
Visual * get_visual ()
 Get the X Visual for the underlying X Drawable.
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.
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< XlibSurfacecreate (Display *dpy, Pixmap bitmap, Screen *screen, int width, int height)
 Creates an Xlib surface that draws to the given bitmap.
static RefPtr< XlibSurfacecreate (Display *dpy, Drawable drawable, Visual *visual, int width, int height)
 Creates an Xlib surface that draws to the given drawable.
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.

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

Display* Cairo::XlibSurface::get_display (  ) 

Get the X Display for the underlying X Drawable.

const Display* Cairo::XlibSurface::get_display (  )  const

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.

const Screen* Cairo::XlibSurface::get_screen (  )  const

Get the X Screen for the underlying X Drawable.

Screen* Cairo::XlibSurface::get_screen (  ) 

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:

Generated on Thu Sep 4 21:57:18 2008 for cairomm by  doxygen 1.5.5