mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-08 05:33:36 +00:00
610 lines
49 KiB
HTML
610 lines
49 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.9.1"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>ThorVG: Canvas</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectlogo"><img alt="Logo" src="small_logo.png"/></td>
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">ThorVG
|
|
 <span id="projectnumber">v0.10</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.1 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(document).ready(function(){initNavTree('group__ThorVGCapi__Canvas.html',''); initResizable(); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#groups">Modules</a> |
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">Canvas<div class="ingroups"><a class="el" href="group__ThorVG__CAPI.html">ThorVG_CAPI</a></div></div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>A module for managing and drawing graphical elements.
|
|
<a href="#details">More...</a></p>
|
|
<div class="dynheader">
|
|
Collaboration diagram for Canvas:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><img src="group__ThorVGCapi__Canvas.png" border="0" usemap="#agroup____ThorVGCapi____Canvas" alt=""/></div>
|
|
<map name="agroup____ThorVGCapi____Canvas" id="agroup____ThorVGCapi____Canvas">
|
|
<area shape="rect" href="group__ThorVG__CAPI.html" title="ThorVG C language binding APIs." alt="" coords="5,5,112,31"/>
|
|
<area shape="rect" title="A module for managing and drawing graphical elements." alt="" coords="160,5,231,31"/>
|
|
<area shape="rect" href="group__ThorVGCapi__SwCanvas.html" title="A module for rendering the graphical elements using the software engine." alt="" coords="279,5,368,31"/>
|
|
</map>
|
|
</div>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
|
|
Modules</h2></td></tr>
|
|
<tr class="memitem:group__ThorVGCapi__SwCanvas"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThorVGCapi__SwCanvas.html">SwCanvas</a></td></tr>
|
|
<tr class="memdesc:group__ThorVGCapi__SwCanvas"><td class="mdescLeft"> </td><td class="mdescRight">A module for rendering the graphical elements using the software engine. <br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:ga15208125646162cd19a928708a335295"><td class="memItemLeft" align="right" valign="top">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThorVGCapi__Canvas.html#ga15208125646162cd19a928708a335295">tvg_canvas_destroy</a> (<a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> *canvas)</td></tr>
|
|
<tr class="memdesc:ga15208125646162cd19a928708a335295"><td class="mdescLeft"> </td><td class="mdescRight">Clears the canvas internal data, releases all paints stored by the canvas and destroys the canvas object itself. <a href="group__ThorVGCapi__Canvas.html#ga15208125646162cd19a928708a335295">More...</a><br /></td></tr>
|
|
<tr class="separator:ga15208125646162cd19a928708a335295"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga81ac2919a9e19634ffb9cb6c42d10a75"><td class="memItemLeft" align="right" valign="top">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThorVGCapi__Canvas.html#ga81ac2919a9e19634ffb9cb6c42d10a75">tvg_canvas_push</a> (<a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> *canvas, <a class="el" href="group__ThorVG__CAPI.html#ga98af7c3fe18afa8ad65ea6a6e097a292">Tvg_Paint</a> *paint)</td></tr>
|
|
<tr class="memdesc:ga81ac2919a9e19634ffb9cb6c42d10a75"><td class="mdescLeft"> </td><td class="mdescRight">Inserts a drawing element into the canvas using a Tvg_Paint object. <a href="group__ThorVGCapi__Canvas.html#ga81ac2919a9e19634ffb9cb6c42d10a75">More...</a><br /></td></tr>
|
|
<tr class="separator:ga81ac2919a9e19634ffb9cb6c42d10a75"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga6e83a76e3bdf1b06d42c87c2d8bf245e"><td class="memItemLeft" align="right" valign="top">TVG_DEPRECATED TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThorVGCapi__Canvas.html#ga6e83a76e3bdf1b06d42c87c2d8bf245e">tvg_canvas_reserve</a> (<a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> *canvas, uint32_t n)</td></tr>
|
|
<tr class="memdesc:ga6e83a76e3bdf1b06d42c87c2d8bf245e"><td class="mdescLeft"> </td><td class="mdescRight">Reserves a memory block where the objects pushed into a canvas are stored. <a href="group__ThorVGCapi__Canvas.html#ga6e83a76e3bdf1b06d42c87c2d8bf245e">More...</a><br /></td></tr>
|
|
<tr class="separator:ga6e83a76e3bdf1b06d42c87c2d8bf245e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaca4447f647446c29b90cc443aa84f032"><td class="memItemLeft" align="right" valign="top">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThorVGCapi__Canvas.html#gaca4447f647446c29b90cc443aa84f032">tvg_canvas_clear</a> (<a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> *canvas, bool free)</td></tr>
|
|
<tr class="memdesc:gaca4447f647446c29b90cc443aa84f032"><td class="mdescLeft"> </td><td class="mdescRight">Sets the total number of the paints pushed into the canvas to be zero. Tvg_Paint objects stored in the canvas are released if <code>free</code> is set to <code>true</code>, otherwise the memory is not deallocated and all paints should be released manually in order to avoid memory leaks. <a href="group__ThorVGCapi__Canvas.html#gaca4447f647446c29b90cc443aa84f032">More...</a><br /></td></tr>
|
|
<tr class="separator:gaca4447f647446c29b90cc443aa84f032"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gade13cc1e7b4f28a9dac93e44ef12709c"><td class="memItemLeft" align="right" valign="top">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThorVGCapi__Canvas.html#gade13cc1e7b4f28a9dac93e44ef12709c">tvg_canvas_update</a> (<a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> *canvas)</td></tr>
|
|
<tr class="memdesc:gade13cc1e7b4f28a9dac93e44ef12709c"><td class="mdescLeft"> </td><td class="mdescRight">Updates all paints in a canvas. <a href="group__ThorVGCapi__Canvas.html#gade13cc1e7b4f28a9dac93e44ef12709c">More...</a><br /></td></tr>
|
|
<tr class="separator:gade13cc1e7b4f28a9dac93e44ef12709c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gad6d3fa1de2b17799dbf6e822fff30d1c"><td class="memItemLeft" align="right" valign="top">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThorVGCapi__Canvas.html#gad6d3fa1de2b17799dbf6e822fff30d1c">tvg_canvas_update_paint</a> (<a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> *canvas, <a class="el" href="group__ThorVG__CAPI.html#ga98af7c3fe18afa8ad65ea6a6e097a292">Tvg_Paint</a> *paint)</td></tr>
|
|
<tr class="memdesc:gad6d3fa1de2b17799dbf6e822fff30d1c"><td class="mdescLeft"> </td><td class="mdescRight">Updates the given Tvg_Paint object from the canvas before the rendering. <a href="group__ThorVGCapi__Canvas.html#gad6d3fa1de2b17799dbf6e822fff30d1c">More...</a><br /></td></tr>
|
|
<tr class="separator:gad6d3fa1de2b17799dbf6e822fff30d1c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gafb0f659e1dd0fd71287c3c7ccedca1d2"><td class="memItemLeft" align="right" valign="top">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThorVGCapi__Canvas.html#gafb0f659e1dd0fd71287c3c7ccedca1d2">tvg_canvas_draw</a> (<a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> *canvas)</td></tr>
|
|
<tr class="memdesc:gafb0f659e1dd0fd71287c3c7ccedca1d2"><td class="mdescLeft"> </td><td class="mdescRight">Requests the canvas to draw the Tvg_Paint objects. <a href="group__ThorVGCapi__Canvas.html#gafb0f659e1dd0fd71287c3c7ccedca1d2">More...</a><br /></td></tr>
|
|
<tr class="separator:gafb0f659e1dd0fd71287c3c7ccedca1d2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gad0b79fd5411b47faf7b185c2e01034ce"><td class="memItemLeft" align="right" valign="top">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ThorVGCapi__Canvas.html#gad0b79fd5411b47faf7b185c2e01034ce">tvg_canvas_sync</a> (<a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> *canvas)</td></tr>
|
|
<tr class="memdesc:gad0b79fd5411b47faf7b185c2e01034ce"><td class="mdescLeft"> </td><td class="mdescRight">Guarantees that the drawing process is finished. <a href="group__ThorVGCapi__Canvas.html#gad0b79fd5411b47faf7b185c2e01034ce">More...</a><br /></td></tr>
|
|
<tr class="separator:gad0b79fd5411b47faf7b185c2e01034ce"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<p>A module for managing and drawing graphical elements. </p>
|
|
<p>A canvas is an entity responsible for drawing the target. It sets up the drawing engine and the buffer, which can be drawn on the screen. It also manages given Paint objects.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>A Canvas behavior depends on the raster engine though the final content of the buffer is expected to be identical. </dd></dl>
|
|
<dl class="section warning"><dt>Warning</dt><dd>The Paint objects belonging to one Canvas can't be shared among multiple Canvases. </dd></dl>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="gaca4447f647446c29b90cc443aa84f032"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaca4447f647446c29b90cc443aa84f032">◆ </a></span>tvg_canvas_clear()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> tvg_canvas_clear </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> * </td>
|
|
<td class="paramname"><em>canvas</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>free</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the total number of the paints pushed into the canvas to be zero. Tvg_Paint objects stored in the canvas are released if <code>free</code> is set to <code>true</code>, otherwise the memory is not deallocated and all paints should be released manually in order to avoid memory leaks. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">canvas</td><td>The Tvg_Canvas object to be cleared. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">free</td><td>If <code>true</code> the memory occupied by paints is deallocated, otherwise it is not.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Tvg_Result enumeration. </dd></dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">TVG_RESULT_SUCCESS</td><td>Succeed. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_INVALID_ARGUMENT</td><td>An invalid Tvg_Canvas pointer. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_INSUFFICIENT_CONDITION</td><td>An internal error.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section warning"><dt>Warning</dt><dd>Please use the <code>free</code> argument only when you know how it works, otherwise it's not recommended.</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ThorVGCapi__Canvas.html#ga15208125646162cd19a928708a335295" title="Clears the canvas internal data, releases all paints stored by the canvas and destroys the canvas obj...">tvg_canvas_destroy()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga15208125646162cd19a928708a335295"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga15208125646162cd19a928708a335295">◆ </a></span>tvg_canvas_destroy()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> tvg_canvas_destroy </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> * </td>
|
|
<td class="paramname"><em>canvas</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Clears the canvas internal data, releases all paints stored by the canvas and destroys the canvas object itself. </p>
|
|
<div class="fragment"><div class="line"><span class="keyword">static</span> <a class="code" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> *canvas = NULL;</div>
|
|
<div class="line"><span class="keyword">static</span> uint32_t *buffer = NULL;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> _init() {</div>
|
|
<div class="line"> canvas = <a class="code" href="group__ThorVGCapi__SwCanvas.html#ga1929b0e99eff5584ed03c36cdfa81065">tvg_swcanvas_create</a>();</div>
|
|
<div class="line"> buffer = (uint32_t*) malloc(<span class="keyword">sizeof</span>(uint32_t) * 100 * 100);</div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__SwCanvas.html#ga7bd619a80e4a2ba4bc012734387a2010">tvg_swcanvas_set_target</a>(canvas, buffer, 100, 100, 100, <a class="code" href="group__ThorVGCapi__SwCanvas.html#ggae038f89e569d85c0896711a0a31b4a78a362994879a2332b343d408dd3a397d97">TVG_COLORSPACE_ARGB8888</a>);</div>
|
|
<div class="line">}</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="comment">//a task called from main function in a loop</span></div>
|
|
<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> _job(<span class="keyword">const</span> <span class="keywordtype">int</span> cmd) {</div>
|
|
<div class="line"> <span class="comment">//define a valid rectangle shape</span></div>
|
|
<div class="line"> <span class="keywordflow">switch</span> (cmd) {</div>
|
|
<div class="line"> <span class="keywordflow">case</span> CMD_EXIT: <span class="keywordflow">return</span> 0;</div>
|
|
<div class="line"> <span class="keywordflow">case</span> CMD_ADD_RECT:</div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__Canvas.html#ga81ac2919a9e19634ffb9cb6c42d10a75">tvg_canvas_push</a>(canvas, rect);</div>
|
|
<div class="line"> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"> <span class="keywordflow">case</span> CMD_DEL_RECT:</div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__Paint.html#ga4d4d3afa5b161c44155f40790d869e83">tvg_paint_del</a>(rect);</div>
|
|
<div class="line"> <span class="comment">//now to safely delete Tvg_Canvas, tvg_canvas_clear() API have to be used</span></div>
|
|
<div class="line"> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"> <span class="keywordflow">default</span>:</div>
|
|
<div class="line"> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line">}</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv) {</div>
|
|
<div class="line"> <span class="keywordtype">int</span> cmd = 0;</div>
|
|
<div class="line"> <span class="keywordtype">int</span> stop = 1;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__Initializer.html#ga437d5601fe8dc17eb4788b7694000452">tvg_engine_init</a>(<a class="code" href="group__ThorVGCapi__Initializer.html#ggaa61c2088915fc211ac91ffafaf45f695a87a18b02d5fc2509c1c4372e46183c96">TVG_ENGINE_SW</a>, 4);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">while</span> (stop) {</div>
|
|
<div class="line"> <span class="comment">//wait for a command e.g. from a console</span></div>
|
|
<div class="line"> stop = _job(cmd);</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__Canvas.html#gaca4447f647446c29b90cc443aa84f032">tvg_canvas_clear</a>(canvas, <span class="keyword">false</span>);</div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__Canvas.html#ga15208125646162cd19a928708a335295">tvg_canvas_destroy</a>(canvas);</div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__Initializer.html#gaaee6b1a83765cfecd47d8f979a9a3211">tvg_engine_term</a>(<a class="code" href="group__ThorVGCapi__Initializer.html#ggaa61c2088915fc211ac91ffafaf45f695a87a18b02d5fc2509c1c4372e46183c96">TVG_ENGINE_SW</a>);</div>
|
|
<div class="line"> <span class="keywordflow">return</span> 0;</div>
|
|
<div class="line">}</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><a class="code" href="group__ThorVGCapi__Canvas.html#ga15208125646162cd19a928708a335295">tvg_canvas_destroy</a>(canvas);</div>
|
|
<div class="line"><a class="code" href="group__ThorVGCapi__Initializer.html#gaaee6b1a83765cfecd47d8f979a9a3211">tvg_engine_term</a>(<a class="code" href="group__ThorVGCapi__Initializer.html#ggaa61c2088915fc211ac91ffafaf45f695a87a18b02d5fc2509c1c4372e46183c96">TVG_ENGINE_SW</a>)</div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Canvas_html_ga15208125646162cd19a928708a335295"><div class="ttname"><a href="group__ThorVGCapi__Canvas.html#ga15208125646162cd19a928708a335295">tvg_canvas_destroy</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_canvas_destroy(Tvg_Canvas *canvas)</div><div class="ttdoc">Clears the canvas internal data, releases all paints stored by the canvas and destroys the canvas obj...</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Canvas_html_ga81ac2919a9e19634ffb9cb6c42d10a75"><div class="ttname"><a href="group__ThorVGCapi__Canvas.html#ga81ac2919a9e19634ffb9cb6c42d10a75">tvg_canvas_push</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_canvas_push(Tvg_Canvas *canvas, Tvg_Paint *paint)</div><div class="ttdoc">Inserts a drawing element into the canvas using a Tvg_Paint object.</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Canvas_html_gaca4447f647446c29b90cc443aa84f032"><div class="ttname"><a href="group__ThorVGCapi__Canvas.html#gaca4447f647446c29b90cc443aa84f032">tvg_canvas_clear</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_canvas_clear(Tvg_Canvas *canvas, bool free)</div><div class="ttdoc">Sets the total number of the paints pushed into the canvas to be zero. Tvg_Paint objects stored in th...</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Initializer_html_ga437d5601fe8dc17eb4788b7694000452"><div class="ttname"><a href="group__ThorVGCapi__Initializer.html#ga437d5601fe8dc17eb4788b7694000452">tvg_engine_init</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_engine_init(Tvg_Engine engine_method, unsigned threads)</div><div class="ttdoc">Initializes TVG engines.</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Initializer_html_gaaee6b1a83765cfecd47d8f979a9a3211"><div class="ttname"><a href="group__ThorVGCapi__Initializer.html#gaaee6b1a83765cfecd47d8f979a9a3211">tvg_engine_term</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_engine_term(Tvg_Engine engine_method)</div><div class="ttdoc">Terminates TVG engines.</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Initializer_html_ggaa61c2088915fc211ac91ffafaf45f695a87a18b02d5fc2509c1c4372e46183c96"><div class="ttname"><a href="group__ThorVGCapi__Initializer.html#ggaa61c2088915fc211ac91ffafaf45f695a87a18b02d5fc2509c1c4372e46183c96">TVG_ENGINE_SW</a></div><div class="ttdeci">@ TVG_ENGINE_SW</div><div class="ttdoc">CPU rasterizer.</div><div class="ttdef"><b>Definition:</b> thorvg_capi.h:106</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Paint_html_ga4d4d3afa5b161c44155f40790d869e83"><div class="ttname"><a href="group__ThorVGCapi__Paint.html#ga4d4d3afa5b161c44155f40790d869e83">tvg_paint_del</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_paint_del(Tvg_Paint *paint)</div><div class="ttdoc">Releases the given Tvg_Paint object.</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__SwCanvas_html_ga1929b0e99eff5584ed03c36cdfa81065"><div class="ttname"><a href="group__ThorVGCapi__SwCanvas.html#ga1929b0e99eff5584ed03c36cdfa81065">tvg_swcanvas_create</a></div><div class="ttdeci">TVG_API Tvg_Canvas * tvg_swcanvas_create()</div><div class="ttdoc">Creates a Canvas object.</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__SwCanvas_html_ga7bd619a80e4a2ba4bc012734387a2010"><div class="ttname"><a href="group__ThorVGCapi__SwCanvas.html#ga7bd619a80e4a2ba4bc012734387a2010">tvg_swcanvas_set_target</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_swcanvas_set_target(Tvg_Canvas *canvas, uint32_t *buffer, uint32_t stride, uint32_t w, uint32_t h, Tvg_Colorspace cs)</div><div class="ttdoc">Sets the buffer used in the rasterization process and defines the used colorspace.</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__SwCanvas_html_ggae038f89e569d85c0896711a0a31b4a78a362994879a2332b343d408dd3a397d97"><div class="ttname"><a href="group__ThorVGCapi__SwCanvas.html#ggae038f89e569d85c0896711a0a31b4a78a362994879a2332b343d408dd3a397d97">TVG_COLORSPACE_ARGB8888</a></div><div class="ttdeci">@ TVG_COLORSPACE_ARGB8888</div><div class="ttdoc">The 8-bit color channels are combined into 32-bit color in the order: alpha, red, green,...</div><div class="ttdef"><b>Definition:</b> thorvg_capi.h:372</div></div>
|
|
<div class="ttc" id="agroup__ThorVG__CAPI_html_ga5f10c1f3dabdc9287166611c7fe5fd8a"><div class="ttname"><a href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a></div><div class="ttdeci">struct _Tvg_Canvas Tvg_Canvas</div><div class="ttdoc">A structure responsible for managing and drawing graphical elements.</div><div class="ttdef"><b>Definition:</b> thorvg_capi.h:77</div></div>
|
|
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">canvas</td><td>The Tvg_Canvas object to be destroyed.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Tvg_Result enumeration. </dd></dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">TVG_RESULT_SUCCESS</td><td>Succeed. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_INVALID_ARGUMENT</td><td>An invalid pointer to the Tvg_Canvas object is passed.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>If the paints from the canvas should not be released, the <a class="el" href="group__ThorVGCapi__Canvas.html#gaca4447f647446c29b90cc443aa84f032" title="Sets the total number of the paints pushed into the canvas to be zero. Tvg_Paint objects stored in th...">tvg_canvas_clear()</a> with a <code>free</code> argument value set to <code>false</code> should be called. Please be aware that in such a case TVG is not responsible for the paints release anymore and it has to be done manually in order to avoid memory leaks.</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ThorVGCapi__Paint.html#ga4d4d3afa5b161c44155f40790d869e83" title="Releases the given Tvg_Paint object.">tvg_paint_del()</a>, <a class="el" href="group__ThorVGCapi__Canvas.html#gaca4447f647446c29b90cc443aa84f032" title="Sets the total number of the paints pushed into the canvas to be zero. Tvg_Paint objects stored in th...">tvg_canvas_clear()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gafb0f659e1dd0fd71287c3c7ccedca1d2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gafb0f659e1dd0fd71287c3c7ccedca1d2">◆ </a></span>tvg_canvas_draw()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> tvg_canvas_draw </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> * </td>
|
|
<td class="paramname"><em>canvas</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Requests the canvas to draw the Tvg_Paint objects. </p>
|
|
<p>All paints from the given canvas will be rasterized to the buffer.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">canvas</td><td>The Tvg_Canvas object containing elements to be drawn.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Tvg_Result enumeration. </dd></dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">TVG_RESULT_SUCCESS</td><td>Succeed. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_INVALID_ARGUMENT</td><td>An invalid Tvg_Canvas pointer. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_INSUFFICIENT_CONDITION</td><td>An internal error.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>Drawing can be asynchronous based on the assigned thread number. To guarantee the drawing is done, call <a class="el" href="group__ThorVGCapi__Canvas.html#gad0b79fd5411b47faf7b185c2e01034ce" title="Guarantees that the drawing process is finished.">tvg_canvas_sync()</a> afterwards. </dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ThorVGCapi__Canvas.html#gad0b79fd5411b47faf7b185c2e01034ce" title="Guarantees that the drawing process is finished.">tvg_canvas_sync()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga81ac2919a9e19634ffb9cb6c42d10a75"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga81ac2919a9e19634ffb9cb6c42d10a75">◆ </a></span>tvg_canvas_push()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> tvg_canvas_push </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> * </td>
|
|
<td class="paramname"><em>canvas</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__ThorVG__CAPI.html#ga98af7c3fe18afa8ad65ea6a6e097a292">Tvg_Paint</a> * </td>
|
|
<td class="paramname"><em>paint</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Inserts a drawing element into the canvas using a Tvg_Paint object. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">canvas</td><td>The Tvg_Canvas object managing the <code>paint</code>. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">paint</td><td>The Tvg_Paint object to be drawn.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>Only the paints pushed into the canvas will be drawing targets. They are retained by the canvas until you call <a class="el" href="group__ThorVGCapi__Canvas.html#gaca4447f647446c29b90cc443aa84f032" title="Sets the total number of the paints pushed into the canvas to be zero. Tvg_Paint objects stored in th...">tvg_canvas_clear()</a>. If you know the number of the pushed objects in advance, please call <a class="el" href="group__ThorVGCapi__Canvas.html#ga6e83a76e3bdf1b06d42c87c2d8bf245e" title="Reserves a memory block where the objects pushed into a canvas are stored.">tvg_canvas_reserve()</a>.</p>
|
|
<dl class="section return"><dt>Returns</dt><dd>Tvg_Result return values: </dd></dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">TVG_RESULT_SUCCESS</td><td>Succeed. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_INVALID_ARGUMENT</td><td>In case a <code>nullptr</code> is passed as the argument. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_INSUFFICIENT_CONDITION</td><td>An internal error.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>The rendering order of the paints is the same as the order as they were pushed. Consider sorting the paints before pushing them if you intend to use layering. </dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ThorVGCapi__Canvas.html#gaca4447f647446c29b90cc443aa84f032" title="Sets the total number of the paints pushed into the canvas to be zero. Tvg_Paint objects stored in th...">tvg_canvas_clear()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga6e83a76e3bdf1b06d42c87c2d8bf245e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga6e83a76e3bdf1b06d42c87c2d8bf245e">◆ </a></span>tvg_canvas_reserve()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">TVG_DEPRECATED TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> tvg_canvas_reserve </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> * </td>
|
|
<td class="paramname"><em>canvas</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint32_t </td>
|
|
<td class="paramname"><em>n</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Reserves a memory block where the objects pushed into a canvas are stored. </p>
|
|
<p>If the number of Tvg_Paints to be stored in a canvas is known in advance, calling this function reduces the multiple memory allocations thus improves the performance.</p>
|
|
<div class="fragment"><div class="line"><a class="code" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> *canvas = NULL;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><a class="code" href="group__ThorVGCapi__Initializer.html#ga437d5601fe8dc17eb4788b7694000452">tvg_engine_init</a>(<a class="code" href="group__ThorVGCapi__Initializer.html#ggaa61c2088915fc211ac91ffafaf45f695a87a18b02d5fc2509c1c4372e46183c96">TVG_ENGINE_SW</a>, 4);</div>
|
|
<div class="line">canvas = <a class="code" href="group__ThorVGCapi__SwCanvas.html#ga1929b0e99eff5584ed03c36cdfa81065">tvg_swcanvas_create</a>();</div>
|
|
<div class="line"> </div>
|
|
<div class="line">uint32_t *buffer = NULL;</div>
|
|
<div class="line">buffer = (uint32_t*) malloc(<span class="keyword">sizeof</span>(uint32_t) * 100 * 100);</div>
|
|
<div class="line"><span class="keywordflow">if</span> (!buffer) <span class="keywordflow">return</span>;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><a class="code" href="group__ThorVGCapi__SwCanvas.html#ga7bd619a80e4a2ba4bc012734387a2010">tvg_swcanvas_set_target</a>(canvas, buffer, 100, 100, 100, <a class="code" href="group__ThorVGCapi__SwCanvas.html#ggae038f89e569d85c0896711a0a31b4a78a362994879a2332b343d408dd3a397d97">TVG_COLORSPACE_ARGB8888</a>);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><a class="code" href="group__ThorVGCapi__Canvas.html#ga15208125646162cd19a928708a335295">tvg_canvas_destroy</a>(canvas);</div>
|
|
<div class="line"><a class="code" href="group__ThorVGCapi__Initializer.html#gaaee6b1a83765cfecd47d8f979a9a3211">tvg_engine_term</a>(<a class="code" href="group__ThorVGCapi__Initializer.html#ggaa61c2088915fc211ac91ffafaf45f695a87a18b02d5fc2509c1c4372e46183c96">TVG_ENGINE_SW</a>)</div>
|
|
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">canvas</td><td>The Tvg_Canvas object managing the reserved memory. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>The number of objects for which the memory is to be reserved.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Tvg_Result enumeration. </dd></dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">TVG_RESULT_SUCCESS</td><td>Succeed. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_INVALID_ARGUMENT</td><td>An invalid Tvg_Canvas pointer. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_FAILED_ALLOCATION</td><td>An internal error with memory allocation. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gad0b79fd5411b47faf7b185c2e01034ce"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gad0b79fd5411b47faf7b185c2e01034ce">◆ </a></span>tvg_canvas_sync()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> tvg_canvas_sync </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> * </td>
|
|
<td class="paramname"><em>canvas</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Guarantees that the drawing process is finished. </p>
|
|
<p>Since the canvas rendering can be performed asynchronously, it should be called after the <a class="el" href="group__ThorVGCapi__Canvas.html#gafb0f659e1dd0fd71287c3c7ccedca1d2" title="Requests the canvas to draw the Tvg_Paint objects.">tvg_canvas_draw()</a>.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">canvas</td><td>The Tvg_Canvas object containing elements which were drawn.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Tvg_Result enumeration. </dd></dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">TVG_RESULT_SUCCESS</td><td>Succeed. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_INVALID_ARGUMENT</td><td>An invalid Tvg_Canvas pointer. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_INSUFFICIENT_CONDITION</td><td>An internal error.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ThorVGCapi__Canvas.html#gafb0f659e1dd0fd71287c3c7ccedca1d2" title="Requests the canvas to draw the Tvg_Paint objects.">tvg_canvas_draw()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gade13cc1e7b4f28a9dac93e44ef12709c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gade13cc1e7b4f28a9dac93e44ef12709c">◆ </a></span>tvg_canvas_update()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> tvg_canvas_update </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> * </td>
|
|
<td class="paramname"><em>canvas</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Updates all paints in a canvas. </p>
|
|
<p>Should be called before drawing in order to prepare paints for the rendering.</p>
|
|
<div class="fragment"><div class="line"><span class="comment">//A frame drawing example. Thread safety and events implementation is skipped to show only TVG code.</span></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="keyword">static</span> <a class="code" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> *canvas = NULL;</div>
|
|
<div class="line"><span class="keyword">static</span> <a class="code" href="group__ThorVG__CAPI.html#ga98af7c3fe18afa8ad65ea6a6e097a292">Tvg_Paint</a> *rect = NULL;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="keywordtype">int</span> _frame_render(<span class="keywordtype">void</span>) {</div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__Canvas.html#gade13cc1e7b4f28a9dac93e44ef12709c">tvg_canvas_update</a>(canvas);</div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__Canvas.html#gafb0f659e1dd0fd71287c3c7ccedca1d2">tvg_canvas_draw</a>(canvas);</div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__Canvas.html#gad0b79fd5411b47faf7b185c2e01034ce">tvg_canvas_sync</a>(canvas);</div>
|
|
<div class="line">}</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="comment">//event handler from your code or third party library</span></div>
|
|
<div class="line"><span class="keywordtype">void</span> _event_handler(event *event_data) {</div>
|
|
<div class="line"> <span class="keywordflow">if</span> (!event_data) <span class="keywordflow">return</span> NULL;</div>
|
|
<div class="line"> <span class="keywordflow">switch</span>(event_data.type) {</div>
|
|
<div class="line"> <span class="keywordflow">case</span> EVENT_RECT_ADD:</div>
|
|
<div class="line"> <span class="keywordflow">if</span> (!rect) {</div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__Shape.html#ga08d388f8a75ac13c9a4e8717663b61ad">tvg_shape_append_rect</a>(rect, 10, 10, 50, 50, 0, 0);</div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__Shape.html#ga984061de00f2d76714e354b165365bab">tvg_shape_set_stroke_width</a>(rect, 1.0f);</div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__Shape.html#gacc948f2205c906ce4e17baad36a0ee3f">tvg_shape_set_stroke_color</a>(rect, 255, 0, 0, 255);</div>
|
|
<div class="line"> <a class="code" href="group__ThorVGCapi__Canvas.html#ga81ac2919a9e19634ffb9cb6c42d10a75">tvg_canvas_push</a>(canvas, rect);</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"> <span class="keywordflow">case</span> EVENT_RECT_MOVE:</div>
|
|
<div class="line"> <span class="keywordflow">if</span> (rect) <a class="code" href="group__ThorVGCapi__Paint.html#ga18f9577abca1cee26f297b76a7bf2ff0">tvg_paint_translate</a>(rect, 10.0, 10.0);</div>
|
|
<div class="line"> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"> <span class="keywordflow">default</span>:</div>
|
|
<div class="line"> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line">}</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv) {</div>
|
|
<div class="line"> <span class="comment">//example handler from your code or third party lib</span></div>
|
|
<div class="line"> event_handler_add(handler, _event_handler);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="comment">//create frame rendering process which calls _frame_render() function.</span></div>
|
|
<div class="line"> app_loop_begin(_frame_render);</div>
|
|
<div class="line"> app_loop_finish();</div>
|
|
<div class="line"> cleanup();</div>
|
|
<div class="line">}</div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Canvas_html_gad0b79fd5411b47faf7b185c2e01034ce"><div class="ttname"><a href="group__ThorVGCapi__Canvas.html#gad0b79fd5411b47faf7b185c2e01034ce">tvg_canvas_sync</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_canvas_sync(Tvg_Canvas *canvas)</div><div class="ttdoc">Guarantees that the drawing process is finished.</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Canvas_html_gade13cc1e7b4f28a9dac93e44ef12709c"><div class="ttname"><a href="group__ThorVGCapi__Canvas.html#gade13cc1e7b4f28a9dac93e44ef12709c">tvg_canvas_update</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_canvas_update(Tvg_Canvas *canvas)</div><div class="ttdoc">Updates all paints in a canvas.</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Canvas_html_gafb0f659e1dd0fd71287c3c7ccedca1d2"><div class="ttname"><a href="group__ThorVGCapi__Canvas.html#gafb0f659e1dd0fd71287c3c7ccedca1d2">tvg_canvas_draw</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_canvas_draw(Tvg_Canvas *canvas)</div><div class="ttdoc">Requests the canvas to draw the Tvg_Paint objects.</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Paint_html_ga18f9577abca1cee26f297b76a7bf2ff0"><div class="ttname"><a href="group__ThorVGCapi__Paint.html#ga18f9577abca1cee26f297b76a7bf2ff0">tvg_paint_translate</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_paint_translate(Tvg_Paint *paint, float x, float y)</div><div class="ttdoc">Moves the given Tvg_Paint in a two-dimensional space.</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Shape_html_ga08d388f8a75ac13c9a4e8717663b61ad"><div class="ttname"><a href="group__ThorVGCapi__Shape.html#ga08d388f8a75ac13c9a4e8717663b61ad">tvg_shape_append_rect</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_shape_append_rect(Tvg_Paint *paint, float x, float y, float w, float h, float rx, float ry)</div><div class="ttdoc">Appends a rectangle to the path.</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Shape_html_ga984061de00f2d76714e354b165365bab"><div class="ttname"><a href="group__ThorVGCapi__Shape.html#ga984061de00f2d76714e354b165365bab">tvg_shape_set_stroke_width</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_shape_set_stroke_width(Tvg_Paint *paint, float width)</div><div class="ttdoc">Sets the stroke width for all of the figures from the paint.</div></div>
|
|
<div class="ttc" id="agroup__ThorVGCapi__Shape_html_gacc948f2205c906ce4e17baad36a0ee3f"><div class="ttname"><a href="group__ThorVGCapi__Shape.html#gacc948f2205c906ce4e17baad36a0ee3f">tvg_shape_set_stroke_color</a></div><div class="ttdeci">TVG_API Tvg_Result tvg_shape_set_stroke_color(Tvg_Paint *paint, uint8_t r, uint8_t g, uint8_t b, uint8_t a)</div><div class="ttdoc">Sets the shape's stroke color.</div></div>
|
|
<div class="ttc" id="agroup__ThorVG__CAPI_html_ga98af7c3fe18afa8ad65ea6a6e097a292"><div class="ttname"><a href="group__ThorVG__CAPI.html#ga98af7c3fe18afa8ad65ea6a6e097a292">Tvg_Paint</a></div><div class="ttdeci">struct _Tvg_Paint Tvg_Paint</div><div class="ttdoc">A structure representing a graphical element.</div><div class="ttdef"><b>Definition:</b> thorvg_capi.h:85</div></div>
|
|
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">canvas</td><td>The Tvg_Canvas object to be updated.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Tvg_Result enumeration. </dd></dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">TVG_RESULT_SUCCESS</td><td>Succeed. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_INVALID_ARGUMENT</td><td>An invalid Tvg_Canvas pointer. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_INSUFFICIENT_CONDITION</td><td>An internal error.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ThorVGCapi__Canvas.html#gad6d3fa1de2b17799dbf6e822fff30d1c" title="Updates the given Tvg_Paint object from the canvas before the rendering.">tvg_canvas_update_paint()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gad6d3fa1de2b17799dbf6e822fff30d1c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gad6d3fa1de2b17799dbf6e822fff30d1c">◆ </a></span>tvg_canvas_update_paint()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">TVG_API <a class="el" href="group__ThorVG__CAPI.html#gad980f552658dcbbe42a0168f35c27781">Tvg_Result</a> tvg_canvas_update_paint </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__ThorVG__CAPI.html#ga5f10c1f3dabdc9287166611c7fe5fd8a">Tvg_Canvas</a> * </td>
|
|
<td class="paramname"><em>canvas</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__ThorVG__CAPI.html#ga98af7c3fe18afa8ad65ea6a6e097a292">Tvg_Paint</a> * </td>
|
|
<td class="paramname"><em>paint</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Updates the given Tvg_Paint object from the canvas before the rendering. </p>
|
|
<p>If a client application using the TVG library does not update the entire canvas with <a class="el" href="group__ThorVGCapi__Canvas.html#gade13cc1e7b4f28a9dac93e44ef12709c" title="Updates all paints in a canvas.">tvg_canvas_update()</a> in the frame rendering process, Tvg_Paint objects previously added to the canvas should be updated manually with this function.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">canvas</td><td>The Tvg_Canvas object to which the <code>paint</code> belongs. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">paint</td><td>The Tvg_Paint object to be updated.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Tvg_Result enumeration. </dd></dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">TVG_RESULT_SUCCESS</td><td>Succeed. </td></tr>
|
|
<tr><td class="paramname">TVG_RESULT_INVALID_ARGUMENT</td><td>In case a <code>nullptr</code> is passed as the argument.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ThorVGCapi__Canvas.html#gade13cc1e7b4f28a9dac93e44ef12709c" title="Updates all paints in a canvas.">tvg_canvas_update()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|