cairomm 1.18.0
|
An XlibSurface provides a way to render to the X Window System using XLib. More...
#include <cairomm/xlib_surface.h>
Public Member Functions | |
XlibSurface (cairo_surface_t *cobject, bool has_reference=false) | |
Create a C++ wrapper for the C instance. More... | |
~XlibSurface () override | |
void | set_size (int width, int height) |
Informs cairo of the new size of the X Drawable underlying the surface. More... | |
void | set_drawable (Drawable drawable, int width, int height) |
Informs cairo of a new X Drawable underlying the surface. More... | |
Drawable | get_drawable () const |
gets the Drawable object associated with this surface More... | |
const Display * | get_display () const |
Get the X Display for the underlying X Drawable. More... | |
Display * | get_display () |
Get the X Display for the underlying X Drawable. More... | |
Screen * | get_screen () |
Get the X Screen for the underlying X Drawable. More... | |
const Screen * | get_screen () const |
Get the X Screen for the underlying X Drawable. More... | |
Visual * | get_visual () |
Get the X Visual for the underlying X Drawable. More... | |
const Visual * | get_visual () const |
Get the X Visual for the underlying X Drawable. More... | |
int | get_depth () const |
Get the number of bits used to represent each pixel value. More... | |
int | get_height () const |
Get the height in pixels of the X Drawable underlying the surface. More... | |
int | get_width () const |
Get the width in pixels of the X Drawable underlying the surface. More... | |
XRenderPictFormat * | get_xrender_format () const |
Gets the X Render picture format that @surface uses for rendering with the X Render extension. More... | |
Public Member Functions inherited from Cairo::Surface | |
Surface (cairo_surface_t *cobject, bool has_reference=false) | |
Create a C++ wrapper for the C instance. More... | |
Surface (const Surface &)=delete | |
Surface & | operator= (const Surface &)=delete |
virtual | ~Surface () |
const unsigned char * | get_mime_data (const std::string & mime_type, unsigned long & length) |
Return mime data previously attached to surface using the specified mime type. More... | |
void | set_mime_data (const std::string & mime_type, unsigned char *data, unsigned long length, const SlotDestroy & slot_destroy) |
Attach an image in the format mime_type to surface. More... | |
void | unset_mime_data (const std::string & mime_type) |
Remove the data from a surface. More... | |
void | get_font_options (FontOptions & options) const |
Retrieves the default font rendering options for the surface. More... | |
void | finish () |
This function finishes the surface and drops all references to external resources. More... | |
void | flush () |
Do any pending drawing for the surface and also restore any temporary modifications cairo has made to the surface's state. More... | |
void | mark_dirty () |
Tells cairo to consider the data buffer dirty. More... | |
void | mark_dirty (int x, int y, int width, int height) |
Marks a rectangular area of the given surface dirty. More... | |
void | set_device_offset (double x_offset, double y_offset) |
Sets an offset that is added to the device coordinates determined by the CTM when drawing to surface. More... | |
void | get_device_offset (double & x_offset, double & y_offset) const |
Returns a previous device offset set by set_device_offset(). More... | |
void | set_device_scale (double x_scale, double y_scale) |
Sets a scale that is multiplied to the device coordinates determined by the CTM when drawing to surface. More... | |
void | set_device_scale (double scale) |
Sets x and y scale to the same value. More... | |
void | get_device_scale (double & x_scale, double & y_scale) const |
Returns a previous device scale set by set_device_scale(). More... | |
double | get_device_scale () const |
Returns the x and y average of a previous device scale set by set_device_scale(). More... | |
void | set_fallback_resolution (double x_pixels_per_inch, double y_pixels_per_inch) |
Set the horizontal and vertical resolution for image fallbacks. More... | |
void | get_fallback_resolution (double & x_pixels_per_inch, double & y_pixels_per_inch) const |
This function returns the previous fallback resolution set by set_fallback_resolution(), or default fallback resolution if never set. More... | |
Type | get_type () const |
Content | get_content () const |
This function returns the content type of surface which indicates whether the surface contains color and/or alpha information. More... | |
void | copy_page () |
Emits the current page for backends that support multiple pages, but doesn't clear it, so that the contents of the current page will be retained for the next page. More... | |
void | show_page () |
Emits and clears the current page for backends that support multiple pages. More... | |
bool | has_show_text_glyphs () const |
Returns whether the surface supports sophisticated Context::show_text_glyphs() operations. More... | |
void | write_to_png (const std::string & filename) |
Writes the contents of surface to a new file filename as a PNG image. More... | |
void | write_to_png_stream (const SlotWriteFunc & write_func) |
Writes the Surface to the write function. More... | |
RefPtr< Device > | get_device () |
This function returns the device for a surface. More... | |
cobject * | cobj () |
Provides acces to the underlying C cairo surface. More... | |
const cobject * | cobj () const |
Provides acces to the underlying C cairo surface. More... | |
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. More... | |
static RefPtr< XlibSurface > | create (Display * dpy, Pixmap bitmap, Screen * screen, int width, int height) |
Creates an Xlib surface that draws to the given bitmap. More... | |
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. More... | |
Static Public Member Functions inherited from Cairo::Surface | |
static RefPtr< Surface > | create (const RefPtr< Surface > other, Content content, int width, int height) |
Create a new surface that is as compatible as possible with an existing surface. More... | |
static RefPtr< Surface > | create (const RefPtr< Surface > & target, double x, double y, double width, double height) |
Create a new surface that is a rectangle within the target surface. More... | |
Additional Inherited Members | |
Public Types inherited from Cairo::Surface | |
enum class | Type { IMAGE = CAIRO_SURFACE_TYPE_IMAGE , PDF = CAIRO_SURFACE_TYPE_PDF , PS = CAIRO_SURFACE_TYPE_PS , XLIB = CAIRO_SURFACE_TYPE_XLIB , XCB = CAIRO_SURFACE_TYPE_XCB , GLITZ = CAIRO_SURFACE_TYPE_GLITZ , QUARTZ = CAIRO_SURFACE_TYPE_QUARTZ , WIN32 = CAIRO_SURFACE_TYPE_WIN32 , WIN32_SURFACE = CAIRO_SURFACE_TYPE_WIN32 , BEOS = CAIRO_SURFACE_TYPE_BEOS , DIRECTFB = CAIRO_SURFACE_TYPE_DIRECTFB , SVG = CAIRO_SURFACE_TYPE_SVG , OS2 = CAIRO_SURFACE_TYPE_OS2 , WIN32_PRINTING = CAIRO_SURFACE_TYPE_WIN32_PRINTING , QUARTZ_IMAGE = CAIRO_SURFACE_TYPE_QUARTZ_IMAGE , SCRIPT = CAIRO_SURFACE_TYPE_SCRIPT , QT = CAIRO_SURFACE_TYPE_QT , RECORDING = CAIRO_SURFACE_TYPE_RECORDING , VG = CAIRO_SURFACE_TYPE_VG , GL = CAIRO_SURFACE_TYPE_GL , DRM = CAIRO_SURFACE_TYPE_DRM , TEE = CAIRO_SURFACE_TYPE_TEE , XML = CAIRO_SURFACE_TYPE_XML , SKIA = CAIRO_SURFACE_TYPE_SKIA , SUBSURFACE = CAIRO_SURFACE_TYPE_SUBSURFACE } |
Cairo::Surface::Type is used to describe the type of a given surface. More... | |
enum class | Format { ARGB32 = CAIRO_FORMAT_ARGB32 , RGB24 = CAIRO_FORMAT_RGB24 , A8 = CAIRO_FORMAT_A8 , A1 = CAIRO_FORMAT_A1 , RGB16_565 = CAIRO_FORMAT_RGB16_565 } |
Format is used to identify the memory format of image data. More... | |
typedef sigc::slot< ErrorStatus(const unsigned char *, unsigned int)> | SlotWriteFunc |
For example: ErrorStatus my_write_func(unsigned char* data, unsigned int length); More... | |
typedef sigc::slot< ErrorStatus(unsigned char *, unsigned int)> | SlotReadFunc |
This is the type of function which is called when a backend needs to read data from an input stream. More... | |
typedef sigc::slot< void()> | SlotDestroy |
For instance, void on_destroy();. More... | |
typedef cairo_surface_t | cobject |
The underlying C cairo surface type. More... | |
Protected Attributes inherited from Cairo::Surface | |
cobject * | m_cobject |
The underlying C cairo surface type that is wrapped by this Surface. More... | |
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.
|
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. |
|
override |
|
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 |
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 |
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 @drawable 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 @drawable |
format | the picture format to use for drawing to @drawable. The depth of @format must match the depth of the drawable. |
width | the current width of @drawable. |
height | the current height of @drawable. |
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.
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.
Visual * Cairo::XlibSurface::get_visual | ( | ) |
Get the X Visual for the underlying X Drawable.
const Visual * Cairo::XlibSurface::get_visual | ( | ) | const |
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 @surface 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 @surface, 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 |