<!doctype HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> <meta http-equiv="Content-Language" content="en-us"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>GL</title> <link rel="stylesheet" type="text/css" href="../../style.css"> <style type="text/css"> .style1 { margin-top: 0px; } .style2 { font-family: Courier; } </style> </head> <body> <h2>GL Driver</h2> <p>This driver represents a driver for drawing using <a href="http://www.opengl.org/"> OpenGL</a>. The implementation uses the OpenGL functions only. For the font support, this driver uses the <a href="http://homepages.paradise.net.nz/henryj/code/index.html#FTGL">FTGL</a> API functions, which it was written against the <a href="http://www.freetype.org/">Free Type</a> library.</p> <p>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.</p> <h3>Use</h3> <p>The canvas is created by means of a call to the function <font face="Courier"> <a href="../func/init.html#cdCreateCanvas"><strong>cdCreateCanvas</strong></a>(CD_GL, Data)</font>, after which other functions in the CD library can be called as usual. The <font face="Courier">Data</font> parameter string has the following format:</p> <pre><em>"width<strong>x</strong>height [resolution]"</em> in C "<em><strong><tt>%dx%d %g"</tt></strong></em></pre> <p>It must include the initial canvas' dimensions.<font face="Courier"> Width</font> and <font face="Courier">height</font> are provided in pixels (note the lowercase "x" between them). The resolution is optional, its default value is "3.78 pixels/mm" (96 DPI).</p> <p>To use this driver, the application must be linked with the "<strong>cdgl</strong>", the ftgl library and the OpenGL library. The FTGL library is dependent also on the GLU library. In UNIX <strong>cdgl</strong> is also dependent on <strong>iconv</strong>.</p> <p>In Lua, it is necessary to call function <font face="Courier"> <strong>cdluagl_open() </strong> </font>after a call to function <strong><font face="Courier">cdlua_open()</font></strong>, apart from linkediting with the "<strong><font face="Courier">cdluagl</font></strong>" library. This is not necessary if you do require"cdluagl". </p> <h3>Behavior of Functions</h3> <h4>Control </h4> <ul> <li><a href="../func/other.html#cdPlay"> <font face="Courier"><strong>Play</strong></font></a>: does nothing, returns <font face="Courier">CD_ERROR</font>. </li> </ul> <h4>Coordinate System and Clipping </h4> <ul> <li> <a href="../func/coordinates.html#cdUpdateYAxis"> <font face="Courier"><strong>UpdateYAxis</strong></font></a>: does nothing.</li> <li> <strong>Clipping</strong>: only support rectangular areas.</li> <li> <b>Complex Regions</b>: not supported.</li> </ul> <h4>Primitives</h4> <ul> <li><a href="../func/lines.html#cdBegin"> <font face="Courier"><strong>Begin</strong></font></a>: <strong><tt>CD_PATH</tt></strong> is simulated. CD_FILL allows convex polygons only.</li> <li>Floating point primitives are supported.</li> </ul> <h4>Client Images</h4> <ul> <li>Images are bitmaps, and cannot be directly rotated or scaled.</li> </ul> <h4>Attributes </h4> <ul> <li> <a href="../func/lines.html#cdLineStyle"> <font face="Courier"><strong>LineStyle</strong></font></a>: in <strong><tt> CD_CUSTOM</tt></strong>, style patterns more than 16 bits are not supported.</li> <li> <a href="../func/lines.html#cdLineCap"> <font face="Courier"><strong>LineCap</strong></font></a>: does nothing.</li> <li> <a href="../func/lines.html#cdLineJoin"> <font face="Courier"><strong>LineJoin</strong></font></a>: does nothing.</li> <li class="style1"> <a href="../func/filled.html#cdStipple"><font face="Courier"><strong>Stipple</strong></font></a>: does nothing. There is no support for patterns more than 16 bits.</li> <li class="style1"> <a href="../func/filled.html#cdPattern"><font face="Courier"><strong>Pattern</strong></font></a>: does nothing.</li> <li class="style1"> <a href="../func/filled.html#cdFillMode"><font face="Courier"><strong> FillMode</strong></font></a>: does nothing.</li> <li> <a href="../func/text.html#cdNativeFont"> <font face="Courier"><strong>NativeFont</strong></font></a>: also accepts the X-Windows font string format.</li> <li><a href="../func/text.html#cdFont"> <font face="Courier"><strong>Font</strong></font></a>: 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 used the same logic of the <a href="sim.html">Simulation</a> driver, but <strong>ADDFONTMAP</strong> is not supported. If still is not found then the typeface is used as file name for the font. </li> </ul> <h4>Colors </h4> <ul> <li> <a href="http://www.tecgraf.puc-rio.br/cd/en/func/color.html#cdPalette"> <font face="Courier"><strong>Palette</strong></font></a>: does nothing.</li> </ul> <h4>Exclusive Attributes</h4> <ul> <li>"<b><font face="Courier">ALPHA</font></b>": allows the usage of an alpha channel for the drawing shapes. Assumes values "1" (active) and "0" (inactive). Default value: "1".</li> </ul> <ul> <li>"<b><font face="Courier">ANTIALIAS</font></b>": allows the use of anti-aliasing for the drawing shapes. Assumes values "1" (active) and "0" (inactive). Default value: "1".</li> </ul> <ul> <li><b><font face="Courier">"GLVERSION": </font></b>returns a string with the OpenGL version or release number. It is empty if the OpenGL is not available.</li> </ul> <ul> <li>"<b><font face="Courier">ROTATE</font></b>": 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).</li> </ul> <ul> <li>"<strong><span class="style2">SIZE</span></strong>": sets the canvas size. Must be used after the window is resized. The format is the same of the data parameter in cdCreateCanvas, <em>"width<strong>x</strong>height [resolution]"</em> or in C "<em><strong><tt>%dx%d %g".</tt></strong></em></li> </ul> </body> </html>