gcpInit(3)

NAME
gcpInit, gcpExit, gcpAttach, gcpDetach : Initialize and uninitialize LibGGIGCP

SYNOPSIS
#include <ggi/gcp.h>
int gcpInit(void);
int gcpExit(void);
int gcpAttach(ggi_visual_t vis);
int gcpDetach(ggi_visual_t vis);

DESCRIPTION
These are the standard LibGGI extension management functions for the LibGGIGCP extension. They allow initialization and deinitialization of the extension as a whole and of individual visuals. gcpInit will initialize an instance of the LibGGIGCP extension and prepare it to attach to visuals. gcpAttach, if successful, will allow LibGGIGCP functions to operate on the named visual. gcpDetach, if successful, will clean up all resources involved in providing the named visual with the LibGGIGCP API. gcpExit will free all resources associated with an instance of LibGGIGCP.

RETURN VALUE
gcpInit returns 0 for OK, otherwise an ggi-error(3) code. gcpExit returns:

0   after successfully cleaning up,

>0  the number of 'open' gcpInit calls, if there has been more than one call to gcpInit. As gcpInit and gcpExit must be used in properly nested pairs, e.g. the first gcpExit after two gcpInit's will return 1.

<0  ggi-error(3), especially if more gcpExit calls have been done than gcpInit calls.

gcpAttach returns:

>=0 the number LibGGIGCP has been attached to this visual, whereas 0 means the first time.

<0  indicates an ggi-error(3).

gcpDetach returns:

0   after successfully cleaning up,

>0  the number of 'open' gcpAttach calls, if there has been more than one call to gcpAttach. As gcpAttach and gcpDetach must be used in properly nested pairs, e.g. the first gcpDetach after two gcpInit's will return 1.

<0  ggi-error(3), especially if more gcpDetach calls have been done than gcpAttach calls.

EXAMPLES
ggi_visual_t vis;
ggiInit();
gcpInit();
vis = ggiOpen(NULL);
gcpAttach(vis);
/* ... */
gcpDetach(vis);
gcpExit();
ggiExit();