Library Control

int  ggiInit(void);
void ggiExit(void);
void ggiPanic(const char *format,...);

Mode Control

ggi_visual_t ggiOpen(const char *display,...);
int          ggiClose(ggi_visual_t vis);
int ggiSetMode(ggi_visual_t visual,ggi_mode *tm);
int ggiGetMode(ggi_visual_t visual,ggi_mode *tm);
int ggiCheckMode(ggi_visual_t visual,ggi_mode *tm);

int ggiSetTextMode(ggi_visual_t visual,int cols,int rows,
                   int fontx,int fonty);
int ggiCheckTextMode(ggi_visual_t visual,int cols,int rows,
                     int fontx,int fonty);
int ggiSetGraphMode(ggi_visual_t visual,int x,int y,
                    int xv,int yv,ggi_graphtype type);
int ggiCheckGraphMode(ggi_visual_t visual,int x,int y,
                      int xv,int yv,ggi_graphtype type);
const ggi_info *ggiGetInfo(ggi_visual_t vis);
int             ggiSetInfoFlags(ggi_visual_t vis,ggi_uint flags);
int             ggiFlush(ggi_visual_t vis);

The DirectBuffer API

int                    ggiDBGetBuffer(ggi_visual *vis, ggi_directbuffer_t *buf);
ggi_buffer_layout      ggiDBGetLayout(ggi_directbuffer_t buf);
ggi_pixellinearbuffer *ggiDBGetPLB(ggi_directbuffer_t buf);
Graphics Context

int ggiSetGCForeground(ggi_visual_t vis,ggi_pixel  color);
int ggiGetGCForeground(ggi_visual_t vis,ggi_pixel *color);
int ggiSetGCBackground(ggi_visual_t vis,ggi_pixel  color);
int ggiGetGCBackground(ggi_visual_t vis,ggi_pixel *color);
int ggiSetGCClipping(ggi_visual_t vis,int  left,int  top,int  right,int  bottom);
int ggiGetGCClipping(ggi_visual_t vis,int *left,int *top,int *right,int *bottom);

Palette and Color Control

ggi_pixel ggiMapColor(ggi_visual_t vis,ggi_color *col);
int       ggiUnmapPixel(ggi_visual_t vis,ggi_pixel pixel,ggi_color *col);

int       ggiPackColors(ggi_visual_t vis,void *buf,ggi_color *cols,int len);
int       ggiUnpackPixels(ggi_visual_t vis,void *buf,ggi_color *cols,int len);

int       ggiSetPaletteVec(ggi_visual_t vis,int s,int len,ggi_color *cmap);
int       ggiGetPaletteVec(ggi_visual_t vis,int s,int len,ggi_color *cmap);

Set Origin and Splitline Features

int ggiSetOrigin(ggi_visual_t vis,int x,int y);
int ggiSetSplitline(ggi_visual_t vis,int y);

Graphics Sprite Manipulation

void *ggiNewSprite(ggi_visual_t vis,int width,int height,void *image);
int ggiSetSprite(ggi_visual_t vis,void *pid,int v,int x,int y);
int ggiFreeSprite(ggi_visual_t vis,void *pid);

Graphics Primitives

int ggiFillscreen(ggi_visual_t vis);

int ggiDrawPixel(ggi_visual_t vis,int x,int y);
int ggiPutPixel(ggi_visual_t vis,int x,int y,ggi_pixel col);
int ggiGetPixel(ggi_visual_t vis,int x,int y,ggi_pixel *col);

int ggiDrawLine(ggi_visual_t vis,int x,int y,int xe,int ye);
int ggiDrawHLine(ggi_visual_t vis,int x,int y,int w);
int ggiPutHLine(ggi_visual_t vis,int x,int y,int w,void *buf);
int ggiGetHLine(ggi_visual_t vis,int x,int y,int w,void *buf);

int ggiDrawVLine(ggi_visual_t vis,int x,int y,int h);
int ggiPutVLine(ggi_visual_t vis,int x,int y,int h,void *buf);
int ggiGetVLine(ggi_visual_t vis,int x,int y,int h,void *buf);

int ggiDrawBox(ggi_visual_t vis,int x,int y,int w,int h);
int ggiPutBox(ggi_visual_t vis,int x,int y,int w,int h,void *buf);
int ggiGetBox(ggi_visual_t vis,int x,int y,int w,int h,void *buf);
int ggiCopyBox(ggi_visual_t vis,int x,int y,int w,int h,int nx,int ny);

Event Handling

ggi_event_mask ggiEventPoll(ggi_visual_t vis,ggi_event_mask mask,
                            struct timeval *t);
int ggiEventRead(ggi_visual_t vis,ggi_event *ev,ggi_event_mask mask);

Input and Output

int ggiKbhit(ggi_visual_t vis);
int ggiGetc(ggi_visual_t vis);
int ggiPutc(ggi_visual_t vis,int x,int y,char c);
int ggiPuts(ggi_visual_t vis,int x,int y,const char *str);

Obsolete Functions

int          ggiSetFocus(ggi_visual_t vis);
ggi_visual_t ggiGetFocus(void);

void        *ggiGetFB(ggi_visual_t vis);
int          ggiGetBPP(ggi_visual_t vis);
int          ggiGetColorsPerPixel(ggi_visual_t vis);

int          ggiDrawCircle(ggi_visual_t vis,int x,int y,int r);