Get or set the allocation state of a resource
Name
ggiGAGetType, ggiGASetType, ggiGAGetState, ggiGASetState : Get or set the allocation state of a resource
Synopsis
#include <ggi/galloc.h>
enum ggiGA_resource_type ggiGAGetType(ggiGA_resource_handle handle);
enum ggiGA_resource_type ggiGASetType(ggiGA_resource_handle handle,
enum ggiGA_resource_type rt);
enum ggiGA_resource_state ggiGAGetState(ggiGA_resource_handle handle);
enum ggiGA_resource_state ggiGASetState(ggiGA_resource_handle handle,
enum ggiGA_resource_state rs);
#define ggiGAAddStateFlag(handle, flag) \
ggiGASetState(handle, ggiGAGetState(handle) | (flag))
#define ggiGARemoveStateFlag(handle, flag) \
ggiGASetState(handle, ggiGAGetState(handle) & ~(flag))Description
ggiGAGetType and ggiGASetType allow setting/getting the resource's feature type.
ggiGAGetState and ggiGASetState allow setting/getting the resource's negotiation state. Don't set this field unless you really know what you are doing.
ggiGAAddStateFlag and ggiGARemoveStateFlag are convenient macros to add/remove flags.
Return value
ggiGAGetType and ggiGASetType return the feature type that was in the resource before the function was called.
Example
switch (ggiGAGetType(resource) & GA_RT_TYPE_MASK) {
case GA_RT_WINDOW:
/* We don't do windows. */
return;
default:
break;
}
switch (ggiGAGetType(resource)) {
case GA_RT_SPRITE_SPRITE:
/* [...] */
}
ggiGAAddStateFlag(resource, GA_STATE_FLAG);