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 library, which it was written against the Free Type library. Currently CD is using the FTGL version 2.1.3-rc5 with modifications.

The CD distribution includes the FTGL library, this is a third party library not developed at Tecgraf. GTL and Freetype licenses are also free and have the same freedom as the Tecgraf Library License. You can read the license and copyright in the files ftgl.txt and freetype.txt. FTGL is copyright to Henry Maddocks.

The driver is not dependent of system functions. It uses only the OpenGL portable functions. So if the window canvas changes its size the attribute "SIZE" must be set with the new size.


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). If width or height are 0 then 1 will be used. The resolution is optional, its default value is "3.78 pixels/mm" (96 DPI).

IMPORTANT: When the canvas is created the OpenGL rendering context must already be set with the *MakeCurrent native system function.

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 Lua, it is necessary to call function cdluagl_open() after a call to function cdlua_open(), apart from linking with the "cdluagl" library. This is not necessary if you do require"cdluagl". 

Behavior of Functions


Coordinate System and Clipping


Client Images



Exclusive Attributes