Function GraSegDraw() Foundation
Draws one or more graphic segments.
GraSegDraw( [<oPS>], [<nSegmentID>], ; [<aMatrix>], [<nMode>] ) --> lSuccess
|GRA_TRANSFORM_REPLACE||Temporarily replaces the existing transformation with <aMatrix>. The transformation is reset before GraSegDraw() returns|
|GRA_TRANSFORM_ADD||Temporarily adds <aMatrix> to the existing transformation. The transformation is reset before GraSegDraw() returns|
|GRA_DRAW_BUFFERED||Draws the segment into an off-screen buffer which is then copied to the screen. Using buffered draws helps reducing flicker caused by graphic primitives overwriting each other. If <oPS> is associated with something else than a window device, this constant is ignored.|
The return value of GraSegDraw() is .T. (true) when the graphic segment or segments were drawn, otherwise it is .F. (false). If the return value equals .F., the cause of error can be determined using GraError().
Graphic segments are made visible with the function GraSegDraw(). The definition of a graphic segment occurs between the function calls GraSegOpen() ad GraSegClose(). A graphic segment is identified by its numeric segment ID which is the return value of GraSegOpen(). The graphic segment records or stores the calls to graphic primitives and can display them repeatedly.
The function GraSegDraw() is a powerful graphic function since it can process a transformation matrix. Using this function, it is possible to display a (complex) graphic segment more than once at different coordinates or in various sizes without further calls to the graphic primitives.
GraSegDraw() can also recreate a graphic path if the path definition occurs between the function calls GraSegOpen() and GraSegClose(). If several operations must be executed using a graphic path, the path should be defined within a segment. After a path operation, a call to GraSegDraw() is enough to recreate the graphic path.
The opposite, however, is not possible. A graphic segment cannot be created or drawn within a graphic path definition.
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.