| ![[Previous]](../prev.gif) | ![[Contents]](../contents.gif) | ![[Index]](../keyword_index.gif) | ![[Next]](../next.gif) | 
Create a surface that a layer can target
#include <gf/gf.h>
int gf_surface_create_layer( gf_surface_t *psurface,
                             gf_layer_t *layer,
                             int nlayers,
                             int surface_index,
                             int w,
                             int h,
                             gf_format_t format,
                             const gf_palette_t *palette,
                             uint32_t flags );
|  | The GF_SURFACE_CREATE_CPU_LINEAR_ACCESSIBLE and GF_SURFACE_CREATE_CPU_FAST_ACCESS flags are not compatible with the Carmine (devg-carmine.so) graphics driver. | 
gf
This function creates a new surface that can be targetted by the specified layer. You must use this function if you plan on binding the surface directly to one or more layers via gf_layer_set_surfaces(). It provides additional hardware checking to verify that the layer can target the surface. If the surface is going to be used only as a rendering “scratchpad” for offscreen rendering, you can use gf_surface_create() instead.
|  | Threads should not call this function between calls to gf_draw_begin() and gf_draw_end(), or a deadlock will occur. | 
QNX Graphics Framework
| Safety: | |
|---|---|
| Interrupt handler | No | 
| Signal handler | No | 
| Thread | Yes | 
gf_palette_t, gf_layer_set_surfaces(), gf_surface_attach(), gf_surface_create(), gf_surface_free()
| ![[Previous]](../prev.gif) | ![[Contents]](../contents.gif) | ![[Index]](../keyword_index.gif) | ![[Next]](../next.gif) |