summaryrefslogtreecommitdiff
path: root/html/en/func
diff options
context:
space:
mode:
Diffstat (limited to 'html/en/func')
-rw-r--r--html/en/func/attributes.html49
-rw-r--r--html/en/func/client.html255
-rw-r--r--html/en/func/clipping.html62
-rw-r--r--html/en/func/color.html137
-rw-r--r--html/en/func/control.html63
-rw-r--r--html/en/func/coordinates.html148
-rw-r--r--html/en/func/filled.html272
-rw-r--r--html/en/func/init.html225
-rw-r--r--html/en/func/lines.html147
-rw-r--r--html/en/func/marks.html85
-rw-r--r--html/en/func/other.html119
-rw-r--r--html/en/func/polygon.html87
-rw-r--r--html/en/func/region.html83
-rw-r--r--html/en/func/server.html84
-rw-r--r--html/en/func/text.html192
-rw-r--r--html/en/func/vectortext.html133
-rw-r--r--html/en/func/wd.html80
17 files changed, 2221 insertions, 0 deletions
diff --git a/html/en/func/attributes.html b/html/en/func/attributes.html
new file mode 100644
index 0000000..60768e4
--- /dev/null
+++ b/html/en/func/attributes.html
@@ -0,0 +1,49 @@
+<!doctype HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ <title>General Attributes</title>
+ <meta http-equiv="Content-Language" content="en-us">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <link rel="stylesheet" type="text/css" href="../../style.css">
+ </head>
+ <body>
+ <h2 align="center">General Attributes</h2>
+ <pre class="function"><span class="mainFunction">long int <a name="cdForeground">cdCanvasForeground</a>(cdCanvas* canvas, long int color); [in C]</span>
+void cdCanvasSetForeground(cdCanvas* canvas, long int color); [in C]
+
+canvas:Foreground(color: lightuserdata) -&gt; (old_color: lightuserdata) [in Lua]
+canvas:SetForeground(color: lightuserdata) [in Lua]</pre>
+ <p>Configures a new current foreground color and returns the previous one. This
+ color is used in all primitives (lines, areas, marks and text). Default value: <b>
+ <tt>CD_BLACK</tt></b>. Value <tt><b>CD_QUERY</b> </tt>simply returns the
+ current value.</p>
+ <p>Notice that CD_QUERY conflicts with color RGBA=(255,255,255,255) (full
+ transparent white). Use <strong>SetForeground</strong> to avoid the
+ conflict. See also <a href="color.html">Color Coding</a>.</p>
+ <pre class="function"><span class="mainFunction">long int <a name="cdBackground">cdCanvasBackground</a>(cdCanvas* canvas, long int color); [in C]</span>
+void cdCanvasSetBackground(cdCanvas* canvas, long int color); [in C]
+
+canvas:Background(color: lightuserdata) -&gt; (old_color: lightuserdata) [in Lua]
+canvas:SetBackground(color: lightuserdata) [in Lua]</pre>
+ <p>Configures the new current background color and returns the previous one.
+ However, it does not automatically change the background of a canvas. For such,
+ it is necessary to call the <strong>Clear</strong> function. The
+ background color only makes sense for <strong>Clear</strong><tt><font> </font></tt>and for
+ primitives affected by the background opacity attribute. Default value: <b><tt>CD_WHITE</tt></b>.
+ Value <tt><b>CD_QUERY</b> </tt>simply returns the current value.</p>
+ <p>Notice that CD_QUERY conflicts with color RGBA=(255,255,255,255) (full
+ transparent white). Use <strong>SetBackground</strong> to avoid the
+ conflict. See also <a href="color.html">Color Coding</a>.</p>
+ <pre class="function"><span class="mainFunction">int <a name="cdWriteMode">cdCanvasWriteMode</a>(cdCanvas* canvas, int mode); [in C]</span>
+
+canvas:WriteMode(mode: number) -&gt; (old_mode: number) [in Lua]</pre>
+ <p>Defines the writing type for all drawing primitives. Values: <b><tt>CD_REPLACE</tt></b>,
+ <b><tt>CD_XOR</tt></b> or <b><tt>CD_NOT_XOR</tt></b>. Returns the previous
+ value. Default value: <b><tt>CD_REPLACE</tt></b>. Value <tt><b>CD_QUERY</b> </tt>
+ simply returns the current value.
+ </p>
+ <p>Note: operation XOR is very useful, because, using white as the foreground
+ color and drawing the same image twice, you can go back to the original color,
+ before the drawing. This is commonly used for mouse selection feedback.</p>
+ </body>
+</html>
diff --git a/html/en/func/client.html b/html/en/func/client.html
new file mode 100644
index 0000000..20a6c4e
--- /dev/null
+++ b/html/en/func/client.html
@@ -0,0 +1,255 @@
+<!doctype HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ <title>Client Images</title>
+ <meta http-equiv="Content-Language" content="en-us">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <link rel="stylesheet" type="text/css" href="../../style.css">
+ </head>
+ <body>
+ <h2 align="center">Client Images</h2>
+ <p>There are 2 kinds of client images: RGB and Indexed RGB (or MAP). The RGB
+ image is composed by 3 buffers: red, green and blue (more colors, more memory).
+ The MAP image is composed by 1 buffer of indices for a table and one table of
+ encoded RGB values (less colors, less memory).
+ </p>
+ <p>The image buffer is described by its width and height in pixels. The starting
+ point of the buffer is the origin of the image, which is located at its bottom
+ left corner. To retrieve a pixel in the image, use the formula <font>pixel(x,y)=buffer[y*width
+ + x]</font>.
+ </p>
+ <p>The Put functions may do zoom in or out; zero order interpolation is used to
+ scale the image. It is not possible to specify a part of the image to be drawn.</p>
+ <hr>
+ <pre class="function"><span class="mainFunction">void <a name="cdGetImageRGB">cdCanvasGetImageRGB</a>(cdCanvas* canvas, unsigned char *r,
+ unsigned char *g,
+ unsigned char *b,
+ int x, int y, int w, int h); [in C]</span>
+
+canvas:GetImageRGB(imagergb: cdImageRGB; x, y: number) [in Lua]</pre>
+ <p>Returns the red, green and blue components of each pixel in a server image.
+ The RGB components are provided in three matrices stored as byte arrays. The <strong>
+ <tt>(i,j)</tt></strong> component of these matrices is at the address <strong><tt>
+ (j*w+i)</tt></strong>. As occurs with all primitives from the Canvas Draw
+ library, the pixel <strong><tt>(0,0)</tt></strong> is at the bottom left
+ corner, and the pixel <strong><tt>(w-1,h-1)</tt></strong> is that the upper
+ right corner of the image rectangle.</p>
+ <pre class="function"><span class="mainFunction">void <a name="cdPutImageRectRGB">cdCanvasPutImageRectRGB</a>(cdCanvas* canvas, int iw, int ih,
+ const unsigned char *r,
+ const unsigned char *g,
+ const unsigned char *b,
+ int x, int y, int w, int h,
+ int xmin, int xmax, int ymin, int ymax); [in C]</span>
+void wdCanvasPutImageRectRGB(cdCanvas* canvas, int iw, int ih,
+ const unsigned char *r,
+ const unsigned char *g,
+ const unsigned char *b,
+ double x, double y, double w, double h,
+ int xmin, int xmax, int ymin, int ymax); (WC) [in C]
+
+canvas:PutImageRectRGB(imagergb: cdImageRGB; x, y, w, h, xmin, xmax, ymin, ymax: number) [in Lua]
+canvas:wPutImageRectRGB(imagergb: cdImageRGB; x, y, w, h, xmin, xmax, ymin, ymax: number) (WC) [in Lua]</pre>
+ <p>Puts, in a specified area of the canvas, an image with its red, green and blue
+ components defined in the three matrices stored in byte arrays. The <strong><tt>(i,j)</tt></strong>
+ component of these matrices is at the address <strong><tt>(j*iw+i)</tt></strong>.
+ The pixel <strong><tt>(0,0)</tt></strong> is at the bottom left corner, and the
+ pixel <strong><tt>(iw-1,ih-1)</tt></strong> is that the upper right corner of
+ the image rectangle.
+ </p>
+ <p>Parameters <strong><font>w</font></strong> and <font><strong>h</strong></font>
+ refer to the target rectangle of the canvas, so that it is possible to reduce
+ or expand the image drawn. If <strong><font>w</font></strong> and <strong><font>h</font></strong>
+ are 0, the size of the image is assumed (<strong><font>iw</font></strong> and <strong>
+ <font>ih</font></strong>).
+ </p>
+ <p>It also allows specifying a rectangle inside the image to be drawn, if <strong><font>
+ xmin</font>, <font>xmax</font>, <font>ymin</font> </strong>and <strong><font>ymax</font></strong>
+ are 0 then the whole image is assumed.
+ </p>
+ <p>If the driver has bpp &lt;=8 or only 256 colors or less, then the image is
+ converted to 256 optimal colors using the function <strong><font>cdRGB2Map</font></strong>
+ and is drawn using <strong><font>cdPutImageRectMap</font></strong>.</p>
+ <pre class="function"><span class="mainFunction">void <a name="cdPutImageRectRGBA">cdCanvasPutImageRectRGBA</a>(cdCanvas* canvas, int iw, int ih,
+ const unsigned char *r,
+ const unsigned char *g,
+ const unsigned char *b,
+ const unsigned char *a,
+ int x, int y, int w, int h,
+ int xmin, int xmax, int ymin, int ymax); [in C]</span>
+void wdCanvasPutImageRectRGBA(cdCanvas* canvas, int iw, int ih,
+ const unsigned char *r,
+ const unsigned char *g,
+ const unsigned char *b,
+ const unsigned char *a,
+ double x, double y, double w, double h,
+ int xmin, int xmax, int ymin, int ymax); (WC) [in C]
+
+canvas:PutImageRectRGBA(imagergba: cdImageRGBA; x, y, w, h, xmin, xmax, ymin, ymax: number) [in Lua]
+canvas:wPutImageRectRGBA(imagergba: cdImageRGBA; x, y, w, h, xmin, xmax, ymin, ymax: number) (WC) [in Lua]</pre>
+ <p>The same as function&nbsp; <font><strong>cdPutImageRectRGB</strong></font>,
+ except for the fact that it is possible to specify an alpha channel. The
+ resulting color is the image color weighted by the alpha value, using the
+ formula <strong><tt>result=(source * alpha + destiny * (255 - alpha))/255</tt></strong>.
+ This means that, if alpha is 0, the resulting color is the target color
+ (completely transparent), and, if alpha is 255, the resulting color is the
+ original image color (completely opaque).</p>
+ <p>If this function is not defined for a given driver or if alpha is <font>NULL</font>,
+ then the function <strong><font>cdPutImageRectRGB</font></strong> is used, as
+ long as it is defined.</p>
+ <pre class="function"><span class="mainFunction">void <a name="cdPutImageRectMap">cdCanvasPutImageRectMap</a>(cdCanvas* canvas, int iw, int ih,
+ const unsigned char *index,
+ const long int *colors,
+ int x, int y, int w, int h,
+ int xmin, int xmax, int ymin, int ymax); [in C]</span>
+void wdCanvasPutImageRectMap(cdCanvas* canvas, int iw, int ih,
+ const unsigned char *index,
+ const long int *colors,
+ double x, double y, double w, double h,
+ int xmin, int xmax, int ymin, int ymax); (WC) [in C]
+
+canvas:PutImageRectMap(imagemap: cdImageMap; palette: cdPalette; x, y, w, h, xmin, xmax, ymin, ymax: number) [in Lua]
+canvas:wPutImageRectMap(imagemap: cdImageMap; palette: cdPalette; x, y, w, h, xmin, xmax, ymin, ymax: number) (WC) [in Lua]</pre>
+ <p>The same as function&nbsp; <font><strong>cdPutImageRectRGB</strong></font>,
+ except for the fact that the colors are provided by means of an index matrix
+ (map). The color corresponding to a given index is given in&nbsp; <font><b>colors[index]</b></font>.
+ The map is also a matrix stored as a byte vector. If the color vector is null,
+ then a vector with 256 gray tones is assumed.</p>
+ <pre class="function"><span class="mainFunction">void <a name="cdRGB2Map">cdRGB2Map</a>(int iw, int ih,
+ const unsigned char *r,
+ const unsigned char *g,
+ const unsigned char *b,
+ unsigned char *index,
+ int pal_size, long *color); [in C]</span>
+
+cd.RGB2Map(imagergb: cdImageRGB, imagemap: cdImageMap, palette: cdPalette) [in Lua]</pre>
+ <p>Converts an RGB image into an image with 256 indexed colors. The resulting
+ image must have the same size (width x length) as the RGB image. It is
+ necessary to allocate memory for the arrays <strong><font>map</font></strong> and
+ <strong><font>colors</font></strong>. This is the same algorithm used in the IM
+ library - in fact, the same code.</p>
+ <h3>Extras</h3>
+ <p>The following functions are used only for encapsulating the several types of
+ client images from the library in a single structure, simplifying their
+ treatment.&nbsp;</p>
+ <p>For such, a public structure was created, called <font><b>cdBitmap</b></font>,
+ which will store the image. From this structure, the following fields are
+ officially defined:</p>
+ <pre>cdBitmap:
+ int w /* image width */
+ int h /* image heigth */
+ int type /* image type: CD_RGBA, CD_RGB or CD_MAP */</pre>
+ <pre class="function"><span class="mainFunction">cdBitmap* <a name="cdCreateBitmap">cdCreateBitmap</a>(int w, int h, int type); [in C]</span>
+
+cd.CreateBitmap(w, h, type: number) -&gt; (bitmap: cdBitmap) [in Lua]</pre>
+ <p>Creates an image with width <strong>w</strong>, and height <strong>h</strong> and
+ of type <strong>type</strong>. The type can be <font>CD_RGBA, CD_RGB or CD_MAP</font>.
+ However, <font>CD_MAP</font> only means that the image will have 256 colors if <strong>
+ type</strong> is greater than 0. It is assumed that the image will be MAP
+ with the same number of colors in the palette as <strong>type</strong>.
+ Internally, the color palette is always allocated with 256 entries, which may
+ or may not be totally fulfilled. In this case, the value of <strong>type</strong>
+ can be changed as wished.</p>
+ <pre class="function"><span class="mainFunction">cdBitmap* <a name="cdInitBitmap">cdInitBitmap</a>(int w, int h, int type, ...); [in C]</span>
+
+[There is no equivalent in Lua]</pre>
+ <p>Similar to <strong><font>cdCreateBitmap</font></strong>, but it accepts the
+ data area already allocated by the user. The parameters vary according to the
+ image type.</p>
+ <pre><font>CD_RGBA - (unsigned char* red, unsigned char* green, unsigned char* blue, unsigned char* alpha)
+CD_RGB - (unsigned char* red, unsigned char* green, unsigned char* blue)
+CD_MAP - (unsigned char* index, lont int* colors)</font></pre>
+ <pre class="function"><span class="mainFunction">void <a name="cdKillBitmap">cdKillBitmap</a>(cdBitmap* image); [in C]</span>
+
+cd.KillBitmap(bitmap: cdBitmap) [in Lua]</pre>
+ <p>Liberates the memory allocated for the image. If this function is not
+ called in Lua, the garbage collector will call it.</p>
+ <pre class="function"><span class="mainFunction">unsigned char* <a name="cdBitmapGetData">cdBitmapGetData</a>(cdBitmap* image, int dataptr); [in C]</span>
+
+cd.BitmapGetData(bitmap: cdBitmap; dataptr: number) -&gt; (data: cdImageChannel) [in Lua]</pre>
+ <p>Returns a pointer to the image's data area according to <font><strong>dataptr</strong></font>.
+ The following values are defined for <font><strong>dataptr</strong>:</font></p>
+ <pre><strong>CD_IRED</strong> - red component of an RGB image. cdImageChannel in Lua.
+<strong>CD_IGREEN</strong> - green component of an RGB image. cdImageChannel in Lua.
+<strong>CD_IBLUE</strong> - blue component of an RGB image. cdImageChannel in Lua.
+<strong>CD_IALPHA</strong> - alpha component of an RGBA image. cdImageChannel in Lua.
+<strong>CD_INDEX</strong> - indices of a MAP image. cdImageChannel in Lua.
+<strong>CD_COLORS</strong> - color table of a MAP image. In this case, a type conversion must be made to <strong>(long int*)</strong>. cdPalette in Lua.</pre>
+ <p>In Lua, channels are also available as tables, see <a href="#DataAccess">Data
+ Access</a>.&nbsp;
+ </p>
+ <pre class="function"><span class="mainFunction">void <a name="cdBitmapSetRect">cdBitmapSetRect</a>(cdBitmap* image, int xmin, int xmax, int ymin, int ymax); [in C]</span>
+
+cd.BitmapSetRect(bitmap: cdBitmap; xmin, xmax, ymin, ymax: number) [in Lua]</pre>
+ <p>Allows specifying a region of interest inside the image to be used by the
+ function <b><font>cdPutBitmap</font></b>. If no region was defined, the whole
+ image is used, that is, (0, w-1, 0, h-1).</p>
+ <pre class="function"><span class="mainFunction">void <a name="cdPutBitmap">cdCanvasPutBitmap</a>(cdCanvas* canvas, cdBitmap* image, int x, int y, int w, int h); [in C]</span>
+void wdCanvasPutBitmap(cdCanvas* canvas, cdBitmap* image, double x, double y, double w, double h); (WC) [in C]
+
+canvas:PutBitmap(image: cdBitmap; x, y, w, h: number) [in Lua]
+canvas:wPutBitmap(bitmap: cdBitmap; x, y, w, h: number) (WC) [in Lua]</pre>
+ <p>Draws the&nbsp; image in the position (x,y), changing the scale. It
+ encapsulates <font><strong>cdPutImageRectRGB</strong>, <strong>cdPutImageRectRGBA</strong></font>
+ and <strong><font>cdPutImageRectMap</font></strong>. The region of the image
+ drawn depends on the rectangle defined by <strong><font>cdBitmapSetRect</font></strong>.
+ If no rectangle was defined, then the whole image is used.</p>
+ <p>The parameters <strong>w</strong> and <strong>h</strong> allow scaling the
+ image, increasing or decreasing its dimensions when drawn. If&nbsp; <strong>w</strong>
+ and/or <strong>h</strong> are 0, then no scale change is assumed.
+ </p>
+ <pre class="function"><span class="mainFunction">void <a name="cdGetBitmap">cdCanvasGetBitmap</a>(cdCanvas* canvas, cdBitmap* image, int x, int y); [in C]</span>
+
+canvas:GetBitmap(bitmap: cdBitmap; x, y: number) [in Lua]</pre>
+ <p>Encapsulates <strong><font>cdGetImageRGB</font></strong>. Nothing happens if
+ the image is MAP.</p>
+ <pre class="function"><span class="mainFunction">void <a name="cdBitmapRGB2Map">cdBitmapRGB2Map</a>(cdBitmap* image_rgb, cdBitmap* image_map); [in C]</span>
+
+cd.BitmapRGB2Map(bitmap_rgb: cdBitmap, bitmap_map: cdBitmap) [in Lua]</pre>
+ <p>Encapsulates <strong><font>cdRGB2Map</font></strong>. The images must be of
+ types <font>RGB(A)</font> and <font>MAP</font>, respectively.</p>
+ <h3>Extras in Lua (Deprecated)</h3>
+ <pre class="function"><a name="cdCreateImageRGB">cd.CreateImageRGB</a>(width, height: number) -&gt; (imagergb: cdImageRGB)</pre>
+ <p>Creates an RGB image in Lua. Deprecated use <strong>cd.CreateBitmap</strong>.</p>
+ <pre class="function"><a name="cdKillImageRGB">cd.KillImageRGB</a>(imagergb: cdImageRGB)</pre>
+ <p>Destroys the created RGB image and liberates allocated memory. If this
+ function is not called in Lua, the garbage collector will call it. Deprecated use <strong>
+ cd.KillBitmap</strong>.</p>
+ <pre class="function"><a name="cdCreateImageRGBA">cd.CreateImageRGBA</a>(width, height: number) -&gt; (imagergba: cdImageRGBA)</pre>
+ <p>Creates an RGBA image in Lua. Deprecated use <strong>cd.CreateBitmap</strong>.</p>
+ <pre class="function"><a name="cdKillImageRGBA">cd.KillImageRGBA</a>(imagergba: cdImageRGBA)</pre>
+ <p>Destroys the created RGBA image and liberates allocated memory. If this
+ function is not called in Lua, the garbage collector will call it. Deprecated use <strong>
+ cd.KillBitmap</strong>.</p>
+ <pre class="function"><a name="cdCreateImageMap">cd.CreateImageMap</a>(width, height: number) -&gt; (imagemap: cdImageMap)</pre>
+ <p>Creates a Map image in Lua. Deprecated use <strong>cd.CreateBitmap</strong>.</p>
+ <pre class="function"><a name="cdKillImageMap">cd.KillImageMap</a>(imagemap: cdImageMap)</pre>
+ <p>Destroys the created Map image and liberates allocated memory. If this
+ function is not called in Lua, the garbage collector will call it. Deprecated use <strong>
+ cd.KillBitmap</strong>.</p>
+ <h3><a name="DataAccess">Data Access</a></h3>
+ <p>Data access in Lua is done directly using the operator "<font>[y*width + x]</font>"
+ in image channels. Each channel works as a value table which should be
+ consulted or modified in the following way:</p>
+ <pre><font>image = cd.CreateBitmap(100, 200)
+...
+image.r[y*100 + x] = 255
+image.g[y*100 + x] = 128
+image.b[y*100 + x] = 0
+...
+green = image.g[y*100 + x] -- it will return 128</font></pre>
+ <p>The order of the tables <em>is</em> important, so that <font size="3">image[n].r</font>
+ has no meaning to CDLua and the expression will cause an error. Finally,
+ the user could expect the value of <font size="3">image[n]</font> to be of type <font>
+ lightuserdata</font>. Unfortunately, this is not the case, and such expression
+ will cause the same error.</p>
+ <p>In the old <font>cdImageMap </font>images, the channel must be not
+ specified: <font size="3">imagemap[y*100+x]</font>.</p>
+ <p>Known channel names are:</p>
+ <pre>r - red channel of RGB or RGBA images.
+g - gree channel of RGB or RGBA images.
+b - blue channel of RGB or RGBA images.
+a - alpha channel of RGBA images.
+m - indices channel of MAP images (valid only for cdBitmap objects).
+p - colors table of MAP images (valid only for cdBitmap objects). It is a cdPalette object.</pre>
+ </body>
+</html> \ No newline at end of file
diff --git a/html/en/func/clipping.html b/html/en/func/clipping.html
new file mode 100644
index 0000000..b30db55
--- /dev/null
+++ b/html/en/func/clipping.html
@@ -0,0 +1,62 @@
+<!doctype HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ <title>Clipping</title>
+ <meta http-equiv="Content-Language" content="en-us">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <link rel="stylesheet" type="text/css" href="../../style.css">
+ </head>
+ <body>
+ <h2 align="center">Clipping</h2>
+ <p>The clipping area is an area that limits the available drawing area inside the
+ canvas. Any primitive is drawn only inside the clipping area. It affects all
+ primitives.</p>
+ <p>You can set the clipping area by using the function <b>cdClipArea</b>, and
+ retrieve it using <b>cdGetClipArea</b>. The clipping area is a rectangle by
+ default, but it can has other shapes. In some drivers a polygon area can be
+ defined, and in display based drivers a complex region can be defined. The
+ complex region can be a combination of boxes, polygons, sectors, chords and
+ texts.</p>
+ <p>The <b>cdClip</b> function activates and deactivaes the clipping.</p>
+ <hr>
+ <pre class="function"><span class="mainFunction">int&nbsp;cdCanvasClip(cdCanvas* canvas, int mode); [in C]</span>
+
+canvas:Clip(mode: number) -&gt; (old_mode: number) [in Lua]</pre>
+ <p>Activates or deactivates clipping. Returns the previous status. Values: <b>CD_CLIPAREA,
+ CD_CLIPPOLYGON, CD_CLIPREGION</b> or <b>CD_CLIPOFF</b>. The value <b>CD_QUERY</b>
+ simply returns the current status. Default value: <b>CD_CLIPOFF</b>.</p>
+ <p>The value <b>CD_CLIPAREA</b> activates a rectangular area as the clipping
+ region.
+ </p>
+ <p>The value <b>CD_CLIPPOLYGON</b> activates a polygon as a clipping region, but
+ works only in some drivers (please refer to the notes of each driver). The
+ clipping polygon must be defined before activating the polygon clipping; if it
+ is not defined, the current clipping state remains unchanged. See the
+ documentation of <a href="polygon.html">cdBegin/cdVertex/cdEnd</a> to create a
+ polygon.</p>
+ <p>The value <b>CD_CLIPREGION</b> activates a complex clipping region. See the
+ documentation of <a href="region.html">Regions</a>.</p>
+ <pre class="function"><span class="mainFunction">void cdCanvasClipArea(cdCanvas* canvas, int xmin, int xmax, int ymin, int ymax); [in C]</span>
+void cdfCanvasClipArea(cdCanvas* canvas, double xmin, double xmax, double ymin, double ymax); [in C]
+void wdCanvasClipArea(cdCanvas* canvas, double xmin, double xmax, double ymin, double ymax); (WC) [in C]
+
+canvas:ClipArea(xmin, xmax, ymin, ymax: number) [in Lua]
+canvas:wClipArea(xmin, xmax, ymin, ymax: number) (WC) [in Lua]</pre>
+ <p>Defines a rectangle for clipping. Only the points in the interval <i><b>xmin&lt;=
+ x &lt;= xmax</b></i> and<b> </b><i><b>ymin &lt;= y &lt;= ymax</b></i> will
+ be printed. Default region: (0, w-1, 0, h-1).
+ </p>
+ <pre class="function"><span class="mainFunction">int&nbsp;cdCanvasGetClipArea(cdCanvas* canvas, int *xmin, int *xmax, int *ymin, int *ymax); [in C]</span>
+int cdfCanvasGetClipArea(cdCanvas* canvas, double *xmin, double *xmax, double *ymin, double *ymax); [in C]
+int wdCanvasGetClipArea(cdCanvas* canvas, double *xmin, double *xmax, double *ymin, double *ymax); (WC) [in C]
+
+canvas:GetClipArea() -&gt; (xmin, xmax, ymin, ymax, status: number) [in Lua]
+canvas:wGetClipArea() -&gt; (xmin, xmax, ymin, ymax, status: number) (WC) [in Lua]</pre>
+ <p>Returns the rectangle and the clipping status. It is not necessary to provide
+ all return pointers, you can provide only the desired values and <i><b>NULL</b></i>
+ for the others.</p>
+ <h4><a name="Polygons">Polygons</a></h4>
+ <p>A polygon for clipping can be created using <font face="Courier"><strong>cdBegin(</strong>CD_CLIP<strong>)/cdVertex(x,y)/.../cdEnd()</strong></font>.</p>
+ <p>See the documentation of <a href="polygon.html">cdBegin/cdVertex/cdEnd</a>.</p>
+ </body>
+</html>
diff --git a/html/en/func/color.html b/html/en/func/color.html
new file mode 100644
index 0000000..9ec9928
--- /dev/null
+++ b/html/en/func/color.html
@@ -0,0 +1,137 @@
+<!doctype HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ <title>Color Coding</title>
+ <meta http-equiv="Content-Language" content="en-us">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <link rel="stylesheet" type="text/css" href="../../style.css">
+ </head>
+ <body>
+ <h2 align="center">Color Coding</h2>
+ <p>The library's color system is RGB. In order to simplify some functions, a
+ compact representation was created for the 3 values. To make a conversion from
+ this representation to the 3 separate values and vice-versa, use functions
+ <b> <font>cdDecodeColor</font></b>
+ and <b> <font>cdEncodeColor</font></b>.
+ </p>
+ <p>When the canvas used does not support more than 8 bpp of color resolution, you
+ can use function <b> <font>Palette</font></b> to give the driver an idea of which
+ colors to prioritize. <b> <font>Palette</font>'s</b> behavior is driver dependent.</p>
+ <p>There are some predefined colors:</p>
+ <pre>CD_RED = (255, 0, 0)
+CD_DARK_RED = (128, 0, 0)
+CD_GREEN = (0 ,255, 0)
+CD_DARK_GREEN = ( 0,128, 0)
+CD_BLUE = ( 0, 0,255)
+CD_DARK_BLUE = ( 0, 0,128)
+CD_YELLOW = (255,255, 0)
+CD_DARK_YELLOW = (128,128, 0)
+CD_MAGENTA = (255, 0,255)
+CD_DARK_MAGENTA = (128, 0,128)
+CD_CYAN = ( 0,255,255)
+CD_DARK_CYAN = ( 0,128,128)
+CD_WHITE = (255,255,255)
+CD_BLACK = ( 0, 0 , 0)
+CD_DARK_GRAY = (128,128,128)
+CD_GRAY = (192,192,192)
+</pre>
+ <hr>
+ <pre class="function"><span class="mainFunction">long int <a name="cdEncodeColor">cdEncodeColor</a>(unsigned char red, unsigned char green, unsigned char blue) [in C]</span>
+
+cd.EncodeColor(r, g, b: number) -&gt; (old_color: lightuserdata) [in Lua]</pre>
+ <p>Returns a codified triple (<em>r,g,b</em>) in a long integer such as <b><tt>0x00RRGGBB</tt></b>,
+ where <tt><b>RR</b> </tt>are the red components, <b><tt>GG</tt></b> are the
+ green ones and <b><tt>BB</tt></b> are the blue ones. The code is used in the CD
+ library to define colors. It can be used without an active canvas.</p>
+ <pre class="function"><span class="mainFunction">void <a name="cdDecodeColor">cdDecodeColor</a>(long int color, unsigned char *red, unsigned char *green, unsigned char *blue) [in C]</span>
+
+cd.DecodeColor(color: lightuserdata) -&gt; (r, g, b: number) [in Lua]</pre>
+ <p>Returns the red, green and blue components of a color in the CD library. Can
+ be used without an active canvas.</p>
+ <pre class="function"><span class="mainFunction">long int <a name="cdEncodeAlpha">cdEncodeAlpha</a>(long int color, unsigned char alpha) [in C]</span>
+
+cd.EncodeAlpha(color: lightuserdata, alpha: number) -&gt; (color: lightuserdata) [in Lua]</pre>
+ <p>Returns the given color coded with the alpha information. ATENTION: At the
+ moment only the Win32 with GDI+ and the IMAGERGB drivers support alpha
+ components in color coding. Se in <a href="../drv/gdiplus.html">Windows Using
+ GDI+ Base Driver</a> and <a href="../drv/irgb.html">IMAGERGB driver</a>. The
+ internal representation of the component is inverted, because the default value
+ must be 0 and opaque for backward compatibility, so you should use the <strong>cdDecodeAlpha</strong>
+ function ot the <strong>cdAlpha</strong> macro to retrieve the alpha component.</p>
+ <pre class="function"><span class="mainFunction">unsigned char <a name="cdDecodeAlpha">cdDecodeAlpha</a>(long int color) [in C]</span>
+
+cd.DecodeAlpha(color: lightuserdata) -&gt; (a: number) [in Lua]</pre>
+ <p>Returns the alpha component of a color in the CD library. Can be used without
+ an active canvas. 0 is transparent, 255 is opaque.</p>
+ <pre class="function"><span class="mainFunction">unsigned char <a name="cdRed0">cdAlpha</a>(long int color); [in C]</span>
+
+cd.Alpha(color: lightuserdata) -&gt; (r: number) [in Lua]</pre>
+ <p>Macro that returns the alpha component of a color in the CD library. Can be
+ used without an active canvas.</p>
+ <pre class="function"><span class="mainFunction">unsigned char <a name="cdRed">cdRed</a>(long int color); [in C]</span>
+
+cd.Red(color: lightuserdata) -&gt; (r: number) [in Lua]</pre>
+ <p>Macro that returns the red component of a color in the CD library. Can be used
+ without an active canvas.</p>
+ <pre class="function"><span class="mainFunction">unsigned char <a name="cdGreen">cdGreen</a>(long int color); [in C]</span>
+
+cd.Green(color: lightuserdata) -&gt; (g: number) [in Lua]</pre>
+ <p>Macro that returns the green component of a color in the CD library. Can be
+ used without an active canvas.</p>
+ <pre class="function"><span class="mainFunction">unsigned char <a name="cdBlue">cdBlue</a>(long int color); [in C]</span>
+
+cd.Blue(color: lightuserdata) -&gt; (b: number) [in Lua]</pre>
+ <p>Macro that returns the blue component of a color in the CD library. Can be
+ used without an active canvas.</p>
+ <hr>
+ <pre class="function"><span class="mainFunction">int <a name="cdGetColorPlanes">cdCanvasGetColorPlanes</a>(cdCanvas* canvas); [in C]</span>
+
+canvas:GetColorPlanes() -&gt; (bpp: number) [in Lua]</pre>
+ <p>Returns a given number, for instance <i>p</i>, which defines the number of
+ colors supported by the current device as <i>2<sup>p</sup></i>, representing
+ the number of bits by pixel.
+ </p>
+ <pre class="function"><span class="mainFunction">void <a name="cdPalette">cdCanvasPalette</a>(cdCanvas* canvas, int n, const long int *color, int mode); [in C]</span>
+
+canvas:Palette(palette: cdPalette; mode: number) [in Lua]</pre>
+ <p>In systems limited to 256 palette colors, this function aims at adding&nbsp; <b><tt>
+ n</tt></b> colors to the system's palette. In such systems, the colors
+ demanded forward or backward which are not in the palette are approximated to
+ the closest available color. The type can be <tt><b>CD_FORCE</b> </tt>or <b><tt>CD_POLITE</tt></b>.
+ <b><tt>CD_FORCE</tt></b> ignores the system colors and interface elements,
+ since the menus and dialogues may be in illegible colors, but there will be
+ more colors available. <tt><b>CD_POLITE</b></tt> is the recommended type. It
+ must always be used before drawing. It cannot be queried.</p>
+
+<h3><a name="Palette">Palette</a></h3>
+
+ <pre class="function"><a name="cdCreatePalette">cd.CreatePalette</a>(size: number) -&gt; (palette: cdPalette) [in Lua Only]</pre>
+ <p>Creates a palette.</p>
+ <pre class="function"><a name="cdKillPalette">cd.KillPalette</a>(palette: cdPalette) [in Lua Only]</pre>
+ <p>Destroys the created palette and liberates allocated memory. If this
+ function is not called in Lua, the garbage collector will call it.</p>
+
+<h3>Palette <a name="DataAccess">Data Access</a></h3>
+
+ <p>Data access in Lua is done directly using the array access operators. The
+ colors can have their values checked or changed directly as if they
+ were Lua tables:</p>
+
+ <pre>palette[index] = cd.EncodeColor(r, g, b)
+count = #palette
+...
+color = palette[index]
+r, g, b = cd.DecodeColor(color)</pre>
+
+ <p>Notice that the type of value returned or received by
+ <font size="3">palette[index]</font><font size="2"> </font>is a
+ <font>lightuserdata</font>, the same type used with functions <b>
+ <font size="3">cdEncodeColor</font></b>, <b>
+ <font size="3">cdDecodeColor</font></b>, <b>
+ <font size="3">cdPixel</font></b>, <b>
+ <font size="3">cdForeground</font></b><font size="2">
+ </font>and <b> <font size="3">cdBackground</font></b>.</p>
+
+
+ </body>
+</html> \ No newline at end of file
diff --git a/html/en/func/control.html b/html/en/func/control.html
new file mode 100644
index 0000000..5ccdd1c
--- /dev/null
+++ b/html/en/func/control.html
@@ -0,0 +1,63 @@
+<!doctype HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ <title>Canvas Control</title>
+ <meta http-equiv="Content-Language" content="en-us">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <link rel="stylesheet" type="text/css" href="../../style.css">
+ </head>
+ <body>
+ <h2 align="center">Canvas Control</h2>
+ <pre class="function"><span class="mainFunction">void&nbsp;cdCanvasClear(cdCanvas* canvas); [in C]</span>
+
+canvas:Clear() [in Lua]</pre>
+ <p>Cleans the active canvas using the current background color. This action is
+ interpreted very differently by each driver. Many drivers simply draw a
+ rectangle with the current background color. It is NOT necessary to call <font>cdClear</font>
+ when the canvas has just been created, as at this moment it is already clean.
+ Most file-based drivers do not implement this function.</p>
+ <pre class="function"><span class="mainFunction">void&nbsp;cdCanvasFlush(cdCanvas* canvas); [in C]</span>
+
+canvas:Flush() [in Lua]</pre>
+ <p>Has a different meaning for each driver. It is useful to send information to
+ buffered devices and to move to a new page or layer. In all cases, the current
+ canvas attributes are preserved.</p>
+ <hr>
+ <pre class="function"><span class="mainFunction">cdState* <a name="cdSaveState">cdCanvasSaveState</a>(cdCanvas* canvas); [in C]</span>
+
+canvas:SaveState() -&gt; (state: cdState) [in Lua]</pre>
+ <p>Saves the state of attributes of the active canvas. It does not save cdPlay
+ callbacks, polygon creation states (begin/vertex/vertex/...), the palette,
+ complex clipping regions and driver internal attributes.</p>
+ <pre class="function"><span class="mainFunction">void <a name="cdRestoreState">cdCanvasRestoreState</a>(cdCanvas* canvas, cdState* state); [in C]</span>
+
+canvas:RestoreState(state: cdState) [in Lua]</pre>
+ <p>Restores the attribute state of the active canvas. It can be used between
+ canvases of different contexts. It can be used several times for the same
+ state. </p>
+ <pre class="function"><span class="mainFunction">void <a name="cdReleaseState">cdReleaseState</a>(cdState* state); [in C]</span>
+
+cd.ReleaseState(state: cdState) [in Lua]</pre>
+ <p>Releases the memory allocated by the <strong><font>cdSaveState</font></strong>
+ function. If this function is not called in Lua, the garbage collector
+ will call it.</p>
+ <hr>
+ <pre class="function"><span class="mainFunction">void <a name="cdSetAttribute">cdCanvasSetAttribute</a>(cdCanvas* canvas, const char* name, char* data); [in C]</span>
+
+canvas:SetAttribute(name, data: string) [in Lua]</pre>
+ <p>Modifies a custom attribute directly in the driver of the active canvas. If
+ the driver does not have this attribute, the call is ignored.</p>
+ <pre class="function"><span class="mainFunction">void <a name="cdSetfAttribute">cdCanvasSetfAttribute</a>(cdCanvas* canvas, const char* name, const char* format, ...); [in C]</span>
+
+[There is no equivalent in Lua]</pre>
+ <p>Same as <strong><font>cdSetAttribute</font></strong>, used for the case in
+ which the parameter <b><font>data</font></b> is a string composed by several
+ parameters. It can be&nbsp; used with parameters equivalent to those of the <b><font>
+ printf</font></b> function from the standard C library.</p>
+ <pre class="function"><span class="mainFunction">char* <a name="cdGetAttribute">cdCanvasGetAttribute</a>(cdCanvas* canvas, const char* name); [in C]</span>
+
+canvas:SetAttribute(name: string) -&gt; (data: string) [in Lua]</pre>
+ <p>Returns a custom attribute from the driver of the active canvas. If the driver
+ does not have this attribute, it returns <font>NULL</font>.</p>
+ </body>
+</html> \ No newline at end of file
diff --git a/html/en/func/coordinates.html b/html/en/func/coordinates.html
new file mode 100644
index 0000000..9f119bb
--- /dev/null
+++ b/html/en/func/coordinates.html
@@ -0,0 +1,148 @@
+<!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>Coordinate System</title>
+<link rel="stylesheet" type="text/css" href="../../style.css">
+</head>
+
+<body>
+
+<h2 align="center">Coordinate System</h2>
+<pre class="function"><span class="mainFunction">void&nbsp;<a name="cdGetCanvasSize">cdCanvasGetSize</a>(cdCanvas* canvas, int *width, int *height, double *width_mm, double *height_mm); [in C]</span>
+
+canvas:GetSize() -&gt; (width, height, mm_width, mm_height: number) [in Lua]</pre>
+
+ <p>Returns the canvas size in pixels and in millimeters. You can provide only
+ the desired values and <font>NULL</font> for the others.</p>
+
+<pre class="function"><span class="mainFunction">int&nbsp;<a name="cdUpdateYAxis">cdCanvasUpdateYAxis</a>(cdCanvas* canvas, int *y); [in C]</span>
+double&nbsp;cdfCanvasUpdateYAxis(cdCanvas* canvas, double&nbsp;*y); [in C]
+int&nbsp;cdCanvasInvertYAxis(cdCanvas* canvas, int y); [in C]
+double&nbsp;cdfCanvasInvertYAxis(cdCanvas* canvas, double&nbsp;y); [in C]
+
+canvas:UpdateYAxis(yc: number) -&gt; (yr: number) [in Lua]
+canvas:InvertYAxis(yc: number) -&gt; (yr: number) [in Lua]</pre>
+
+ <p>In some graph systems, the origin is at the upper left corner of the
+ canvas, with the direction of the Y axis pointing down. In this case, the
+ function converts the coordinate system of the CD library into the internal
+ system of the active canvas' driver, and the other way round. If this is not
+ the case, nothing happens. This is just <font>&quot;y = height-1 -
+ y&quot;</font>. It returns the changed value. The &quot;Invert&quot; will always invert
+ the given value, the &quot;Update&quot; function will invert only if the canvas has the
+ Y axis inverted.</p>
+
+<pre class="function"><span class="mainFunction">void&nbsp;cdCanvasMM2Pixel(cdCanvas* canvas, double mm_dx, double mm_dy, int *dx, int *dy); [in C]</span>
+void&nbsp;cdfCanvasMM2Pixel(cdCanvas* canvas, double mm_dx, double mm_dy, double *dx, double *dy); [in C]
+
+canvas:MM2Pixel(mm_dx, mm_dy: number) -&gt; (dx, dy: number) [in Lua]
+canvas:fMM2Pixel(mm_dx, mm_dy: number) -&gt; (dx, dy: number) [in Lua]</pre>
+
+ <p>Converts sizes in millimeters into pixels (canvas coordinates). You can
+ provide only the desired values and <font>NULL</font> for the
+ others.</p>
+
+<pre class="function"><span class="mainFunction">void&nbsp;cdCanvasPixel2MM(cdCanvas* canvas, int dx, int dy, double *mm_dx, double *mm_dy); [in C]</span>
+void&nbsp;cdfCanvasPixel2MM(cdCanvas* canvas, double dx, double dy, double *mm_dx, double *mm_dy); [in C]
+
+canvas:Pixel2MM(dx, dy: number) -&gt; (mm_dx, mm_dy: number) [in Lua]
+canvas:fPixel2MM(dx, dy: number) -&gt; (mm_dx, mm_dy: number) [in Lua]</pre>
+
+ <p>Converts sizes in pixels (canvas coordinates) into millimeters. You can
+ provide only the desired values and <font>NULL</font> for the
+ others. Use this function to obtain the horizontal and vertical resolution of
+ the canvas by passing 1 as parameter in <font>dx</font> and
+ <font>dy</font>. The resolution value is obtained using the
+ formula <strong><font>res=1.0/mm</font></strong>.</p>
+
+<pre class="function"><span class="mainFunction">void&nbsp;cdCanvasOrigin(cdCanvas* canvas, int x, int y); [in C]</span>
+void&nbsp;cdfCanvasOrigin(cdCanvas* canvas, double x, double y); [in C]
+
+canvas:Origin(x, y: number) [in Lua]
+canvas:fOrigin(x, y: number) [in Lua]</pre>
+
+ <p>Allows translating the origin - for instance, to the center of the canvas.
+ The function profits from the architecture of the library to simulate a
+ translation of the origin, which in fact is never actually passed to the
+ canvas in the respective driver. Default values: (0, 0)</p>
+
+
+<pre class="function"><span class="mainFunction">void&nbsp;cdCanvasGetOrigin(cdCanvas* canvas, int *x, int *y); [in C]</span>
+void&nbsp;cdfCanvasGetOrigin(cdCanvas* canvas, double *x, double *y); [in C]
+
+canvas:GetOrigin() -&gt; (x, y: number) [in Lua]
+canvas:fGetOrigin() -&gt; (x, y: number) [in Lua]</pre>
+
+ <p>Returns the origin.</p>
+
+
+<h3>Transformation Matrix</h3>
+
+<pre class="function"><span class="mainFunction">void&nbsp;<a name="cdTransform">cdCanvasTransform</a>(cdCanvas* canvas, const double* matrix); [in C]</span>
+
+canvas:Transform(matrix: table) [in Lua]</pre>
+
+ <p>Defines a transformation matrix with 6 elements. If the matrix is NULL,
+ the
+ transformation is reset to the identity. Default value: NULL.</p>
+ <p>The matrix contains scale, rotation and translation elements as follows:</p>
+ <pre>|x'| |sx*cos(angle) -sin(angle) dx| |x| |0 2 4|
+|y'| = | sin(angle) sy*cos(angle) dy| * |y| with indices |1 3 5|
+ |1|</pre>
+ <p>But notice that the indices are different of the <strong>
+ cdCanvasVectorTextTransform</strong>.</p>
+<p>Functions that retrieve images from the canvas are not affected by the
+transformation matrix, such as <strong>GetImage</strong>, <strong>GetImageRGB</strong>
+and <strong>ScrollArea</strong>.</p>
+<p>Transformation matrix is independent of the <strong>World Coordinate</strong>
+and <strong>Origin</strong>
+functions. And those are affected if a transformation is set, just like other
+regular primitives.</p>
+
+
+<pre class="function"><span class="mainFunction">double*&nbsp;<a name="cdGetTransform">cdCanvasGetTransform</a>(cdCanvas* canvas); [in C]</span>
+
+canvas:GetTransformation() -&gt; (matrix: table) [in Lua]</pre>
+
+ <p>Returns the transformation matrix. If the identity is set, returns NULL.</p>
+
+
+<pre class="function"><span class="mainFunction">void&nbsp;<a name="cdTransformMultiply">cdCanvasTransforMultiply</a>(cdCanvas* canvas, const double* matrix); [in C]</span>
+
+canvas:TransformMultiply(matrix: table) [in Lua]</pre>
+
+ <p>Left multiply the current transformation by the given transformation.</p>
+
+<pre class="function"><span class="mainFunction">void&nbsp;<a name="cdTransformTranslate">cdCanvasTransformTranslate</a>(cdCanvas* canvas, double dx, double dy); [in C]</span>
+
+canvas:TransformTranslate(dx, dy: number) [in Lua]</pre>
+
+ <p>Applies a translation to the current transformation.</p>
+
+<pre class="function"><span class="mainFunction">void&nbsp;<a name="cdTransformScale">cdCanvasTransformScale</a>(cdCanvas* canvas, double sx, double sy); [in C]</span>
+
+canvas:TransformScale(sx, sy: number) [in Lua]</pre>
+
+ <p>Applies a scale to the current transformation.</p>
+
+<pre class="function"><span class="mainFunction">void&nbsp;<a name="cdTransformRotate">cdCanvasTransformRotate</a>(cdCanvas* canvas, double angle); [in C]</span>
+
+canvas:TransformRotate(angle: number) [in Lua]</pre>
+
+ <p>Applies a rotation to the current transformation. Angle is in degrees,
+ oriented counter-clockwise from the horizontal axis.</p>
+
+<pre class="function"><span class="mainFunction">void&nbsp;<a name="cdTransformPoint">cdCanvasTransformPoint</a>(cdCanvas* canvas, int x, int y, int *tx, int *ty); [in C]</span>
+void cdfCanvasTransformPoint(cdCanvas* canvas, double x, double y, double *tx, double *ty); [in C]
+
+canvas:TransformPoint(x, y: number) -&gt; (tx, ty: number) [in Lua]
+canvas:fTransformPoint(x, y: number) -&gt; (tx, ty: number) [in Lua]</pre>
+
+ <p>Applies a transformation to a given point.</p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/html/en/func/filled.html b/html/en/func/filled.html
new file mode 100644
index 0000000..2ae1083
--- /dev/null
+++ b/html/en/func/filled.html
@@ -0,0 +1,272 @@
+<!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>Filled Areas</title>
+<link rel="stylesheet" type="text/css" href="../../style.css">
+</head>
+
+<body>
+
+<h2 align="center">Filled Areas</h2>
+
+ <p>It is an area filled with the foreground color, but it depends on the
+ current interior style. The <font>SOLID</font> style
+ depends only on the foreground color. The <font>HATCH</font>
+ and
+ <font>STIPPLE </font> style depend on the foreground color, background color and on the back opacity attribute. The
+ hatch lines drawn with this style do not depend on the other line attributes. The
+ <font>PATTERN</font> style depends only on global canvas
+ attributes.</p>
+<p>The filled area includes the line at the edge of the area. So if you draw a
+filled rectangle, sector or polygon on top of a non filled one using the same
+coordinates, no style and 1 pixel width, the non filled primitive should be
+obscured by the filled primitive. But depending on the driver implementation
+some pixels at the edges may be not included. IMPORTANT: In the Postscript and
+PDF drivers the line at the edge is not included at all.</p>
+ <p>If
+ either the background or the foreground color are modified, the hatched and
+ monochromatic fillings must be modified again in order to be updated.</p>
+ <p>Note that when a Filling Attribute is modified, the active filling style is
+ now that of the modified attribute (hatch, stipple or pattern). Notice that
+ this is not true for the clipping area. When the clipping area is modified,
+ the clipping is only affected if it is active.</p>
+
+<hr>
+<pre class="function"><span class="mainFunction">Filled <a name="Polygons">Polygons</a></span></pre>
+
+ <p>Filled polygons can be created using <font><strong>cdBegin(</strong>CD_FILL<strong>)/cdVertex(x,y)/.../cdEnd()</strong></font>.</p>
+ <p>See the documentation of <a href="polygon.html">cdBegin/cdVertex/cdEnd</a>.</p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdBox">cdCanvasBox</a>(cdCanvas* canvas, int xmin, int xmax, int ymin, int ymax); [in C]</span>
+void cdfCanvasBox(cdCanvas* canvas, double xmin, double xmax, double ymin, double ymax); [in C]
+void wdCanvasBox(cdCanvas* canvas, double xmin, double xmax, double ymin, double ymax); (WC) [in C]
+
+canvas:Box(xmin, xmax, ymin, ymax: number) [in Lua]
+canvas:fBox(xmin, xmax, ymin, ymax: number) [in Lua]
+canvas:wBox(xmin, xmax, ymin, ymax: number) (WC) [in Lua]</pre>
+
+ <p>Fills a rectangle according to the current interior style. All points in
+ the interval <font><strong>x_min&lt;=x&lt;=x_max, y_min&lt;=y&lt;=y_max</strong></font>
+ will be painted. When the interior style <font>CD_HOLLOW</font>
+ is defined, the function behaves like its equivalent <strong>
+ <font>cdRect</font>.</strong></p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdSector">cdCanvasSector</a>(cdCanvas* canvas, int xc, int yc, int w, int h, double angle1, double angle2); [in C]</span>
+void cdfCanvasSector(cdCanvas* canvas, double xc, double yc, double w, double h, double angle1, double angle2); [in C]
+void wdCanvasSector(cdCanvas* canvas, double xc, double yc, double w, double h, double angle1, double angle2); (WC) [in C]
+
+canvas:Sector(xc, yc, w, h, angle1, angle2: number) [in Lua]
+canvas:fSector(xc, yc, w, h, angle1, angle2: number) [in Lua]
+canvas:wSector(xc, yc, w, h, angle1, angle2: number) (WC) [in Lua]</pre>
+
+ <p>Fills the arc of an ellipse aligned with the axis, according to the current
+ interior style, in the shape of a pie. It is drawn counter-clockwise. The
+ coordinate <b>(xc,yc)</b> defines the center of the ellipse.
+ Dimensions <b>w</b> and <b>h</b> define the elliptic axes X
+ and Y, respectively. </p>
+ <p>Angles <b>angle1</b> and <b>angle2</b>, in degrees,
+ define the arc's beginning and end, but they are not the angle relative to the
+ center, except when w==h and the ellipse is reduced to a circle. The arc
+ starts at the point <b>(xc+(w/2)*cos(angle1),yc+(h/2)*sin(angle1))</b>
+ and ends at <b>(xc+(w/2)*cos(angle2),yc+(h/2)*sin(angle2))</b>. A
+ complete ellipse can be drawn using 0 and 360 as the angles. </p>
+ <p>The angles are specified so if the size of the ellipse (w x h) is changed,
+ its shape is preserved. So the angles relative to the center are dependent
+ from the ellipse size. The actual angle can be obtained using <tt><b>rangle =
+ atan2((h/2</b></tt><b>)*sin(angle),(w/2)*cos(angle))</b>.</p>
+ <p>The angles are given in degrees. To specify the angle in radians, you can
+ use the definition <font size="2"><strong>CD_RAD2DEG</strong></font>
+ to multiply the value in radians before passing the angle to CD. </p>
+ <p>When the interior style <font><strong>CD_HOLLOW</strong></font> is defined,
+ the function behaves like its equivalent <strong><font>cdArc</font></strong>,
+ plus two lines connecting to the center.</p>
+ <p align="center"><font size="4">Sector Parameters</font><br>
+ <img src="../../img/sector.gif" border="2" width="161" height="160"></p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdChord">cdCanvasChord</a>(cdCanvas* canvas, int xc, int yc, int w, int h, double angle1, double angle2); [in C]</span>
+void cdfCanvasChord(cdCanvas* canvas, double xc, double yc, double w, double h, double angle1, double angle2); [in C]
+void wdCanvasChord(cdCanvas* canvas, double xc, double yc, double w, double h, double angle1, double angle2); (WC) [in C]
+
+canvas:Chord(xc, yc, w, h, angle1, angle2: number) [in Lua]
+canvas:fChord(xc, yc, w, h, angle1, angle2: number) [in Lua]
+canvas:wChord(xc, yc, w, h, angle1, angle2: number) (WC) [in Lua]</pre>
+
+ <p>Fills the arc of an ellipse aligned with the axis, according to the current
+ interior style, the start and end points of the arc are connected. The
+ parameters are the same as the <strong><font>cdSector</font></strong>.</p>
+ <p>When the interior style <font><strong>CD_HOLLOW</strong></font> is defined,
+ the function behaves like its equivalent <strong><font>cdArc</font></strong>,
+ plus a line connecting the arc start and end points.</p>
+ <p align="center"><font size="4">Chord Parameters</font><br>
+ <img src="../../img/chord.gif" border="2" width="161" height="160"></p>
+
+<h3>Attributes</h3>
+<pre class="function"><span class="mainFunction">int <a name="cdBackOpacity">cdCanvasBackOpacity</a>(cdCanvas* canvas, int opacity); [in C]</span>
+
+canvas:BackOpacity(opacity: number) -&gt; (old_opacity: number) [in Lua]</pre>
+
+ <p>Configures the background opacity to filling primitives based on the
+ foreground and background colors. Values: <font><b>
+ CD_TRANSPARENT</b></font> or <b>CD_OPAQUE</b>. If it is opaque
+ the primitive will erase whatever is in background with the background color.
+ If it is transparent, only the foreground color is painted. It returns the previous value. Default value: <b>
+ CD_TRANSPARENT</b>. Value <b><b>CD_QUERY</b> </b>simply returns the
+ current value. In some drivers is always opaque.</p>
+ <p align="center"><font size="4">Back Opacity Attribute<br>
+ </font><img src="../../img/opacity.gif" border="2" width="260" height="136"></p>
+
+<pre class="function"><span class="mainFunction">int <a name="cdFillMode">cdCanvasFillMode</a>(cdCanvas* canvas, int mode); [in C]</span>
+
+canvas:FillMode(mode: number) -&gt; (old_mode: number) [in Lua]</pre>
+
+ <p>Selects a predefined polygon fill rule (<b>CD_EVENODD</b> or <strong>CD_WINDING</strong>). Returns the previous value. Default value: <b>
+ CD_EVENODD</b>. Value <b><b>CD_QUERY</b> </b>simply returns the current
+ value.</p>
+ <p align="center"><font size="4">Fill Modes</font><br>
+ <img src="../../img/fillmode.gif" border="2" width="260" height="136"></p>
+
+<pre class="function"><span class="mainFunction">int <a name="cdInteriorStyle">cdCanvasInteriorStyle</a>(cdCanvas* canvas, int style); [in C]</span>
+
+canvas:InteriorStyle(style: number) -&gt; (old_style: number) [in Lua]</pre>
+
+ <p>Configures the current style for the area filling primitives: <b>
+ CD_SOLID</b>, <strong><b>CD_HOLLOW</b></strong>, <b>CD_HATCH</b>,
+ <b>CD_STIPPLE</b> or <b>CD_PATTERN</b>. Note that <b>
+ CD_HATCH</b> and <b>CD_STIPPLE</b> are affected by the backopacity. It returns the previous value. Default value: <b>CD_SOLID</b>. Value
+ <b><b>CD_QUERY</b> </b>simply returns the
+ current value.</p>
+ <p>If <i>a stipple</i> or <i>a pattern</i> were not defined, when they are
+ selected the state of the
+ attribute is not changed. </p>
+ <p>When the style <strong>CD_HOLLOW</strong> is defined, functions
+ <strong>cdBox</strong> and <strong>cdSector</strong> behave as their
+ equivalent <strong>cdRect</strong> and <strong>cdArc+Lines</strong>, and the
+ polygons with style <b>CD_FILL</b> behave like <b>CD_CLOSED_LINES</b>.</p>
+
+<pre class="function"><span class="mainFunction">int <a name="cdHatch">cdCanvasHatch</a>(cdCanvas* canvas, int style); [in C]</span>
+
+canvas:Hatch(style: number) -&gt; (old_style: number) [in Lua]</pre>
+
+ <p>Selects a predefined <i>hatch</i> style (<b>CD_HORIZONTAL</b>, <b>CD_VERTICAL</b>,
+ <b>CD_FDIAGONAL</b>, <b>CD_BDIAGONAL</b>,
+ <b>CD_CROSS</b> or <b>CD_DIAGCROSS</b>) and sets the
+ interior style to <b>CD_HATCH</b>. The lines are drawn with the foreground
+ color, and the background is drawn with the background color if back opacity
+ is opaque. Returns the previous value.
+ Default value: <b>CD_HORIZONTAL</b>. Value <b><b>CD_QUERY</b> </b>
+ simply returns the current value. The foreground and background colors must be
+ set before setting the style. In some drivers is always opaque.</p>
+ <p align="center"><font size="4">Hatch Styles</font><br>
+ <img src="../../img/hatch.gif" border="2" width="182" height="348"></p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdStipple">cdCanvasStipple</a>(cdCanvas* canvas, int w, int h, const unsigned char *fgbg) [in C]</span>
+
+canvas:Stipple(stipple: cdStipple) [in Lua]</pre>
+
+ <p>Defines a <b><b>wxh</b> </b>matrix of zeros (0) and ones (1). The zeros are
+ mapped to the background color or are transparent, according to the background
+ opacity attribute. The ones are mapped to the foreground color. The function
+ sets the interior style to <b>CD_STIPPLE</b>. To avoid having to deal
+ with matrices in C, the element <b>(i,j)</b> of <b>fgbg</b>
+ is stored as <b>fgbg[j*w+i]</b>. The origin is the left bottom corner
+ of the image. It does not need to be stored by the
+ application, as it is internally replicated by the library.&nbsp; In some
+ drivers is always opaque. The foreground and background colors must be set
+ before setting the style. </p>
+
+<pre class="function"><span class="mainFunction">void <a name="wdStipple">wdCanvasStipple</a>(cdCanvas* canvas, int w, int h, const unsigned char *fgbg, double w_mm, double h_mm); [in C]</span>
+
+canvas:wStipple(stipple: cdStipple, w_mm, h_mm: number) [in Lua]</pre>
+
+ <p>Allows specifying the stipple in world coordinates. Another stipple will be
+ created with the size in pixels corresponding to the specified size in
+ millimeters. The new size in pixels will be an integer factor of the original
+ size that is closets to the size in millimeters. The use of this function may produce very large or very small
+ stipples.</p>
+
+<pre class="function"><span class="mainFunction">unsigned char* <a name="cdGetStipple">cdCanvasGetStipple</a>(cdCanvas* canvas, int* w, int* h); [in C]</span>
+
+canvas:GetStipple() - &gt; (stipple: cdStipple) [in Lua]</pre>
+
+ <p>Returns the current <i>stipple</i> and its dimensions. Returns NULL if no
+ <i>stipple</i> was defined.</p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdPattern">cdCanvasPattern</a>(cdCanvas* canvas, int w, int h, const long int *color); [in C]</span>
+
+canvas:Pattern(pattern: cdPattern) [in Lua]</pre>
+
+ <p>Defines a new <b><b>wxh</b> </b>color matrix and sets the interior style
+ to <b>CD_PATTERN</b>. To avoid having to deal with matrices in C, the
+ color element <b>(i,j)</b> is stored as <b>color[j*w+i]</b>.
+ The origin is the left bottom corner of the image. It
+ does not need to be stored by the application, as it is internally replicated
+ by the library.</p>
+
+<pre class="function"><span class="mainFunction">void <a name="wdPattern">wdCanvasPattern</a>(cdCanvas* canvas, int w, int h, const long int *color, double w_mm, double h_mm); [in C]</span>
+
+canvas:wPattern(pattern: cdPattern, w_mm, h_mm: number) [in Lua]</pre>
+
+ <p>Allows specifying the pattern in world coordinates. Another pattern will be
+ created with the size in pixels corresponding to the specified size in
+ millimeters. The new size in pixels will be an integer factor of the original
+ size that is closets to the size in millimeters. The use of this function may produce very large or very small
+ patterns.</p>
+
+<pre class="function"><span class="mainFunction">long int* <a name="cdGetPattern">cdCanvasGetPattern</a>(cdCanvas* canvas, int* w, int* h); [in C]</span>
+
+canvas:GetPattern() - &gt; (pattern: cdPattern) [in Lua]</pre>
+
+ <p>Returns the current <i>pattern</i> and its dimensions. Returns NULL if no
+ <i>pattern</i> was defined.</p>
+
+<h3>Extras in Lua</h3>
+<pre class="function"><a name="cdCreatePattern">cd.CreatePattern</a>(width, height: number) -&gt; (pattern: cdPattern)</pre>
+
+ <p>Creates a pattern in Lua.</p>
+
+<pre class="function"><a name="cdKillPattern">cd.KillPattern</a>(pattern: cdPattern)</pre>
+
+ <p>Destroys the created pattern and liberates allocated memory. If this
+ function is not called in Lua, the garbage collector will call it.</p>
+
+<pre class="function"><a name="cdCreateStipple">cd.CreateStipple</a>(width, height: number) -&gt; (stipple: cdStipple)</pre>
+
+ <p>Creates a stipple in Lua.</p>
+
+<pre class="function"><a name="cdKillStipple">cd.KillStipple</a>(stipple: cdStipple)</pre>
+
+ <p>Destroys the created stipple and liberates allocated memory. If this
+ function is not called in Lua, the garbage collector will call it.</p>
+
+<h3><a name="DataAccess">Data Access</a></h3>
+
+ <p>Data access in Lua is done directly using the operator &quot;<font>[y*width
+ + x]</font>&quot;. </p>
+ <p>All new types can have their values checked or changed directly as if they
+ were Lua tables:</p>
+
+ <pre>pattern[y*16 + x] = cd.EncodeColor(r, g, b)
+...
+color = pattern[y*16 + x]
+r, g, b = cd.DecodeColor(color)
+...
+cd.Pattern(pattern)</pre>
+
+ <p>Notice that the type of value returned or received by
+ <font size="3">pattern[i]</font><font size="2"> </font>is a
+ <font>lightuserdata</font>, the same type used with functions <b>
+ <font size="3">cdEncodeColor</font></b>, <b>
+ <font size="3">cdDecodeColor</font></b>, <b>
+ <font size="3">cdPixel</font></b>, <b>
+ <font size="3">cdForeground</font></b><font size="2">
+ </font>and <b> <font size="3">cdBackground</font></b>. The value
+ returned or received by <font>stipple</font><font size="3">[i]</font>
+ is a number.</p>
+
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/html/en/func/init.html b/html/en/func/init.html
new file mode 100644
index 0000000..c6e08b3
--- /dev/null
+++ b/html/en/func/init.html
@@ -0,0 +1,225 @@
+<!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>Canvas Initialization</title>
+<link rel="stylesheet" type="text/css" href="../../style.css">
+</head>
+
+<body>
+
+<h2 align="center">Canvas Initialization</h2>
+<pre class="function"><span class="mainFunction">cdCanvas *<a name="cdCreateCanvas">cdCreateCanvas(cdContext* ctx, void *data)</a>; [in C]</span>
+
+cd.CreateCanvas(ctx: number, data: string or userdata) -&gt; (canvas: cdCanvas) [in Lua]</pre>
+
+ <p>Creates a CD canvas for a virtual visualization surface (VVS). A VVS may be the canvas of a user-interface window,
+ the page of a document sent to a printer, an offscreen image, the clipboard, a metafile, and so on. To create the
+ canvas, it is necessary to specify the driver in which each canvas is implemented. </p>
+ <p>The driver is set by the <b>driver</b> variable with additional information provided in the <tt>
+ <b>data</b></tt>
+ parameter. Even though it is possible to create more than one canvas with the same <tt>
+ <b>driver/data</b></tt> pair,
+ this is not recommended, and its behavior is not specified. Each canvas maintains its own features. </p>
+ <p>In case of failure, a&nbsp; <b>NULL</b> value is returned. The following predefined drivers are available:</p>
+
+
+ <p><b>Window-Base Drivers</b></p>
+
+
+ <ul>
+ <li><a href="../drv/iup.html"><b>CD_IUP</b></a> = IUP Canvas (<b>cdiup.h</b>).</li>
+ <li><a href="../drv/native.html"><b>CD_NATIVEWINDOW</b></a> = Native
+ Window (<b>cdnative.h</b>).</li>
+ </ul>
+
+
+ <p><b>Device-Based Drivers</b></p>
+
+
+ <ul>
+ <li><a href="../drv/clipbd.html"><b>CD_CLIPBOARD</b></a> = Clipboard (<b>cdclipbd.h</b>).</li>
+ <li><a href="../drv/printer.html"><b>CD_PRINTER</b></a> = Printer (<b>cdprint.h</b>).</li>
+ </ul>
+ <p><b>Image-Based Drivers</b>&nbsp; </p>
+ <ul>
+ <li><a href="../drv/image.html"><b>CD_IMAGE</b></a> = Server-Image
+ Drawing (<b>cdimage.h</b>).</li>
+ <li><a href="../drv/irgb.html"><b>CD_IMAGERGB</b></a> = Client-Image
+ Drawing (<b>cdirgb.h</b>).</li>
+ <li><a href="../drv/dbuf.html"><b>CD_DBUFFER</b></a> = Offscreen Drawing
+ (<b>cddbuf.h</b>).</li>
+ </ul>
+ <p><b>File-Based Drivers</b>&nbsp; </p>
+ <ul>
+ <li><a href="../drv/cgm.html"><b>CD_CGM</b></a> = Computer Graphics
+ Metafile ISO (<b>cdcgm.h</b>).</li>
+ <li><a href="../drv/dgn.html"><b>CD_DGN</b></a> = MicroStation Design
+ File (<b>cddgn.h</b>).</li>
+ <li><a href="../drv/dxf.html"><b>CD_DXF</b></a> = AutoCad Drawing
+ Interchange File (<b>cddxf.h</b>).</li>
+ <li><a href="../drv/emf.html"><b>CD_EMF</b></a> = Microsoft Windows
+ Enhanced Metafile (<b>cdemf.h</b>). Works only in MS Windows systems.</li>
+ <li><a href="../drv/mf.html"><b>CD_METAFILE</b></a> = Metafile Canvas
+ Draw (<b>cdmf.h</b>).</li>
+ <li><a href="../drv/ps.html"><b>CD_PS</b></a> = PostScript File (<b>cdps.h</b>).</li>
+ <li><a href="../drv/wmf.html"><b>CD_WMF</b></a> = Microsoft Windows
+ Metafile (<b>cdwmf.h</b>).</li>
+ </ul>
+
+<pre class="function"><span class="mainFunction">cdCanvas*&nbsp;<a name="cdCreateCanvasf">cdCreateCanvasf(cdContext *ctx, const char* format, ...)</a>; [in C]
+</span><font>
+</font>[There is no equivalent in Lua]</pre>
+
+ <p>Same as <strong><font>cdCreateCanvas</font></strong>, used in the case that the parameter <b>
+ <font>data</font></b> is a string composed by several parameters. This function can be used with
+ parameters equivalent to the <b><font>printf</font></b> function from the default C library.</p>
+
+<pre class="function"><span class="mainFunction">void&nbsp;<a name="cdKillCanvas">cdKillCanvas(cdCanvas *canvas)</a>; [in C]</span>
+
+cd.KillCanvas(canvas: cdCanvas) [in Lua]</pre>
+
+ <p>Destroys a previously created canvas. If this function is not called in
+ Lua, the garbage collector will call it.</p>
+
+<pre class="function"><span class="mainFunction">int&nbsp;<a name="cdCanvasActivate">cdCanvasActivate</a>(cdCanvas *canvas); [in C]</span>
+
+canvas:Activate(canvas: cdCanvas) -&gt; (status: number) [in Lua]</pre>
+
+ <p>Activates a canvas for drawing. This is used only for a few drivers. Native
+ Window and IUP drivers will update the canvas size if the window size has
+ changed. Double Buffer driver will recreate the image buffer if the window
+ canvas size has changed. In these cases the function MUST be called, for other
+ drivers is useless. Returns CD_ERROR or CD_OK.</p>
+
+<pre class="function"><span class="mainFunction">void&nbsp;<a name="cdCanvasDeactivate">cdCanvasDeactivate</a>(cdCanvas* canvas); [in C]</span>
+
+canvas:Deactivate(canvas: cdCanvas) [in Lua]</pre>
+
+ <p>Called when the application has finished drawing in the canvas. It is
+ optional, but if used for the Native Window driver in Windows when the handle
+ can not be retained, the drawing can only be done again after a <strong>
+ cdCanvasActivate</strong>. On some drivers will simply call
+ <a href="control.html#cdFlush">Flush</a>.</p>
+<pre class="function"><span class="mainFunction">int <a name="cdUseContextPlus">cdUseContextPlus</a>(int use); [in C]</span>
+
+cd.UseContextPlus(use: number) -&gt; (old_use: number) [in Lua]</pre>
+<p>Activates or deactivates the use of an external context for the next calls of the <font face="Courier"><b>
+ <a href="../func/init.html#cdCreateCanvas">cdCreateCanvas</a></b></font>
+ function.</p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdInitContextPlus">cdInitContextPlus</a>(void); [in C]
+</span>
+cd.InitContextPlus() [in Lua]</pre>
+<p>Initializes the context driver to use another context replacing the standard drivers.
+This functions is only available when a library containing a &quot;ContextPlus&quot;
+context driver is used. See the <a href="../drv/gdiplus.html">GDI+</a> base
+driver and the <a href="../drv/xrender.html">XRender</a> base driver.</p>
+<p>In Lua, when using require&quot;cdluacontextplus&quot; this function will be
+automatically called.</p>
+
+<hr>
+<pre class="function"><span class="mainFunction">cdContext*&nbsp;cdCanvasGetContext(cdCanvas *canvas); [in C]</span>
+
+canvas:GetContext(canvas: cdCanvas) -&gt; (ctx: number) [in Lua]</pre>
+
+ <p>Returns the context of a given canvas, which can be compared with the predefined contexts, such as &quot;CD_PS&quot;.</p>
+
+<pre class="function"><span class="mainFunction">int&nbsp;cdContextCaps(cdContext* ctx); [in C]</span>
+
+cd.ContextCaps(ctx: number) -&gt; (caps: number) [in Lua]</pre>
+
+ <p>Returns the resources available for that context. To verify if a given resource is available, perform a binary AND
+ ('&amp;.html with the following values:</p>
+
+ <p><font>CD_CAP_FLUSH<br>
+ CD_CAP_CLEAR <br>
+ CD_CAP_PLAY <br>
+ CD_CAP_YAXIS</font> - The Y axis has the same orientation as the CD axis.<br>
+ <font>CD_CAP_CLIPAREA <br>
+ CD_CAP_CLIPPOLY</font> - Usually is not implemented.<br>
+ <font>CD_CAP_MARK</font> - Marks are implemented directly in the driver (they are usually simulated).<br>
+ <font>CD_CAP_RECT</font> - Rectangles are implemented directly in the driver (they are usually
+ simulated).<br>
+ <font>CD_CAP_VECTORTEXT</font> - Vector text is implemented directly in the driver (it is usually
+ simulated).<br>
+ <font>CD_CAP_IMAGERGB <br>
+ CD_CAP_IMAGERGBA</font> - If this is not implemented, but <font>cdGetImageRGB</font> is, then it is
+ simulated using <font>cdGetImageRGB</font> and <font>cdPutImageRGB</font>.<br>
+ <font>CD_CAP_IMAGEMAP <br>
+ CD_CAP_GETIMAGERGB <br>
+ CD_CAP_IMAGESRV</font> - Usually is only implemented in contexts of window graphics systems (Native Window and IUP).<br>
+ <font>CD_CAP_BACKGROUND <br>
+ CD_CAP_BACKOPACITY <br>
+ CD_CAP_WRITEMODE <br>
+ CD_CAP_LINESTYLE <br>
+ CD_CAP_LINEWITH <br>
+ CD_CAP_WD</font> - Functions of world coordinates are implemented directly in the driver (they are usually
+ simulated).<br>
+ <font>CD_CAP_HATCH <br>
+ CD_CAP_STIPPLE <br>
+ CD_CAP_PATTERN <br>
+ CD_CAP_FONT <br>
+ CD_CAP_FONTDIM</font> - If not defined, the function is implemented using an internal heuristics of the library.<br>
+ <font>CD_CAP_TEXTSIZE</font> - If not defined, the function is implemented using an internal
+ heuristics of the library.<br>
+ <font>CD_CAP_TEXTORIENTATION</font> - Usually is not implemented.<br>
+ <font>CD_CAP_PALETTE</font> - Usually is only implemented in contexts of window graphics systems
+ (Native Window and IUP).</p>
+
+
+<pre class="function"><span class="mainFunction">int&nbsp;cdCanvasSimulate(cdCanvas* canvas, int mode); [in C]</span>
+
+canvas:Simulate(mode: number) -&gt; (old_mode: number) [in Lua]</pre>
+
+ <p>Activates the simulation of one or more primitives. It is ignored for the canvas
+ in the ImageRGB context, because in this case everything is already simulated. It also has no effect for primitives that
+ are usually simulated. It returns the previous simulation, but does not include primitives that are usually simulated.
+ The simulation can be activated at any moment. For instance, if a line simulation is required only for a situation,
+ the simulation can be activated for the line to be drawn, and then deactivated.</p>
+<p>If simulation is activated the driver transformation matrix is disabled.</p>
+ <p>See in the Simulation sub-driver the information on how each simulation is performed.</p>
+ <p>To activate a given simulation, perform a binary OR ('|.html using one or more of the following values (in Lua, the
+ values must be added '+.html:</p>
+ <p><font>CD_SIM_NONE</font> - Deactivates all kinds of simulation.<br>
+ <font>CD_SIM_LINE <br>
+ CD_SIM_RECT <br>
+ CD_SIM_BOX <br>
+ CD_SIM_ARC <br>
+ CD_SIM_SECTOR <br>
+ CD_SIM_CHORD <br>
+ CD_SIM_POLYLINE <br>
+ CD_SIM_POLYGON <br>
+ CD_SIM_TEXT <br>
+ CD_SIM_ALL</font> - Activates all simulation options. <br>
+ <font>CD_SIM_LINES</font> - Combination of <font>CD_SIM_LINE, CD_SIM_RECT, CD_SIM_ARC</font>
+ and <font>CD_SIM_POLYLINE</font>.<br>
+ <font>CD_SIM_FILLS</font> - Combination of <font>CD_SIM_BOX, CD_SIM_SECTOR, CD_SIM_</font>CHORD and
+ <font>CD_SIM_POLYGON</font>.<br>
+ </p>
+
+<h3>Extras</h3>
+<pre class="function">int <strong><span style="font-size: 110%"><a name="cdlua_open">cdlua_open</a></span></strong>(lua_State* L); [for Lua 5]</pre>
+
+ <p>Initializes the CDLua binding. In Lua 5 the binding is lua state safe, this means that several states can be
+ initialized any time.</p>
+
+<pre class="function">int <strong><span style="font-size: 110%"><a name="cdlua_close">cdlua_close</a></span></strong>(lua_State* L); [for Lua 5]</pre>
+
+ <p>Releases the memory allocated by the CDLua binding.</p>
+
+<pre class="function">cdCanvas* <strong><span style="font-size: 110%"><a name="cdlua_getcanvas">cdlua_checkcanvas</a></span></strong>(lua_State* L, int pos); [for Lua 5]</pre>
+
+ <p>Returns the canvas in the Lua stack at position pos. The function will call lua_error if there is not a valid canvas in
+ the stack at the given position.</p>
+
+
+<pre class="function">void <strong><span style="font-size: 110%">cdlua_pushcanvas</span></strong>(lua_State* L, cdCanvas* canvas);</pre>
+<p>Pushes the given canvas into the stack.</p>
+
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/html/en/func/lines.html b/html/en/func/lines.html
new file mode 100644
index 0000000..33dd7e4
--- /dev/null
+++ b/html/en/func/lines.html
@@ -0,0 +1,147 @@
+<!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>Lines</title>
+<link rel="stylesheet" type="text/css" href="../../style.css">
+</head>
+
+<body>
+
+<h2 align="center">Lines</h2>
+
+ <p>Line are segments that connects 2 or more points. The <strong>Line</strong>
+ function includes the 2 given points and draws the line using the foreground
+ color. Line thickness is controlled by the <strong>LineWidth</strong> function.
+ By using function <strong>LineStyle</strong> you can draw dashed lines with some
+ variations. Lines with a style other than continuous are affected by the back
+ opacity attribute and by the background color.</p>
+
+<hr>
+<pre class="function"><span class="mainFunction">void <a name="cdLine">cdCanvasLine</a>(cdCanvas* canvas, int x1, int y1, int x2, int y2); [in C]
+</span>void cdfCanvasLine(cdCanvas* canvas, double x1, double y1, double x2, double y2); [in C]<br>void wdCanvasLine(cdCanvas* canvas, double x1, double y1, double x2, double y2); (WC) [in C]
+
+canvas:Line(x1, y1, x2, y2: <em>number</em>) [in Lua]
+canvas:fLine(x1, y1, x2, y2: <em>number</em>) [in Lua]
+canvas:wLine(x1, y1, x2, y2: <em>number</em>)<font><font> (WC) [in Lua]</font></font></pre>
+
+ <p>Draws a line from <b>(x1,y1)</b> to <tt><b>(x2,y2)</b></tt> using
+ the current foreground color and line width and style. Both points are
+ included in the line. </p>
+
+<pre class="function"><a name="Polygons"><strong>Polygons</strong></a><strong> and Bezier Lines</strong></pre>
+
+ <p>Open polygons can be created using <font><strong>cdBegin(</strong></font><b>CD_OPEN_LINES</b><font><strong>)/cdVertex(x,y)/.../cdEnd()</strong></font>.</p>
+ <p>Closed polygons use the same number of vertices but the last point is
+ automatically connected to the first point. Closed polygons can be created
+ using <font><strong>cdBegin(</strong></font><tt><b>CD_CLOSED_LINES</b></tt><font><strong>)/cdVertex(x,y)/.../cdEnd()</strong></font>.</p>
+ <p>Bezier lines can be created using <font><strong>cdBegin(</strong></font><b>CD_BEZIER</b><font><strong>)/cdVertex(x,y)/.../cdEnd()</strong></font>.
+ At least 4 vertices must be defined. The two vertices of the middle are the
+ control vertices. A sequence of bezier lines can be defined using more 3
+ vertices, two control points and an end point, the last point of the previous
+ bezier will be used as the start point.</p>
+ <p>See the documentation of <a href="polygon.html">cdBegin/cdVertex/cdEnd</a>.</p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdRect">cdCanvasRect</a>(cdCanvas* canvas, int xmin, int xmax, int ymin, int ymax); [in C]<br></span>void cdfCanvasRect(cdCanvas* canvas, double xmin, double xmax, double ymin, double ymax); [in C]
+void wdCanvasRect(cdCanvas* canvas, double xmin, double xmax, double ymin, double ymax); (WC) [in C]
+
+canvas:Rect(xmin, xmax, ymin, ymax: <em>number</em>) [in Lua]
+canvas:fRect(xmin, xmax, ymin, ymax: <em>number</em>) [in Lua]<br>canvas:wRect(xmin, xmax, ymin, ymax: <em>number</em>)<font><font> (WC) [in Lua]</font></font></pre>
+
+ <p>Draws a rectangle with no filling. All points in the limits of interval
+ <font><strong>x_min&lt;=x&lt;=x_max, y_min&lt;=y&lt;=y_max</strong></font>
+ will be painted. It is affected by line attributes and the foreground color.
+ If the active driver does not include this primitive, it will be simulated
+ using the <strong><font>cdLine</font></strong> primitive.</p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdArc">cdCanvasArc</a></span><span class="mainFunction">(cdCanvas* canvas, int xc, int yc, int w, int h, double angle1, double angle2); [in C]<br></span>void cdfCanvasArc(cdCanvas* canvas, double xc, double yc, double w, double h, double angle1, double angle2); [in C]<strong>
+</strong>void wdCanvasArc(cdCanvas* canvas, double xc, double yc, double w, double h, double angle1, double angle2); (WC) [in C]
+
+canvas:Arc(xc, yc, w, h, angle1, angle2: <em>number</em>) [in Lua]
+canvas:fArc(xc, yc, w, h, angle1, angle2: <em>number</em>) [in Lua]
+canvas:wArc(xc, yc, w, h, angle1, angle2: <em>number</em>)<font><font> (WC) [in Lua]</font></font></pre>
+
+ <p>Draws the arc of an ellipse aligned with the axis, using the current
+ foreground color and line width and style. It is drawn counter-clockwise. The
+ coordinate <b>(xc,yc)</b> defines the center of the ellipse.
+ Dimensions <b>w</b> and <b>h</b> define the elliptic axes X
+ and Y, respectively. </p>
+ <p>Angles <b>angle1</b> and <b>angle2</b>, in degrees define
+ the arc's beginning and end, but they are not the angle relative to the
+ center, except when w==h and the ellipse is reduced to a circle. The arc
+ starts at the point <b><b>(xc+(w/2)*cos(angle1),yc+(h/2)*sin(angle1))</b>
+ </b>and ends at <b>(xc+(w/2)*cos(angle2),yc+(h/2)*sin(angle2))</b>.&nbsp;A
+ complete ellipse can be drawn using 0 and 360 as the angles. </p>
+ <p>The angles are specified so if the size of the ellipse (w x h) is changed,
+ its shape is preserved. So the angles relative to the center are dependent
+ from the ellipse size. The actual angle can be obtained using <b>rangle =
+ atan2((h/2</b><b>)*sin(angle),(w/2)*cos(angle))</b>.</p>
+ <p>The angles are given in degrees. To specify the angle in radians, you can
+ use the definition <font size="2"><strong>CD_RAD2DEG</strong></font>
+ to multiply the value in radians before passing the angle to CD.</p>
+ <p align="center"><font size="4">Arc Parameters<br>
+ </font>&nbsp;<img src="../../img/arc.gif" border="2" width="161" height="160"></p>
+
+<h3>Attributes</h3>
+<pre class="function"><span class="mainFunction">int <a name="cdLineStyle">cdCanvasLineStyle</a>(cdCanvas* canvas, int style); [in C]</span>
+
+canvas:LineStyle(style: <em>number</em>) -&gt; (old_style: <em>number</em>) [in Lua]</pre>
+
+ <p>Configures the current line style for: <b>CD_CONTINUOUS</b>, <b>CD_DASHED</b>,
+ <b>CD_DOTTED</b>, <b>CD_DASH_DOT,</b> <b>CD_DASH_DOT_DOT,</b> or <tt><b>CD_CUSTOM</b></tt>. Returns the
+ previous value. Default value: <b>CD_CONTINUOUS</b>. Value <b><b>
+ CD_QUERY</b> </b>simply returns the current value. When <b>CD_CUSTOM</b>
+ is used the <b>cdLineStyleDahes</b> function must be called before to
+ initialize the custom dashes. The spaces are drawn with the background color,
+ except when back opacity is transparent then the background is left unchanged.
+ See <a href="filled.html#cdBackOpacity">BackOpacity</a>.</p>
+ <p align="center"><font size="4">Line Styles</font><br>
+ <img src="../../img/lines.gif" border="2" width="243" height="62"></p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdLineStyleDashes">cdCanvasLineStyleDashes</a>(cdCanvas* canvas, const int* dashes, int count); [in C]</span>
+
+canvas:LineStyleDashes(dashes: table, count: number) -&gt; (old_style: number) [in Lua]</pre>
+
+ <p>Defines the custom line style dashes. The first value is the lenght of the
+ first dash, the second value is the leght of the first space, and so on. For
+ example: &quot;10 2 5 2&quot; means dash size 10, space size 2, dash size 5, space size
+ 2, and repeats the pattern. </p>
+
+<pre class="function"><span class="mainFunction">int <a name="cdLineWidth">cdCanvasLineWidth</a>(cdCanvas* canvas, int width); [in C]<br></span>double wdCanvasLineWidth(double width_mm); (WC) [in C]
+
+canvas:LineWidth(width: number) -&gt; (old_width: number) [in Lua]
+canvas:wLineWidth(width_mm: number) -&gt; (old_width_mm: number) (WC) [in Lua]</pre>
+
+ <p>Configures the width of the current line (in pixels). Returns the previous
+ value. Default value: 1. Value <b><b>CD_QUERY</b> </b>simply returns the
+ current value. Valid width interval: &gt;= 1.</p>
+ <p>In WC, it configures the current line width in millimeters.&nbsp;</p>
+
+<pre class="function"><span class="mainFunction">int <a name="cdLineJoin">cdCanvasLineJoin</a>(cdCanvas* canvas, int style); [in C]</span>
+
+canvas:LineJoin(style: number) -&gt; (old_style: number) [in Lua]</pre>
+
+ <p>Configures the current line style for: <b>CD_MITER</b>, <b>
+ CD_BEVEL</b> or <tt><b>CD_ROUND</b></tt>. Returns the previous value.
+ Default value: <b>CD_MITER</b>. Value <b><b>CD_QUERY</b> </b>simply
+ returns the current value.</p>
+ <p align="center"><font size="4">Line Joins</font><br>
+ <img src="../../img/linejoin.gif" border="2" width="111" height="138"></p>
+
+<pre class="function"><span class="mainFunction">int <a name="cdLineCap">cdCanvasLineCap</a>(cdCanvas* canvas, int style); [in C]</span>
+
+canvas:LineCap(style: number) -&gt; (old_style: number) [in Lua]</pre>
+
+ <p>Configures the current line style for: <b>CD_CAPFLAT</b>, <b>
+ CD_CAPSQUARE</b> or <tt><b>CD_CAPROUND</b></tt>. Returns the previous
+ value. Default value: <b>CD_CAPFLAT</b>. Value <b><b>CD_QUERY</b>
+ </b>simply returns the current value.</p>
+ <p align="center"><font size="4">Line Caps</font><br>
+ <img src="../../img/linecap.gif" border="2" width="211" height="166"></p>
+
+
+</body>
+
+</html>
diff --git a/html/en/func/marks.html b/html/en/func/marks.html
new file mode 100644
index 0000000..b68db35
--- /dev/null
+++ b/html/en/func/marks.html
@@ -0,0 +1,85 @@
+<!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>Marks</title>
+<link rel="stylesheet" type="text/css" href="../../style.css">
+</head>
+
+<body>
+
+<h2 align="center">Marks</h2>
+
+ <p>A mark is a punctual representation. It can have different sizes and types.
+ All types are affected only by mark attributes and by the foreground color.</p>
+<p>All marks in all drivers are simulated using other CD primitives, except
+<strong>cdPixel</strong>.</p>
+
+<hr>
+<pre class="function"><span class="mainFunction">void <a name="cdPixel">cdCanvasPixel</a>(cdCanvas* canvas, int x, int y, long int color); [in C]</span>
+void wdCanvasPixel(cdCanvas* canvas, double x, double y, long int color); (WC) [in C]
+
+canvas:Pixel(x, y: number, color: lightuserdata) [in Lua]
+canvas:wPixel(x, y: number, color: lightuserdata) (WC) [in Lua]</pre>
+
+ <p>Configures the pixel <b>(x,y)</b> with the color defined by <b>color</b>. It is the smallest element of the canvas. It depends only
+ on global attributes of the canvas.</p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdMark">cdCanvasMark</a>(cdCanvas* canvas, int x, int y); [in C]</span>
+void wdCanvasMark(cdCanvas* canvas, double x, double y); (WC) [in C]
+
+canvas:Mark(x, y: number) [in Lua]
+canvas:wMark(x, y: number) (WC) [in Lua]</pre>
+
+ <p>Draws a mark in <b><b>(x,y)</b> </b>using the current foreground color.
+ It is not possible to use this function between a call to functions
+ <font><b>cdBegin</b></font> and <font><b>cdEnd</b></font>
+ if the type of mark is set to <b>CD_DIAMOND</b>. If the active driver
+ does not include this primitive, it will be simulated using other primitives
+ from the library, such as <strong><font>cdLine</font></strong>.</p>
+ <p>If you will call function <strong><font>cdMark</font></strong>
+ or <strong><font>wdMark</font></strong> several times in a
+ sequence, then it is recommended that the application changes the filling and
+ line attributes to those used by the <strong><font>cdMark</font></strong>
+ function:</p>
+
+<pre>cdInteriorStyle(CD_SOLID);
+cdLineStyle(CD_CONTINUOUS);
+cdLineWidth(1);</pre>
+
+ <p>This will greatly increase this function's performance. Also in this case,
+ if the mark is very small, we suggest using the <font>cdPixel</font>
+ function so that the application itself draws the mark. In many cases, this
+ also increases this function's performance.</p>
+
+<h3>Attributes</h3>
+<pre class="function"><span class="mainFunction">int <a name="cdMarkType">cdCanvasMarkType</a>(cdCanvas* canvas, int type); [in C]</span>
+
+canvas:MarkType(type: number) -&gt; (old_type: number) [in Lua]</pre>
+
+ <p>Configures the current mark type for: <b>CD_PLUS</b>, <b>
+ CD_STAR</b>, <b>CD_CIRCLE</b>, <b>CD_X</b>, <b>
+ CD_BOX</b>, <b>CD_DIAMOND</b>, <b>CD_HOLLOW_CIRCLE</b>,
+ <b>CD_HOLLOW_BOX</b> or <b>CD_HOLLOW_DIAMOND</b>. Returns
+ the previous value. Default value: <b>CD_STAR</b>. Value <b><b>
+ CD_QUERY</b> </b>simply returns the current value.</p>
+ <p align="center"><font size="4">Mark Types</font><br>
+ <img src="../../img/marks.gif" border="2" width="148" height="193"></p>
+
+<pre class="function"><span class="mainFunction">int <a name="cdMarkSize">cdCanvasMarkSize</a>(cdCanvas* canvas, int size); [in C]</span>
+double wdCanvasMarkSize(cdCanvas* canvas, double size); (WC) [in C]
+
+canvas:MarkSize(size: number) -&gt; (old_size: number) [in Lua]
+canvas:wMarkSize(size: number) -&gt; (old_size: number) (WC) [in Lua]</pre>
+
+ <p>Configures the mark size in pixels. Returns the previous value. Default
+ value: 10. Value <b><b>CD_QUERY</b> </b>simply returns the current value.
+ Valid width interval: &gt;= 1.</p>
+ <p>In WC, it configures the current line width in millimeters.&nbsp;</p>
+
+
+</body>
+
+</html>
diff --git a/html/en/func/other.html b/html/en/func/other.html
new file mode 100644
index 0000000..f0d7284
--- /dev/null
+++ b/html/en/func/other.html
@@ -0,0 +1,119 @@
+<!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>Other</title>
+<link rel="stylesheet" type="text/css" href="../../style.css">
+</head>
+
+<body>
+
+<h2 align="center">System</h2>
+<pre class="function"><span class="mainFunction">char*&nbsp;<a name="cdVersion">cdVersion</a>(void); [in C]</span>
+
+cd.Version() -&gt; (version: string) [in Lua]</pre>
+
+ <p>Returns the current version number of the library. The string with the
+ version number has a format &quot;<font>major.minor.build</font>&quot;.
+ For instance, the string &quot;2.1.3&quot; has number 2 as the main (major) version
+ number, 1 as the secondary (minor) version number, and 3 as the build number.
+ The major version number represents a change in the structure or behavior of
+ functions; the minor version number represents one or more new drivers and
+ functions added to the library; and the build version number represents one or
+ more corrected bugs.</p>
+
+<pre class="function"><span class="mainFunction">char* cdVersionDate(void); [in C]
+</span>
+cd.VersionDate() -&gt; (versiondate: string) [in Lua]</pre>
+<p>Returns the release date of the current version of the library.</p>
+<pre class="function"><span class="mainFunction">int cdVersionNumber(void); [in C]
+</span>
+cd.VersionNumber() -&gt; (version: number) [in Lua]</pre>
+<p>Returns the current version number of the library.</p>
+<pre class="function">[in C]
+<span class="mainFunction">CD_NAME</span> &quot;CD - Canvas Draw&quot;
+<span class="mainFunction">CD_DESCRIPTION</span> &quot;A 2D Graphics Library&quot;
+<span class="mainFunction">CD_COPYRIGHT</span> &quot;Copyright (C) 1994-2007 Tecgraf/PUC-Rio and PETROBRAS S/A&quot;
+<span class="mainFunction">CD_VERSION</span> &quot;5.0.0&quot;
+<span class="mainFunction">CD_VERSION_DATE</span> &quot;2007/04/09&quot;
+<span class="mainFunction">CD_VERSION_NUMBER</span> 500000
+
+[in Lua]
+cd._NAME
+cd._DESCRIPTION
+cd._COPYRIGHT
+cd._VERSION
+cd._VERSION_DATE
+cd._VERSION_NUMBER</pre>
+
+ <p>Usefull definitions. They have the same value returned by <b>cdVersion</b>*
+ functions.</p>
+
+<hr>
+<h2 align="center">Metafile Interpretation</h2>
+<pre class="function"><span class="mainFunction">int&nbsp;cdCanvasPlay(cdCanvas* canvas, cdContext* ctx, int xmin, int xmax, int ymin, int ymax, void *data); [in C]</span>
+
+canvas:Play(ctx, xmin, xmax, ymin, ymax: number, data: string) -&gt; (status: number) [in Lua]</pre>
+
+ <p>Interprets the graphical contents (primitives and attributes) in a given
+ driver and calls equivalent functions of the CD library using the given
+ canvas. The primitives are drawn inside the region defined by the given
+ limits. If <font>limits are 0 (xmin</font>, <font>xmax</font>,
+ <font>ymin</font> and <font>ymax)</font> the primitives will be drawn with their coordinates having the original
+ values in the file. </p>
+
+ <p>Only some drivers implement this function:</p>
+
+
+ <ul>
+ <li><a href="../drv/clipbd.html"><b>
+ CD_CLIPBOARD</b></a> = Clipboard, <font>data</font> is
+ ignored. </li>
+ <li><a href="../drv/wmf.html"><b>
+ CD_WMF</b></a> = Windows Metafile, <font>data</font> is
+ a <b>char*</b> for the string ''<i>filename</i>''. Works only in
+ the MS Windows system.</li>
+ <li><a href="../drv/emf.html"><b>
+ CD_EMF</b></a> = Windows Enhanced Metafile, <font>data</font>
+ is a <b>char*</b> for the string ''<i>filename</i>''. Works only in
+ the MS Windows system.</li>
+ <li><a href="../drv/cgm.html"><b>
+ CD_CGM</b></a> = Computer Graphics Metafile ISO, <font>
+ data</font> is a <b>char*</b> for the string ''<i>filename</i>''.</li>
+ <li><a href="../drv/mf.html"><b>
+ CD_METAFILE</b></a> = CD Metafile, <font>data</font>
+ is a <b>char*</b> for the string ''<i>filename</i>''.</li>
+ <li><a href="../drv/picture.html"><b>
+ CD_PICTURE</b></a> = CD Picture, <font>data</font>
+ is a <strong>cdCanvas</strong><b>*</b> of the Picture canvas.</li>
+ </ul>
+
+<pre class="function"><span class="mainFunction">int&nbsp;cdContextRegisterCallback(cdContext *ctx, int cb, int(*func)(cdCanvas* canvas, ...)); [in C]</span>
+
+cd.ContextRegisterCallback(ctx, cb: number, func: function) -&gt; (status: number) [in Lua]</pre>
+
+ <p>Used to customize the behavior of the&nbsp; <b><font>Play</font></b>
+ function. If you register a known callback function, it will be called during
+ the processing loop of <font>cdPlay</font>.</p>
+ <p>The callback should return <font>CD_CONTINUE</font>, if it
+ returns <font>CD_ABORT</font>, the <font>cdPlay</font>
+ function is aborted. The callback identifiers of a given driver must be in the
+ header file relative to that driver, with prefix &quot;<font>CD_XXYYYCB</font>&quot;,
+ where <font>XX</font> identifies that driver and
+ <font>YYY</font> identifies the callback name.</p>
+ <p>There is a default callback common to all implementations of
+ <font>cdPlay</font>, <b>CD_SIZECB</b>. Its definition
+ is:</p>
+<pre>int cdResizeCB(cdCanvas* canvas, int width, int height, double mm_width, double mm_height)</pre>
+<p>It returns the size of the image in the
+ file before any function in the CD library is called, so that you can call the&nbsp;
+ <font>cdPlay</font> function without an active canvas and
+ create the canvas inside the callback. It works as a&nbsp; <b>
+ <font>cdCanvasGetSize</font></b> function.</p>
+
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/html/en/func/polygon.html b/html/en/func/polygon.html
new file mode 100644
index 0000000..4e18664
--- /dev/null
+++ b/html/en/func/polygon.html
@@ -0,0 +1,87 @@
+<!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>Polygons</title>
+<link rel="stylesheet" type="text/css" href="../../style.css">
+</head>
+
+<body>
+
+<h2 align="center">Open, Closed and Filled Polygons,<br>
+Bezier Lines and<br>
+Regions Creation</h2>
+
+ <p>The functions <font><strong>cdBegin</strong></font>,
+ <font><strong>cdVertex</strong></font> and <font>
+ <strong>cdEnd</strong></font> are use for many situations.
+ <font><strong>cdBegin</strong></font> is called once,
+ <font><strong>cdVertex</strong></font> can be called many
+ times, and <font><strong>cdEnd</strong></font> is called once
+ to actually do something. If you call <font><strong>cdBegin</strong></font>
+ again before <font><strong>cdEnd</strong></font> the process is
+ restarted, except for <strong><font>cdBegin(</font></strong><b>CD_REGION</b><strong><font>)</font></strong>
+ that can contains one or more polygons inside. </p>
+
+<hr>
+<pre class="function"><span class="mainFunction">void <a name="cdBegin">cdCanvasBegin</a>(cdCanvas* canvas, int mode); [in C]</span>
+
+canvas:Begin(mode: number) [in Lua]</pre>
+
+ <p>Starts defining a polygon to be drawn (or filled) according to the mode:&nbsp;
+ <b>CD_CLOSED_LINES</b>, <b>CD_OPEN_LINES</b>, <b>CD_FILL</b><strong><b>,
+ </b></strong><b>CD_CLIP, CD_REGION</b> or <strong><b>CD_BEZIER</b></strong>.
+ Do not create embedded polygons, that is, do not call function
+ <font><strong>cdBegin</strong></font> twice without a call to
+ <font><strong>cdEnd</strong></font> in between.</p>
+
+<ul>
+ <li><strong>CD_OPEN_LINES</strong><b>:</b> connects all the points at cdEnd. Depends
+ on line width and line style attributes. </li>
+ <li><b><b>CD_CLOSED_LINES:</b> </b>connects all the points at cdEnd and
+ connects the last point to the first.&nbsp; Depends on line width and line
+ style attributes. </li>
+ <li><b>CD_FILL:</b> connects the last point to the first and fills
+ the resulting polygon according to the current interior style. When the
+ interior style <strong><b>CD_HOLLOW</b></strong> is defined the it behaves
+ as if the mode were <b>CD_CLOSED_LINES</b><strong>.</strong></li>
+ <li><b>CD_CLIP: i</b>nstead of creating a polygon to be drawn,
+ creates a polygon to define a polygonal clipping region. </li>
+ <li><strong><b>CD_BEZIER:</b></strong><b> </b>defines the points of a bezier
+ curve. There must be at least 4 points: <i>start</i>, <i>control</i>, <i>
+ control</i> and <i>end</i>. To specify a sequence of curves use 3 more points
+ for each curve: <i>control</i>, <i>control</i>, <i>end</i>, <i>control</i>, <i>
+ control</i>, <i>end</i>, ... The end point is used as start point for the next
+ curve.</li>
+ <li><strong><b>CD_REGION</b></strong>: starts the creation of a complex
+ region for clipping. All calls to <font><strong>cdBox</strong></font>,
+ <font><strong>cdSector</strong></font>, <font>
+ <strong>cdChord, Filled</strong></font> <font><strong>Polygons</strong></font>
+ and <font><strong>cdText</strong></font> will be composed in a
+ region for clipping. See <a href="region.html">Regions</a> documentation.</li>
+</ul>
+<p align="center"><font size="4">Open, Closed and Filled Polygons<br>
+</font><img src="../../img/polygon.gif" border="2" width="249" height="116"></p>
+<p align="center"><font size="4">Bezier Lines<br>
+</font><img src="../../img/bezier.gif" border="2" width="241" height="220"></p>
+<pre class="function"><span class="mainFunction">void <a name="cdVertex">cdCanvasVertex</a>(cdCanvas* canvas, int x, int y); [in C]</span>
+void cdfCanvasVertex(cdCanvas* canvas, double x, double y); [in C]
+void wdCanvasVertex(cdCanvas* canvas, double x, double y); (WC) [in C]
+
+canvas:Vertex(x, y: number) [in Lua]
+canvas:wVertex(x, y: number) (WC) [in Lua]</pre>
+
+ <p>Adds a vertex to the polygon definition.</p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdEnd">cdCanvasEnd</a>(cdCanvas* canvas); [in C]</span>
+
+canvas:End() [in Lua]</pre>
+
+ <p>Ends the polygon's definition and draws it.</p>
+
+
+</body>
+
+</html>
diff --git a/html/en/func/region.html b/html/en/func/region.html
new file mode 100644
index 0000000..e503733
--- /dev/null
+++ b/html/en/func/region.html
@@ -0,0 +1,83 @@
+<!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>Complex Clipping Regions</title>
+<link rel="stylesheet" type="text/css" href="../../style.css">
+</head>
+
+<body>
+
+<h2 align="center">Complex Clipping Regions</h2>
+
+ <p>A complex region can composed of boxes, sectors, chords, polygons and
+ texts. It is implemented only in the Windows GDI, GDI+ and X-Windows base drivers.</p>
+
+ <p>Complex clipping regions can be created using <font><strong>
+ cdBegin(</strong></font><b><tt>CD_REGION</tt></b><font><strong>)/(filled
+ primtives)/.../cdEnd()</strong></font>. For more about cdBegin and cdEnd see
+ <a href="polygon.html">Polygons</a>.</p>
+ <p>Between a <strong><font>cdBegin(</font></strong><b><tt>CD_REGION</tt></b><strong><font>)</font></strong>
+ and a <strong><font>cdEnd()</font></strong>, all calls to
+ <font><strong>cdBox</strong></font>, <font>
+ <strong>cdSector</strong></font>, <font><strong>cdChord,
+ cdBegin(CD_FILL)/cdVertex(x,y)/.../cdEnd()</strong></font> and
+ <font><strong>cdText</strong></font> will be composed in a
+ region for clipping. This is the only exception when you can call a
+ <font><strong>cdBegin</strong></font> after another
+ <font><strong>cdBegin</strong></font>.</p>
+ <p>When you call <font><strong>cdBegin(</strong></font><b><tt>CD_REGION</tt></b><strong><font>)</font></strong>
+ a new empty region will be created. So for the first operation you should use
+ <b><tt>CD_UNION</tt></b> or <b><tt>CD_NOTINTERSECT</tt></b> combine modes.
+ When you finished to compose the region call <font><strong>
+ cdEnd()</strong></font>.</p>
+ <p>To make the region active you must call <strong><font>
+ cdClip(</font></strong><b><tt>CD_CLIPREGION</tt></b><strong><font>)</font></strong>.
+ For other clipping regions see <a href="clipping.html">Clipping</a>.</p>
+<p>Complex clipping regions are not saved by <strong>cdSaveState</strong>.</p>
+
+<hr>
+<pre class="function"><span class="mainFunction">int&nbsp;cdCanvasRegionCombineMode(cdCanvas* canvas, int mode); [in C]</span>
+
+canvas:RegionCombineMode(mode: number) -&gt; (old_mode: number) [in Lua]</pre>
+
+ <p>Changes the way regions are combined when created. Returns the previous
+ status. Values: <b><tt>CD_UNION, CD_INTERSECT, CD_DIFFERENCE or
+ CD_NOTINTERSECT</tt></b>. The value <b><tt>CD_QUERY</tt></b> simply returns
+ the current status. Default value: <b><tt>CD_UNION</tt></b>.</p>
+ <p align="center"><font size="4">Combine Modes<br>
+ </font><img src="../../img/regions.gif" border="2" width="297" height="361"></p>
+
+<pre class="function"><span class="mainFunction">int&nbsp;cdCanvasIsPointInRegion(cdCanvas* canvas, int x, int y); [in C]</span>
+
+canvas:IsPointInRegion(x, y: number) -&gt; (status: number) [in Lua]</pre>
+
+ <p>Returns a non zero value if the point is contained inside the current
+ region.</p>
+
+<pre class="function"><span class="mainFunction">void&nbsp;cdCanvasOffsetRegion(cdCanvas* canvas, int dx, int dy); [in C]</span>
+void wdCanvasOffsetRegion(cdCanvas* canvas, double dx, double dy); (WC) [in C]
+
+canvas:OffsetRegion(dx, dy: number) [in Lua]
+canvas:wOffsetRegion(dx, dy: number) (WC) [in Lua]</pre>
+
+ <p>Moves the current region by the given offset. In X-Windows, if the region
+ moves to outside the canvas border, the part moved outside will be lost, the
+ region will need to be reconstruted.</p>
+
+<pre class="function"><span class="mainFunction">void&nbsp;cdCanvasGetRegionBox(cdCanvas* canvas, int *xmin, int *xmax, int *ymin, int *ymax); [in C]</span>
+void wdCanvasGetRegionBox(cdCanvas* canvas, double *xmin, double *xmax, double *ymin, double *ymax); (WC) [in C]
+
+canvas:GetRegionBox() -&gt; (xmin, xmax, ymin, ymax, status: number) [in Lua]
+canvas:wGetRegionBox() -&gt; (xmin, xmax, ymin, ymax, status: number) (WC) [in Lua]</pre>
+
+ <p>Returns the rectangle of the bounding box of the current region. It is not
+ necessary to provide all return pointers, you can provide only the desired
+ values and <i><tt>NULL</tt></i> for the others.</p>
+
+
+</body>
+
+</html>
diff --git a/html/en/func/server.html b/html/en/func/server.html
new file mode 100644
index 0000000..6663de5
--- /dev/null
+++ b/html/en/func/server.html
@@ -0,0 +1,84 @@
+<!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>Server Images</title>
+<link rel="stylesheet" type="text/css" href="../../style.css">
+</head>
+
+<body>
+
+<h2 align="center">Server Images</h2>
+
+ <p>It is a high performance image compatible with a specific canvas. It is
+ faster than user image functions, but less flexible. It is commonly used for
+ off-screen drawing in Window Systems. </p>
+ <p>You can make gets and puts on several canvases but they must be created
+ using the same driver. It is possible to specify a part of the image to be
+ drawn, but it is not possible to zoom.</p>
+ <p>It is called &quot;server&quot; images because the data is stored in a system private
+ format, that the application (or the client) does not have access.</p>
+ <p>To create a server image there must be an active canvas of a driver with
+ server image support.</p>
+
+<hr>
+<pre class="function"><span class="mainFunction">cdImage* <a name="cdCreateImage">cdCanvasCreateImage</a>(cdCanvas* canvas, int w, int h); [in C]</span>
+
+canvas:CreateImage(w, h: number) -&gt; (image: cdImage) [in Lua]</pre>
+
+ <p>Creates a compatible image with size = <b><tt>w x h</tt></b> pixels. A
+ compatible image has the same color representation (number of bits per pixel)
+ of the active canvas. Once the server image is created it is independent of
+ the active canvas. The server image can only be used with an other canvas of
+ the same type as the canvas that was active when the image was created. The
+ default background is the same as the canvas, <strong><tt>CD_WHITE</tt></strong>.</p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdKillImage">cdKillImage</a>(cdImage* image); [in C]</span>
+
+image:KillImage() [in Lua]</pre>
+
+ <p>Liberates memory allocated for the image. If this function is not called in
+ Lua, the garbage collector will call it.</p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdGetImage">cdCanvasGetImage</a>(cdCanvas* canvas, cdImage* image, int x, int y); [in C]</span>
+
+canvas:GetImage(image: cdImage; x, y: number) [in Lua]</pre>
+
+ <p>Copies a rectangular region from the current rectangular context to the
+ memory <strong>(</strong><b><tt>image</tt></b><strong>)</strong>. <b><tt>(x,y)</tt></b>
+ is the coordinate of the bottom left corner of the rectangular region. The
+ width and length of the rectangular region are defined in the image structure
+ (when the image is created).</p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdPutImageRect">cdCanvasPutImageRect</a>(cdCanvas* canvas, cdImage* image, int x, int y, int xmin, int xmax, int ymin, int ymax); [in C]</span>
+void wdCanvasPutImageRect(cdCanvas* canvas, cdImage* image, double x, double y, int xmin, int xmax, int ymin, int ymax); (WC) [in C]
+
+canvas:PutImageRect(image: cdImage; x, y, xmin, xmax, ymin, ymax: number) [in Lua]
+canvas:wPutImageRect(image: cdImage; x, y, xmin, xmax, ymin, ymax: number) (WC) [in Lua]</pre>
+
+ <p>Copies an image in a rectangular region of the canvas with the bottom left
+ corner in <tt><b>(x,y)</b></tt>. Allows specifying a rectangle inside the
+ image to be drawn, if <strong><font>xmin</font>,
+ <font>xmax</font>, <font>ymin</font> </strong>
+ and <strong><font>ymax</font></strong> are 0, then the whole
+ image is assumed.</p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdScrollArea">cdCanvasScrollArea</a>(cdCanvas* canvas, int xmin, int xmax, int ymin, int ymax, int dx, int dy); [in C]</span>
+
+canvas:ScrollArea(xmin, xmax, ymin, ymax, dx, dy: number) [in Lua]</pre>
+
+ <p>Copies the rectangle defined by the coordinates <b><tt>(xmin,ymin)</tt></b>
+ and <b><tt>(xmax,ymax)</tt></b> to the rectangle defined by <b><tt>
+ (xmin+dx,ymin+dy)</tt></b> and <b><tt>(xmax+dx,ymax+dy)</tt></b>. It has the
+ same effect as <b><tt>cdGetImage</tt></b> followed by <tt><b>cdPutImage</b></tt>,
+ but it should be faster and does not require the explicit creation of an image
+ to be executed. Note that the region belonging to the first rectangle, but not
+ to the second, remains unchanged (the function does not clean this region).
+ </p>
+
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/html/en/func/text.html b/html/en/func/text.html
new file mode 100644
index 0000000..6243325
--- /dev/null
+++ b/html/en/func/text.html
@@ -0,0 +1,192 @@
+<!doctype HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Text</title>
+<link rel="stylesheet" type="text/css" href="../../style.css">
+</head>
+
+<body>
+
+<h2 align="center">Text</h2>
+
+ <p>A raster text using a font with styles. The position the text is drawn depends on the text alignment attribute. </p>
+ <p>The library has at least 4 standard typefaces: &quot;System&quot; (which depends on the driver and platform),
+ &quot;Courier&quot; (mono spaced
+ with serif), &quot;Times&quot; (proportional with serif) and &quot;Helvetica&quot; (proportional without serif). Each typeface can have
+ some styles: Plain, <strong>Bold</strong>, <em>Italic</em> and a combination of <em><strong>Bold and Italic</strong></em>.
+ As an alternative to the standard typefaces, you can use other typefaces or native driver typefaces with the function
+ <strong>NativeFont</strong>, but they may work in a reduced set of drivers.
+ </p>
+ <p>You may retrieve the dimensions of the selected font with function <font>
+ <strong>GetFontDim</strong></font>. Also you
+ may retrieve the bounding box of a specific text before drawing by using the
+ <font><strong>GetTextSize</strong></font>
+ and <font><strong>GetTextBox</strong></font> functions. </p>
+ <p>The text is drawn using a reference point; you can change the alignment relative to this point using the
+ <font><strong>TextAligment</strong></font> function. </p>
+
+<hr>
+<pre class="function"><span class="mainFunction">void <a name="cdText">cdCanvasText</a>(cdCanvas* canvas, int x, int y, const char* text); [in C]</span>
+void cdfCanvasText(cdCanvas* canvas, double x, double y, const char* text); [in C]
+void wdCanvasText(cdCanvas* canvas, double x, double y, const char* text); (WC) [in C]
+
+canvas:Text(x, y: number, text: string) [in Lua]
+canvas:fText(x, y: number, text: string) [in Lua]
+canvas:wText(x, y: number, text: string) (WC) [in Lua]</pre>
+
+ <p>Inserts a text in <b><tt>(x,y)</tt></b> according to the current font and
+ text alignment. It expects an ANSI string with no line breaks.</p>
+
+<h3>Attributes</h3>
+<pre class="function"><span class="mainFunction">void <a name="cdFont">cdCanvasFont</a>(cdCanvas* canvas, const char* typeface, int style, int size); [in C]</span>
+void wdCanvasFont(cdCanvas* canvas, const char* typeface, int style, double size); (WD) [in C]
+
+canvas:Font(typeface, style, size: number) [in Lua]
+canvas:wFont(typeface, style, size: number) (WD) [in Lua]</pre>
+
+ <p>Selects a text font. The font type can be one of the standard type faces or
+ other driver dependent type face. Since font face names are not a standard
+ between drivers, a few names are specially handled to improve application
+ portability. If you want to use names that work for all systems we recommend
+ using: &quot;<strong>Courier</strong>&quot;, &quot;<strong>Times</strong>&quot; and &quot;<strong>Helvetica</strong>&quot;.</p>
+<p>The style can be a combination of: <strong>CD_PLAIN</strong>,
+ <strong>CD_BOLD</strong>, <strong>CD_ITALIC</strong>, <strong>CD_UNDERLINE</strong>
+ or <strong>CD_STRIKEOUT</strong>. Only the Windows and PDF drivers support underline and
+ strikeout. The size is provided in points (1/72 inch) or in pixels (using
+ negative values). </p>
+ <p>Default values: &quot;<strong>System</strong>&quot;, <b>CD_PLAIN</b>, 12. </p>
+ <p>You can specify partial parameters using NULL, -1 and 0 for typeface, style
+ and size. When these parameters are specified the current font parameter is
+ used. For example: <b>CanvasFont(NULL, -1, 10)</b> will only change the font
+ size.</p>
+ <p>To convert between pixels and points use the function <strong>
+ <font>cdPixel2MM</font>
+ </strong>to convert from pixels to millimeters and use the formula &quot;<strong>(value in <em>points</em>) = CD_MM2PT *
+ (value in millimeters)</strong>&quot;.</p>
+ <p>In WC, the size is specified in millimeters, but is internally converted to points.</p>
+<p>Fonts can heavily benefit from the ANTIALIAS attribute where available in the
+driver.</p>
+ <div align="center">
+ <center>
+ <table border="0" cellpadding="5" cellspacing="8" style="border-collapse: collapse" bordercolor="#111111">
+ <tr>
+ <td>
+ <p align="center"><font size="4">Type Faces</font><br>
+ <img src="../../img/fonts.gif" border="2" width="140" height="125"> </td>
+ <td>
+ <p align="center"><font size="4">Font Styles</font><br>
+ <img src="../../img/font_style.gif" border="2" width="135" height="122"> </td>
+ </tr>
+ </table>
+ </center>
+ </div>
+
+<pre class="function"><span class="mainFunction">void <a name="cdGetFont">cdCanvasGetFont</a>(cdCanvas* canvas, char* typeface, int *style, int *size); [in C]</span>
+void wdCanvasGetFont(cdCanvas* canvas, char* typeface, int *style, double *size); (WC) [in C]
+
+canvas:GetFont() -&gt; (typeface: string, style, size: number) [in Lua]
+canvas:wGetFont() -&gt; (typeface: string, style, size: number) (WC) [in Lua]</pre>
+
+ <p>Returns the values of the current font. It is not necessary to provide all
+ return pointers; you can provide only the desired values.</p>
+ <p>In WC, the size is returned in millimeters.</p>
+
+<pre class="function"><span class="mainFunction">char* <a name="cdNativeFont">cdCanvasNativeFont</a>(cdCanvas* canvas, const char* nativefont); [in C]</span>
+
+canvas:NativeFont(font: string) -&gt; (old_font: string) [in Lua]</pre>
+
+ <p>Selects a font based on a string description. The description can depend on the driver
+ and the platform, but a common definition is available for all drivers. It
+ does not need to be stored by the application, as it is internally replicated
+ by the library. The string is case sensitive. It returns the previous string. </p>
+<p>The string is parsed and the font typeface, style and size are set according
+to the parsed values, as if <strong>cdCanvasFont</strong> was called. The native font string is
+cleared when a font is set
+using <strong>cdCanvasFont</strong>.</p>
+<p>The common format definition is similar to the the <a href="http://www.pango.org/">
+Pango</a> library Font Description, used by GTK+2. It is defined as having 3 parts: &lt;font
+family&gt;, &lt;font styles&gt; &lt;font size&gt;. For ex: &quot;Times, Bold 18&quot;, or
+&quot;Arial,Helvetica, Italic Underline -24&quot;. The supported styles include:
+Bold, Italic, Underline and Strikeout. Underline, Strikeout, and negative
+pixel values are not supported by the standard Pango Font Description. The Pango
+format include many other definitions not supported by the CD format, they are
+just ignored.</p>
+<p>The IUP &quot;FONT&quot; attribute internal formats are also accepted in all drivers
+and platforms.</p>
+ <p>Using &quot;NULL&quot; as a parameter, it only returns the previous string and does not change the font. The value returned
+ is the last attributed value, which may not correspond exactly to the font selected by the driver.</p>
+
+ <p>Using &quot;(char*)CD_QUERY&quot; as a parameter, it returns the current selected
+ font in the common format definition.</p>
+
+<pre class="function"><span class="mainFunction">int <a name="cdTextAlignment">cdCanvasTextAlignment</a>(cdCanvas* canvas, int alignment); [in C]</span>
+
+canvas:TextAlignment(alignment: number) -&gt; (old_alignment: number) [in Lua]</pre>
+
+ <p>Defines the vertical and horizontal alignment of a text as: <b><tt>CD_NORTH</tt></b>, <b><tt>CD_SOUTH</tt></b>, <b>
+ <tt>CD_EAST</tt></b>, <b><tt>CD_WEST</tt></b>, <b><tt>CD_NORTH_EAST</tt></b>, <b><tt>CD_NORTH_WEST</tt></b>, <b><tt>
+ CD_SOUTH_EAST</tt></b>, <b><tt>CD_SOUTH_WEST</tt></b>, <b><tt>CD_CENTER</tt></b>, <b><tt>CD_BASE_LEFT</tt></b>, <b>
+ <tt>CD_BASE_CENTER</tt></b>, or <b><tt>CD_BASE_RIGHT</tt></b>. Returns the previous value. Default value: <b><tt>
+ CD_BASE_LEFT</tt></b>. Value <tt><b>CD_QUERY</b> </tt>simply returns the current value.</p>
+ <p align="center"><font size="4">Text Alignment</font><br>
+ <img src="../../img/align.gif" border="2" width="273" height="227"></p>
+
+<pre class="function"><span class="mainFunction">double <a name="cdTextOrientation">cdCanvasTextOrientation</a>(cdCanvas* canvas, double angle); [in C]</span>
+
+canvas:TextOrientation(angle: number) -&gt; (old_angle: number) [in Lua]</pre>
+
+ <p>Defines the text orientation, which is an angle provided in degrees relative to the horizontal line according to
+ which the text is drawn. Returns the previous value. Value <tt><b>CD_QUERY</b> </tt>simply returns the current value.
+ The default value is 0.</p>
+
+<h3>Properties</h3>
+<pre class="function"><span class="mainFunction">void <a name="cdFontDim">cdCanvasGetFontDim</a>(cdCanvas* canvas, int *max_width, int *height, int *ascent, int *descent); [in C]</span>
+void wdCanvasGetFontDim(cdCanvas* canvas, double *max_width, double *height, double *ascent, double *descent); (WC) [in C]
+
+canvas:GetFontDim() -&gt; (max_width, height, ascent, descent: number) [in Lua]
+canvas:wGetFontDim() -&gt; (max_width, height, ascent, descent: number) (WC) [in Lua]</pre>
+
+ <p>Returns the maximum width of a character, the line's height, the <i>ascent</i> and <i>descent</i> of the
+ characters of the currently selected font. The line's height is the sum of the <i>
+ ascent</i> and <i>descent</i> of a
+ given additional space (if this is the case). All values are given in pixels
+ and are positive. It is not necessary to provide all return pointers, you can provide only
+ the desired values and <i><tt>NULL</tt></i> for the others.</p>
+ <p align="center"><font size="4">Font Dimension Attributes<br>
+ </font><img src="../../img/font_dim.gif" border="2" width="300" height="139"></p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdTextSize">cdCanvasGetTextSize</a>(cdCanvas* canvas, const char* text, int *width, int *height); [in C]</span>
+void wdCanvasGetTextSize(cdCanvas* canvas, const char* text, double *width, double *height); (WC) [in C]
+
+canvas:GetTextSize(text: string) -&gt; (width, heigth: number) [in Lua]
+canvas:wGetTextSize(text: string) -&gt; (width, heigth: number) (WC) [in Lua]</pre>
+
+ <p>Returns the width and height of a text's minimum box with the currently selected font. If the driver does not
+ support this kind of query, the values will be given 0 (zero). It is not necessary to provide all return pointers, you
+ can provide only the desired values and <i><tt>NULL</tt></i> for the others.</p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdTextBox">cdCanvasGetTextBox</a>(cdCanvas* canvas, int x, int y, const char* text, int *xmin, int *xmax, int *ymin, int *ymax); [in C]</span>
+void wdCanvasGetTextBox(cdCanvas* canvas, double x, double y, const char* text, double *xmin, double *xmax, double *ymin, double *ymax); (WC) [in C]
+
+canvas:GetTextBox(x, y: number, text: string) -&gt; (xmin, xmax, ymin, ymax: number) [in Lua]
+canvas:wGetTextBox(x, y: number, text: string) -&gt; (xmin, xmax, ymin, ymax: number) (WC) [in Lua]</pre>
+
+ <p>Returns the horizontal bounding rectangle of a text box, even if the text has an orientation. It is not necessary
+ to provide all return pointers, you can provide only the desired values and <i><tt>NULL</tt></i> for the others.</p>
+
+<pre class="function"><span class="mainFunction">void <a name="cdTextBounds">cdCanvasGetTextBounds</a>(cdCanvas* canvas, int x, int y, const char *text, int *rect); [in C]</span>
+void wdCanvasGetTextBounds(cdCanvas* canvas, double x, double y, const char* text, double *rect); (WC) [in C]
+
+canvas:GetTextBounds(x, y: number, text: string) -&gt; (rect0, rect1, rect2, rect3, rect4, rect5, rect6, rect7: number) [in Lua]
+canvas:wGetTextBounds(x, y: number, text: string) -&gt; (rect0, rect1, rect2, rect3, rect4, rect5, rect6, rect7: number) (WC) [in Lua]</pre>
+
+ <p>Returns the oriented bounding rectangle of a text box. The rectangle corners are returned in counter-clock wise
+ order starting with the bottom left corner, (x,y) arranged (x0,y0,x1,y1,x2,y2,x3,y3).</p>
+
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/html/en/func/vectortext.html b/html/en/func/vectortext.html
new file mode 100644
index 0000000..e1b1d6e
--- /dev/null
+++ b/html/en/func/vectortext.html
@@ -0,0 +1,133 @@
+<!doctype HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ <title>Vector Text</title>
+ <meta http-equiv="Content-Language" content="en-us">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <link rel="stylesheet" type="text/css" href="../../style.css">
+ </head>
+ <body>
+ <h2 align="center">Vector Text</h2>
+ <p>It is a text that uses a font created only with line segments. It is very
+ useful to be scaled and very fast. You must set the text size before drawing
+ any text. The functions ignore the new line character "\n"; only the <font>wdMultiLineVectorText</font>
+ function will consider this character. The default direction is horizontal from
+ left to right.</p>
+ <p align="center"><font size="4">Vector Text Parameters</font><br>
+ <img src="../../img/vector_text.gif" align="middle" border="2" width="101" height="91"></p>
+ <p>All vector text drawing in all drivers are simulated using other CD
+ primitives.</p>
+ <hr>
+ <pre class="function"><span class="mainFunction">void <a name="cdVectorText">cdCanvasVectorText</a>(cdCanvas* canvas, int x, int y, const char* text); [in C]</span>
+void wdCanvasVectorText(cdCanvas* canvas, double x, double y, const char* text); (WC) [in C]
+
+canvas:VectorText(x, y: number, text: string) [in Lua]
+canvas:wVectorText(x, y: number, text: string) (WC) [in Lua]</pre>
+ <p>Draws a vector text in position <tt><b>(x,y)</b></tt>, respecting the
+ alignment defined by <font><strong>cdTextAlignment</strong></font>. It ignores
+ the configuration <font><strong>cdBackOpacity</strong></font>, being always
+ transparent. It also ignores strings with multiple lines. It is ESSENTIAL to
+ call <font><strong>cdVectorTextSize</strong></font> or <font><strong>cdVectorCharSize</strong></font>
+ before using <font><strong>cdVectorText</strong></font> or <font><strong>cdMultiLineVetorText</strong></font>.</p>
+ <pre class="function"><span class="mainFunction">void <a name="cdMultiLineVectorText">cdCanvasMultiLineVectorText</a>(cdCanvas* canvas, int x, int y, const char* text); [in C]</span>
+void wdCanvasMultiLineVectorText(cdCanvas* canvas, double x, double y, const char* text); (WC) [in C]
+
+canvas:MultiLineVectorText(x, y: number, text: string) [in Lua]
+canvas:wMultiLineVectorText(x, y: number, text: string) (WC) [in Lua]</pre>
+ <p>Draws a vector text with several lines in position <b><tt>(x,y)</tt></b>,
+ respecting the alignment defined by <font><strong>cdTextAlignment</strong></font>.
+ It ignores the configuration <font><strong>cdBackOpacity</strong></font>, being
+ always transparent. Lines are broken by characters <font>"\n"</font>. Each line
+ respects the scale defined in <font><strong>cdVectorTextSize</strong></font> or <font>
+ <strong>cdVectorCharSize</strong></font>. This function's purpose is to make
+ function <strong><font>cdVectorText</font></strong> more efficient, not being
+ concerned with multiple lines.</p>
+ <h3>Attributes</h3>
+ <pre class="function"><span class="mainFunction">void <a name="cdVectorTextDirection">cdCanvasVectorTextDirection</a>(cdCanvas* canvas, int x1, int y1, int x2, int y2); [in C]</span>
+void wdCanvasVectorTextDirection(cdCanvas* canvas, double x1, double y1, double x2, double y2); (WC) [in C]
+
+canvas:VectorTextDirection(x1, y1, x2, y2: number) [in Lua]
+canvas:wVectorTextDirection(x1, y1, x2, y2: number) (WC) [in Lua]</pre>
+ <p>Defines the text direction by means of two points, <b><tt>(x1,y1)</tt></b> and <b>
+ <tt>(x2,y2)</tt></b>. The default direction is horizontal from left to right.</p>
+ <pre class="function"><span class="mainFunction">double* <a name="cdVectorTextTransform">cdCanvasVectorTextTransform</a>(cdCanvas* canvas, const double* matrix); [in C]</span>
+
+canvas:VectorTextTransform(matrix: table) -&gt; (old_matrix: table) [in Lua]&nbsp;</pre>
+ <p>Defines a transformation matrix with 6 elements. If the matrix is NULL, no
+ transformation is set. The default direction is no transformation. The origin
+ is the left bottom corner of matrix. It returns the previous matrix, and the
+ returned vector is only valid until the following call to the function.</p>
+ <p>The matrix contains scale, rotation and translation elements. It is applied after
+ computing the position and orientation normal to the vector text. We can
+ describe the elements as follows:</p>
+ <pre>|x'| | scl_x*cos(ang) -sin(ang) trans_x | |x| | 3 4 5|
+|y'| = | sin(ang) scl_y*cos(ang) trans_y | * |y| with indices | 0 1 2|
+ |1|</pre>
+ <pre class="function"><span class="mainFunction">void <a name="cdVectorTextSize">cdCanvasVectorTextSize</a>(cdCanvas* canvas, int w, int h, const char * text); [in C]</span>
+void wdCanvasVectorTextSize(cdCanvas* canvas, double size_x, double size_y, const char* text); (WC) [in C]
+
+canvas:VectorTextSize(w, h: number, text: string) [in Lua]
+canvas:wVectorTextSize(w, h: number, text: string) (WC) [in Lua]</pre>
+ <p>Modifies the scale of the vector text so that it corresponds to the string of
+ the bounding box defined by <b><tt>w</tt></b> and <b><tt>h</tt></b>. It ignores
+ strings with multiple lines.</p>
+ <pre class="function"><span class="mainFunction">double <a name="cdVectorCharSize">cdCanvasVectorCharSize</a>(cdCanvas* canvas, int size); [in C]</span>
+double wdCanvasVectorCharSize(double size); (WC) [in C]
+
+canvas:VectorCharSize(size: number) -&gt; (old_size: number) [in Lua]
+canvas:wVectorCharSize(size: number) -&gt; (old_size: number) (WC) [in Lua]</pre>
+ <p>Sets the height of the characters and adjusts the width according to it.
+ Returns the previous value. <strong><tt>CD_QUERY</tt></strong> returns the
+ current value.</p>
+ <pre class="function"><span class="mainFunction">char* <a name="cdVectorFont">cdCanvasVectorFont</a>(cdCanvas* canvas, const char *filename); [in C]</span>
+
+canvas:VectorFont(filename: string) -&gt; (fontname: string) [in Lua]</pre>
+ <p>Replaces the current vector font with a font stored in a file with a given
+ name. Returns the name of the font loaded or NULL, if it fails. If <font>filename</font>
+ is NULL, it activates the default font "<b>Simplex II</b>" (There is no file
+ associated to this font, it is an embedded font). The library will attempt to
+ load a font from the current directory, if it fails then it will try the
+ directory defined by the environment variable "<strong><tt>CDDIR</tt></strong>&quot;,
+ if it fails, it will attempt to
+ load it using the <font>filename</font> as a string containing the font as
+ if the file was loaded into that string, if it fails again the font is reset
+ to the default font and returns NULL. The file format is
+ compatible with the GKS file format (text mode).</p>
+ <h3>Properties</h3>
+ <pre class="function"><span class="mainFunction">void <a name="cdGetVectorTextSize">cdCanvasGetVectorTextSize</a>(cdCanvas* canvas, const char* text, int *w, int *h); [in C]</span>
+void wdCanvasGetVectorTextSize(cdCanvas* canvas, const char* text, double *x, double *y); (WC) [in C]
+
+canvas:GetVectorTextSize(text: string) -&gt; (w, h: number) [in Lua]
+canvas:wGetVectorTextSize(text: string) -&gt; (w, h: number) (WC) [in Lua]</pre>
+ <p>Queries the string's bounding box. Ignores strings with multiple lines. It is
+ not necessary to provide all return pointers, you can provide only the desired
+ values and <font>NULL</font> for the others.</p>
+ <pre class="function"><span class="mainFunction">void <a name="cdGetVectorTextBounds">cdCanvasGetVectorTextBounds</a>(cdCanvas* canvas, char* text, int px, int py, int *rect); [in C]</span>
+void wdCanvasGetVectorTextBounds(cdCanvas* canvas, char* text, double x, double y, double *rect); (WC) [in C]
+
+canvas:GetVectorTextBounds(text: string, px,py: number) -&gt; (rect: table) [in Lua]
+canvas:wGetVectorTextBounds(text: string, px,py: number) -&gt; (rect: table) (WC) [in Lua] </pre>
+ <p>Returns the bounding rectangle of the text specified in the current vector
+ font, alignment and direction. Eight values are returned, corresponding to
+ pairs (x,y) of the rectangle's vertices ordered conter-clockwise, starting by
+ the bottom left corner.</p>
+ <h3>Character Codes</h3>
+ <p>The old GKS format contains ASCII codes so a convertion from ANSI to ASCII is
+ done when possible, unmapped characters are left unchanged, but some rearrage
+ was necessary to acomodate the convertion.
+ </p>
+ <p>The default vector font was changed from the original Simplex II to contain
+ all ANSI accented characters. So some ASCII characters were replaced.</p>
+ <p>Bellow is the character code table of the default font.</p>
+ <p style="TEXT-ALIGN: center">
+ <img src="../../img/vectorfont_default.png" width="717" height="977"><br>
+ <strong>Default Font</strong></p>
+ <p>The original Simplex II font is available in the file
+ "cd/etc/vectorfont00.txt". Bellow is the character code table of the original
+ font (the table displays the characters after the convertion from ANSI to
+ ASCII):</p>
+ <p style="TEXT-ALIGN: center">
+ <img src="../../img/vectorfont_simplex2.png" width="723" height="978"><br>
+ <strong>Original Simplex II</strong></p>
+ </body>
+</html> \ No newline at end of file
diff --git a/html/en/func/wd.html b/html/en/func/wd.html
new file mode 100644
index 0000000..9c83ec5
--- /dev/null
+++ b/html/en/func/wd.html
@@ -0,0 +1,80 @@
+<!doctype HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ <title>World Coordinates</title>
+ <meta http-equiv="Content-Language" content="en-us">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <link rel="stylesheet" type="text/css" href="../../style.css">
+ </head>
+ <body>
+ <h2 align="center">World Coordinates</h2>
+ <p>Allows the use of a World Coordinate System. In this system you can attribute
+ coordinates to any unit you want. After you define a window (rectangular
+ region) in your world, each given coordinate is then mapped to canvas
+ coordinates to draw the primitives. You can define a viewport in your canvas to
+ change the coordinate mapping from world to canvas. The image below shows the
+ relation between Window and Viewport.</p>
+ <p align="center"><font size="4">Window x Viewport</font><br>
+ <img src="../../img/wc-dc.gif" border="2" width="330" height="182"></p>
+ <p>If you want to map coordinates from one system to another, use the <font>wdWorld2Canvas</font>
+ e <font>wdCanvas2World</font> functions.
+ </p>
+ <p>The quality of the picture depends on the conversion from World to Canvas, so
+ if the canvas has a small size the picture quality will be poor. To increase
+ picture quality create a canvas with a larger size, if possible.</p>
+ <p>All World Coordinate drawing in all drivers are simulated using other CD
+ primitives.</p>
+ <hr>
+ <pre class="function"><span class="mainFunction">void <a name="wdWindow">wdCanvasWindow</a>(cdCanvas* canvas, double xmin, double xmax, double ymin, double ymax); [in C]</span>
+
+canvas:wWindow(xmin, xmax, ymin, ymax: number) [in Lua]</pre>
+ <p>Configures a window in the world coordinate system to be used to convert world
+ coordinates (with values in real numbers) into canvas coordinates (with values
+ in integers). The default window is the size in millimeters of the whole
+ canvas.</p>
+ <pre class="function"><span class="mainFunction">void <a name="wdGetWindow">wdCanvasGetWindow</a>(cdCanvas* canvas, double *xmin, double *xmax, double *ymin, double *ymax); [in C]</span>
+
+canvas:wGetWindow() -&gt; (xmin, xmax, ymin, ymax: number) [in Lua]</pre>
+ <p>Queries the current window in the world coordinate system being used to
+ convert world coordinates into canvas coordinates (and the other way round). It
+ is not necessary to provide all return pointers, you can provide only the
+ desired values.</p>
+ <pre class="function"><span class="mainFunction">void <a name="wdViewport">wdCanvasViewport</a>(cdCanvas* canvas, int xmin, int xmax, int ymin, int ymax); [in C]</span>
+
+canvas:wViewport(xmin, xmax, ymin, ymax: number) [in Lua]</pre>
+ <p>Configures a viewport in the canvas coordinate system to be used to convert
+ world coordinates (with values in real numbers) into canvas coordinates (with
+ values in integers). The default viewport is the whole canvas <font>(0,w-1,0,h-1)</font>.
+ If the canvas size is changed, the viewport will not be automatically updated.
+ </p>
+ <pre class="function"><span class="mainFunction">void <a name="wdGetViewport">wdCanvasGetViewport</a>(cdCanvas* canvas, int *xmin, int *xmax, int *ymin, int *ymax); [in C]</span>
+
+canvas:wGetViewport() -&gt; (xmin, xmax, ymin, ymax: number) [in Lua]</pre>
+ <p>Queries the current viewport in the world coordinate system being used to
+ convert world coordinates into canvas coordinates (and the other way round). It
+ is not necessary to provide all return pointers, you can provide only the
+ desired values and <font>NULL</font> for the others.</p>
+ <pre class="function"><span class="mainFunction">void <a name="wdWorld2Canvas">wdCanvasWorld2Canvas</a>(cdCanvas* canvas, double xw, double yw, int *xv, int *yv); [in C]</span>
+
+canvas:wWorld2Canvas(xw, yw: number) -&gt; (xv, yv: number) [in Lua]</pre>
+ <p>Converts world coordinates into canvas coordinates. It is not necessary to
+ provide all return pointers, you can provide only the desired values and <font>NULL</font>
+ for the others.</p>
+ <pre class="function"><span class="mainFunction">void <a name="wdCanvas2World">wdCanvasCanvas2World</a>(cdCanvas* canvas, int xv, int yv, double *xw, double *yw); [in C]</span>
+
+canvas:wCanvas2World(xv, yv: number) -&gt; (xw, yw: number) [in Lua]</pre>
+ <p>Converts canvas coordinates into world coordinates. It is not necessary to
+ provide all return pointers, you can provide only the desired values and <font>NULL</font>
+ for the others.</p>
+ <h3>Extra</h3>
+ <pre class="function"><span class="mainFunction">void <a name="wdHardcopy">wdCanvasHardcopy</a>(cdCanvas *canvas, cdContext* ctx, void *data, void(*draw_func)(cdCanvas *canvas_copy)); [in C]</span>
+
+canvas:wCanvasHardcopy(ctx: number, data: string or userdata, draw_func: function) [in Lua]</pre>
+ <p>Creates a new canvas, prepares Window and Viewport according to
+ the provided canvas, maintaining the aspect ratio and making the drawing occupy
+ the largest possible area of the new canvas, calls the drawing function (which
+ must use routines in WC) and, finally, removes the new canvas.</p>
+ <p>It is usually used for "hard copies" of drawings (print equivalent copy). The
+ most common used contexts are Printer, PS and PDF.</p>
+ </body>
+</html>