openmv/src/drivers/dave2d/docs/files/code/dave_render-c.html
2024-07-31 21:01:48 +03:00

82 lines
86 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Rendering Functions</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
<!-- Generated by Natural Docs, version 1.52 -->
<!-- http://www.naturaldocs.org -->
<!-- saved from url=(0026)http://www.naturaldocs.org -->
<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Rendering_Functions"></a>Rendering Functions</h1><div class=CBody><p>There is a rendering function for each supported geometric shape.</p><p>Rendering functions are the only functions that cause entries into the <a href="dave_rbuffer-c.html#Render_Buffers" class=LSection id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">Render Buffers</a>.&nbsp; Material and mode changes translate into hardware register access only when something is actually rendered.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Rendering_Functions" >Rendering Functions</a></td><td class=SDescription>There is a rendering function for each supported geometric shape.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Direct_Rendering" >Direct Rendering</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#d2_clear" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">d2_clear</a></td><td class=SDescription>Render fill the entire framebuffer with a single color.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#d2_renderbox" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">d2_renderbox</a></td><td class=SDescription>Render a rectangle.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#d2_renderline" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">d2_renderline</a></td><td class=SDescription>Render a wide line.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#d2_renderline2" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">d2_renderline2</a></td><td class=SDescription>Render a wide line with 2 different widths.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#d2_rendertri" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">d2_rendertri</a></td><td class=SDescription>Render a triangle.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#d2_renderquad" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">d2_renderquad</a></td><td class=SDescription>Render a quadrangle.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#d2_rendercircle" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">d2_rendercircle</a></td><td class=SDescription>Render a circle or circle ring.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#d2_renderwedge" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">d2_renderwedge</a></td><td class=SDescription>Render a circle arc or circle ring arc.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Buffer_Rendering" >Buffer Rendering</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#d2_renderpolyline" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">d2_renderpolyline</a></td><td class=SDescription>Render a polyline</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#d2_renderpolyline2" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">d2_renderpolyline2</a></td><td class=SDescription>Render a polyline with multiple width</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#d2_rendertrilist" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">d2_rendertrilist</a></td><td class=SDescription>Render a polygon from a triangle list.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#d2_rendertristrip" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">d2_rendertristrip</a></td><td class=SDescription>Render a polygon from a triangle strip.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#d2_rendertrifan" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">d2_rendertrifan</a></td><td class=SDescription>Render a polygon from a triangle fan</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#d2_renderpolygon" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">d2_renderpolygon</a></td><td class=SDescription>Render a convex polygon</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Direct_Rendering"></a>Direct Rendering</h3></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_clear"></a>d2_clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_clear(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_color&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>color</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render fill the entire framebuffer with a single color.</p><p>The current cliprect is used to determine framebuffer dimensions.&nbsp; Clearing is the only function that bypasses the current solid context and renders plain color - regardless of blendmodes, fillmodes and other attributes.</p><p>Because clearing does bypass the context material settings it is the only function that includes both alpha and color in the 32bit &lsquo;color&rsquo; argument.&nbsp; The most significant byte is used to fill the framebuffer alpha channel if one is present.</p><p>To clear using all context attributes simply use <a href="#d2_renderbox" class=LFunction id=link16 onMouseOver="ShowTip(event, 'tt2', 'link16')" onMouseOut="HideTip('tt2')">d2_renderbox</a>.</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link17 onMouseOver="ShowTip(event, 'tt16', 'link17')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>color</td><td class=CDLDescription>fill color and alpha</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successfull) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link18 onMouseOver="ShowTip(event, 'tt17', 'link18')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_renderbox"></a>d2_renderbox</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderbox(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>h</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render a rectangle.</p><p>Nothing is rendered if width or height are 0.&nbsp; Subpixel positions and fractional sizes are supported.</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link19 onMouseOver="ShowTip(event, 'tt16', 'link19')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>x1,y1</td><td class=CDLDescription>top left corner (fixedpoint)</td></tr><tr><td class=CDLEntry>w</td><td class=CDLDescription>width of rectangle in pixels (fixedpoint)</td></tr><tr><td class=CDLEntry>h</td><td class=CDLDescription>height of rectangle in pixels (fixedpoint)</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successfull) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link20 onMouseOver="ShowTip(event, 'tt17', 'link20')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_renderline"></a>d2_renderline</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderline(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render a wide line.</p><p>Subpixel positions and fractional widths are supported.</p><p>To modify the lineend styles use <a href="dave_context-c.html#d2_setlinecap" class=LFunction id=link21 onMouseOver="ShowTip(event, 'tt18', 'link21')" onMouseOut="HideTip('tt18')">d2_setlinecap</a>, but note that only included endpoints will get a cap.&nbsp; So if d2_lf_exclude_end is specified and linecap is set to round - the endpoint will not get rounded.</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link22 onMouseOver="ShowTip(event, 'tt16', 'link22')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>x1,y1</td><td class=CDLDescription>startpoint (fixedpoint)</td></tr><tr><td class=CDLEntry>x2,y2</td><td class=CDLDescription>endpoint (fixedpoint)</td></tr><tr><td class=CDLEntry>w</td><td class=CDLDescription>width of line in pixels (fixedpoint)</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>additional lineend flags</td></tr></table><h4 class=CHeading>lineend flags</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>d2_le_exclude_start</td><td class=CDLDescription>startpoint is not part of the line</td></tr><tr><td class=CDLEntry>d2_le_exclude_end</td><td class=CDLDescription>endpoint is not part of the line</td></tr><tr><td class=CDLEntry>d2_le_exclude_none</td><td class=CDLDescription>start and endpoint are part of the line</td></tr><tr><td class=CDLEntry>d2_le_exclude_both</td><td class=CDLDescription>start and endpoint are not part of the line</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successfull) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link23 onMouseOver="ShowTip(event, 'tt17', 'link23')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p><h4 class=CHeading>see also</h4><p><a href="#d2_renderline2" class=LFunction id=link24 onMouseOver="ShowTip(event, 'tt4', 'link24')" onMouseOut="HideTip('tt4')">d2_renderline2</a>, <a href="dave_context-c.html#d2_setlinecap" class=LFunction id=link25 onMouseOver="ShowTip(event, 'tt18', 'link25')" onMouseOut="HideTip('tt18')">d2_setlinecap</a></p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_renderline2"></a>d2_renderline2</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderline2(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render a wide line with 2 different widths.</p><p>Line can have two different width at start and endpoint, forming a trapezoid.&nbsp; If both widths are equal it is faster to use <a href="#d2_renderline" class=LFunction id=link26 onMouseOver="ShowTip(event, 'tt3', 'link26')" onMouseOut="HideTip('tt3')">d2_renderline</a> instead.&nbsp; Subpixel positions and fractional widths are supported.</p><p>To modify the lineend styles use <a href="dave_context-c.html#d2_setlinecap" class=LFunction id=link27 onMouseOver="ShowTip(event, 'tt18', 'link27')" onMouseOut="HideTip('tt18')">d2_setlinecap</a>, but note that only included endpoints will get a cap.&nbsp; So if d2_lf_exclude_end is specified and linecap is set to round - the endpoint will not get rounded.</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link28 onMouseOver="ShowTip(event, 'tt16', 'link28')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>x1,y1</td><td class=CDLDescription>startpoint (fixedpoint)</td></tr><tr><td class=CDLEntry>x2,y2</td><td class=CDLDescription>endpoint (fixedpoint)</td></tr><tr><td class=CDLEntry>w1</td><td class=CDLDescription>width of line in pixels at startpoint (fixedpoint)</td></tr><tr><td class=CDLEntry>w2</td><td class=CDLDescription>width of line in pixels at endpoint (fixedpoint)</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>additional lineend flags</td></tr></table><h4 class=CHeading>lineend flags</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>d2_le_exclude_start</td><td class=CDLDescription>startpoint is not part of the line</td></tr><tr><td class=CDLEntry>d2_le_exclude_end</td><td class=CDLDescription>endpoint is not part of the line</td></tr><tr><td class=CDLEntry>d2_le_exclude_none</td><td class=CDLDescription>start and endpoint are part of the line</td></tr><tr><td class=CDLEntry>d2_le_exclude_both</td><td class=CDLDescription>start and endpoint are not part of the line</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successfull) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link29 onMouseOver="ShowTip(event, 'tt17', 'link29')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p><h4 class=CHeading>see also</h4><p><a href="#d2_renderline" class=LFunction id=link30 onMouseOver="ShowTip(event, 'tt3', 'link30')" onMouseOut="HideTip('tt3')">d2_renderline</a>, <a href="dave_context-c.html#d2_setlinecap" class=LFunction id=link31 onMouseOver="ShowTip(event, 'tt18', 'link31')" onMouseOut="HideTip('tt18')">d2_setlinecap</a></p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_rendertri"></a>d2_rendertri</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_rendertri(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x3,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y3,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render a triangle.</p><p>Triangles must be specified with clockwise orientation.&nbsp; Subpixel positions are supported.&nbsp; In order to get correct antialiasing and outlines shared edges must be specified using edge flags.</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link32 onMouseOver="ShowTip(event, 'tt16', 'link32')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>x1,y1</td><td class=CDLDescription>first point (fixedpoint)</td></tr><tr><td class=CDLEntry>x2,y2</td><td class=CDLDescription>second point (fixedpoint)</td></tr><tr><td class=CDLEntry>x3,y3</td><td class=CDLDescription>third point (fixedpoint)</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>triangle edge flags</td></tr></table><h4 class=CHeading>triangle edge flags</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>d2_edge0_shared</td><td class=CDLDescription>edge from (x1,y1) - (x2,y2) is shared</td></tr><tr><td class=CDLEntry>d2_edge1_shared</td><td class=CDLDescription>edge from (x2,y2) - (x3,y3) is shared</td></tr><tr><td class=CDLEntry>d2_edge2_shared</td><td class=CDLDescription>edge from (x3,y3) - (x1,y1) is shared</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successfull) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link33 onMouseOver="ShowTip(event, 'tt17', 'link33')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_renderquad"></a>d2_renderquad</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderquad(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x3,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y3,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x4,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y4,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render a quadrangle.</p><p>A quadrangle is a convex four-sided polygon (quadrilateral is the precise mathematical term).&nbsp; Quadrangles must be specified with clockwise orientation.&nbsp; Subpixel positions are supported.&nbsp; In order to get correct antialiasing and outlines shared edges must be specified using edge flags.</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link34 onMouseOver="ShowTip(event, 'tt16', 'link34')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>x1,y1</td><td class=CDLDescription>first point (fixedpoint)</td></tr><tr><td class=CDLEntry>x2,y2</td><td class=CDLDescription>second point (fixedpoint)</td></tr><tr><td class=CDLEntry>x3,y3</td><td class=CDLDescription>third point (fixedpoint)</td></tr><tr><td class=CDLEntry>x4,y4</td><td class=CDLDescription>fourth point (fixedpoint)</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>quadrangle edge flags</td></tr></table><h4 class=CHeading>triangle edge flags</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>d2_edge0_shared</td><td class=CDLDescription>edge from (x1,y1) - (x2,y2) is shared</td></tr><tr><td class=CDLEntry>d2_edge1_shared</td><td class=CDLDescription>edge from (x2,y2) - (x3,y3) is shared</td></tr><tr><td class=CDLEntry>d2_edge2_shared</td><td class=CDLDescription>edge from (x3,y3) - (x4,y4) is shared</td></tr><tr><td class=CDLEntry>d2_edge3_shared</td><td class=CDLDescription>edge from (x4,y4) - (x1,y1) is shared</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successfull) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link35 onMouseOver="ShowTip(event, 'tt17', 'link35')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_rendercircle"></a>d2_rendercircle</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_rendercircle(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>r,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render a circle or circle ring.</p><p>Circles are directly rasterized and not reduced to linear parts by the hardware.&nbsp; Subpixel positions, radii and widths are supported.&nbsp; Nonantialiased circle rings with a fractional width below 1 pixel will have drop outs (missing pixels).</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link36 onMouseOver="ShowTip(event, 'tt16', 'link36')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>x,y</td><td class=CDLDescription>center (fixedpoint)</td></tr><tr><td class=CDLEntry>r</td><td class=CDLDescription>radius (fixedpoint)</td></tr><tr><td class=CDLEntry>w</td><td class=CDLDescription>width or 0 for a solid circle (fixedpoint)</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successfull) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link37 onMouseOver="ShowTip(event, 'tt17', 'link37')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_renderwedge"></a>d2_renderwedge</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderwedge(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>r,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_s32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>nx1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_s32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>ny1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_s32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>nx2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_s32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>ny2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render a circle arc or circle ring arc.</p><p>Same as <a href="#d2_rendercircle" class=LFunction id=link38 onMouseOver="ShowTip(event, 'tt7', 'link38')" onMouseOut="HideTip('tt7')">d2_rendercircle</a> but clipped by two additional linear boundaries, resulting in an arc.&nbsp; As default the two half planes form an intersected area for the clipping region.&nbsp; For angles &gt; 180 deg the flag d2_wf_concave must be used.&nbsp; When the flag d2_wf_concave is set the two half planes form a united, concave area.&nbsp; In order to get correct antialiasing and outlines shared edges must be specified using edge flags (only linear edges can be shared).</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link39 onMouseOver="ShowTip(event, 'tt16', 'link39')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>x,y</td><td class=CDLDescription>center (fixedpoint)</td></tr><tr><td class=CDLEntry>r</td><td class=CDLDescription>radius (fixedpoint)</td></tr><tr><td class=CDLEntry>w</td><td class=CDLDescription>width or 0 for a solid circle (fixedpoint)</td></tr><tr><td class=CDLEntry>nx1, ny1</td><td class=CDLDescription>normal vector of first edge (16:16 fixedpoint)</td></tr><tr><td class=CDLEntry>nx2, ny2</td><td class=CDLDescription>normal vector of second edge (16:16 fixedpoint)</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>edge sharing and concave flags</td></tr></table><h4 class=CHeading>circle wedge flags</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>d2_edge0_shared</td><td class=CDLDescription>first edge is shared</td></tr><tr><td class=CDLEntry>d2_edge1_shared</td><td class=CDLDescription>second edge is shared</td></tr><tr><td class=CDLEntry>d2_wf_concave</td><td class=CDLDescription>defines that the clipping region forms a united area for angles &gt; 180 deg</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successful) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link40 onMouseOver="ShowTip(event, 'tt17', 'link40')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p><h4 class=CHeading>note</h4><p>d2_renderwedge internally calls <a href="dave_context-c.html#d2_setclipgradient" class=LFunction id=link41 onMouseOver="ShowTip(event, 'tt19', 'link41')" onMouseOut="HideTip('tt19')">d2_setclipgradient</a> for drawing wedges and will overwrite the clip gradient settings!</p><h4 class=CHeading>remarks</h4><p>The figure below shows four examples of different wedges and the corresponding normal vectors (n1, n2).&nbsp; In order to get correct antialiasing all vectors must be normalized to a length of one.</p><img src="../doc/images/wedge.png" width="421" height="170"><h4 class=CHeading>example</h4><blockquote><pre class="prettyprint">...
d2_setcolor(handle, 0, 0x0000ff);
d2_renderwedge(handle, 100&lt;&lt;4, 100&lt;&lt;4, 50&lt;&lt;4, 0, 1&lt;&lt;16, 0&lt;&lt;16, -46340, -46340, 0);
d2_renderwedge(handle, 200&lt;&lt;4, 100&lt;&lt;4, 50&lt;&lt;4, 0, 1&lt;&lt;16, 0&lt;&lt;16, 0&lt;&lt;16, -1&lt;&lt;16, 0);
d2_renderwedge(handle, 300&lt;&lt;4, 100&lt;&lt;4, 50&lt;&lt;4, 0, 1&lt;&lt;16, 0&lt;&lt;16, 46340, -46340, 0);
d2_renderwedge(handle, 400&lt;&lt;4, 100&lt;&lt;4, 50&lt;&lt;4, 0, 1&lt;&lt;16, 0&lt;&lt;16, 1&lt;&lt;16, 0&lt;&lt;16, 0);
...</pre></blockquote><h4 class=CHeading>remarks</h4><p>The figure below shows the same examples but with d2_wf_concave set.</p><img src="../doc/images/wedgeconcave.png" width="421" height="170"><h4 class=CHeading>example</h4><blockquote><pre class="prettyprint">...
d2_setcolor(handle, 0, 0x0000ff);
d2_renderwedge(handle, 100&lt;&lt;4, 100&lt;&lt;4, 50&lt;&lt;4, 0, 1&lt;&lt;16, 0&lt;&lt;16, -46340, -46340, d2_wf_concave);
d2_renderwedge(handle, 200&lt;&lt;4, 100&lt;&lt;4, 50&lt;&lt;4, 0, 1&lt;&lt;16, 0&lt;&lt;16, 0&lt;&lt;16, -1&lt;&lt;16, d2_wf_concave);
d2_renderwedge(handle, 300&lt;&lt;4, 100&lt;&lt;4, 50&lt;&lt;4, 0, 1&lt;&lt;16, 0&lt;&lt;16, 46340, -46340, d2_wf_concave);
d2_renderwedge(handle, 400&lt;&lt;4, 100&lt;&lt;4, 50&lt;&lt;4, 0, 1&lt;&lt;16, 0&lt;&lt;16, 1&lt;&lt;16, 0&lt;&lt;16, d2_wf_concave);
...</pre></blockquote></div></div></div>
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Buffer_Rendering"></a>Buffer Rendering</h3></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_renderpolyline"></a>d2_renderpolyline</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderpolyline(</td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>count,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render a polyline</p><p>Line segments inside the polyline are connected as defined by <a href="dave_context-c.html#d2_setlinejoin" class=LFunction id=link42 onMouseOver="ShowTip(event, 'tt20', 'link42')" onMouseOut="HideTip('tt20')">d2_setlinejoin</a> and endpoints of the polyline are using the current linecap style set by <a href="dave_context-c.html#d2_setlinecap" class=LFunction id=link43 onMouseOver="ShowTip(event, 'tt18', 'link43')" onMouseOut="HideTip('tt18')">d2_setlinecap</a>.&nbsp; If the line is closed (d2_le_closed) it has no endpoints and therefore no linecaps.</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link44 onMouseOver="ShowTip(event, 'tt16', 'link44')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>data</td><td class=CDLDescription>pointer to an array of 2*&rsquo;count&rsquo; d2_point values (&lsquo;count&rsquo; x,y pairs)</td></tr><tr><td class=CDLEntry>count</td><td class=CDLDescription>number of vertices</td></tr><tr><td class=CDLEntry>w</td><td class=CDLDescription>width of polyline</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>additional lineend flags</td></tr></table><h4 class=CHeading>lineend flags</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>d2_le_exclude_start</td><td class=CDLDescription>first point is not part of the polyline</td></tr><tr><td class=CDLEntry>d2_le_exclude_end</td><td class=CDLDescription>last point is not part of the polyline</td></tr><tr><td class=CDLEntry>d2_le_closed</td><td class=CDLDescription>polyline has no start or endpoint, last vertex is connected back to first</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successfull) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link45 onMouseOver="ShowTip(event, 'tt17', 'link45')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p><h4 class=CHeading>see also</h4><p><a href="dave_context-c.html#d2_setlinecap" class=LFunction id=link46 onMouseOver="ShowTip(event, 'tt18', 'link46')" onMouseOut="HideTip('tt18')">d2_setlinecap</a>, <a href="dave_context-c.html#d2_setlinejoin" class=LFunction id=link47 onMouseOver="ShowTip(event, 'tt20', 'link47')" onMouseOut="HideTip('tt20')">d2_setlinejoin</a></p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_renderpolyline2"></a>d2_renderpolyline2</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderpolyline2(</td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>count,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render a polyline with multiple width</p><p>Similar to <a href="#d2_renderpolyline" class=LFunction id=link48 onMouseOver="ShowTip(event, 'tt9', 'link48')" onMouseOut="HideTip('tt9')">d2_renderpolyline</a> but a width can be supplied for each vertex.&nbsp; Line segments inside the polyline are connected by round line joins and endpoints of the polyline are using the current linecap style set by <a href="dave_context-c.html#d2_setlinecap" class=LFunction id=link49 onMouseOver="ShowTip(event, 'tt18', 'link49')" onMouseOut="HideTip('tt18')">d2_setlinecap</a>.&nbsp; If the line is closed (d2_le_closed) it has no endpoints and therefore no linecaps.</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link50 onMouseOver="ShowTip(event, 'tt16', 'link50')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>data</td><td class=CDLDescription>pointer to an array of 2*&rsquo;count&rsquo; d2_point values (&lsquo;count&rsquo; x,y pairs)</td></tr><tr><td class=CDLEntry>count</td><td class=CDLDescription>number of vertices</td></tr><tr><td class=CDLEntry>w</td><td class=CDLDescription>pointer width to an array of &lsquo;count&rsquo; d2_width values (width for each vertex)</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>additional lineend flags</td></tr></table><h4 class=CHeading>lineend flags</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>d2_le_exclude_start</td><td class=CDLDescription>first point is not part of the polyline</td></tr><tr><td class=CDLEntry>d2_le_exclude_end</td><td class=CDLDescription>last point is not part of the polyline</td></tr><tr><td class=CDLEntry>d2_le_closed</td><td class=CDLDescription>polyline has no start or endpoint, last vertex is connected back to first</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successfull) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link51 onMouseOver="ShowTip(event, 'tt17', 'link51')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p><h4 class=CHeading>see also</h4><p><a href="dave_context-c.html#d2_setlinecap" class=LFunction id=link52 onMouseOver="ShowTip(event, 'tt18', 'link52')" onMouseOut="HideTip('tt18')">d2_setlinecap</a>, <a href="dave_context-c.html#d2_setlinejoin" class=LFunction id=link53 onMouseOver="ShowTip(event, 'tt20', 'link53')" onMouseOut="HideTip('tt20')">d2_setlinejoin</a>, <a href="#d2_renderpolyline" class=LFunction id=link54 onMouseOver="ShowTip(event, 'tt9', 'link54')" onMouseOut="HideTip('tt9')">d2_renderpolyline</a></p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_rendertrilist"></a>d2_rendertrilist</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_rendertrilist(</td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>flags,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>count</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render a polygon from a triangle list.</p><p>Each triangle must be defined in clockwise order.&nbsp; In order to get correct antialiasing and outlines, shared edges must be specified using edge flags (see: <a href="#d2_rendertri" class=LFunction id=link55 onMouseOver="ShowTip(event, 'tt5', 'link55')" onMouseOut="HideTip('tt5')">d2_rendertri</a> for flag definition).&nbsp; There is one flagbyte per triangle.&nbsp; If no sharing is required (e.g. no antialiasing) you can pass NULL for the &lsquo;flags&rsquo; pointer.</p><img src="../doc/images/trilist.gif" width="148" height="121"><p>For each triangle 3 vertices are specified in the data array.</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link56 onMouseOver="ShowTip(event, 'tt16', 'link56')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>data</td><td class=CDLDescription>pointer to an array of 6*count d2_point values (3*count x,y pairs)</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>pointer to an array to count bytes containing edgesharing flags or NULL.&nbsp; If NULL is passed it is assumed that no edges are shared.</td></tr><tr><td class=CDLEntry>count</td><td class=CDLDescription>number of triangles</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successfull) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link57 onMouseOver="ShowTip(event, 'tt17', 'link57')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p><h4 class=CHeading>see also</h4><p><a href="#d2_rendertri" class=LFunction id=link58 onMouseOver="ShowTip(event, 'tt5', 'link58')" onMouseOut="HideTip('tt5')">d2_rendertri</a>, <a href="#d2_rendertrifan" class=LFunction id=link59 onMouseOver="ShowTip(event, 'tt13', 'link59')" onMouseOut="HideTip('tt13')">d2_rendertrifan</a>, <a href="#d2_rendertristrip" class=LFunction id=link60 onMouseOver="ShowTip(event, 'tt12', 'link60')" onMouseOut="HideTip('tt12')">d2_rendertristrip</a></p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_rendertristrip"></a>d2_rendertristrip</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_rendertristrip(</td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>flags,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>count</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render a polygon from a triangle strip.</p><p>When rendering connected structures using a set of triangles a triangle strip can be used instead of a triangle list (<a href="#d2_rendertrilist" class=LFunction id=link61 onMouseOver="ShowTip(event, 'tt11', 'link61')" onMouseOut="HideTip('tt11')">d2_rendertrilist</a>).&nbsp; The advantage is that for every triangle except the first one only one additional vertex has to be specified.&nbsp; The other two vertices are reused from the previous triangle.&nbsp; See diagram for explanation:</p><img src="../doc/images/tristrip.gif" width="148" height="121"><p>Triangles rendered from the order given above are :</p><ul><li>1,2,3</li><li>2,4,3</li><li>3,4,5</li><li>4,6,5</li></ul><p>Note that every second triangle is flipped automatically in order to keep them all in clockwise orientation.&nbsp; Internal edges are automatically flagged as shared but you can still specify a flag for each triangle in order to define additional shared edges.&nbsp; There is one flagbyte per triangle.&nbsp; If no additional sharing information is required you can pass NULL for the &lsquo;flags&rsquo; pointer.</p><p>The first triangle must be defined in clockwise order (others will then be clockwise as well).</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link62 onMouseOver="ShowTip(event, 'tt16', 'link62')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>data</td><td class=CDLDescription>pointer to an array of 2*count+4 d2_point values (count+2 x,y pairs)</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>pointer to an array to count bytes containing edgesharing flags or NULL</td></tr><tr><td class=CDLEntry>count</td><td class=CDLDescription>number of triangles</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successfull) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link63 onMouseOver="ShowTip(event, 'tt17', 'link63')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p><h4 class=CHeading>see also</h4><p><a href="#d2_rendertri" class=LFunction id=link64 onMouseOver="ShowTip(event, 'tt5', 'link64')" onMouseOut="HideTip('tt5')">d2_rendertri</a>, <a href="#d2_rendertrifan" class=LFunction id=link65 onMouseOver="ShowTip(event, 'tt13', 'link65')" onMouseOut="HideTip('tt13')">d2_rendertrifan</a>, <a href="#d2_rendertrilist" class=LFunction id=link66 onMouseOver="ShowTip(event, 'tt11', 'link66')" onMouseOut="HideTip('tt11')">d2_rendertrilist</a></p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_rendertrifan"></a>d2_rendertrifan</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_rendertrifan(</td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>flags,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>count</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render a polygon from a triangle fan</p><p>When rendering connected structures where all triangles share a common vertex a triangle fan can be used instead of a triangle list (<a href="#d2_rendertrilist" class=LFunction id=link67 onMouseOver="ShowTip(event, 'tt11', 'link67')" onMouseOut="HideTip('tt11')">d2_rendertrilist</a>).&nbsp; The advantage is that for every triangle except the first one only one additional vertex has to be specified.&nbsp; The other two vertices are reused from the previous triangle and the common base vertex.&nbsp; See diagram for explanation:</p><img src="../doc/images/trifan.gif" width="148" height="121"><p>Triangles rendered from the order given above are :</p><ul><li>1,2,3</li><li>1,3,4</li><li>1,4,5</li></ul><p>Internal edges are automatically flagged as shared but you can still specify a flag for each triangle in order to define additional shared edges.&nbsp; There is one flagbyte per triangle.&nbsp; If no additional sharing information is required you can pass NULL for the &lsquo;flags&rsquo; pointer.</p><p>The first triangle must be defined in clockwise order (others will then be clockwise as well).</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link68 onMouseOver="ShowTip(event, 'tt16', 'link68')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>data</td><td class=CDLDescription>pointer to an array of 2*count+4 d2_point values (count+2 x,y pairs)</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>pointer to an array to count bytes containing edgesharing flags or NULL</td></tr><tr><td class=CDLEntry>count</td><td class=CDLDescription>number of triangles</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successfull) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link69 onMouseOver="ShowTip(event, 'tt17', 'link69')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p><h4 class=CHeading>see also</h4><p><a href="#d2_rendertri" class=LFunction id=link70 onMouseOver="ShowTip(event, 'tt5', 'link70')" onMouseOut="HideTip('tt5')">d2_rendertri</a>, <a href="#d2_rendertrilist" class=LFunction id=link71 onMouseOver="ShowTip(event, 'tt11', 'link71')" onMouseOut="HideTip('tt11')">d2_rendertrilist</a>, <a href="#d2_rendertristrip" class=LFunction id=link72 onMouseOver="ShowTip(event, 'tt12', 'link72')" onMouseOut="HideTip('tt12')">d2_rendertristrip</a></p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="d2_renderpolygon"></a>d2_renderpolygon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderpolygon(</td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>count,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Render a convex polygon</p><p>All vertices have to be in clockwise order.&nbsp; If seperation into monoton subregions is required, internal edges will be flagged as &lsquo;shared&rsquo; automatically.&nbsp; Outer edges are always nonshared for now.</p><h4 class=CHeading>parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>handle</td><td class=CDLDescription>device pointer (see: <a href="dave_driver-c.html#d2_opendevice" class=LFunction id=link73 onMouseOver="ShowTip(event, 'tt16', 'link73')" onMouseOut="HideTip('tt16')">d2_opendevice</a>)</td></tr><tr><td class=CDLEntry>data</td><td class=CDLDescription>pointer to an array of d2_point values (count x,y pairs)</td></tr><tr><td class=CDLEntry>count</td><td class=CDLDescription>number of points</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>reserved (should be NULL)</td></tr></table><h4 class=CHeading>returns</h4><p>errorcode (D2_OK if successfull) see list of <a href="../inc/dave_errorcodes-h.html#Errorcodes" class=LSection id=link74 onMouseOver="ShowTip(event, 'tt17', 'link74')" onMouseOut="HideTip('tt17')">Errorcodes</a> for details</p></div></div></div>
</div><!--Content-->
<div id=Footer>&copy; 2016 by TES Electronic Solutions&nbsp; &middot;&nbsp; <a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
<div id=Menu><div class=MEntry><div class=MFile><a href="../doc/overview-txt.html">Driver Overview</a></div></div><div class=MEntry><div class=MFile><a href="../doc/limitations-txt.html">Limitations</a></div></div><div class=MEntry><div class=MFile><a href="../inc/dave_driver-h.html">Basic Types</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">API</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="dave_driver-c.html">Basic Functions</a></div></div><div class=MEntry><div class=MFile><a href="dave_viewport-c.html">Viewport Functions</a></div></div><div class=MEntry><div class=MFile><a href="dave_context-c.html">Context Functions</a></div></div><div class=MEntry><div class=MFile><a href="dave_texture-c.html">Texture Functions</a></div></div><div class=MEntry><div class=MFile id=MSelected>Rendering Functions</div></div><div class=MEntry><div class=MFile><a href="dave_blit-c.html">Blit Functions</a></div></div><div class=MEntry><div class=MFile><a href="dave_rbuffer-c.html">Render Buffers</a></div></div><div class=MEntry><div class=MFile><a href="dave_perfcount-c.html">Profiling</a></div></div><div class=MEntry><div class=MFile><a href="dave_utility-c.html">Utility Functions</a></div></div><div class=MEntry><div class=MFile><a href="dave_64bitoperation-c.html">Functions for 64bit operations</a></div></div><div class=MEntry><div class=MFile><a href="dave_dlist-c.html">Dlist Functions</a></div></div><div class=MEntry><div class=MFile><a href="../inc/dave_math-h.html">Math Functions</a></div></div><div class=MEntry><div class=MFile><a href="../inc/dave_errorcodes-h.html">Errorcodes</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Index</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Types.html">Types</a></div></div></div></div></div><script type="text/javascript"><!--
var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option id=MSearchEverything selected value="General">Everything</option><option value="Functions">Functions</option><option value="Types">Types</option></select></div></div><!--Menu-->
<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_clear(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_color&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>color</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render fill the entire framebuffer with a single color.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderbox(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>h</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render a rectangle.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderline(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render a wide line.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderline2(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render a wide line with 2 different widths.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_rendertri(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x3,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y3,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render a triangle.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderquad(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x3,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y3,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x4,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y4,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render a quadrangle.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_rendercircle(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>r,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render a circle or circle ring.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderwedge(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>r,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_s32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>nx1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_s32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>ny1,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_s32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>nx2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_s32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>ny2,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render a circle arc or circle ring arc.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderpolyline(</td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>count,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render a polyline</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderpolyline2(</td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>count,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_width&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render a polyline with multiple width</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_rendertrilist(</td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>flags,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>count</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render a polygon from a triangle list.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_rendertristrip(</td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>flags,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>count</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render a polygon from a triangle strip.</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_rendertrifan(</td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>flags,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>count</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render a polygon from a triangle fan</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_renderpolygon(</td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>const&nbsp;</td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>data,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>count,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Render a convex polygon</div></div><div class=CToolTip id="tt15"><div class=CSection>Renderbuffers (similar in concept to OpenGL display lists) are the main interface between driver and hardware.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_device * d2_opendevice(</td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Create a new device handle.</div></div><div class=CToolTip id="tt17"><div class=CSection>List of all dave driver errorcodes.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_setlinecap(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>mode</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Specify lineend style.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_setclipgradient(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_s32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>index,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_point&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>y,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_s32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>nx,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_s32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>ny,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>flags</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Define an alpha gradient for clipping.</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>d2_s32 d2_setlinejoin(</td><td class="PType prettyprint " nowrap>d2_device&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>handle,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_u32&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>mode</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Specify polyline connection style.</div></div><!--END_ND_TOOLTIPS-->
<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>