openmv/drivers/dave2d/docs/files/doc/limitations-txt.html
iabdalkader daf2bb30da misc: Restructure repo.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-13 08:28:34 +02:00

46 lines
16 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>Limitations</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="Limitations"></a>Limitations</h1><div class=CBody><!--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="#Limitations" >Limitations</a></td><td class=SDescription></td></tr><tr class="SGeneric SIndent1 SMarked"><td class=SEntry><a href="#Coordinate_range_limitations" >Coordinate range limitations</a></td><td class=SDescription>API interface coordinates are limited to the range -2048 to 2047.</td></tr><tr class="SGeneric SIndent1"><td class=SEntry><a href="#Object/primitive_size_limitations" >Object/<wbr>primitive size limitations</a></td><td class=SDescription>Object sizes are limited to 1024x1024 pixels.</td></tr><tr class="SGeneric SIndent1 SMarked"><td class=SEntry><a href="#Framebuffer_size_limitations" >Framebuffer size limitations</a></td><td class=SDescription>The framebuffer size is limited to 2048x2048 pixels.</td></tr><tr class="SGeneric SIndent1"><td class=SEntry><a href="#Texture_size_limitations" >Texture size limitations</a></td><td class=SDescription>Texture sizes are limited to 1024x1024 texels in general.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Coordinate_range_limitations"></a>Coordinate range limitations</h3><div class=CBody><p>API interface coordinates are limited to the range -2048 to 2047.</p><p>This limitation is due to the usage of <a href="../inc/dave_driver-h.html#d2_point" class=LType id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">d2_point</a> for coordinates on the API interface.</p><p>Furthermore, since some internal calculations also use this range inside the driver, it is important that the resulting internal axis-aligned bounding box of an object does not extends out of this range.&nbsp; Such a situation will leads to rendering errors.&nbsp; This can happen e.g. when specifing an end-point for a line which is still inside this range but a line width which lets the bounding box of the resulting line extend out of this range (see e.g.&nbsp; <a href="../code/dave_render-c.html#d2_renderline" class=LFunction id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">d2_renderline</a>).</p></div></div></div>
<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Object/primitive_size_limitations"></a>Object/<wbr>primitive size limitations</h3><div class=CBody><p>Object sizes are limited to 1024x1024 pixels.</p><p>This limitation refers to the resulting internal axis-aligned bounding box of an object which is finally rendered.&nbsp; Since the API allows larger coordinate ranges, it is possible in general to pass objects of this size into the driver, but rendering errors may be the result.&nbsp; The application must make sure to split larger objects if necessary.</p></div></div></div>
<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Framebuffer_size_limitations"></a>Framebuffer size limitations</h3><div class=CBody><p>The framebuffer size is limited to 2048x2048 pixels.</p><p>This limitation is due to the limitation of the API interface coordinates (see above).&nbsp; The framebuffer pitch however can be in the range [-32768 ..&nbsp; 32767].&nbsp; A negative pitch means that the objects are rendered upside-down.</p></div></div></div>
<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Texture_size_limitations"></a>Texture size limitations</h3><div class=CBody><p>Texture sizes are limited to 1024x1024 texels in general.</p><p>This limitation of 1024x1024 texels is valid when arbitrary texturing (see <a href="../code/dave_texture-c.html#d2_settexture" class=LFunction id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">d2_settexture</a>) is concerned.&nbsp; Blitting (see <a href="../code/dave_blit-c.html#d2_setblitsrc" class=LFunction id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">d2_setblitsrc</a>, <a href="../code/dave_blit-c.html#d2_blitcopy" class=LFunction id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">d2_blitcopy</a>) allows using textures of up to 2047x1024 texels.</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="overview-txt.html">Driver Overview</a></div></div><div class=MEntry><div class=MFile id=MSelected>Limitations</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="../code/dave_driver-c.html">Basic Functions</a></div></div><div class=MEntry><div class=MFile><a href="../code/dave_viewport-c.html">Viewport Functions</a></div></div><div class=MEntry><div class=MFile><a href="../code/dave_context-c.html">Context Functions</a></div></div><div class=MEntry><div class=MFile><a href="../code/dave_texture-c.html">Texture Functions</a></div></div><div class=MEntry><div class=MFile><a href="../code/dave_render-c.html">Rendering Functions</a></div></div><div class=MEntry><div class=MFile><a href="../code/dave_blit-c.html">Blit Functions</a></div></div><div class=MEntry><div class=MFile><a href="../code/dave_rbuffer-c.html">Render Buffers</a></div></div><div class=MEntry><div class=MFile><a href="../code/dave_perfcount-c.html">Profiling</a></div></div><div class=MEntry><div class=MFile><a href="../code/dave_utility-c.html">Utility Functions</a></div></div><div class=MEntry><div class=MFile><a href="../code/dave_64bitoperation-c.html">Functions for 64bit operations</a></div></div><div class=MEntry><div class=MFile><a href="../code/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=CType>short (<b>fixedpoint</b>)</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_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="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_settexture(</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>void&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>ptr,</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>pitch,</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>width,</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>height,</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>format</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Specify the source for texture mapping.</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_setblitsrc(</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>void&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap>*</td><td class="PParameter prettyprint " nowrap>ptr,</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>pitch,</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>width,</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>height,</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>format</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Specify the source for blit operation.</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_blitcopy(</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>srcwidth,</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>srcheight,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_blitpos&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>srcx,</td></tr><tr><td></td><td class="PType prettyprint " nowrap>d2_blitpos&nbsp;</td><td class="PParameterPrefix prettyprint " nowrap></td><td class="PParameter prettyprint " nowrap>srcy,</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>dstwidth,</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>dstheight,</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>dstx,</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>dsty,</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>Copy rectangle part of the source into destination.</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>