Create a new image surface that is efficient to draw on the given this.
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
this, 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 this 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 Surface.similar_image, the new surface's device scale is set to scale
,
or to the scale factor of this if scale
is 0.
this |
window to make new surface similar to, or null if none |
format |
the format for the new surface |
width |
width of the new surface |
height |
height of the new surface |
scale |
the scale of the new surface, or 0 to use same as this |
a pointer to the newly allocated surface. The caller owns the surface and should call This function always returns a valid pointer, but it will return a pointer to a “nil” surface if |