summaryrefslogtreecommitdiff
path: root/html/en/drv/xrender.html
diff options
context:
space:
mode:
Diffstat (limited to 'html/en/drv/xrender.html')
-rw-r--r--html/en/drv/xrender.html152
1 files changed, 152 insertions, 0 deletions
diff --git a/html/en/drv/xrender.html b/html/en/drv/xrender.html
new file mode 100644
index 0000000..6970e29
--- /dev/null
+++ b/html/en/drv/xrender.html
@@ -0,0 +1,152 @@
+<!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>X-Windows</title>
+<link rel="stylesheet" type="text/css" href="../../style.css">
+</head>
+
+<body>
+
+<h2>XRender Base Driver</h2>
+
+ <p>This driver represents a basic driver for all system-dependent drivers
+ implemented in the X-Windows system using the XRender extension. The implementation uses the
+ XRender and Xft API functions.</p>
+ <p>The main motivation for the use of XRender was transparency for all the primitives. Beyond that we got other features
+ like anti-aliasing, gradient filling and transformations.</p>
+ <p>This driver still does not completely replace the X-Windows base driver, because
+ XRender does not have support for
+ XOR and for line styles.</p>
+ <p>So we let the programmer to choose what to use. We created the function <font face="Courier"><strong>
+ cdUseContextPlus</strong></font> that allows to activate or to deactivate the use of
+ X-Render for the available X-Windows based drivers.
+ This function affects only the <font face="Courier"><strong>cdCreateCanvas</strong></font> function call, once created
+ the canvas will be always a XRender canvas. In fact the function affects primary the definitions
+ <font face="Courier"><strong>CD_NATIVEWINDOW</strong></font>,
+ <strong><span style="font-family: Courier">CD_IMAGE</span></strong> and <strong>
+ <span style="font-family: Courier">CD_DBUFFER</span></strong>, because they are
+ function calls and not static defines.</p>
+ <p>Using XRender it is allowed to create more that one canvas at the same time for the same Window. And they can co-exist
+ with a standard X-Windows canvas.</p>
+ <p>To enable the use of XRender based drivers you must call the initialization function <font face="Courier"><strong>
+ cdInitContextPlus()</strong></font> once and link to the libraries &quot;<strong>cdcontextplus</strong>&quot;, &quot;<strong>Xrender</strong>&quot and &quot;<strong>Xft</strong>&quot;.
+ Also the libraries &quot;<strong>Xrender</strong>&quot and &quot;<strong>Xft</strong>&quot;
+ must be installed in your system. The XRender extension must be available in
+ the X-Windows server for the driver to work.</p>
+<p>Currently, pre-compiled binaries are available for Linux, Darwin
+and FreeBSD54. It is not available for the systems we have with AIX, SunOS and
+IRIX.</p>
+ <p>In CDLua it is not necessary any additional initialization, but the
+ application must still be linked with the <strong>cdcontextplus.lib</strong>
+ library or a <strong>require&quot;cdluacontextplus&quot;</strong> can be used when
+ using dynamic libraries.</p>
+
+<h3>Behavior of Functions</h3>
+<h4>Control&nbsp; </h4>
+<ul>
+ <li><a href="../func/other.html#cdPlay">
+ <font face="Courier"><strong>Play</strong></font></a>: does nothing, returns
+ <font face="Courier">CD_ERROR</font>. </li>
+</ul>
+<h4>Coordinate System and Clipping </h4>
+<ul>
+ <li>
+ <a href="../func/coordinates.html#cdUpdateYAxis">
+ <font face="Courier"><strong>UpdateYAxis</strong></font></a>: the
+ orientation of axis Y is the opposite to its orientation in the CD library.
+ Except when using transformations.</li>
+</ul>
+<h4>Primitives</h4>
+<ul>
+ <li><font face="Courier"><a href="../func/lines.html#cdLine"><b>Line</b></a></font>:
+ simulated using the client's <strong>Poly</strong>.</li>
+ <li><a href="../func/text.html#cdText"><font face="Courier"><strong>Text</strong></font></a>:
+ Generic transformation
+ matrix affects only the position of the text. Complex clipping regions can not
+ contain text regions.</li>
+ <li><a href="../func/lines.html#cdBegin">
+ <font face="Courier"><strong>Begin</strong></font></a>: <strong><tt>
+ CD_BEZIER</tt></strong> is simulated with lines.</li>
+ <li><font face="Courier"><strong><a href="../func/lines.html#cdRect">Rect</a></strong></font>:
+ simulated using the client's <strong>Line</strong>.</li>
+ <li><font face="Courier"><a href="../func/lines.html#cdArc"><b>Arc</b></a></font>:
+ simulated using the client's <strong>Line</strong>. </li>
+ <li><font face="Courier"><a href="../func/filled.html#cdSector"><b>Sector</b></a></font>:
+ simulated using the client's <strong>Poly</strong>. </li>
+ <li><font face="Courier"><b><a href="../func/filled.html#cdChord">Chord</a></b></font>:
+ simulated using the client's <strong>Poly</strong></li>
+ <li><font face="Courier"><a href="../func/filled.html#cdBox"><b>Box</b></a></font>:
+ simulated using the client's <strong>Poly</strong>. </li>
+</ul>
+<h4>Attributes </h4>
+<ul>
+ <li>
+ <a href="../func/lines.html#cdLineWidth">
+ <font face="Courier"><strong>LineWidth</strong></font></a>: the driver will
+ use a polygon that fits to the line extents, even when linewidth==1.</li>
+ <li>
+ <a href="../func/lines.html#cdLineStyle">
+ <font face="Courier"><strong>LineStyle</strong></font></a>: NOT supported.</li>
+ <li><a href="../func/filled.html#cdPattern"><font face="Courier"><strong>
+ Pattern</strong></font></a>: each pixel can contain transparency information.</li>
+ <li>
+ <a href="../func/text.html#cdNativeFont">
+ <font face="Courier"><strong>NativeFont</strong></font></a>: also accepts the
+ X-Windows font string format. You can use program <strong>xfontsel</strong> to select a font and obtain the string.
+ For ex: &quot;-*-times-bold-r-*-*-24-*-*-*-*-*-*-*&quot; (equivalent of <strong>Font</strong>(&quot;Times&quot;,
+ CD_BOLD, -24).</li>
+ <li><a href="../func/text.html#cdFont">
+ <font face="Courier"><strong>Font</strong></font></a>: font support is
+ implemented using the Xft library. Internally the Xft library uses the
+ Freetype library.</li>
+</ul>
+<h4>Colors </h4>
+<ul>
+ <li>
+ Use the X-Windows base driver support for colors.</li>
+</ul>
+<h4>Client and Server Images</h4>
+<ul>
+ <li>
+ All functions use the X-Windows base driver functions.</li>
+</ul>
+<h4>Exclusive Attributes</h4>
+<ul>
+ <li>&quot;<b><font face="Courier">GC</font></b>&quot;:&nbsp; returns the X11 graphics
+ context (get only). In Lua is returned as a user data.</li>
+</ul>
+
+<ul>
+ <li>&quot;<b><font face="Courier">ROTATE</font></b>&quot;:&nbsp; allows the usage of 1
+ angle and 1 coordinate (x, y), that define a global rotation transformation
+ centered in the specified coordinate. Use 1 real and 2 integer values inside a
+ string (&quot;%g %d %d&quot; = angle x y). In this driver will change the
+ current transformation matrix, if removed will reset the current
+ transformation matrix.</li>
+</ul>
+
+<ul>
+ <li>&quot;<b><font face="Courier">ANTIALIAS</font></b>&quot;: controls the use of anti-aliasing
+ for the text, image zoom and line
+ drawing primitives. Assumes values &quot;1&quot; (active) and &quot;0&quot; (inactive). Default value: &quot;1&quot;. </li>
+</ul>
+
+<ul>
+ <li><b><font face="Courier">&quot;LINEGRADIENT&quot;: </font></b>defines a filled interior style that uses a line gradient
+ between two colors. It uses 2 points (&quot;%d %d %d %d&quot; = x1 y1 x2 y2), one for the starting point using (using the
+ foreground color), and another one for the end point (using the background color).
+ (available only if Xrender version &gt;= 0.10)</li>
+</ul>
+
+<ul>
+ <li><b><font face="Courier">&quot;XRENDERVERSION&quot;: </font></b>returns a
+ string with the XRender version number. It is empty if the XRender extension
+ is not available in the X-Windows server.</li>
+</ul>
+
+</body>
+
+</html>