Attach to a display on a graphics device
#include <gf/gf.h> int gf_display_attach( gf_display_t * pdisplay, gf_dev_t gfx, unsigned display_index, gf_display_info_t *info );
gf
This function attaches to a display on a graphics device. This function provides you with a handle that lets you use the display while maintaining thread safety. Actual parameters for the individual display (or displays) on a graphics device are configured via a separate configuration file and maintained by a separate server, io-display.
A device typically drives one display, although some hardware is fitted with multiple displays, each of which you can attach to via this function. With a separate handle for each display, you can address and manipulate each on an individual basis.
The info argument contains information about the attached display:
typedef struct { unsigned nlayers; unsigned main_layer_index; uint16_t xres; uint16_t yres; gf_format_t format; int refresh; } gf_display_info_t;
It contains at least the following members:
If the format filled in by gf_display_attach() is a packed format, it will not be endian-specific. |
Attach to a device, and then use the device information structure gf_dev_info_t to attach to the device's displays:
gf_dev_t gdev; gf_dev_info_t gdev_info; gf_display_t display; gf_display_info_t display_info; int i; if (gf_dev_attach(&gdev,GF_DEVICE_INDEX(0),&gdev_info) != GF_ERR_OK) { printf("gf_dev_attach() failed\n"); return (-1); } printf("Number of displays: %d\n",gdev_info.ndisplays); for (i = gdev_info.ndisplays;i;) { printf("Display %d: ",i--); if (gf_display_attach(&display,gdev,i,&display_info) == GF_ERR_OK) { printf("%dX%d, refresh = %dHz\n",display_info.xres,display_info.yres,display_info.refresh); printf("Number of layers: %d\n",display_info.nlayers); } else { printf("gf_display_attach() failed\n"); } }
QNX Graphics Framework
Safety: | |
---|---|
Interrupt handler | No |
Signal handler | No |
Thread | Yes |
gf_display_detach(), gf_display_set_layer_order()