cairo_surface_t* gdk_window_create_similar_image_surface ( GdkWindow* window, cairo_format_t format, int width, int height, int scale )
Create a new image surface that is efficient to draw on the
Initially the surface contents are all 0 (transparent if contents have transparency, black otherwise.)
height of the new surface are not affected by
the scaling factor of the
window, or by the
scale argument; they
are the size of the surface in device pixels. If you wish to create
an image surface capable of holding the contents of
window you can use:
int scale = gdk_window_get_scale_factor (window); int width = gdk_window_get_width (window) * scale; int height = gdk_window_get_height (window) * scale; // format is set elsewhere cairo_surface_t *surface = gdk_window_create_similar_image_surface (window, format, width, height, scale);
Note that unlike cairo_surface_create_similar_image(), the new
surface’s device scale is set to
scale, or to the scale factor of
scale is 0.
Available since: 3.10
The format for the new surface.
Width of the new surface.
Height of the new surface.
The scale of the new surface, or 0 to use same as
A pointer to the newly allocated surface. The caller
owns the surface and should call
cairo_surface_destroy() when done
This function always returns a valid pointer, but it will return a
pointer to a “nil” surface if
other is already in an error state
or any other error occurs.
|The caller of the method takes ownership of the data, and is responsible for freeing it.|