#include
#include
#include <stdio.h>
#include <stdlib.h>
//#include <Pt.h>
#include <gf/gf.h>
#include <Ap.h>
/* Constants for the shapes in the menu */
#define RECTANGLE 1
#define CIRCLE 2
#define DOT 3
#define BLOB 4
#define POLYGON 5
int main( int argc, char *argv[] )
{
void Draw(void);
Draw();
PtMainLoop();
return (EXIT_SUCCESS);
}
void Draw(void)
{
gf_dev_t gdev;
gf_dev_info_t gdev_info;
gf_display_t display;
gf_display_info_t display_info;
unsigned int i;
int width,height;
if (gf_dev_attach(&gdev, GF_DEVICE_INDEX(0), &gdev_info) != GF_ERR_OK)
{
printf(“gf_dev_attach() failed\n”);
}
printf(“Number of displays: %d\n”,gdev_info.ndisplays);
for (i = 0; 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);
printf(“main_layer_index: %d\n”, display_info.main_layer_index);
} else
{
printf(“gf_display_attach() failed\n”);
}
}
if (display != NULL)
{
gf_layer_t layer;
long x ;
if ( gf_layer_attach(&layer, display, display_info.main_layer_index, 0) == GF_ERR_OK)
{
gf_surface_t surface;
width = display_info.xres;
height = display_info.yres;
x = gf_surface_create_layer(&surface, &layer, 0, 0,
width, height, GF_FORMAT_BGRA8888, NULL, 0 );
if (x == GF_ERR_OK)
{
gf_layer_set_surfaces(layer, &surface, 1);
gf_context_t context;
/* draw stuff here */
if (gf_context_create(&context) != GF_ERR_OK)
{
fprintf(stderr, “gf_context_create failed\n”);
}
if (gf_context_set_surface(context, surface) != GF_ERR_OK)
{
fprintf(stderr, “gf_context_set_surface failed\n”);
}
gf_draw_begin(context);
gf_context_set_fgcolor(context, 0xFFFFFF);
gf_draw_rect(context,10,10,50,50);
gf_context_set_fgcolor(context, 0x000000);
gf_draw_rect(context,20,20,40,40);
gf_draw_flush(context);
gf_draw_end(context);
}
else
{
printf(“gf_surface_create_layer() failed\n”);
}
}
else
{
printf(“gf_layer_attach() failed\n”);
}
}
gf_dev_detach(gdev);
}
上面运行到 gf_layer_attach(&layer, display, 1, 0) == GF_ERR_OK
就出现gf_layer_attach() failed 了
为什么会出现这样 时我建的QNX C++ Project 工程有问题 ?
还是 不要建窗口直接连接设备,连接图层,创建环境变量?
头大 希望大侠们不吝指导下