GL Driver
This driver represents a driver for drawing using
OpenGL. The implementation uses the OpenGL functions only.
For the font support, this driver uses the
FTGL
API functions, which it was written against the
Free Type library.
The driver is not dependent of system functions. It uses only the OpenGL
portable funtions. So if the window canvas changes its size the attribute "SIZE"
must be set with the new size or cdCanvasGetSize will return an incorrect value.
Use
The canvas is created by means of a call to the function
cdCreateCanvas(CD_GL,
Data), after which other functions in the CD library can be called as usual. The Data parameter string has the following format:
"widthxheight [resolution]" in C "%dx%d %g"
It must include the initial canvas' dimensions. Width and height
are provided in pixels (note the lowercase "x" between them). The
resolution is optional, its default value is "3.78 pixels/mm" (96 DPI).
To use this driver, the application must be linked with the "cdgl",
the ftgl library
and the OpenGL library. The FTGL library is dependent also on the GLU
library. In UNIX cdgl is also dependent on iconv.
In Lua, it is necessary to call function cdluagl_open() after a call
to function cdlua_open(), apart from linkediting with the "cdluagl"
library. This is not necessary if you do require"cdluagl".
Behavior of Functions
Control
-
Play: does nothing, returns
CD_ERROR.
Coordinate System and Clipping
-
UpdateYAxis: does nothing.
-
Clipping: only support rectangular areas.
-
Complex Regions: not supported.
Primitives
-
Begin: CD_PATH
is simulated. CD_FILL allows convex polygons only.
- Floating point primitives are supported.
Client Images
- Images are bitmaps, and cannot be directly rotated or scaled.
Attributes
-
LineStyle: in
CD_CUSTOM, style patterns more than 16 bits are not supported.
-
LineCap: does nothing.
-
LineJoin: does nothing.
-
Stipple:
does nothing. There is no support for patterns more than 16 bits.
-
Pattern:
does nothing.
-
FillMode: does nothing.
-
NativeFont: also accepts the
X-Windows font string format.
-
Font: In Windows, "Courier" is mapped to
"Courier New", "Helvetica" is mapped to "Arial", and "Times" is mapped to
"Times New Roman". In UNIX, "Courier" is mapped to
"freemono", "Helvetica" is mapped to "freesans", and "Times" is mapped to
"freeserif". Underline and Strikeout are NOT supported. If not found
then the font file is searched using the same logic of the Simulation
driver, but ADDFONTMAP is not supported. If still is not
found then the typeface is used as file name for the font.
Colors
Exclusive Attributes
- "ALPHA": allows the usage of an alpha
channel for the drawing shapes. Assumes values "1" (active) and "0"
(inactive). Default value: "1".
- "ANTIALIAS": allows the use of
anti-aliasing for the drawing shapes. Assumes values "1" (active) and "0"
(inactive). Default value: "1".
- "GLVERSION": returns a string with
the OpenGL version or release number. It is empty if the OpenGL is not available.
- "ROTATE": allows the usage of 1
angle and 1 coordinate (x, y), that define a global rotation transformation
centered in the specified coordinate. Use 1 real and 2 integer values inside a
string ("%g %d %d" = angle x y).
- "SIZE": sets the canvas size.
Must be used after the window is resized. The format is the same of the data
parameter in cdCreateCanvas, "widthxheight [resolution]"
or in C "%dx%d %g".