cairomm: Cairo::Win32Surface Class Reference

cairomm 1.18.0

Public Member Functions | Static Public Member Functions | List of all members
Cairo::Win32Surface Class Reference

A Win32Surface provides a way to render within Microsoft Windows. More...

`#include <cairomm/win32_surface.h>`

Inheritance diagram for Cairo::Win32Surface:
[legend]

## Public Member Functions
| Win32Surface (cairo_surface_t *cobject, bool has_reference=false)
| Create a C++ wrapper for the C instance.
| ~Win32Surface () override
HDC | get_dc () const
| Returns the HDC associated with this surface, or NULL if none.
RefPtr< ImageSurface > | get_image ()
| Returns a ImageSurface that refers to the same bits as the DIB of the Win32 surface.
Public Member Functions inherited from Cairo::Surface
| Surface (cairo_surface_t *cobject, bool has_reference=false)
| Create a C++ wrapper for the C instance.
| 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.
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.
void | unset_mime_data (const std::string & mime_type)
| Remove the data from a surface.
void | get_font_options (FontOptions & options) const
| Retrieves the default font rendering options for the surface.
void | finish ()
| This function finishes the surface and drops all references to external resources.
void | flush ()
| Do any pending drawing for the surface and also restore any temporary modifications cairo has made to the surface's state.
void | mark_dirty ()
| Tells cairo to consider the data buffer dirty.
void | mark_dirty (int x, int y, int width, int height)
| Marks a rectangular area of the given surface dirty.
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.
void | get_device_offset (double & x_offset, double & y_offset) const
| Returns a previous device offset set by set_device_offset().
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.
void | set_device_scale (double scale)
| Sets x and y scale to the same value.
void | get_device_scale (double & x_scale, double & y_scale) const
| Returns a previous device scale set by set_device_scale().
double | get_device_scale () const
| Returns the x and y average of a previous device scale set by set_device_scale().
void | set_fallback_resolution (double x_pixels_per_inch, double y_pixels_per_inch)
| Set the horizontal and vertical resolution for image fallbacks.
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.
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.
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.
void | show_page ()
| Emits and clears the current page for backends that support multiple pages.
bool | has_show_text_glyphs () const
| Returns whether the surface supports sophisticated Context::show_text_glyphs() operations.
void | write_to_png (const std::string & filename)
| Writes the contents of surface to a new file filename as a PNG image.
void | write_to_png_stream (const SlotWriteFunc & write_func)
| Writes the Surface to the write function.
RefPtr< Device > | get_device ()
| This function returns the device for a surface.
cobject * | cobj ()
| Provides acces to the underlying C cairo surface.
const cobject * | cobj () const
| Provides acces to the underlying C cairo surface.

## Static Public Member Functions
static RefPtr< Win32Surface > | create (HDC hdc)
| Creates a cairo surface that targets the given DC.
static RefPtr< Win32Surface > | create_with_dib (Format format, int width, int height)
| Creates a device-independent-bitmap surface not associated with any particular existing surface or device context.
static RefPtr< Win32Surface > | create_with_ddb (HDC hdc, Format format, int width, int height)
| Creates a device-independent-bitmap surface not associated with any particular existing surface or device context.
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.
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.

## 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);`
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.
typedef sigc::slot< void()> | SlotDestroy
| For instance, void on_destroy();.
typedef cairo_surface_t | cobject
| The underlying C cairo surface type.
Protected Attributes inherited from Cairo::Surface
cobject * | m_cobject
| The underlying C cairo surface type that is wrapped by this Surface.

## Detailed Description

A Win32Surface provides a way to render within Microsoft Windows.

If you want to draw to the screen within a Microsoft Windows application, you should use this Surface type.

Note
  For this Surface to be available, cairo must have been compiled with Win32 support

## Constructor & Destructor Documentation

## ◆ Win32Surface()

Cairo::Win32Surface::Win32Surface | ( | 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.

## ◆ ~Win32Surface()

Cairo::Win32Surface::~Win32Surface | ( |  | ) |
| override

## Member Function Documentation

## ◆ create()

static RefPtr< Win32Surface > Cairo::Win32Surface::create | ( | HDC | hdc | ) |
| static

Creates a cairo surface that targets the given DC.

The DC will be queried for its initial clip extents, and this will be used as the size of the cairo surface. Also, if the DC is a raster DC, it will be queried for its pixel format and the cairo surface format will be set appropriately.

Parameters

  hdc | the DC to create a surface for.

Returns
  the newly created surface.

## ◆ create_with_ddb()

static RefPtr< Win32Surface > Cairo::Win32Surface::create_with_ddb | ( | HDC | hdc,
|  | Format | format,
|  | int | width,
|  | int | height
| ) |  |
| static

Creates a device-independent-bitmap surface not associated with any particular existing surface or device context.

The created bitmap will be uninitialized.

Parameters

  hdc | the DC to create a surface for.
  format | format of pixels in the surface to create,
  width | width of the surface, in pixels.
  height | height of the surface, in pixels.

Returns
  the newly created surface.

Since
  1.8

## ◆ create_with_dib()

static RefPtr< Win32Surface > Cairo::Win32Surface::create_with_dib | ( | Format | format,
|  | int | width,
|  | int | height
| ) |  |
| static

Creates a device-independent-bitmap surface not associated with any particular existing surface or device context.

The created bitmap will be unititialized.

Parameters

  format | format of pixels in the surface to create.
  width | width of the surface, in pixels.
  height | height of the surface, in pixels.

Returns
  the newly created surface.

Since
  1.8

## ◆ get_dc()

HDC Cairo::Win32Surface::get_dc | ( |  | ) | const

Returns the HDC associated with this surface, or NULL if none.

Also returns NULL if the surface is not a win32 surface.

Returns
  HDC or NULL if no HDC available.

## ◆ get_image()

RefPtr< ImageSurface > Cairo::Win32Surface::get_image | ( |  | ) |

Returns a ImageSurface that refers to the same bits as the DIB of the Win32 surface.

If the passed-in win32 surface is not a DIB surface, the returned surface will be NULL

Returns
  a ImageSurface (owned by the Win32Surface), or an empty RefPtr if the win32 surface is not a DIB.

Since
  1.8

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

- cairomm/win32_surface.h