3.3 Routines G-G
GCNListAdd()
Boolean GCNListAdd(
optr OD, /* optr to add to list */
ManufacturerID manufID, /* manufacturer ID of list */
word listType); /* list type */ This routine adds an object pointer (optr) to a GCN list interested in a particular change. The routine must be passed the optr to add, along with the *manufID* and the type of the list to add it to. If no list of the specified manufacturer and type currently exists, a new list will be created.
This routine will return true if the optr was successfully added to the GCN list and false if the optr could not be added. An optr cannot be added to a GCN list if it currently exists on that list.
Include: gcnlist.goh
GCNListAddHandles()
Boolean GCNListAddHandles(
MemHandle mh, /* handle of object to add */
ChunkHandle ch, /* chunk of object to add */
ManufacturerIDs manufID, /* manufacturer ID of list */
word listType); /* list type */ This routine is exactly the same as **GCNListAdd()**, except it takes the memory and chunk handles of the object rather than a complete optr.
Include: gcnlist.goh
GCNListAddToBlock()
Boolean GCNListAddToBlock(
optr OD, /* optr of list to add */
ManufacturerID manufID, /* manufacturer ID of list */
word listType, /* list type */
MemHandle mh, /* handle of block holding list */
ChunkHandle listOfLists);/* chunk of list of lists
* in block */ This routine adds a new GCN list to a block containing the GCN lists. Pass it the optr of the chunk containing the new GCN list as well as the list's type and manufacturer ID. Pass also the memory handle and chunk handle of the chunk containing the GCN "list of lists" which will manage the new list.
This routine returns true of the new optr is added to the GCN mechanism, false if it could not be added (if it was already there).
Warnings: This routine may resize chunks in the block, so you should dereference any pointers after calling this routine.
Include: gcnlist.goh
GCNListCreateBlock()
ChunkHandle GCNListCreateBlock(
MemHandle mh); /* handle of the locked LMem block */ This routine creates a list of lists for the GCN mechanism. It is rarely, if ever, called by applications. Pass it the handle of the locked LMem block in which the list should be created.
Include: gcnlist.goh
GCNListDestroyBlock()
void GCNListDestroyBlock(
MemHandle mh, /* handle of locked block to
* be destroyed */
ChunkHandle listOfLists); /* chunk of list of lists */ This routine destroys a GCN list of lists and all the GCN lists associated with it. Pass it the handle of the locked LMem block containing the lists as well as the chunk handle of the chunk containing the list of lists.
Include: gcnlist.goh
GCNListDestroyList()
void GCNListDestroyList(
optr list); /* optr of the GCN list to be destroyed */ This routine destroys the specified GCN list.
Include: gcnlist.goh
GCNListRelocateBlock()
void GCNListRelocateBlock(
MemHandle mh, /* handle of locked LMem block
* containing GCN lists */
ChunkHandle listOfLists, /* chunk of list of lists */
MemHandle relocBlock); /* handle of block containing
* relocation information */ This routine relocates the GCN list of lists in the specified block, updating all the optrs stored therein.
Warnings: This routine can resize and/or move the LMem block, so you should dereference pointers after calling it.
Include: gcnlist.goh
GCNListRemove()
Boolean GCNListRemove(
optr OD, /* the optr to be removed */
ManufacturerID manufID, /* manufacturer ID of the list */
word listType); /* list type */ This routine removes the passed optr from the specified GCN list. The routine must be passed the optr to remove along with the manufacturer ID and list type of the list to remove it from.
This routine will return true if the optr was successfully removed from the GCN list and false if the optr could not be found on the GCN list and therefore could not be removed.
Include: gcnlist.goh
GCNListRemoveFromBlock()
Boolean GCNListRemoveFromBlock(
optr OD, /* optr of GCN list to remove */
ManufacturerID manufID, /* manufacturer of list to remove */
word listType, /* type of list being removed */
MemHandle mh, /* handle of locked LMem block
* containing the list of lists */
ChunkHandle listOfLists); /* chunk of list of lists */ This routine removes a GCN list from a GCN list block and from the list of lists therein.
Include: gcnlist.goh
GCNListRemoveHandles()
Boolean GCNListRemoveHandles(
MemHandle mh,
ChunkHandle ch,
ManufacturerID manufID,
word listType); This routine is exactly the same as **GCNListRemove()**, except it specifies the object to be removed via handles rather than an optr.
Include: gcnlist.goh
See Also: GCNListRemove()
GCNListSend()
word GCNListSend(
ManufacturerID manufID, /* manufacturer of list */
word listType, /* notification type */
EventHandle event, /* event to be sent to list */
MemHandle dataBlock, /* data block, if any */
word gcnListSendFlags); /* GCNListSendFlags */ This routine sends a message to all objects in the specified GCN list. The message is specified in *event*, and the list is specified in *manufID* and *listType*. The message will be sent asynchronously (some time after the change has occurred) by the message queue.
The dataBlock parameter contains the memory handle of an extra data block to be sent with the notification, if any; this block should also be specified in the classed event. If no data block is required, pass a NullHandle. If a data block with a reference cound is used, increment the reference count by one before calling this routine; this routine decrements the count and frees the block if the count reaches zero.
The gcnListSendFlags parameter is of type GCNListSendFlags, which has only one meaningful flag for this routine:
GCNLSF_SET_STATUS
Causes the message sent to the GCN list to be set as the lists “status.” The list’s status message is then sent to any object adding itself to the list at a later time. If this flag is set, the event handle in event will be returned by the routine. If this flag is not set, the return value will be the number of messages sent out.
Include: gcnlist.goh
GCNListSendToBlock()
word GCNListSendToBlock(
ManufacturerID manufID, /* manufacturer id of list */
word listType, /* notification type */
EventHandle event, /* event to be sent to list */
MemHandle dataBlock, /* data block, if any */
MemHandle mh, /* handle of locked LMem block
* containing GCN list of lists */
ChunkHandle listOfLists,/* chunk of list of lists */
GCNListSendFlags flags); /* GCNListSendFlags */ This routine sends the specified *event* to the specified list, just as **GCNListSend()**. **GCNListSentToBlock()**, however, specifies a particular instance of the GCN list by specifying the appropriate list of lists in *mh* and *listOfLists*. Other parameters and return values are identical to **GCNListSend()**.
See Also: GCNListSend()
Include: gcnlist.goh
GCNListSendToList()
void GCNListSendToList(
optr list, /* optr of GCN list */
EventHandle event, /* event to send to list */
MemHandle dataBlock, /* handle of data block, if any */
GCNListSendFlags flags); /* GCNListSendFlags */ This routine sends the specified *event* to the specified GCN *list*. The list is specified explicitly by optr as opposed to by manufacturer ID and type. The event will be sent via the proper queues to all objects registered on the list. After the notification is handled by all notified objects, the event will be freed, as will the data block passed. (If no data block, pass NullHandle in *dataBlock*)
The flags parameter can have one flag, GCNLSF_SET_STATUS. If this flag is set, the event passed will be set as the list’s status message.
Include: gcnlist.goh
See Also: GCNListSend()
GCNListSendToListHandles()
void GCNListSendToListHandles(
MemHandle mh, /* handle of list's block */
ChunkHandle ch, /* chunk of list */
EventHandle event, /* event to send to list */
MemHandle dataBlock, /* handle of data block, if any */
GCNListSendFlags flags); /* GCNListSendFlags */ This routine is exactly the same as **GCNListSendToList()**; the list is specified not by optr, however, but by a combination of its global and chunk handles.
See Also: GCNListSendToList()
Include: gcnlist.goh
GCNListUnRelocateBlock()
Boolean GCNListUnRelocateBlock(
MemHandle mh, /* handle of the locked lmem block
* containing the list of lists */
ChunkHandle listOfLists, /* chunk of the list of lists */
MemHandle relocBlock); /* handle of block containing
* relocation/unrelocation info */ This routine unrelocates the specified list of lists, updating all the optrs according to the information in *relocBlock*. This routine is rarely, if ever, used by applications; it is used primarily by the UI when shutting down to a state file.
It returns true if the specified list of lists has no lists saved to state and therefore is simply destroyed. The return value is false if the list of lists is saved to the state file normally.
Include: gcnlist.goh
GenCopyChunk()
word GenCopyChunk(
MemHandle destBlock, /* handle of locked LMem block into
* which chunk will be copied */
MemHandle blk, /* handle of locked source LMem block */
ChunkHandle chnk, /* chunk handle of chunk to be copied */
word flags); /* CompChildFlags */ This is a utility routine that copies one LMem chunk into a newly created chunk. The routine will allocate the new chunk in the block passed in *destBlock* and will return the chunk handle of the new chunk. It is used primarily by the UI to duplicate generic object chunks.
The source chunk is specified by the global handle blk and the chunk handle chnk. The flags parameter contains a record of CompChildFlags, of which only the CCF_MARK_DIRTY flag is meaningful. If this flag is set, the new chunk will be marked dirty.
Warnings: This routine may resize and/or move chunks and blocks, so you must dereference pointers after calling it.
Include: genC.goh
GenFindObjectInTree()
optr GenFindObjectInTree(
optr startObject, /* optr of object at which to start search */
dword childTable); /* pointer to table of bytes, each indicating
* the position of the child at the given
* level; -1 is the end of the table */ This utility routine finds the object having the optr *startObject* in the generic tree. Applications will not likely need this routine.
The childTable parameter points to a table of bytes, each byte representing the child number to be found at each level. The first byte indicates the child of startObject to get; the second byte indicates the child to get at the next level; the third byte indicates the child to get at the next level, and so on. A byte of -1 indicates the end of the table. The object found will be returned.
Include: genC.goh
GenInsertChild()
void GenInsertChild(
MemHandle mh, /* handle of parent */
ChunkHandle chnk, /* chunk of parent */
optr childToAdd, /* optr of new child */
optr referenceChild, /* optr of reference child */
word flags); /* CompChildFlags */ This utility routine adds a child object to a composite object. It is used almost exclusively by the UI for generic objects - applications will typically use MSG_GEN_ADD_CHILD.
See Also: MSG_GEN_ADD_CHILD
Warnings: This routine may move or resize chunks and/or object blocks; therefore, you must dereference pointers after calling it.
Include: genC.goh
GenProcessAction()
void GenProcessAction(
MemHandle mh, /* handle of object calling the routine */
ChunkHandle chnk, /* chunk of object calling the routine */
word mthd, /* message to send to actionOptr */
word dataCX, /* data to pass in CX register */
word dataDX, /* data to pass in DX register */
word dataBP, /* data to pass in BP register */
optr actionOptr);/* object to receive mthd */ This utility routine sends the action message specified in *mthd* to the action object specified in *actionOptr*. It is typically used by the UI and generic objects and corresponds to the **GenClass** message MSG_GEN_OUTPUT_ACTION.
Warnings: This routine may move or resize chunks and/or object blocks; therefore, you must dereference pointers after calling it.
See Also: MSG_GEN_OUTPUT_ACTION
Include: genC.goh
GenProcessGenAttrsAfterAction()
void GenProcessGenAttrsAfterAction(
MemHandle mh, /* handle of object calling the routine */
ChunkHandle chnk); /* chunk of object calling the routine */ This utility routine processes various attributes for a generic object after the object's action message has been sent. It is used almost exclusively by the generic UI after MSG_GEN_OUTPUT_ACTION or **GenProcessAction()**.
Warnings: This routine may move or resize chunks and/or object blocks; therefore, you must dereference pointers after calling it.
Include: genC.goh
GenProcessGenAttrsBeforeAction()
void GenProcessGenAttrsBeforeAction(
MemHandle mh, /* handle of object calling the routine */
ChunkHandle chnk); /* chunk of object calling the routine */ This utility routine processes various attributes for a generic object before the object's action message has been sent. It is used almost exclusively by the generic UI before MSG_GEN_OUTPUT_ACTION or **GenProcessAction()**.
Warnings: This routine may move or resize chunks and/or object blocks; therefore, you must dereference pointers after calling it.
Include: genC.goh
GenProcessUndoGetFile()
VMFileHandle GenProcessUndoGetFile(); This routine returns the handle of the file that holds the process' undo information.
Include: Objects/gProcC.goh
GenProcessUndoCheckIfIgnoring()
Boolean GenProcessUndoCheckIfIgnoring(); This routine returns *true* if the process is currently ignoring actions.
Include: Objects/gProcC.goh
GenRemoveDownwardLink()
void GenRemoveDownwardLink(
MemHandle mh, /* handle of calling object */
ChunkHandle chnk, /* chunk of calling object */
word flags); /* CompChildFlags */ This utility routine removes a child from the generic tree, preserving the child's upward link and usability flags. It is called primarily by the generic UI and is rarely used by applications. The flags parameter specifies whether the object linkage should be marked dirty by passing the CCF_MARK_DIRTY flag.
Warnings: This routine may move or resize chunks and/or object blocks; therefore, you must dereference pointers after calling it.
Include: genC.goh
GenSetUpwardLink()
void GenSetUpwardLink(
MemHandle mh, /* handle of calling object */
ChunkHandle chnk, /* chunk of calling object */
optr parent); /* optr of calling object's parent */ This utility routine converts the child/parent link to an upward-only link. Pass the handle and chunk of the locked child object and the optr of the parent composite.
Include: genC.goh
GeodeAllocQueue()
QueueHandle GeodeAllocQueue(); This routine allocates an event queue which can then be attached to a thread with **ThreadAttachToQueue()**. It returns the queue's handle if one is allocated; it will return zero otherwise. This routine is used outside the kernel only in exceptional circumstances.
Be Sure To: You must free the queue when you are done with it; use GeodeFreeQueue().
Include: geode.h
GeodeDuplicateResource()
MemHandle GeodeDuplicateResource(
MemHandle mh); /* handle of geode resource to duplicate */ This routine reads a resource from a geode into a newly-allocated block (allocated by this routine). Any relocations on the resource to itself are adjusted to be the duplicated block. The handle of the duplicated block is returned.
Include: resource.h
GeodeFind()
GeodeHandle GeodeFind(
const char * name, /* geode's permanent name */
word numChars, /* number of characters to match:
* 8 for name, 12 for name.ext */
GeodeAttrs attrMatch, /* GeodeAttrs that must be set */
GeodeAttrs attrNoMatch); /* GeodeAttrs that must be off */ This routine finds a geode given its permanent name, returning the geode handle if found. If the geode can not be found, a null handle will be returned. Pass it the following:
name - A pointer to the null-terminated permanent name of the geode.
numChars - The number of characters to match before returning. Pass GEODE_NAME_SIZE to match the permanent name, (GEODE_NAME_SIZE + GEODE_EXT_SIZE) to match the name and extension.
attrMatch - A record of GeodeAttrs the subject geode must have set for a positive match.
attrNoMatch - A record of GeodeAttrs the subject geode must have cleared for a positive match.
Include: geode.h
GeodeFindResource()
word GeodeFindResource(
FileHandle file, /* geode's executable file */
word resNum, /* resource number to find */
word resOffset, /* offset to resource */
dword * base); /* pointer to second return value */ This routine locates a resource within a geode's executable (**.geo**) file. It returns the size of the resource as well as the base position of the first byte of the resource in the file (pointed to by *base*). Pass the following:
file - The file handle of the geode’s executable file.
resNum - The number of the resource to be found.
resOffset - The offset within the resource at which to position the file’s read/write position.
base - A pointer to a dword value to be filled in by the routine. This value will be the base offset from the beginning of the file to the first byte of the resource.
Structures: A geode’s executable file is laid out as shown below.
0: Geode file header
1: Imported Library Table
2: Exported Routine Table
3: Resource Size Table
4: Resource Position Table
5: Relocation Table Size Table
6: Allocation Flags Table
7+: application resources
Include: geode.h
GeodeFlushQueue()
void GeodeFlushQueue(
QueueHandle source, /* source queue to flush */
QueueHandle dest, /* queue to hold flushed events */
optr obj /* object to handle flushed events */
MessageFlags flags); /* MF_INSERT_AT_FRONT or zero */ This routine flushes all events from one event queue into another, synchronously. Pass it the following:
source - The queue handle of the source queue (the one to be emptied).
dest - The queue handle of the destination queue that will receive the flushed events.
obj - The object that will handle flushed events that were destined for the process owning the source queue. If the process owning the destination queue should be used, pass the destination queue handle in the handle portion of the optr and a null chunk handle.
flags - A record of MessageFlags. The only meaningful flag for this routine is MF_INSERT_AT_FRONT, which should be set to flush source queue’s events to the front of the destination queue. If this flag is not passed, events will be appended to the queue.
Include: geode.h
GeodeFreeQueue()
void GeodeFreeQueue(
QueueHandle qh); /* handle of queue being freed */ This routine frees an event queue allocated with **GeodeAllocQueue()**. Any events still on the queue will be flushed as with **GeodeFlushQueue()**. You must pass the handle of the queue to be freed.
Include: geode.h
GeodeFreeDriver()
void GeodeFreeDriver(
GeodeHandle gh); /* handle of the driver */ This routine frees a driver geode that had been loaded with **GeodeUseDriver()**. Pass it the geode handle of the driver as returned by that routine.
Include: driver.h
GeodeFreeLibrary()
void GeodeFreeLibrary(
GeodeHandle gh); /* handle of the library */ This routine frees a library geode that had been loaded with **GeodeUseLibrary()**. Pass it the geode handle of the library.
Include: library.h
GeodeGetAppObject()
optr GeodeGetAppObject(
GeodeHandle gh); /* handle of the application geode */ This routine returns the optr of the specified geode's GenApplication object. The geode should be an application. Pass zero to get the optr of the caller's application object.
Include: geode.h
GeodeGetCodeProcessHandle()
GeodeHandle GeodeGetCodeProcessHandle(); This routine returns the geode handle of the geode that owns the block in which the code which calls this routine resides.
Include: geode.h
GeodeGetDefaultDriver()
GeodeHandle GeodeGetDefaultDriver(
GeodeDefaultDriverType type); /* type of default driver to get */ This routine returns the default driver's geode handle for the type passed. The type must be one of the values of **GeodeDefaultDriverType**, which includes GDDT_FILE_SYSTEM (0) GDDT_KEYBOARD (2) GDDT_MOUSE (4) GDDT_VIDEO (6) GDDT_MEMORY_VIDEO (8) GDDT_POWER_MANAGEMENT(10) GDDT_TASK(12).
Include: driver.h
GeodeGetInfo()
word GeodeGetInfo(
GeodeHandle gh, /* handle of the subject geode */
GeodeGetInfoType info, /* type of information to return */
void * buf); /* buffer to contain returned info */ This routine returns information about the specified geode. The geode must be loaded already. The meaning of the returned word depends on the value passed in *info*; the **GeodeGetInfoType** is shown below. Pass the following:
gh - The geode handle of the geode.
info - The type of information requested; this should be one of the values listed below.
buf - A pointer to a locked or fixed buffer which will contain returned information for various types requested.
GeodeGetInfoType has the following enumerations (only one may be requested at a time):
GGIT_ATTRIBUTES
Get the geode’s attributes. The return value will be a record of GeodeAttrs corresponding to those attributes set for the geode. Pass a null buffer pointer.
GGIT_TYPE
Get the type of the geode. The returned value will be a value of GeosFileType indicating the type of file storing the geode. Pass a null buffer pointer.
GGIT_GEODE_RELEASE
Get the release number of the geode. The returned word will be the size of the buffer pointed to by buf, and the buffer will contain the ReleaseNumber structure of the geode.
GGIT_GEODE_PROTOCOL
Get the protocol level of the geode. The returned word will be the size of the buffer pointed to by buf, and the buffer will contain the ProtocolNumber structure of the geode.
GGIT_TOKEN_ID
Get the token identifier of the geode. The returned word will be the size of the buffer pointed to by buf, and the buffer will contain a GeodeToken structure containing the token characters and token ID of the geode’s token.
GGIT_PERM_NAME_AND_EXT
Get the permanent name of the geode, with the extension characters. The returned word will be the size of the buffer pointed to by buf, and the buffer will contain a null-terminated character string representing the geode’s permanent name (as set in its geode parameters file). Note that the buffer must be at least 13 bytes.
GGIT_PERM_NAME_ONLY
Get the permanent name of the geode without the extension characters. The returned word will be the size of the buffer pointed to by buf, and the buffer will contain the null-terminated character string representing the geode’s permanent name. The buffer must be at least nine bytes.
Include: geode.h
GeodeGetOptrNS()
optr GeodeGetOptrNS(
optr obj); This routine unrelocates an optr, changing the virtual-segment handle to an actual global handle.
Include: resource.h
GeodeGetProcessHandle()
GeodeHandle GeodeGetProcessHandle(); This routine returns the geode handle of the current executing process (i.e. the owner of the current running thread). Use it when you need to pass your application's geode handle or Process object's handle to a routine or message.
Include: geode.h
GeodeGetUIData()
word GeodeGetUIData(
GeodeHandle gh); **Include:** geode.h
GeodeInfoDriver()
DriverInfoStruct * GeodeInfoDriver(
GeodeHandle gh); /* handle of the driver to get information about */ This routine returns information about the specified driver geode. Pass the geode handle of the driver as returned by **GeodeUseDriver()**. It returns a pointer to a **DriverInfoStruct** structure, shown below.
typedef struct {
void (*DIS_strategy)();
DriverAttrs DIS_driverAttributes;
DriverType DIS_driverType;
} DriverInfoStruct;
For full information on this structure, see the DriverInfoStruct reference entry.
Include: driver.h
GeodeInfoQueue()
word GeodeInfoQueue(
QueueHandle qh); /* queue to query */ This routine returns information about a specific event queue. Pass the handle of the queue; for information about the current process' queue, pass a null handle. This routine returns the number of events (or messages) currently in the queue.
Include: geode.h
GeodeLoad()
GeodeHandle GeodeLoad(
const char * name, /* file name of geode */
GeodeAttrs attrMatch, /* GeodeAttrs that must be set */
GeodeAttrs attrNoMatch, /* GeodeAttrs that must be clear */
word priority, /* priority of the loaded geode */
dword appInfo, /* special load information */
GeodeLoadError * err); /* returned error value */ This routine loads the specified geode from the given file and then executes the geode based on its type. It returns the geode handle of the loaded geode if successful; if unsuccessful, the returned value will be NullHandle and the *err* pointer will point to an error value. Pass this routine the following:
name - A pointer to the name of the geode’s file. This is a null-terminated character string that represents the full path of the file (or a path relative to the current working directory).
attrMatch - A record of GeodeAttrs that must be set in the specified geode for the load to be successful.
attrNoMatch - A record of GeodeAttrs that must be cleared in the specified geode for the load to be successful. (That is, each bit which is set in attrNoMatch must be clear in the geode’s GeodeAttrs field.)
priority - If the subject geode is a process, this is the priority at which its process thread will run.
appInfo - Two words of data to be passed directly to the loaded geode. For libraries and drivers, this should be a far pointer to a null-terminated string of parameters.
err - A pointer to an empty GeodeLoadError which will hold any returned error values.
Warnings: If you load a geode dynamically with GeodeLoad(), you must be sure to free it when you are done with GeodeFree().
Include: geode.h
See Also: UserLoadApplication()
GeodeLoadDGroup
void GeodeLoadDGroup(
MemHandle mh); This routine forces the **dgroup** segment into the data-segment register.
Include: resource.h
GeodePrivAlloc()
word GeodePrivAlloc(
GeodeHandle gh, /* handle of the owner of the
* newly-allocated private data */
word numWords); /* number of words to allocate */ This routine allocates a string of contiguous words in all geodes' private data areas; each set of words will be owned by the geode specified in *gh*. The data allocated can be accessed with **GeodePrivWrite()** and **GeodePrivRead()** and must be freed with **GeodePrivFree()**. The return value will be the offset to the start of the allocated range, or zero if the routine could not allocate the space.
Each geode has a block of private data the is accessed using the GeodePriv…() routines. A specific geode’s private data block is expanded only when a valid GeodePrivWrite() is performed for the geode. Space is “allocated” in the data blocks of all geodes (loaded or yet-to-be loaded) simultaneously via a call to GeodePrivAlloc(). Data that have never been written are returned as all zeros.
Include: geode.h
GeodePrivFree()
void GeodePrivFree(
word offset, /* offset returned by GeodePrivAlloc() */
word numWords); /* number of words to free */ This routine frees a group of contiguous words from all geodes' private data areas. The space must previously have been allocated with **GeodePrivAlloc()**. Pass the offset to the words as returned by **GeodePrivAlloc()** as well as the number of words to be freed.
Include: geode.h
GeodePrivRead()
void GeodePrivRead(
GeodeHandle gh, /* handle of owner of private data */
word offset, /* offset returned by
* GeodePrivAlloc() */
word numWords, /* number of words to read */
word * dest); /* pointer to buffer into which data
* will be copied */ This routine reads a number of words from the geode's private data area. Pass the following:
gh - The geode handle of the owner of the private data to be read.
offset - The offset to the private data as returned by GeodePrivAlloc().
numWords - The number of words to read.
dest - A pointer to a locked or fixed buffer into which the words should be read. It must be at least numWords words long.
Include: geode.h
GeodePrivWrite()
void GeodePrivWrite(
GeodeHandle gh, /* handle of owner of private data */
word offset, /* offset returned by
* GeodePrivAlloc() */
word numWords, /* number of words to be written */
word * src); /* buffer containing data */ This routine writes a number of words into a geode's private data area. The area being written must have been allocated previously with **GeodePrivAlloc()**. Pass the following:
gh - The geode handle of the owner of the private data space.
offset - The offset to begin writing to, as returned by GeodePrivAlloc().
numWords - The number of words to be written. This should be no more than had been previously allocated.
src - A pointer to the locked or fixed buffer containing the data to be written.
Include: geode.h
GeodeSetDefaultDriver()
void GeodeSetDefaultDriver(
GeodeDefaultDriverType type, /* type of default driver to set */
GeodeHandle gh); /* driver to set as the default */ This routine sets the default driver for the indicated driver type. Pass the type of default driver in *type* and the handle of the driver in *gh*. The type must be a value of **GeodeDefaultDriverType**, which includes GDDT_FILE_SYSTEM (0) GDDT_KEYBOARD (2) GDDT_MOUSE (4) GDDT_VIDEO (6) GDDT_MEMORY_VIDEO (8) GDDT_POWER_MANAGEMENT(10) GDDT_TASK(12)
Include: driver.h
GeodeSetUIData()
void GeodeSetUIData(
GeodeHandle gh,
word data)
GeodeUseDriver()
GeodeHandle GeodeUseDriver(
const char * name, /* file name of driver to load */
word protoMajor, /* expected major protocol */
word protoMinor, /* expected minor protocol */
GeodeLoadError * err); /* pointer to returned error */ This routine dynamically loads a driver geode given the driver's file name. It returns the geode handle of the driver if successful; if unsuccessful, it returns an error code of type **GeodeLoadError** pointed to by *err*. Pass this routine the following:
name - A pointer to the driver’s null-terminated full path and file name.
protoMajor - The expected major protocol of the driver. If zero, any protocol is acceptable.
protoMinor - The expected minor protocol of the driver.
err - A pointer to a GeodeLoadError in which any error values will be returned.
Tips and Tricks: It is much easier to automatically load the drivers you need by noting them in your geode parameters file.
Be Sure To: If you use GeodeUseDriver() to dynamically load a driver, you must also use GeodeFreeDriver() to free it when you are done using it.
Include: driver.h
GeodeUseLibrary()
GeodeHandle GeodeUseLibrary(
const char * name, /* file name of library to load */
word protoMajor, /* expected major protocol */
word protoMinor, /* expected minor protocol */
GeodeLoadError * err); /* pointer to returned error */ This routine dynamically loads a library geode when given the library's file name. (The library must be in the thread's working directory.) It returns the geode handle of the loaded library if successful; if unsuccessful, it returns an error code (**GeodeLoadError**) pointed to by *err*. Pass this routine the following parameters:
name - A pointer to the library’s null-terminated file name.
protoMajor - The expected major protocol of the library. If zero, any protocol is acceptable.
protoMinor - The expected minor protocol of the library.
err - A pointer to a GeodeLoadError which will contain any returned error values.
Be Sure To: If you dynamically load a library with GeodeUseLibrary(), you must manually free it when finished, with GeodeFreeLibrary().
Include: library.h
GeoFree()
void * GeoFree(
void * blockPtr, /* address of memory to free */
GeodeHandle geodeHan); /* owner of block to be used */ The routine **malloc()** can free only memory in the malloc-block belonging to the calling geode. If you want to free memory in another geode's malloc-block, call **GeoFree()**. Passing a null **GeodeHandle** will make **GeoMalloc()** act on memory in the calling geode's malloc-block.
Include: geode.h
Warnings: Pass exactly the same address as the one returned to you when you allocated the memory. If you pass a different address, GeoFree() will take unpredictable actions, including possibly erasing other memory or crashing the system.
See Also: free()
GeoMalloc()
void * GeoMalloc(
size_t blockSize, /* # of bytes to allocate*/
GeodeHandle geodeHan, /* Owner of block to be used */
word zeroInit); /* Zero-initialize memory? */ The routine **malloc()** automatically allocates memory in the malloc-block belonging to the calling geode. It does not zero-initialize the memory. If you want to zero-initialize the memory, or want to allocate it in another geode's malloc-block, call **GeoMalloc()**. Pass *true* (i.e., non-zero) in *zeroInit* to zero-initialize the memory.
Passing a null GeodeHandle will make GeoMalloc() allocate the memory in the calling geode’s malloc-block. If zeroInit is true, the memory will be initialized to null bytes; otherwise, the memory will be left uninitialized.
Include: geode.h
Warnings: All memory allocated with malloc() is freed when GEOS shuts down.
See Also: malloc()
GeoReAlloc()
void * GeoReAlloc(
void * blockPtr, /* address of memory to resize */
size_t newSize, /* New size in bytes */
GeodeHandle geodeHan); /* Owner of block to be used */ The routine **realloc()** can resize only memory in the malloc-block belonging to the calling geode. If you want to resize memory in another geode's malloc-block, call **GeoReAlloc()**. Passing a null **GeodeHandle** will make GeoReAlloc() act on memory in the calling geode's malloc-block.
If the block is resized larger, the new memory will not be zero-initialized. Resizing a block smaller will never fail. If GeoReAlloc() fails, it will return a null pointer (zero). If you pass a newSize of zero, the passed block pointer is freed and the return pointer is a null pointer.
Include: geode.h
Warnings: Pass exactly the same address as the one returned to you when you allocated the memory. If you pass a different address, GeoReAlloc() will take unpredictable actions, including possibly erasing other memory or crashing the system.
See Also: realloc()
GrApplyRotation()
void GrApplyRotation(
GStateHandle gstate, /* GState to alter */
WWFixedAsDWord angle); /* degrees counterclockwise */ Apply a rotation to the GState's transformation matrix.
Include: graphics.h
GrApplyScale()
void GrApplyScale(
GStateHandle gstate, /* GState to alter */
WWFixedAsDWord xScale, /* new x scale factor */
WWFixedAsDWord yScale); /* new y scale factor */ Apply a scale factor to the GState's transformation matrix.
Include: graphics.h
GrApplyTransform()
void GrApplyTransform(
GStateHandle gstate, /* GState to draw to */
const TransMatrix *tm); /* transformation matrix to apply */ Apply a transformation, expressed as a transformation matrix, to a GState's coordinate system.
Include: graphics.h
GrApplyTranslation()
void GrApplyTranslation(
GStateHandle gstate, /* GState to alter */
WWFixedAsDWord xTrans, /* translation in x */
WWFixedAsDWord yTrans); /* translation in y */ Apply a translation to the GState.
Include: graphics.h
GrApplyTranslationDWord()
void GrApplyTranslationDWord(
GStateHandle gstate, /* GState to alter */
sdword xTrans, /* extended translation in x */
sdword yTrans); /* extended translation in y */ Apply a 32-bit integer extended translation to the GState.
Include: graphics.h
GrBeginPath()
void GrBeginPath(
GStateHandle gstate, /* GState to alter */
PathCombineType params); /* path parameters */ Starts or alters the path associated with a GState. All graphics operations that are executed until **GrEndPath()** is called become part of the path.
Depending on the value of the params field, the new path may replace the old path, or may be combined with the old path by intersection or union.
Include: graphics.h
GrBeginUpdate()
void GrBeginUpdate(
GStateHandle gstate); /* GState to draw to */ Called by an application to signal that it is about to begin updating the exposed region. This routine is normally called as part of a MSG_META_EXPOSED handler. Blanks out the invalid area.
Include: win.h
GrBitBlt()
void GrBitBlt(
GStateHandle gstate, /* GState to draw to */
sword sourceX, /* original x origin */
sword sourceY, /* original y origin */
sword destX, /* new x origin */
sword destY, /* new y origin */
word width, /* width of area */
word height, /* height of area */
BLTMode mode); /* draw mode (see below) */ Transfer a bit-boundary block of pixels between two locations in video memory. This routine is useful for animation and other applications which involve moving a drawing around the screen.
Structures:
typedef enum /* word */ {
BLTM_COPY, /* Leave source region alone */
BLTM_MOVE, /* Clear & invalidate source rect */
BLTM_CLEAR /* Clear source rectangle */
} BLTMode;
Include: graphics.h
GrBrushPolyline()
void GrBrushPolyline(
GStateHandle gstate, /* GState to draw to */
const Point * points, /* array of Point structures to draw */
word numPoints, /* number of points in array */
word brushH, /* brush height */
word brushW); /* brush width */ Draw a brushed connected polyline. Note that this routine ignores the GState's line width, and instead uses a brush height and width, measured in pixels.
Include: graphics.h
GrCharMetrics()
dword GrCharMetrics(
GStatehandle gstate, /* GState to get metrics for */
GCM_info info, /* information to return */
word ch); /* character of type Chars */ Returns metric information for a single character of a font. This information is used to determine the drawing bounds for a character. To find out how wide a character is (how much space to leave for it if drawing a line of text character-by-character), use **GrCharWidth()** instead.
Structures:
typedef enum {
GCMI_MIN_X, /* return = value << 16 */
GCMI_MIN_X_ROUNDED, /* return = value */
GCMI_MIN_Y, /* return = value << 16 */
GCMI_MIN_Y_ROUNDED, /* return = value << 16 */
GCMI_MAX_X, /* return = value << 16 */
GCMI_MAX_X_ROUNDED, /* return = value << 16 */
GCMI_MAX_Y, /* return = value << 16 */
GCMI_MAX_Y_ROUNDED /* return = value << 16 */
} GCM_Info;
See Also: GrCharWidth()
Include: font.h
GrCharWidth()
dword GrCharWidth( /* Returns width << 16 */
GStateHandle gstate, /* GState to query */
word ch); /* character of type Chars */ Return the width of a single character. Note that this routine does not take into account track kerning, pairwise kerning, space padding, or other attributes that apply to multiple characters.
Include: graphics.h
GrCheckFontAvailID()
FontID GrCheckFontAvailID(
FontEnumFlags flags,
word family,
FontID id); See if font (identified by ID) exists.
Include: graphics.h
GrCheckFontAvailName()
FontID GrCheckFontAvailName(
FontEnumFlags flags,
word family,
const char * name); See if font (identified by name) exists.
Include: graphics.h
GrClearBitmap()
void GrClearBitmap(
GStateHandle gstate); /* GState to affect */ Clear out the content of a bitmap. Note that the part of the bitmap actually cleared depends on the bitmap mode. For the normal mode, the data portion of the bitmap is cleared. If the bitmap is in BM_EDIT_MASK mode, then the mask is cleared and the data portion is left alone.
Include: graphics.h
GrCloseSubPath()
void GrCloseSubPath(
GStateHandle gstate); /* GState to affect */ Geometrically closes the currently open path segment. Note that you must still call **GrEndPath()** to end the path definition.
Include: graphics.h
GrComment()
void GrComment(
GStateHandle gstate, /* GState to affect */
const void * data, /* comment string */
word size); /* Size of data, in bytes */ Write a comment out to a graphics string.
Include: graphics.h
GrCopyGString()
GSRetType GrCopyGString(
GStateHandle source, /* GState from which to get GString */
GStateHandle dest, /* GState to which to copy GString */
GSControl flags); /* flags for the copy */ Copy all or part of a Graphics String. The **GSControl** record can have the following flags:
GSC_ONE /* just do one element */
GSC_MISC /* return on MISC opcode */
GSC_LABEL /* return on GR_LABEL opcode */
GSC_ESCAPE /* return on GR_ESCAPE opcode */
GSC_NEW_PAGE /* return when we get to a NEW_PAGE */
GSC_XFORM /* return on TRANSFORMATIONopcode */
GSC_OUTPUT: /* return on OUTPUT opcode */
GSC_ATTR /* return on ATTRIBUTE opcode */
GSC_PATH /* return on PATH opcode */
The return value can be any one of GSRetType, a byte-size field:
GSRT_COMPLETE
GSRT_ONE
GSRT_MISC
GSRT_LABEL
GSRT_ESCAPE
GSRT_NEW_PAGE
GSRT_XFORM
GSRT_OUTPUT
GSRT_ATTR
GSRT_PATH
GSRT_FAULT
Include: gstring.h
GrCreateBitmap()
VMBlockHandle GrCreateBitmap(
BMFormat initFormat, /* color fomat of bitmap */
word initWidth, /* initial width of bitmap */
word initHeight, /* initial height of bitmap */
VMFileHandle vmFile, /* VM file to hold bitmap's data*/
optr exposureOD, /* optr to get MSG_META_EXPOSED */
GStateHandle * bmgs); /* Draws to this GState
* will draw to the bitmap */ This routine allocates memory for a bitmap and creates an off-screen window in which to hold the bitmap. This routine takes the following arguments:
initFormat - The depth of the bitmap’s color.
initWidth - Bitmap’s width.
initHeight - Bitmap’s height.
vmFile - File to hold the bitmap data; the routine will allocate a block within this file.
exposureOD - Object which will receive the “exposed” message when the bitmap’s window is invalidated. If this argument is zero, then no exposed message will be sent. Remember that an off-screen window is created to house the bitmap. When this window is first created, it will be invalid, and it is conceivable that later actions could cause it to become invalid again. On these occasions, the object specified by this argument will receive a MSG_META_EXPOSED.
bmgs - The GStateHandle pointed to by this argument can start out as null; the routine will use it to return the GState by which the bitmap can be drawn to. Any graphics routines which draw to this returned GState will be carried out upon the bitmap.
The routine returns a VMBlockHandle, the handle of the block within the passed VM file which contains the bitmap’s data. The block will be set up as the first block of a HugeArray. Its header area will be filled with the following:
Complex Bitmap Header
This is a CBitmap structure which contains some basic information about the bitmap.
Editing Mode
These flags can change how the bitmap is being edited.
Device Information Block
This internal structure contains information about and used by the video driver. (Don’t worry that you don’t know the size of this structure; remember that the CBitmap structure contains the offsets of the bitmap and palette data areas.)
Pallette Information (optional)
If the bitmap has its own pallette, this is where the palette data will be stored; it will consist of an array of 3-byte entries. Depending on how many colors the bitmap supports, there may be 16 or 256 entries in this array.
The bitmap’s raw data is in the VM block, but outside of the header area.
Include: graphics.h
GrCreateGString()
GStateHandle GrCreateGString(
Handle han, /* memory, stream, or VM file handle */
GStringType hanType, /* type of handle in han parameter */
word * gsBlock); /* returned for GST_MEMORY and
* GST_VMEM types only */ Open a graphics string and start redirecting graphics orders to the string. The *hanType* parameter must be GST_MEMORY, GST_STREAM, or GST_VMEM.
Include: gstring.h
GrCreatePalette()
word GrCreatePalette( /* Returns # of entries in color table
* or 0 for monochrome or 24-bit */
GStateHandle gstate);
Create a color mapping table and associate it with the current window. Initialize the table entries to the default palette for the device.
Include: graphics.h
GrCreateState()
GStateHandle GrCreateState(
WindowHandle win); /* Window in which GState will be active */ Create a graphics state (GState) block containg default GState information.
If zero is passed, then the GState created will have no window associated with it.
Include: graphics.h
GrDeleteGStringElement()
void GrDeleteGStringElement(
GStateHandle gstate, /* GState containing GString */
word count); /* number of elements to delete */ Delete a range of GString elements from the GString in the passed GState.
Include: graphics.h
GrDestroyBitmap()
void GrDestroyBitmap(
GStateHandle gstate, /* GState containing bitmap */
BMDestroy flags); /* flags for removing data */ Free the bitmap and disassociate it with its window. Depending on the passed flag, the bitmap's data may be freed or preserved. Thus, it is possible to remove the GString used to edit the bitmap while maintaining the bitmap in a drawable state.
Structures:
typedef ByteEnum BMDestroy;
/* BMD_KILL_DATA,
BMD_LEAVE_DATA */
Include: graphics.h
GrDestroyGString()
void GrDestroyGString(
Handle gstring, /* Handle of GString */
GStateHandle gstate, /* NULL, or handle of another
* gstate to free*/
GStringKillType type); /* Kill type for data removal */ Destroys a GString. Depending on the **GStringKillType** argument, this either constitutes removing the GState from the GString data; or freeing both the GState and the GString's data. If you have been drawing the GString to a GState, you should pass the GState's handle as *gstate*, and this routine will do some cleaning up.
Structures:
typedef ByteEnum GStringKillType;
/* GSKT_KILL_DATA,
GSKT_LEAVE_DATA */
Include: gstring.h
GrDestroyPalette()
void GrDestroyPalette(
GStateHandle gstate); /* GState of palette to destroy */ Free any custom palette associated with the current window.
Include: graphics.h
GrDestroyState()
void GrDestroyState(
GStateHandle gstate); /* GState to be destroyed */ Free a graphics state block.
Include: graphics.h
GrDrawArc()
void GrDrawArc(
GStateHandle gstate, /* GState to draw to */
sword left, /* bounds of box outlining arc */
sword top,
sword right,
sword bottom,
word startAngle, /* angles in degrees
word endAngle, * counter-clockwise */
ArcCloseType arcType); /* how the arc is closed */ Draw an arc along the ellipse that is specified by a bounding box, from the starting angle to the ending angle.
Include: graphics.h
GrDrawArc3Point()
void GrDrawArc3Point(
GStateHandle gstate, /* GState to draw to */
const ThreePointArcParams *params); Draw a circular arc, given three points along the arc; both endpoints and any other point on the arc.
Include: graphics.h
GrDrawArc3PointTo()
void GrDrawArc3PointTo(
GStateHandle gstate, /* GState to draw to */
const ThreePointArcToParams *params); As **GrDrawArc3Point()**, above, except that the current position is automatically used as one of the endpoints.
Include: graphics.h
GrDrawBitmap()
void GrDrawBitmap(
GStateHandle gstate, /* GState to draw to */
sword x, /* x starting point */
sword y, /* y starting point */
const Bitmap * bm, /* pointer to the bitmap */
Bitmap * _pascal (*callback) (Bitmap *bm)); /* NULL for no callback */ Draw a bitmap. Note that if the bitmap takes up a great deal of memory, it is necessary to manage its memory when drawing. If the bitmap resides in a **HugeArray** (true of any bitmap created using **GrCreateBitmap()**), then calling **GrDrawHugeBitmap()** will automatically take care of memory management. Otherwise, you may wish to provide a suitable callback routine. This routine should be declared _pascal and is passed a pointer into the passed bitmap and is expected to return a pointer to the next slice. This allows the bitmap to be drawn in horizontal bands, or swaths.
Include: graphics.h
GrDrawBitmapAtCP()
void GrDrawBitmapAtCP(
GStateHandle gstate, /* GState to draw to */
const Bitmap * bm, /* pointer to the bitmap */
Bitmap * (*callback) (Bitmap *bm)); /* NULL for no callback */ This routine is the same as **GrDrawBitmap()**, above, except that the bitmap is drawn at the current position.
Include: graphics.h
GrDrawChar()
void GrDrawChar(
GStateHandle gstate, /* GState to draw to */
sword x, /* x position at which to draw */
sword y, /* y position at which to draw */
word ch); /* character of type Chars */ Draw a character at the given position with the current text drawing attributes.
Include: graphics.h
GrDrawCharAtCP()
void GrDrawCharAtCP(
GStateHandle gstate, /* GState to draw to */
word ch); /* character of type Chars */ Draw a character at the current position with the current text drawing attributes.
Include: graphics.h
GrDrawCurve()
void GrDrawCurve(
GStateHandle gstate, /* GState to draw to */
const Point *points); /* array of four Points */ Draw a Bezier curve.
Include: graphics.h
GrDrawCurveTo()
void GrDrawCurveTo(
GStateHandle gstate, /* GState to draw to */
const Point *points); /* array of three Points */ Draw a Bezier curve, using the current postion as the first point.
Include: graphics.h
GrDrawEllipse()
void GrDrawEllipse(
GStateHandle gstate, /* GState to draw to */
sword left, /* bounding box bounds */
sword top,
sword right,
sword bottom); Draw an ellipse, defined by its bounding box.
Include: graphics.h
GrDrawGString()
GSRetType GrDrawGString(
GStateHandle gstate, /* GState to draw to */
Handle gstringToDraw, /* GString to draw */
sword x, /* point at which to draw */
sword y,
GSControl flags, /* GSControl record */
GStringElement * lastElement); /* pointer to empty structure */ Draw a graphics string. The passed control flag allows drawing to stop upon encountering certain kinds of drawing elements. If this causes the drawing to stop in mid-string, then the routine will provide a pointer to the next **GStringElement** to be played.
-
You must provide a GState to draw to. You may wish to call GrSaveState() on the GState before drawing the GString (and call GrRestoreState() afterwards). If you will draw anything else to this GState after the GString, you must call GrDestroyGString() on the GString, and pass this GState’s handle as the gstate argument so that GrDestroyGString() can clean up the GState.
-
You must provide a GString to draw. The GString must be properly loaded (probably by means of GrLoadGString()).
-
You can provide a pair of coordinates at which to draw the GString. The graphics system will translate the coordinate system by these coordinates before carrying out the graphics commands stored in the GString.
-
You can provide a GSControl argument which requests that the system stop drawing the GString when it encounters a certain type of GString element. If the GString interpreter encounters one of these elements, it will immediately stop drawing. The GString will remember where it stopped drawing. If you call GrDrawGString() with that same GString, it will continue drawing where you left off.
-
You must provide a pointer to an empty GStringElement structure. GrDrawGString() will return a value here when it is finished drawing. If the GString has stopped drawing partway through due to a passed GSControl, the returned GStringElement value will tell you what sort of command was responsible for halting drawing. For instance, if you had instructed GrDrawGString() to halt on an `output’ element (GrDraw…() or GrFill…() commands), then when GrDrawGString() returns, you would check the value returned to see what sort of output element was present.
Include: gstring.h
GrDrawGStringAtCP()
GSRetType GrDrawGStringAtCP(
GStateHandle gstate, /* GState to draw to */
GStringeHandle gstringToDraw, /* GString to draw */
GSControl flags, /* GSControl flags */
GStringElement * lastElement); /* last element to draw */ Draw a graphics string as **GrDrawGString()**, above, except that drawing takes place at the current position.
-
You must provide a GState to draw to. You may wish to call GrSaveState() on the GState before drawing the GString (and call GrRestoreState() afterwards). If you will draw anything else to this GState after the GString, you must call GrDestroyGString() on the GString, and pass this GState’s handle as the gstate argument so that GrDestroyGString() can clean up the GState.
-
You must provide a GString to draw. The GString must be properly loaded (probably by means of GrLoadGString()).
-
You can provide a GSControl argument which requests that the system stop drawing the GString when it encounters a certain type of GString element. If the GString interpreter encounters one of these elements, it will immediately stop drawing. The GString will remember where it stopped drawing. If you call GrDrawGString() with that same GString, it will continue drawing where you left off.
-
You must provide a pointer to an empty GStringElement structure. GrDrawGString() will return a value here when it is finished drawing. If the GString has stopped drawing partway through due to a passed GSControl, the returned GStringElement value will tell you what sort of command was responsible for halting drawing. For instance, if you had instructed GrDrawGString() to halt on an `output’ element (GrDraw…() or GrFill…() commands), then when GrDrawGString() returns, you would check the value returned to see what sort of output element was present.
Include: gstring.h
GrDrawHLine()
void GrDrawHLine(
GStateHandle gstate, /* GState to draw to */
sword x1, /* first horizontal coordinate */
sword y, /* vertical position of line */
sword x2); /* second horizontal coordinate */ Draw a horizontal line.
Include: graphics.h
GrDrawHLineTo()
void GrDrawHLineTo(
GStateHandle gstate, /* GState to draw to */
sword x); /* ending horizontal coordinate */ Draw a horizontal line starting from the current position.
Include: graphics.h
GrDrawHugeBitmap()
void GrDrawHugeBitmap(
GStateHandle gstate, /* GState to draw to */
sword x /* Point at which to draw */
sword y,
VMFileHandle vmFile, /* VM File holding HugeArray */
VMBlockHandle vmBlk); /* VM block of HugeArray */ Draw a bitmap that resides in a HugeArray.
Include: graphics.h
See Also: GrDrawBitmap() , GrDrawHugeBitmapAtCP(), GrDrawHugeImage()
GrDrawHugeBitmapAtCP()
void GrDrawHugeBitmapAtCP(
GStateHandle gstate, /* GState to draw to */
VMFileHandle vmFile, /* VM file containing HugeArray */
VMBlockHandle vmBlk); /* VM block containing HugeArray */ As **GrDrawHugeBitmap()**, above, except that the bitmap is drawn at the current position.
Include: graphics.h
See Also: GrDrawBitmapAtCP(), GrDrawHugeBitmap()
GrDrawHugeImage()
void GrDrawHugeImage(
GStateHandle gstate, /* GState to draw to */
sword x /* point at which to draw */
sword y,
ImageFlags flags,
VMFileHandle vmFile, /* VM file holding HugeArray */
VMBlockHandle vmBlk); /* VM block holding HugeArray */ Draw a bitmap that resides in a **HugeArray**. Note that the bitmap will be drawn on an assumption of one device pixel per bitmap pixel. The bitmap will not draw rotated or scaled. Depending on the value of the flags argument, the bitmap may be expanded so that a square of device pixels displays each bitmap pixel.
Structures:
typedef ByteFlags ImageFlags;
/* The following flags be be combined using | and &:
IF_IGNORE_MASK,
IF_BORDER
* The flags should be combined with one ImageBitSize:
IF_BITSIZE */
#define IBS_1 0
#define IBS_2 1
#define IBS_4 2
#define IBS_8 3
#define IBS_16 4
Include: graphics.h
See Also: GrDrawImage() , GrDrawHugeBitmapAtCP()
GrDrawImage()
void GrDrawImage(
GStateHandle gstate, /* GState to draw to */
sword x /* point at which to draw */
sword y,
ImageFlags flags,
const Bitmap * bm); /* pointer to bitmap */ Draw a bitmap. Note that the bitmap will be drawn on an assumption of one device pixel per bitmap pixel. The bitmap will not draw rotated or scaled. Depending on the value of the flags argument, the bitmap may be expanded so that a square of device pixels displays each bitmap pixel.
Structures:
typedef ByteFlags ImageFlags;
/* The following flags be be combined using | and &:
IF_IGNORE_MASK,
IF_BORDER
* The flags should be combined with one ImageBitSize:
IF_BITSIZE */
#define IBS_1 0
#define IBS_2 1
#define IBS_4 2
#define IBS_8 3
#define IBS_16 4
Include: graphics.h
See Also: GrDrawHugeImage() , GrDrawBitmap()
GrDrawLine()
void GrDrawLine(
GStateHandle gstate, /* GState to draw to */
sword x1, /* First coordinate of line */
sword y1,
sword x2, /* Second coordinate of line */
sword y2); Draw a line.
Include: graphics.h
See Also: GrDrawLineTo(), GrDrawHLine(), GrDrawVLine()
GrDrawLineTo()
void GrDrawLineTo(
GStateHandle gstate, /* GState to draw to */
sword x, /* Second coordinate of line */
sword y); Draw a line starting from the current position.
Include: graphics.h
See Also: GrDrawLine(), GrDrawHLineTo(), GrDrawVLineTo()
GrDrawPath()
void GrDrawPath(
GStateHandle gstate); /* GState to draw to */ Draws the stroked version of the current path, using the current graphic line attributes.
Include: graphics.h
GrDrawPoint()
void GrDrawPoint(
GStateHandle gstate, /* GState to draw to */
sword x, /* Coordinates of point to draw */
sword y); Draw a pixel.
Include: graphics.h
GrDrawPointAtCP()
void GrDrawPointAtCP(
GStateHandle gstate); /* GState to draw to */ Draw a pixel.
Include: graphics.h
GrDrawPolygon()
void GrDrawPolygon(
GStateHandle gstate, /* GState to draw to */
const Point * points, /* array of points in polygon */
word numPoints); /* number of points in array */ Draws a connected polygon.
Include: graphics.h
GrDrawPolyline()
void GrDrawPolyline(
GStateHandle gstate, /* GState to draw to */
const Point * points, /* array of points in polyline */
word numPoints); /* number of points in array */ Draws a simple polyline.
Include: graphics.h
GrDrawRect()
void GrDrawRect(
GStateHandle gstate, /* GState to draw to */
sword left, /* bounds of rectangle to draw */
sword top,
sword right,
sword bottom); Draws the outline of a rectangle.
Include: graphics.h
GrDrawRectTo()
void GrDrawRectTo(
GStateHandle gstate, /* GState to draw to */
sword x, /* opposite corner of rectangle */
sword y); Draws the outline of a rectangle, with one corner defined by the current position.
Include: graphics.h
GrDrawRegion()
void GrDrawRegion(
GStateHandle gstate, /* GState to draw to */
sword xPos, /* Position at which to draw */
sword yPos,
const Region * reg, /* Region definition */
sword param0, /* value to use with
* parameterized coordinates */
sword param)1; /* value to use with
* parameterized coordinates */ Draw a region. The area will be rendered filled with the GState's area attributes.
Include: graphics.h
GrDrawRegionAtCP()
void GrDrawRegionAtCP(
GStateHandle gstate, /* GState to draw to */
const Region * reg, /* region definition */
sword param0, /* Value to use with parameterized coordinates */
sword param1, /* Value to use with parameterized coordinates */
sword param2, /* Value to use with parameterized coordinates */
sword param)3;/* Value to use with parameterized coordinates */ Draw a region at the current pen position. The area will be rendered filled with the GState's area attributes.
Include: graphics.h
GrDrawRelArc3PointTo()
void GrDrawRelArc3PointTo(
const ThreePointRelArcToParams *params);
Draw a circular arc relative to the current point given two additional points: the other endpoint and any other point on the arc, both described in relative coordinates.
Include: graphics.h
GrDrawRelLineTo()
void GrDrawRelLineTo(
GStateHandle gstate, /* GState to draw to */
WWFixedAsDWord x, /* horizontal offset of second point */
WWFixedAsDWord y); /* vertical offset of second point */ Draw a line from the current pen position, given a displacement from the current pen position to draw to.
Include: graphics.h
GrDrawRoundRect()
void GrDrawRoundRect(
GStateHandle gstate, /* GState to draw to */
sword left, /* bounds of rectangle */
sword top,
sword right,
sword bottom,
word cornerRadius); /* radius of corner rounding */ Draw the outline of a rounded rectangle.
Include: graphics.h
GrDrawRoundRectTo()
void GrDrawRoundRectTo(
GStateHandle gstate, /* GState to draw to */
sword x, /* opposite corner of bounds */
sword y,
word cornerRadius); /* radius of corner rounding */ Draw the outline of a rounded rectangle, where one corner of the bounding rectangle is the current position.
Include: graphics.h
GrDrawSpline()
void GrDrawSpline(
GStateHandle gstate, /* GState to draw to */
const Point * points, /* array of points */
word numPoints,); /* number of points in array */ Draw a Bezier spline.
Include: graphics.h
See Also: GrDrawCurve()
GrDrawSplineTo()
void GrDrawSplineTo(
GStateHandle gstate, /* GState to draw to */
const Point *points, /* array of points */
word numPoints); /* number of points in array */ Draw a Bezier spline, using the current position as one endpoint.
Include: graphics.h
See Also: GrDrawCurveTo()
GrDrawText()
void GrDrawText(
GStateHandle gstate, /* GState to draw to */
sword x, /* point at which to draw */
sword y,
const Chars * str, /* pointer to character string */
word size); /* length of string */ Draw a string of text. The string is represented as an array of characters. Note that the text will be drawn using the GState's font drawing attributes and that this routine does not accept any style run arguments.
If the passed size argument is zero, the string is assumed to be null-terminated.
Include: graphics.h
GrDrawTextAtCP()
void GrDrawTextAtCP(
GStateHandle gstate, /* GState to draw to */
const Chars * str, /* pointer to character string */
word size); /* length of string */ As **GrDrawText()**, above, except that the text is drawn at the current position.
If the passed size argument is zero, the string is assumed to be null-terminated.
Include: graphics.h
GrDrawVLine()
void GrDrawVLine(
GStateHandle gstate, /* GState to draw to */
sword x, /* horizontal position of line */
sword y1, /* first vertical coordinate */
sword y2); /* second vertical coordinate */ Draw a vertical line.
Include: graphics.h
GrDrawVLineTo()
void GrDrawVLine(
GStateHandle gstate, /* GState to draw to */
sword y); /* second vertical position */ Draw a vertical line starting from the current position.
Include: graphics.h
GrEditBitmap()
GStateHandle GrEditBitmap(
VMFileHandle vmFile, /* VM file of bitmap */
VMBlockHandle vmBlock, /* VM block of bitmap */
optr exposureOD); /* optr to get MSG_META_EXPOSED */ This routine attaches a GState to the passed bitmap so that new drawings may be be sent to the bitmap.
Include: graphics.h
GrEditGString()
GStateHandle GrEditGString(
Handle vmFile, /* VM file containing the GString */
word vmBlock); /* VM block containing the GString */ This routine takes the location of a GString data block stored in a VM file. It will associate a GState with this GString data and returns the handle of this GState. Any graphics commands issued using this GStateHandle will be appended to the GString.
Include: graphics.h
GrEndGString()
GStringErrorType GrEndGString(
GStateHandle gstate); /* GState to draw to */ Finish the definition of a graphics string.
Structures:
typedef enum {
GSET_NO_ERROR,
GSET_DISK_FULL
} GStringErrorType;
Include: graphics.h
GrEndPath()
void GrEndPath(
GStateHandle gstate); /* GState to draw to */
Finish definition of a path. Further graphics commands will draw to the display, as normal.
Include: graphics.h
GrEndUpdate()
void GrEndUpdate(
GStateHandle gstate); /* GState to draw to */ Unlocks window from an update.
Include: win.h
GrEnumFonts()
word GrEnumFonts( /* Return value = number of fonts found */
FontEnumStruct * buffer, /* buffer for returned values */
word size, /* number of structures to return */
FontEnumFlags flags, /* FontEnumFlags */
word family); /* FontFamily */ Generate a list of available fonts. The font information includes both the font's ID and a string name.
Structures:
typedef struct {
FontID FES_ID;
char FES_name[FID_NAME_LEN];
} FontEnumStruct;
Include: font.h
GrEscape()
void GrEscape(
GStateHandle gstate, /* GState to draw to */
word code, /* escape code */
const void * data, /* pointer to the data */
word size); /* Size of data, in bytes */ Write an escape code to a graphics string.
Include: graphics.h
GrFillArc()
void GrFillArc(
GStateHandle gstate, /* GState to draw to */
sword left, /* bounding rectangle */
sword top,
sword right,
sword bottom,
word startAngle, /* angles in degrees
word endAngle * counter-clockwise */
ArcCloseType closeType); /* OPEN, CHORD, or PIE */ Fill an elliptical arc. The arc is defined by the bounding rectangle of the base ellipse and two angles. Depending on how the arc is closed, this will result in either a wedge or a chord fill.
Include: graphics.h
GrFillArc3Point()
void GrFillArc3Point(
GStateHandle gstate, /* GState to draw to */
const ThreePointParams *params); Fill an arc. Depending on how the arc is closed, this will result in either a wedge or a chord fill. The arc is defined in terms of its endpoints and one other point, all of which must lie on the arc.
Include: graphics.h
GrFillArc3PointTo()
void GrFillArc3PointTo(
GStateHandle gstate, /* GState to draw to */
const ThreePointArcParams *params); As **GrFillArc3Point()**, above, except that one endpoint of the arc is defined by the current position.
Include: graphics.h
GrFillBitmap()
void GrFillBitmap (
GStateHandle gstate, /* GState to draw to */
sword x, /* point at which to draw */
sword y,
const Bitmap * bm, /* pointer to bitmap */
Bitmap * (*callback) (Bitmap *bm)); Fill a monochrome bitmap with the current area attributes. The arguments to this routine are the same as those for **GrDrawBitmap()**.
Include: graphics.h
GrFillBitmapAtCP()
void GrFillBitmapAtCP (
GStateHandle gstate, /* GState to draw to */
const Bitmap * bm, /* pointer to bitmap */
Bitmap * (*callback) (Bitmap *bm)); Fill a monochrome bitmap with the current area attributes. The bitmap will be drawn at the current position. The arguments to this routine are the same as those for **GrDrawBitmapAtCP()**.
Include: graphics.h
GrFillEllipse()
void GrFillEllipse(
GStateHandle gstate, /* GState to draw to */
sword left, /* Bounds of bounding rectangle */
sword top,
sword right,
sword bottom); Draw a filled ellipse. The ellipse's dimensions are defined by its bounding box.
Include: graphics.h
GrFillPath()
void GrFillPath(
GStateHandle gstate, /* GState to draw to */
RegionFillRule rule); /* ODD_EVEN or WINDING */ Fill an area whose outline is defined by the GState's path.
Include: graphics.h
GrFillPolygon()
void GrFillPolygon(
GStateHandle gstate, /* GState to draw to */
RegionFillRule windingRule, /* ODD_EVEN or WINDING */
const Point * points, /* array of points in polygon */
word numPoints); /* number of points in array */ Fill polygon. The polygon is defined by the passed array of points.
Include: graphics.h
GrFillRect()
void GrFillRect(
GStateHandle gstate, /* GState to draw to */
sword left, /* bounds of rectangle */
sword top,
sword right,
sword bottom); Draw a filled rectangle.
Include: graphics.h
GrFillRectTo()
void GrFillRectTo(
GStateHandle gstate, /* GState to draw to */
sword x, /* opposite corner of rectangle */
sword y); Draw a filled rectangle. The current position will define one of the corners.
Include: graphics.h
GrFillRoundRect()
void GrFillRoundRect(
GStateHandle gstate, /* GState to draw to */
sword left, /* bounds of rectangle */
sword top,
sword right,
sword bottom
word cornerRadius); /* radius of corner rounding */ Draw a filled rounded rectangle.
Include: graphics.h
GrFillRoundRectTo()
void GrFillRoundRectTo(
GStateHandle gstate, /* GState to draw to */
sword x, /* opposite corner of rectangle */
sword y
word cornerRadius); /* radius of corner roundings */ Draw a filled rounded rectangle, using the current position to define one corner of the bounding rectangle.
Include: graphics.h
GrFindNearestPointsize()
Boolean GrFindNearestPointsize( /* If false, then FontID invalid */
FontID id, /* fond ID */
dword sizeSHL16, /* point size */
TextStyle styles, /* style */
TextStyle * styleFound, /* buffer for style */
dword * sizeFoundSHL16); /* buffer for size */ Find the nearest available point size for a font. If the font passed in *id* exists, then *styleFound* will point to the styles available and *sizeFoundSHL16* will point to the nearest point size to that passed. If the font is not found, the return valued will be *true*.
Include: font.h
GrFontMetrics()
dword GrFontMetrics(
GStateHandle gstate, /* subject GState */
GFM_info info); /* Type of information to return */ Get metrics information about a font. It returns the requested information based on the *info* parameter.
Structures:
typedef enum /* word */ {
GFMI_HEIGHT, /* return = val << 16 */
GFMI_MEAN, /* return = val << 16 */
GFMI_DESCENT, /* return = val << 16 */
GFMI_BASELINE, /* return = val << 16 */
GFMI_LEADING, /* return = val << 16 */
GFMI_AVERAGE_WIDTH, /* return = val << 16 */
GFMI_ASCENT, /* return = val << 16 */
GFMI_MAX_WIDTH, /* return = val << 16 */
GFMI_MAX_ADJUSTED_HEIGHT, /* return = val << 16 */
GFMI_UNDER_POS, /* return = val << 16 */
GFMI_UNDER_THICKNESS, /* return = val << 16 */
GFMI_ABOVE_BOX, /* return = val << 16 */
GFMI_ACCENT, /* return = val << 16 */
GFMI_MANUFACTURER, /* return = val */
GFMI_KERN_COUNT, /* return = Char */
GFMI_FIRST_CHAR, /* return = Char */
GFMI_LAST_CHAR, /* return = FontMaker */
GFMI_DEFAULT_CHAR, /* return = Char */
GFMI_STRIKE_POS, /* return = Char */
GFMI_BELOW_BOX, /* return = Char */
GFMI_HEIGHT_ROUNDED /* return = Char */
GFMI_DESCENT_ROUNDED, /* return = Char */
GFMI_BASELINE_ROUNDED, /* return = Char */
GFMI_LEADING_ROUNDED, /* return = Char */
GFMI_AVERAGE_WIDTH_ROUNDED, /* return = Char */
GFMI_ASCENT_ROUNDED, /* return = Char */
GFMI_MAX_WIDTH_ROUNDED, /* return = Char */
GFMI_MAX_ADJUSTED_HEIGHT_ROUNDED, /* ret = Char */
GFMI_UNDER_POS_ROUNDED, /* return = Char */
GFMI_UNDER_THICKNESS_ROUNDED, /* return = Char */
GFMI_ABOVE_BOX_ROUNDED, /* return = Char */
GFMI_ACCENT_ROUNDED=, /* return = Char */
GFMI_STRIKE_POS_ROUNDED, /* return = Char */
GFMI_BELOW_BOX_ROUNDED /* return = Char */
} GFM_info;
Include: font.h
GrGetAreaColor()
RGBColorAsDWord GrGetAreaColor(
GStateHandle gstate); /* GState of which to get color */ Get the color which is being used to fill areas.
Include: graphics.h
GrGetAreaColorMap()
ColorMapMode GrGetAreaColorMap(
GStateHandle gstate); /* GState of which to get area color map */ Get the mapping mode used for filling areas with unavailable colors.
Include: graphics.h
GrGetAreaMask()
SysDrawMask GrGetAreaMask(
GStateHandle gstate, /* GState of which to get mask */
DrawMask * dm); /* buffer for returned mask */ Get the draw mask used when filling areas. The *dm* argument should point to a buffer capable of holding at least eight bytes to get the bit-pattern of the mask; otherwise *dm* should be NULL. The returned buffer is the 8x8 bit pattern: each byte represents a row of the pattern, and the bytes are ordered from top row to bottom.
Include: graphics.h
GrGetAreaPattern()
GraphicPattern GrGetAreaPattern(
GStateHandle gstate, /* GState of area pattern */
const MemHandle * customPattern, /* pointer to handle of block for
* returned custom pattern */
word * customSize); /* pointer to size of returned
* buffer */ Get the area pattern used when filling areas.
Include: graphics.h
GrGetBitmap()
MemHandle GrGetBitmap(
GStateHandle gstate, /* GState containing bitmap */
sword x, /* bitmap origin */
sword y,
word width, /* bitmap width and height */
word height,
XYSize * sizeCopied); /* buffer for returned size */ Dump an area of the display to a bitmap. The handle of a block containing the bitmap is returned; the *sizeCopied* pointer points to the actual size of the bitmap successfully copied.
Include: graphics.h
GrGetBitmapMode()
BitmapMode GrGetBitmapMode(
GStateHandle gstate); /* GState containing bitmap */ Get mode bits for an editable bitmap.
Include: graphics.h
GrGetBitmapRes()
XYValueAsDWord GrGetBitmapRes(
const Bitmap * bm); /* pointer to the bitmap */ Get the resolution of a bitmap.
Include: graphics.h
GrGetBitmapSize()
XYValueAsDWord GrGetBitmapSize(
const Bitmap * bm); /* pointer to the bitmap */ Get the dimensions, in points, of a bitmap.
Include: graphics.h
GrGetClipRegion()
MemHandle GrGetClipRegion(
GStateHandle gstate, /* subject GState */
RegionFillRule rule); /* ODD_EVEN or WINDING */ Get the current clip region. A null handle (zero) will be returned if no clip paths are set for the GState.
Include: graphics.h
GrGetCurPos()
XYValueAsDWord GrGetCurPos(
GStateHandle gstate); /* subject GState */ Get the current pen position.
Include: graphics.h
GrGetCurPosWWFixed()
void GrGetCurPosWWFixed(
GStateHandle gstate, /* subject GState */
PointWWFixed *cp); /* buffer in which to return cur. pos. */ Get the current pen position.
Include: graphics.h
GrGetDefFontID()
FontID GrGetDefFontID(
dword * sizeSHL16); /* pointer to buffer for returned size */ Get the system default font (including size).
Include: font.h
GrGetFont()
FontID GrGetFont(
GStateHandle gstate, /* subject GState */
WWFixedAsDWord * pointSize); /* pointer to buffer for
* returned point size */ Get the passed GState's current font, including point size.
Include: graphics.h
GrGetFontName()
FontID GrGetFontName(
FontID id, /* ID of font */
const char * name); /* buffer for returned name string */ Get the string name of a font. Note that if the returned **FontID** is zero, then the font was not found. The name string buffer should be a least FID_NAME_LEN in size.
Include: font.h
GrGetFontWeight()
FontWeight GrGetFontWeight(
GStateHandle gstate); /* GState containing the font */ Get the current font weight set for the passed GState.
Include: font.h
GrGetFontWidth()
FontWidth GrGetFontWidth(
GStateHandle gstate); /* GState containing the font */ Get the current font width set for the passed GState.
Include: font.h
GrGetGStringBounds()
void GrGetGStringBounds(
GStringHandle source, /* GString to be checked */
GStateHandle dest, /* handle of GState to use */
GSControl flags, /* GSControl flags */
Rectangle * bounds); /* returned bounds of GState */ This routine returns the coordinate bounds of the *source* GString drawn at the current position in the GString. The *dest* GState will be used if passed; to have no GState restrictions, pass a null handle. The bounds of the smallest containing rectangle will be returned in the structure pointed to by *bounds*.
Include: gstring.h
GrGetGStringBoundsDWord
void GrGetGStringBoundsDWord(
Handle gstring, /* GString to be checked */
GStateHandle gstate, /* handle of GState to use */
GSControl flags, /* GSControl flags */
RectDWord * bounds); /* returned bounds of GState */ This routine behaves as **GrGetGStringBounds()**, but has been alterred to work with 32-bit graphics spaces.
This routine returns the coordinate bounds of a GString drawn at the current position in the GString. The gstate GState will be used if passed; to have no GState restrictions, pass a null handle. The bounds of the smallest containing rectangle will be returned in the structure pointed to by bounds.
Include: gstring.h
GrGetGStringElement()
GStringElement GrGetGStringElement(
GStateHandle gstate, /* handle of GString's GState */
void * buffer, /* pointer to return buffer */
word bufSize, /* size of return buffer */
word * elementSize, /* size of GString element */
void ** pointerAfterData); /* pointer to pointer to
* next element in GString */ Extract the next element from a graphics string. The opcode is returned explicitly. The routine's data can be returned in a buffer.
Include: gstring.h
GrGetInfo()
void GrGetInfo(
GStateHandle gstate, /* GState to get information about */
GrInfoTypes type, /* type of information to get */
void * data); /* buffer for returned information */ Get the private data, window handle, or pen position associated with the GState.
Structures:
typedef enum {
GIT_PRIVATE_DATA,
GIT_WINDOW,
GIT_PEN_POS
} GrInfoType
Include: graphics.h
GrGetLineColor()
RGBColorAsDWord GrGetLineColor(
GStateHandle gstate); /* subject GState */ Get the color used when drawing lines.
Include: graphics.h
GrGetLineColorMap()
ColorMapMode GrGetLineColorMap(
GStateHandle gstate); /* subject GState */ Get the mode used when drawing lines in an unavailable color.
Include: graphics.h
GrGetLineEnd()
LineEnd GrGetLineEnd(
GStateHandle gstate); /* subject GState */ Get the end used when drawing lines.
Include: graphics.h
GrGetLineJoin()
LineJoin GrGetLineJoin(
GStateHandle gstate); /* subject GState */ Get the join used when drawing corners.
Include: graphics.h
GrGetLineMask()
SysDrawMask GrGetLineMask(
GStateHandle gstate, /* subject GState */
DrawMask * dm); /* buffer for returned custom mask */ Get the drawing mask used when drawing lines. The *dm* argument should point to a buffer capable of holding at least eight bytes to get the bit-pattern of the mask; otherwise *dm* should be NULL. The returned buffer is the 8x8 bit pattern: each byte represents a row of the pattern, and the bytes are ordered from top row to bottom.
Include: graphics.h
GrGetLineStyle()
LineStyle GrGetLineStyle(
GStateHandle gstate); /* subject GState */ Get the style, or "dottedness," used when drawing lines.
Include: graphics.h
GrGetLineWidth()
WWFixedAsDWord GrGetLineWidth(
GStateHandle gstate); /* subject GState */ Get the current line width.
Include: graphics.h
GrGetMaskBounds()
void GrGetMaskBounds(
GStateHandle gstate, /* subject GState */
Rectangle * bounds); /* buffer for returned bounds */ Get the 16-bit bounds of the current clip rectangle.
Include: graphics.h
GrGetMaskBoundsDWord()
void GrGetMaskBoundsDWord(
GStateHandle gstate, /* subject GState */
RectDWord * bounds); /* buffer for returned bounds */ Get the 16-bit bounds of the current clip rectangle, accurate to a fraction of a point.
Include: graphics.h
GrGetMiterLimit()
WWFixedAsDWord GrGetMiterLimit(
GStateHandle gstate); /* subject GState */ Get the miter limit to use when drawing mitered corners.
Include: graphics.h
GrGetMixMode()
MixMode GrGetMixMode(
GStateHandle gstate); /* subject GState */ Get the current mixing mode.
Include: graphics.h
GrGetPalette()
MemHandle GrGetPalette(
GStateHandle gstate, /* subject GState */
GetPalType flag, /* GPT_ACTIVE, GPT_CUSTOM, or
* GPT_DEFAULT */
word * numEntries); /* number of entries in block */ Return all or part of the window's color lookup table. This routine returns the handle of a block containing all the returned palette entries.
Include: graphics.h
GrGetPath()
MemHandle GrGetPath(
GStateHandle gstate, /* subject GState */
GetPathType ptype); /* Which path to retrieve */ Returns handle to block containing path data. This handle may be passed to **GrSetPath()**. Either the current path, the clipping path, or the window clipping path may be retrieved.
Include: graphics.h
GrGetPathBounds()
Boolean GrGetPathBounds(
GStateHandle gstate, /* subject GState */
GetPathType ptype,
Rectangle * bounds); /* buffer for returned bounds */ Returns the rectangular bounds that encompass the current path as it would be filled. A *true* return value indicates an error occurred or there was no path for the GState.
Include: graphics.h
GrGetPathBoundsDWord()
Boolean GrGetPathBoundsDWord(
GStateHandle gstate, /* subject GState */
GetPathType ptype,
RectDWord * bounds); /* buffer for returned bounds */ Returns the rectangular bounds that encompass the current path as it would be filled. A *true* return value indicates an error occurred or there was no path for the GState.
Include: graphics.h
GrGetPathPoints()
MemHandle GrGetPathPoints(
GStateHandle gstate, /* subject GState */
word resolution); /* dots per inch */ Returns a series of points that fall along the current path. The returned points are in document coordinates.
Include: graphics.h
GrGetPathRegion()
MemHandle GrGetPathRegion(
GStateHandle gstate, /* subject GState */
RegionFillRule rule); /* ODD_EVEN or WINDING */ Get the region enclosed by a path.
Include: graphics.h
GrGetPoint()
RGBColorAsDWord GrGetPoint(
GStateHandle gstate, /* subject GState */
sword x, /* coordinates of pixel */
sword y); Get the color of the pixel corresponding to the specified coordinates.
Include: graphics.h
GrGetPtrRegBounds()
word GrGetPtrRegBounds( /* Returns size of Region data struct. */
const Region * reg, /* pointer to region */
Rectangle * bounds); /* returned bounds of region */ Get the bounds of the passed region.
Include: graphics.h
GrGetSubscriptAttr()
ScriptAttrAsWord GrGetSubscriptAttr(
GStateHandle gstate); /* subject GState */ Get the GState's subscript drawing attributes. The high byte of the return value is the percentage of the font size for the subscript; the low byte is the percentage of the font size from the top at which the character gets drawn.
Include: font.h
GrGetSuperscriptAttr()
ScriptAttrAsWord GrGetSuperscriptAttr(
GStateHandle gstate); /* subject GState */ Get the GState's superscript drawing attributes. The high byte of the return value is the percentage of the font size for the superscript; the low byte is the percentage of the font size from the bottom at which the character gets drawn.
Include: font.h
GrGetTextBounds()
Boolean GrGetTextBounds(
GStateHandle gstate, /* subject GState */
word xpos, /* position where text would be drawn */
word ypos,
const char * str, /* text string */
word count, /* max number of characters to check */
Rectangle * bounds); /* returned bounding rectangle */ Get the bounds required to draw the passed text. If the passed size argument is zero, the string is assumed to be null-terminated.
Include: graphics.h
GrGetTextColor()
RGBColorAsDWord GrGetTextColor(
GStateHandle gstate); /* subject GState */ Get the color used when drawing text.
Include: graphics.h
GrGetTextColorMap()
ColorMapMode GrGetTextColorMap(
GStateHandle gstate); /* subject GState */ Get the mode used when drawing text in an unavailable color.
Include: graphics.h
GrGetTextMask()
SystemDrawMask GrGetTextMask(
GStateHandle gstate, /* subject GState */
DrawMask * dm); /* returned custom mask, if any */ Get the draw mask used when drawing text.The *dm* argument should point to a buffer capable of holding at least eight bytes to get the bit-pattern of the mask; otherwise *dm* should be NULL. The returned buffer is the 8x8 bit pattern: each byte represents a row of the pattern, and the bytes are ordered from top row to bottom.
Include: graphics.h
GrGetTextMode()
TextMode GrGetTextMode(
GStateHandle gstate); /* subject GState */ Get the text mode, including information about the vertical offset used when drawing text.
Include: graphics.h
GrGetTextPattern()
GraphicPattern GrGetTextPattern(
GStateHandle gstate, /* subject GState */
const MemHandle * customPattern, /* pointer to returned handle
* of block containing the
* returned pattern */
word * customSize); /* size of returned block */ Get the graphics pattern used when drawing text.
Include: graphics.h
GrGetTextSpacePad()
WWFixedAsDWord GrGetTextSpacePad(
GStateHandle gstate); /* subject GState */ Get the space pad used when drawing strings of text.
Include: graphics.h
GrGetTextStyle()
TextStyle GrGetTextStyle(
GStateHandle gstate); /* subject GState */ Get the style used when drawing text.
Include: graphics.h
GrGetTrackKern()
word GrGetTrackKern(
GStateHandle gstate); /* subject GState */ Get the track kerning used when drawing strings of text.
Include: graphics.h
GrGetTransform()
void GrGetTransform(
GStateHandle gstate, /* subject GState */
TransMatrix * tm); /* pointer to returned TransMatrix */ Get the current coordinate transformation, expressed as a matrix.
Include: graphics.h
GrGetWinBounds()
void GrGetWinBounds(
GStateHandle gstate, /* subject GState */
Rectangle * bounds); /* returned window bounds */ Get the bounds of the GState's associated window.
Include: graphics.h
GrGetWinBoundsDWord()
void GrGetWinBoundsDWord(
GStateHandle gstate, /* subject GState */
RectDWord * bounds); /* returned window bounds */ Get the bounds of the GState's associated window, accurate to a fraction of a point.
Include: graphics.h
GrGetWinHandle()
WindowHandle GrGetWinHandle(
GStateHandle gstate); /* subject GState */ Get the handle of the GState's associated window.
Include: graphics.h
GrGrabExclusive()
GStateHandle GrGrabExclusive(
GeodeHandle videoDriver, /* NULL for default */
GStateHandle gstate); /* subject GState */ Start drawing exclusively to a video driver.
Include: graphics.h
GrInitDefaultTransform()
void GrInitDefaultTransform(
GStateHandle gstate); /* subject GState */ Initialize the GState's default transformation to hold hte value of the current transformation.
Include: graphics.h
GrInvalRect()
void GrInvalRect(
GStateHandle gstate, /* subject GState */
sword left, /* bounds to be invalidated */
sword top,
sword right,
sword bottom); Invalidate the passed rectangular area. This area will be redrawn.
Include: graphics.h
GrInvalRectDWord()
void GrInvalRectDWord(
GStateHandle gstate, /* subject GState */
const RectDWord * bounds); /* bounds to be invalidated */ Invalidate the passed rectangular area. This area will be redrawn.
Include: graphics.h
GrLabel()
void GrLabel(
GStringHandle gstate, /* subject GState */
word label); /* label to write to GString */ Write the passed label into the passed GString.
Include: gstring.h
GrLoadGString()
GStringHandle GrLoadGString(
Handle han, /* handle of GString source */
GStringType hanType, /* handle type */
word vmBlock); /* if VM file, handle of VM block */ Load a graphics string from a file. Used with stream, VM, and pointer addressed GStrings.
Structures:
typedef ByteEnum GStringType;
/* GST_MEMORY,
GST_STREAM,
GST_VMEM,
GST_PTR,
GST_PATH */
Include: gstring.h
GrMapColorIndex()
RGBColorAsDWord GrMapColorIndex(
GStateHandle gstate, /* GState to use for mapping */
Color c); /* source color to be mapped */ Map a color index to its RGB equivalent using the color mapping scheme of the passed GState.
Include: graphics.h
GrMapColorRGB()
RGBColorAsDWord GrMapColorRGB(
GStateHandle gstate, /* GState to use for mapping */
word red, /* RGB values to map */
word green,
word blue); Map an RGB color to an index.
Include: graphics.h
GrMoveReg()
void GrMoveReg(
Region * reg, /* pointer to region */
sword xOffset, /* amount to shift horizontally */
sword yOffset); /* amount to shift vertically */ Moves a region a given amount. Note that this operation affects only the region's data structure. The region must be redrawn or used in some other way for the changes to have any visible effect.
Include: graphics.h
GrMoveTo()
void GrMoveTo(
GStateHandle gstate, /* subject GState */
sword x, /* new absolute pen position */
sword y); Change the pen position.
Include: graphics.h
GrMulDWFixed()
void GrMulDWFixed(
const DWFixed * i, /* first number */
const DWFixed * j, /* second number */
DWFixed * result); /* pointer to returned result */ Multiply two fixed point numbers.
Include: graphics.h
GrMulWWFixed()
WWFixedAsDWord GrMulWWFixed(
WWFixedAsDWord i, /* first number */
WWFixedAsDWord j); /* second number */ Multiply two fixed point numbers.
Include: graphics.h
GrNewPage()
void GrNewPage(
GStateHandle gstate,
PageEndCommand pageEndCommand); Begin drawing a new page. Normally used when printing documents.
Include: graphics.h
GrNullOp()
void GrNullOp(
GStateHandle gstate); /* subject GState */ Write a null operation element to a GString.
Include: graphics.h
GrQuickArcSine()
WWFixedAsDWord GrQuickArcSine(
WWFixedAsDWord deltaYDivDistance, /* delta y / distance */
word origDeltaX); /* original delta x */ Compute a fixed point arcsine. Angles are given in degrees counterclockwise of the positive x axis.
Include: graphics.h
GrQuickCosine()
WWFixedAsDWord GrQuickCosine(
WWFixedAsDWord angle); /* angle to cosine */ Compute a fixed point cosine. Angles are given in degrees counterclockwise of the positive x axis.
Include: graphics.h
GrQuickSine()
WWFixedAsDWord GrQuickSine(
WWFixedAsDWord angle); /* angle to sine */ Compute a fixed point sine. Angles are given in degrees counterclockwise of the positive x axis.
Include: graphics.h
GrQuickTangent()
WWFixedAsDWord GrQuickTangent(
WWFixedAsDWord angle); /* angle to tangent */ Compute a fixed point tangent. Angles are given in degrees counterclockwise of the positive x axis.
Include: graphics.h
GrReleaseExclusive()
void GrReleaseExclusive( /* TRUE if system had to force a redraw */
GeodeHandle videoDriver, /* handle of video driver */
GStateHandle gstate, /* GState that was drawing */
Rectangle *bounds); /* Bounds of aborted drawings */ Stop drawing exclusively to a video driver.
Include: graphics.h
GrRelMoveTo()
void GrRelMoveTo(
GStateHandle gstate, /* subject GState */
WWFixedAsDWord x, /* offsets to new pen position */
WWFixedAsDWord y); Change the pen position to coordinate expressed relative to the current position.
Include: graphics.h
GrRestoreState()
void GrRestoreState(
GStateHandle gstate); /* subject GState */ Restore the values of a saved GState.
Include: graphics.h
GrSaveState()
void GrSaveState(
GStateHandle gstate); /* subject GState */ Save the values of a GState, so that they may be restored by **GrRestoreState()**.
Include: graphics.h
GrSDivDWFByWWF()
void GrSDivDWFByWWF(
const DWFixed * dividend,
const WWFixed * divisor,
DWFixed * quotient) /* returned value */ Divide two fixed point numbers.
Include: graphics.h
GrSDivWWFixed()
WWFixedAsDWord GrSDivWWFixed(
WWFixedAsDWord dividend,
WWFixedAsDWord divisor) Divide two fixed point numbers.
Include: graphics.h
GrSetAreaAttr()
void GrSetAreaAttr(
GStateHandle gstate, /* subject GState */
const AreaAttr * aa); /* AreaAttr structure */ Set all of the attributes used when filling areas.
Structures:
typedef struct {
byte AA_colorFlag;
RGBValue AA_color;
SystemDrawMask AA_mask;
ColorMapMode AA_mapMode;
} AreaAttr;
Include: graphics.h
GrSetAreaColor()
void GrSetAreaColor(
GStateHandle gstate, /* GState to set color for */
ColorFlag flag, /* flag of how to set color */
word redOrIndex, /* color index or red RGB value */
word green, /* green RGB value or zero */
word blue); /* blue RGB value or zero */ Set the color to use when filling areas. The flag parameter may be CF_RGB (to set RGB values), CF_INDEX (to set a palette index), CF_GRAY, or CF_SAME.
Include: graphics.h
GrSetAreaColorMap()
void GrSetAreaColorMap(
GStateHandle gstate, /* subject GState */
ColorMapMode colorMap); /* color mapping mode */ Set mode to use when trying to fill an area with an unavailable color.
Include: graphics.h
GrSetAreaMaskCustom()
void GrSetAreaMaskCustom(
GStateHandle gstate, /* subject GState */
const DrawMask * dm); /* pointer to new custom mask */ Set the drawing mask to use when filling areas.
Include: graphics.h
GrSetAreaMaskSys()
void GrSetAreaMaskSys(
GStateHandle gstate, /* subject GState */
SystemDrawMask sysDM); /* new system area mask */ Set the drawing mask to use when filling areas.
Include: graphics.h
GrSetAreaPattern()
void GrSetAreaPattern(
GStateHandle gstate, /* subject GState */
GraphicPattern pattern); /* new pattern */ Set the graphics pattern to use when filling areas.
Include: graphics.h
GrSetBitmapMode()
void GrSetBitmapMode(
GStateHandle gstate, /* subject GState */
word flags, /* BM_EDIT_MASK or BM_CLUSTERED_DITHER */
MemHandle colorCorr); /* handle of ColorTransfer */ Set the bitmap editing mode. This allows the editing of a bitmap's mask, or turning on clustered dithering.
Include: graphics.h
GrSetBitmapRes()
Boolean GrSetBitmapRes(
GStateHandle gstate, /* subject GState */
word xRes, /* new resolutions */
word yRes); Set a complex bitmap's resolution.
Include: graphics.h
GrSetClipPath()
void GrSetClipPath(
GStateHandle gstate, /* subject GState */
PathCombineType params, /* how paths should be combined */
RegionFillRule rule); /* ODD_EVEN or WINDING */ Restrict the clipping region by intersecting it with the passed path.
Include: graphics.h
GrSetClipRect()
void GrSetClipRect(
GStateHandle gstate, /* subject GState */
PathCombineType flags, /* how paths should be combined */
sword left, /* bounds of clipping rectangle */
sword top,
sword right,
sword bottom); Restrict the clipping region by intersecting it with the passed rectangle.
Include: graphics.h
GrSetCustomAreaPattern()
void GrSetCustomAreaPattern(
GStateHandle gstate, /* subject GState */
GraphicPattern pattern, /* new area pattern */
const void * patternData, /* pointer to pattern data */
word patternSize); /* size of pattern data buffer */ Set the graphics pattern to use when filling areas.
Include: graphics.h
GrSetCustomTextPattern()
void GrSetCustomTextPattern(
GStateHandle gstate, /* subject GState */
GraphicPattern pattern, /* new pattern */
const void * patternData); /* pointer to pattern data */ Set the graphic pattern used when drawing text.
Include: graphics.h
GrSetDefaultTransform()
void GrSetDefaultTransform(
GStateHandle gstate); /* subject GState */ Replace the current coordinate transformation with the default transformation.
**Include: **graphics.h
GrSetFont()
void GrSetFont(
GStateHandle gstate, /* subject GState */
FontID id, /* new font ID */
WWFixedAsDWord pointSize); /* new point size */ Set the font to use when drawing text.
Include: graphics.h
GrSetFontWeight()
void GrSetFontWeight(
GStateHandle gstate, /* subject GState */
FontWeight weight); /* new font weight */ Set the font weight to use when drawing text.
Include: font.h
GrSetFontWidth()
void GrSetFontWidth(
GStateHandle gstate, /* subject GState */
FontWidth width); /* new font width */ Set the font width to use when drawing text.
Include: font.h
GrSetGStringBounds()
void GrSetGStringBounds(
Handle gstate, /* GState or GString handle */
sword left, /* new bounds of GString */
sword top,
sword right,
sword bottom); Optimization routine which allows you to set bounds values for a GString. This bounds information will be returned by **GrGetGStringBounds()** whenever that routine is called upon the affected GString.
Include: graphics.h
GrSetGStringPos()
void GrSetGStringPos(
GStateHandle gstate, /* subject GState */
GStringSetPosType type, /* how to set position */
word skip); /* number of elements to skip */ Set a graphics string's "playing position." Using this routine, it is possible to draw only selected elements of a GString.
Structures:
typedef ByteEnum GStringSetPosType;
/* GSSPT_SKIP,
GSSPT_RELATIVE,
GSSPT_BEGINNING,
GSSPT_END */
Include: gstring.h
GrSetLineAttr()
void GrSetLineAttr(
GStateHandle gstate, /* subject GState */
const LineAttr * la); /* new line attributes */ Set all attributes to use when drawing lines and corners.
Include: graphics.h
GrSetLineColor()
void GrSetLineColor(
GStateHandle gstate, /* subject GState */
ColorFlag flag, /* color flag */
word redOrIndex, /* new index or red RGB value */
word green, /* new green RGB value or zero */
word blue); /* new blue RGB value or zero */ Set the color to use when drawing lines.
Include: graphics.h
GrSetLineColorMap()
void GrSetLineColorMap(
GStateHandle gstate, /* subject GState */
ColorMapMode colorMap); /* new color map mode for lines */ Set the mode to use when trying to draw lines in an unavailable color.
Include: graphics.h
GrSetLineEnd()
void GrSetLineEnd(
GStateHandle gstate, /* subject GState */
LineEnd end); /* new line end specification */ Set the end to use when drawing lines.
Include: graphics.h
GrSetLineJoin()
void GrSetLineJoin(
GStateHandle gstate, /* subject GState */
LineJoin join); /* new line join specification */ Set the line join to use when drawing corners.
Include: graphics.h
GrSetLineMaskCustom()
void GrSetLineMaskCustom(
GStateHandle gstate, /* subject GState */
const DrawMask * dm); /* new line draw mask */ Set the drawing mask used when drawing lines.
Include: graphics.h
GrSetLineMaskSys()
void GrSetLineMaskSys(
GStateHandle gstate, /* subject GState */
SystemDrawMask sysDM); /* the new system line mask */ Set the drawing mask used when drawing lines.
Include: graphics.h
GrSetLineStyle()
void GrSetLineStyle(
GStateHandle gstate, /* subject GState */
LineStyle style, /* new line style */
word skipDistance, /* skip distance to first pair */
const DashPairArray * dpa, /* dash definition */
word numPairs); /* number of pairs */ Set the style, or "dottedness," to use when drawing lines.
Include: graphics.h
GrSetLineWidth()
void GrSetLineWidth(
GStateHandle gstate, /* subject GState */
WWFixedAsDWord width); /* new line width */ Set the line width to use when drawing lines.
Include: graphics.h
GrSetMiterLimit()
void GrSetMiterLimit(
GStateHandle gstate, /* subject GState */
WWFixedAsDWord limit); /* new miter limit */ Set the miter limit to use when drawing mitered corners.
Include: graphics.h
GrSetMixMode()
void GrSetMixMode(
GStateHandle gstate, /* subject GState */
MixMode mode); /* new mix mode */ Set the GState's mix mode, used to determine what happens when something is drawn on top of an existing drawing.
Include: graphics.h
GrSetNullTransform()
void GrSetNullTransform(
GStateHandle gstate); /* subject GState */ Clear the coordinate transformation. Most applications will actually want to replace the coordinate transformation with the default transformation using **GrSetDefaultTransform()**.
Include: graphics.h
GrSetPalette()
void GrSetPalette(
GStateHandle gstate, /* subject GState */
SetPalType type, /* SPT_DEFAULT or SPT_CUSTOM */
const RGBValue *buffer, /* array of palette entries */
word index, /* First element to change */
word numEntries); /* number of entries in array */ Set one or more entries in a palette, a window's color lookup table.
Include: graphics.h
GrSetPaletteEntry()
void GrSetPaletteEntry(
GStateHandle gstate, /* subject GState */
word index, /* index in palette to set */
word red, /* new RGB color values for entry */
word green,
word blue); Set one entry in a palette, a GState's color lookup table.
Include: graphics.h
GrSetPath()
void GrSetPath(
GStateHandle gstate, /* subject GState */
MemHandle pathGString); /* handle of path's block */ Takes the passed GState's path with the path encoded in the block with the passed handle. To get such a handle, call **GrGetPath()**
Include: graphics.h
GrSetPrivateData()
void GrSetPrivateData(
GStateHandle gstate, /* subject GState */
word dataAX, /* data to set */
word dataBX,
word dataCX,
word dataDX); Set the private data for a GState.
Include: graphics.h
GrSetStrokePath()
void GrSetStrokePath(
GStateHandle gstate); /* subject GState */ Replace a GState's path with the path resulting from stroking the original path. Note that this stroked path may be drawn, but may not be used for clipping.
Include: graphics.h
GrSetSubscriptAttr()
void GrSetSubscriptAttr(
GStateHandle gstate, /* subject GState */
ScriptAttrAsWord attrs); /* new subscript percentages */ Get the attributes used when drawing subscript characters.
Include: font.h
GrSetSuperscriptAttr()
void GrSetSuperscriptAttr(
GStateHandle gstate, /* subject GState */
ScriptAttrAsWord attrs); /* new superscript percentages */ Get the attributes used when drawing superscript characters.
Include: font.h
GrSetTextAttr()
void GrSetTextAttr(
GStateHandle gstate, /* subject GState */
const TextAttr * ta); /* pointer to text attributes */ Set all attributes used when drawing characters and text strings.
Include: graphics.h
GrSetTextColor()
void GrSetTextColor(
GStateHandle gstate, /* subject GState */
ColorFlag flag, /* color flag */
word redOrIndex, /* palette index or red RGB value */
word green, /* green RGB value or zero */
word blue); /* blue RGB value or zero */ Set the color used when drawing text.
Include: graphics.h
GrSetTextColorMap()
void GrSetTextColorMap(
GStateHandle gstate, /* subject GState */
ColorMapMode colorMap); /* new color mapping mode */ Set the mode used when trying to draw text in an unavailable color.
Include: graphics.h
GrSetTextMaskCustom()
void GrSetTextMaskCustom(
GStateHandle gstate, /* subject GState */
const DrawMask * dm); /* pointer to custom mask */ Set the drawing mask used when drawing text.
Include: graphics.h
GrSetTextMaskSys()
void GrSetTextMaskSys(
GStateHandle gstate, /* subject GState */
SystemDrawMask sysDM); /* new system draw mask */ Set the drawing mask used when drawing text.
Include: graphics.h
GrSetTextMode()
void GrSetTextMode(
GStateHandle gstate, /* subject GState */
TextMode bitsToSet, /* TextMode flags to set */
TextMode bitsToClear); /* TextMode flags to clear */ Set the text mode associated with a GState. Using this routine, it is possible to change the vertical offset used when drawing text.
Include: graphics.h
GrSetTextPattern()
void GrSetTextPattern(
GStateHandle gstate, /* subject GState */
GraphicPattern pattern); /* new graphic pattern for text */ Set the graphic pattern used when drawing text.
Include: graphics.h
GrSetTextSpacePad()
void GrSetTextSpacePad(
GStateHandle gstate, /* subject GState */
WWFixedAsDWord padding); /* new space padding */ Set the space pad used when drawing text strings.
Include: graphics.h
GrSetTextStyle()
void GrSetTextStyle(
GStateHandle gstate, /* subject GState */
TextStyle bitsToSet, /* TextStyle flags to set */
TextStyle bitsToClear); /* TextStyle flags to clear */ Set the style to use when drawing text.
Include: graphics.h
GrSetTrackKern()
void GrSetTrackKern(
GStateHandle gstate, /* subject GState */
word tk); /* degree of track kerning */ Set the track kerning to use when drawing text strings.
Include: graphics.h
GrSetTransform()
void GrSetTransform(
GStateHandle gstate, /* subject GState */
const TransMatrix * tm); /* new transformation matrix */ Set the GState's coordinate transformation.
Include: graphics.h
GrSetVMFile()
void GrSetVMFile(
GStateHandle gstate, /* subject GState */
VMFileHandle vmFile); /* new transformation matrix */ Update the VM file associated with a GState (this may apply when working with certain kinds of bitmaps and GStrings).
Include: graphics.h
GrSetWinClipPath()
void GrSetWinClipPath(
GStateHandle gstate, /* subject GState */
PathCombineType params, /* how paths are combined */
RegionFillRule rule); /* ODD_EVEN or WINDING */ Restrict the window's clipping region by intersecting it with the passed path.
Include: graphics.h
GrSetWinClipRect()
void GrSetWinClipRect(
GStateHandle gstate, /* subject GState */
PathCombineType flags, /* how paths are combined */
sword left, /* new clipping rectangle bounds */
sword top,
sword right,
sword bottom); Restrict the window's clipping region by intersecting it with the passed rectangle.
Include: graphics.h
GrSqrRootWWFixed()
WWFixedAsDWord GrSqrRootWWFixed(
WWFixedAsDWord i); /* number to get the square root of */ Compute the square root of a fixed point number.
Include: graphics.h
GrTestPath()
Boolean GrTestPath(
GStateHandle gstate, /* subject GState */
GetPathType ptype); /* Type of path to check for */ Determine whether the GState has a path of the specified type.
Include: graphics.h
GrTestPointInPath()
Boolean GrTestPointInPath(
GStateHandle gstate, /* subject GState */
word xPos, /* point to test */
word yPos,
RegionFillRule rule); /* ODD_EVEN or WINDING */ Determine whether the passed point falls in the interior of the GState's path.
Include: graphics.h
GrTestPointInPolygon()
Boolean GrTestPointInPolygon(
GStateHandle gstate, /* subject GState */
RegionFillRule rule, /* ODD_EVEN or WINDING */
Point * list, /* array of points in polygon */
word numPoints, /* number of points in array */
sword xCoord, /* coordinates of point to test */
sword yCoord); Determine whether the passed point lies in the interior of the passed polygon.
Include: graphics.h
GrTestPointInReg()
Boolean GrTestPointInReg(
const Region * reg, /* pointer to region */
sword x, /* coordinates of point to test */
sword y,
Rectangle *boundingRect); /* returned bounding rectangle,
* if point in region */ Determine whether a point lies within the passed region. If the point is not in the region, the return value is *true*.
Include: graphics.h
GrTestRectInReg()
TestRectReturnType GrTestRectInReg(
const Region * reg /* pointer to region */
sword left, /* bounds of rectangle to be tested */
sword top,
sword right,
sword bottom); Determine whether a rectangle lies within the clip region.
Structures:
typedef ByteEnum TestRectReturnType;
TRRT_OUT, /* rectangle completely out of region */
TRRT_PARTIAL, /* rectangle partially in region */
TRRT_IN /* rectangle completely in region */
Include: graphics.h
GrTextWidth()
word GrTextWidth(
GStateHandle gstate, /* subject GState */
const Chars * str, /* text string to check */
word size); /* maximum number of
* characters to check */ Compute the space the passed text string would require in a line of text. Use **GrGetTextBounds()** to determine the area necessary to render the text.
Include: graphics.h
GrTextWidthWWFixed()
WWFixedAsDWord GrTextWidthWWFixed( /* returns width << 16 */
GStateHandle gstate, /* subject GState */
const Chars * str, /* text string to check */
word size) /* maximum number of
* characters to check */ Compute the spacing the passed text string would require in a line of text, accurate to a fraction of a point. Use **GrGetTextBounds()** to determine the area necessary to render the text.
Include: graphics.h
GrTransform()
XYValueAsDWord GrTransform(
GStateHandle gstate, /* subject GState */
sword xCoord, /* coordinates to transform */
sword yCoord); Apply the device's transformation to the passed point.
Include: graphics.h
GrTransformDWFixed()
void GrTransformDWFixed(
GStateHandle gstate, /* subject GState */
PointDWFixed * coord); /* coordinates to transform */ Apply the device's transformation to the passed point.
Include: graphics.h
GrTransformDWord()
void GrTransformDWord(
GStateHandle gstate, /* subject GState */
sdword xCoord, /* coordinates to transform */
sdword yCoord,
PointDWord * deviceCoordinates); /* pointer to returned
*device coordinates */ Apply the device's transformation to the passed point.
Include: graphics.h
GrTransformWWFixed()
void GrTransformWWFixed(
GStateHandle gstate, /* subject GState */
WWFixedAsDWord xPos, /* coordinates to transform */
WWFixedAsDWord yPos,
PointWWFixed * deviceCoordinates); /* pointer to returned
*device coordinates */ Apply the device's transformation to the passed point.
Include: graphics.h
GrUDivWWFixed()
WWFixedAsDWord GrUDivWWFixed(
WWFixedAsDWord dividend,
WWFixedAsDWord divisor); Compute an unsigned division of two fixed point numbers.
Include: graphics.h
GrUntransform()
XYValueAsDWord GrUnTransformCoord(
GStateHandle gstate, /* subject GState */
sword xCoord, /* coordinates to untransform */
sword yCoord); Apply the reverse of the device's transformation to the passed point.
Include: graphics.h
GrUntransformDWFixed()
void GrUnTransCoordDWFixed(
GStateHandle gstate, /* subject GState */
PointDWFixed * coord); /* coordinates to untransform */ Apply the reverse of the device's transformation to the passed point.
Include: graphics.h
GrUntransformDWord()
void GrUnTransformExtCoord(
GStateHandle gstate, /* subject GState */
sdword xCoord, /* coordinates to untransform */
sdword yCoord,
PointDWord * documentCoordinates); /* pointer to returned
*device coordinates */ Apply the reverse of the device's transformation to the passed point.
Include: graphics.h
GrUntransformWWFixed()
void GrUnTransCoordWWFixed(
GStateHandle gstate, /* subject GState */
WWFixedAsDWord xPos, /* coordinates to untransform */
WWFixedAsDWord yPos,
PointWWFixed * documentCoordinates); /* pointer to returned
*device coordinates */ Apply the reverse of the device's transformation to the passed point.
Include: graphics.h