Package: gdk

Function gdk-window-create-similar-image-surface

Lambda List

gdk-window-create-similar-image-surface (window format width height scale)

Arguments

window -- a gdk-window object to make the new surface similar to
format -- a value of the cairo-format-t enumeration for the format of the new surface
width -- an integer with the width of the new surface
height -- an integer with the height of the new surface
scale -- an integer with the scale of the new surface, or 0 to use same as window

Return Value

A newly allocated cairo-surface-t instance. The caller owns the surface and should call the cairo-surface-destroy function when done with it.

This function always returns a valid pointer, but it will return a "nil" surface if the surface is in an error state or any other error occurs.

Details

Create a new image surface that is efficient to draw on the given window.

Initially the surface contents are all 0, transparent if contents have transparency, black otherwise.

The width and 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 the 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 the cairo-surface-create-similar-image function, the new device scale of the surface is set to scale, or to the scale factor of window if the scale argument is 0.
 

See also

2021-12-11