blob: 92083eb0cde190d66dda1daf874b8adf4c1fca70 [file]
<!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>32blit API: blit::Surface Struct Reference</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="projectalign" style="padding-left: 0.5em;">
<div id="projectname">32blit API
</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&amp;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&amp;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&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('structblit_1_1Surface.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="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structblit_1_1Surface-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">blit::Surface Struct Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for blit::Surface:</div>
<div class="dyncontent">
<div class="center"><img src="structblit_1_1Surface__coll__graph.png" border="0" usemap="#ablit_1_1Surface_coll__map" alt="Collaboration graph"/></div>
<map name="ablit_1_1Surface_coll__map" id="ablit_1_1Surface_coll__map">
<area shape="rect" title=" " alt="" coords="94,147,194,174"/>
<area shape="rect" href="structblit_1_1Pen.html" title=" " alt="" coords="5,5,80,32"/>
<area shape="rect" href="structblit_1_1Rect.html" title=" " alt="" coords="104,5,184,32"/>
<area shape="rect" href="structblit_1_1Size.html" title=" " alt="" coords="209,5,287,32"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4feea7606003cb25be00890a0e0d7bc3"><td class="memItemLeft" align="right" valign="top"><a id="a4feea7606003cb25be00890a0e0d7bc3"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Surface</b> (uint8_t *data, const PixelFormat &amp;format, const <a class="el" href="structblit_1_1Size.html">Size</a> &amp;bounds)</td></tr>
<tr class="separator:a4feea7606003cb25be00890a0e0d7bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afac11eeea0cd8510770890fcd035c638"><td class="memItemLeft" align="right" valign="top"><a id="afac11eeea0cd8510770890fcd035c638"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>save</b> (const std::string &amp;filename)</td></tr>
<tr class="separator:afac11eeea0cd8510770890fcd035c638"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89565ee221b8dfb8f8a736165ab49f39"><td class="memItemLeft" align="right" valign="top"><a id="a89565ee221b8dfb8f8a736165ab49f39"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t *ptr(const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;r)</td></tr>
<tr class="separator:a89565ee221b8dfb8f8a736165ab49f39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98127413786bc4df900a07178c13318c"><td class="memItemLeft" align="right" valign="top"><a id="a98127413786bc4df900a07178c13318c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t *ptr(const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;p)</td></tr>
<tr class="separator:a98127413786bc4df900a07178c13318c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a001477363b17b917c03b41207d77b3ab"><td class="memItemLeft" align="right" valign="top"><a id="a001477363b17b917c03b41207d77b3ab"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t *ptr(int32_t x</td></tr>
<tr class="separator:a001477363b17b917c03b41207d77b3ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad23bb7acbdedfc8771a774831aacf13f"><td class="memItemLeft" align="right" valign="top"><a id="ad23bb7acbdedfc8771a774831aacf13f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint32_t offset(const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;r)</td></tr>
<tr class="separator:ad23bb7acbdedfc8771a774831aacf13f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a132fe2784a3d210be51d834ac05f15e1"><td class="memItemLeft" align="right" valign="top"><a id="a132fe2784a3d210be51d834ac05f15e1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint32_t offset(const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;p)</td></tr>
<tr class="separator:a132fe2784a3d210be51d834ac05f15e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ace3d221c00db884a9cc344d27141aa"><td class="memItemLeft" align="right" valign="top"><a id="a1ace3d221c00db884a9cc344d27141aa"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint32_t offset(int32_t x</td></tr>
<tr class="separator:a1ace3d221c00db884a9cc344d27141aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5475ac177bc2410bb300e40a281de27b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a5475ac177bc2410bb300e40a281de27b">generate_mipmaps</a> (uint8_t depth)</td></tr>
<tr class="separator:a5475ac177bc2410bb300e40a281de27b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeeb844197cda5ef9b0b10b12263c0f77"><td class="memItemLeft" align="right" valign="top"><a id="aeeb844197cda5ef9b0b10b12263c0f77"></a>
<a class="el" href="structblit_1_1Pen.html">Pen</a>&#160;</td><td class="memItemRight" valign="bottom"><b>get_pixel</b> (uint32_t offset)</td></tr>
<tr class="separator:aeeb844197cda5ef9b0b10b12263c0f77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8755822017e586befc5848d39867e3de"><td class="memItemLeft" align="right" valign="top"><a id="a8755822017e586befc5848d39867e3de"></a>
<a class="el" href="structblit_1_1Pen.html">Pen</a>&#160;</td><td class="memItemRight" valign="bottom"><b>get_pixel</b> (<a class="el" href="structblit_1_1Point.html">Point</a> p)</td></tr>
<tr class="separator:a8755822017e586befc5848d39867e3de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0abc100bc68222807e72701d80cfb0ee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a0abc100bc68222807e72701d80cfb0ee">clear</a> ()</td></tr>
<tr class="separator:a0abc100bc68222807e72701d80cfb0ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a519ba0cebc671e9a0df026fca1fdc93c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a519ba0cebc671e9a0df026fca1fdc93c">pixel</a> (const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;p)</td></tr>
<tr class="separator:a519ba0cebc671e9a0df026fca1fdc93c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f34d04d47c44ed7d8e5b547f65dbe2a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a7f34d04d47c44ed7d8e5b547f65dbe2a">v_span</a> (<a class="el" href="structblit_1_1Point.html">Point</a> p, int16_t c)</td></tr>
<tr class="separator:a7f34d04d47c44ed7d8e5b547f65dbe2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af81db9b4d9f2cb652d794d976ea269be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#af81db9b4d9f2cb652d794d976ea269be">h_span</a> (<a class="el" href="structblit_1_1Point.html">Point</a> p, int16_t c)</td></tr>
<tr class="separator:af81db9b4d9f2cb652d794d976ea269be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c997e63c669852c191da244cea7d3f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a8c997e63c669852c191da244cea7d3f6">rectangle</a> (const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;r)</td></tr>
<tr class="separator:a8c997e63c669852c191da244cea7d3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60fca9a28f5d4e9ea2fdfd113f58099c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a60fca9a28f5d4e9ea2fdfd113f58099c">circle</a> (const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;c, int32_t r)</td></tr>
<tr class="separator:a60fca9a28f5d4e9ea2fdfd113f58099c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5136435762070e7109328be902a9fdd8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a5136435762070e7109328be902a9fdd8">line</a> (const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;p1, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;p2)</td></tr>
<tr class="separator:a5136435762070e7109328be902a9fdd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a879bbbdb39d68569dd6c7393f7df9681"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a879bbbdb39d68569dd6c7393f7df9681">triangle</a> (<a class="el" href="structblit_1_1Point.html">Point</a> p1, <a class="el" href="structblit_1_1Point.html">Point</a> p2, <a class="el" href="structblit_1_1Point.html">Point</a> p3)</td></tr>
<tr class="separator:a879bbbdb39d68569dd6c7393f7df9681"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4604e174e5a3d4846cdf431df935995f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a4604e174e5a3d4846cdf431df935995f">polygon</a> (std::vector&lt; <a class="el" href="structblit_1_1Point.html">Point</a> &gt; p)</td></tr>
<tr class="separator:a4604e174e5a3d4846cdf431df935995f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b4f9375a498340ecf8f5d06281e9add"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a4b4f9375a498340ecf8f5d06281e9add">text</a> (std::string_view message, const <a class="el" href="structblit_1_1Font.html">Font</a> &amp;font, const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;r, bool variable=true, <a class="el" href="namespaceblit.html#aca4e2964fbb75a5368d2d0f88792f93f">TextAlign</a> align=TextAlign::top_left)</td></tr>
<tr class="separator:a4b4f9375a498340ecf8f5d06281e9add"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae27f6e99863e2a2337e6dbc7660800bb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#ae27f6e99863e2a2337e6dbc7660800bb">text</a> (std::string_view message, const <a class="el" href="structblit_1_1Font.html">Font</a> &amp;font, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;p, bool variable=true, <a class="el" href="namespaceblit.html#aca4e2964fbb75a5368d2d0f88792f93f">TextAlign</a> align=TextAlign::top_left)</td></tr>
<tr class="separator:ae27f6e99863e2a2337e6dbc7660800bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cce86f678b425b2ac9eca9cee75e375"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structblit_1_1Size.html">Size</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a9cce86f678b425b2ac9eca9cee75e375">measure_text</a> (std::string_view message, const <a class="el" href="structblit_1_1Font.html">Font</a> &amp;font, bool variable=true)</td></tr>
<tr class="separator:a9cce86f678b425b2ac9eca9cee75e375"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab050f8a9c85d5b8cbe7b759fb761e627"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#ab050f8a9c85d5b8cbe7b759fb761e627">wrap_text</a> (std::string_view message, int32_t width, const <a class="el" href="structblit_1_1Font.html">Font</a> &amp;font, bool variable=true, bool words=true)</td></tr>
<tr class="separator:ab050f8a9c85d5b8cbe7b759fb761e627"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae029f273b23d082bfd536a548d1f1154"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#ae029f273b23d082bfd536a548d1f1154">blit</a> (<a class="el" href="structblit_1_1Surface.html">Surface</a> *src, <a class="el" href="structblit_1_1Rect.html">Rect</a> src_r, <a class="el" href="structblit_1_1Point.html">Point</a> dst_p)</td></tr>
<tr class="separator:ae029f273b23d082bfd536a548d1f1154"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50aaba8ddc7a828464e3795054d10258"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a50aaba8ddc7a828464e3795054d10258">blit</a> (<a class="el" href="structblit_1_1Surface.html">Surface</a> *src, const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;src_r, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;dst_p, int transforms)</td></tr>
<tr class="separator:a50aaba8ddc7a828464e3795054d10258"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25049b2933df77f76e50693f669f1917"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a25049b2933df77f76e50693f669f1917">stretch_blit</a> (<a class="el" href="structblit_1_1Surface.html">Surface</a> *src, const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;src_r, const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;dst_r)</td></tr>
<tr class="separator:a25049b2933df77f76e50693f669f1917"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a206814f575bb4792bda7855bfd0c91da"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a206814f575bb4792bda7855bfd0c91da">stretch_blit</a> (<a class="el" href="structblit_1_1Surface.html">Surface</a> *src, const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;src_r, const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;dst_r, int transforms)</td></tr>
<tr class="separator:a206814f575bb4792bda7855bfd0c91da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2435e9c20d3f8f78a33c83907efbecd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#ad2435e9c20d3f8f78a33c83907efbecd">stretch_blit_vspan</a> (<a class="el" href="structblit_1_1Surface.html">Surface</a> *src, <a class="el" href="structblit_1_1Point.html">Point</a> uv, uint16_t sc, <a class="el" href="structblit_1_1Point.html">Point</a> p, int16_t dc)</td></tr>
<tr class="separator:ad2435e9c20d3f8f78a33c83907efbecd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb69d83a49a2610f80a7a286f2d3de0e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#adb69d83a49a2610f80a7a286f2d3de0e">custom_blend</a> (<a class="el" href="structblit_1_1Surface.html">Surface</a> *src, <a class="el" href="structblit_1_1Rect.html">Rect</a> r, <a class="el" href="structblit_1_1Point.html">Point</a> p, std::function&lt; void(uint8_t *psrc, uint8_t *pdest, int16_t c)&gt; f)</td></tr>
<tr class="separator:adb69d83a49a2610f80a7a286f2d3de0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fadf74243be38b43c78204a9d7d5cb2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a5fadf74243be38b43c78204a9d7d5cb2">custom_modify</a> (<a class="el" href="structblit_1_1Rect.html">Rect</a> r, std::function&lt; void(uint8_t *p, int16_t c)&gt; f)</td></tr>
<tr class="separator:a5fadf74243be38b43c78204a9d7d5cb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ac73290e2db68838716d96cc8f17a34"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a8ac73290e2db68838716d96cc8f17a34">watermark</a> ()</td></tr>
<tr class="separator:a8ac73290e2db68838716d96cc8f17a34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a025480cd51beea7ba11b334d93e66f09"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structblit_1_1Rect.html">Rect</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a025480cd51beea7ba11b334d93e66f09">sprite_bounds</a> (uint16_t index)</td></tr>
<tr class="separator:a025480cd51beea7ba11b334d93e66f09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3dfc56ff402b5068eab287cfa7bc237"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structblit_1_1Rect.html">Rect</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#ad3dfc56ff402b5068eab287cfa7bc237">sprite_bounds</a> (const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;p)</td></tr>
<tr class="separator:ad3dfc56ff402b5068eab287cfa7bc237"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0479da223c2b86e99a0a00428ff58f11"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structblit_1_1Rect.html">Rect</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a0479da223c2b86e99a0a00428ff58f11">sprite_bounds</a> (const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;r)</td></tr>
<tr class="separator:a0479da223c2b86e99a0a00428ff58f11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97af99334f225a285e16857d3ff8c928"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a97af99334f225a285e16857d3ff8c928">sprite</a> (const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;sprite, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;position, uint8_t transform=0)</td></tr>
<tr class="separator:a97af99334f225a285e16857d3ff8c928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a091db9f2113110d4073084b5ae369766"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a091db9f2113110d4073084b5ae369766">sprite</a> (const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;sprite, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;position, uint8_t transform=0)</td></tr>
<tr class="separator:a091db9f2113110d4073084b5ae369766"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77ac07b70fa57428d61b65df2b03ac3d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a77ac07b70fa57428d61b65df2b03ac3d">sprite</a> (uint16_t sprite, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;position, uint8_t transform=0)</td></tr>
<tr class="separator:a77ac07b70fa57428d61b65df2b03ac3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e7438f93a612ad68f302833fae4dbde"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a9e7438f93a612ad68f302833fae4dbde">sprite</a> (const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;sprite, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;position, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;origin, uint8_t transform=0)</td></tr>
<tr class="separator:a9e7438f93a612ad68f302833fae4dbde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f36a46fd4a29e0b0a0f48575b5b9122"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a1f36a46fd4a29e0b0a0f48575b5b9122">sprite</a> (const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;sprite, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;position, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;origin, uint8_t transform=0)</td></tr>
<tr class="separator:a1f36a46fd4a29e0b0a0f48575b5b9122"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ef5e5b7bc28b708fa55589694ac0279"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a0ef5e5b7bc28b708fa55589694ac0279">sprite</a> (uint16_t sprite, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;position, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;origin, uint8_t transform=0)</td></tr>
<tr class="separator:a0ef5e5b7bc28b708fa55589694ac0279"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a870af12de43239889fa183849de0b724"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a870af12de43239889fa183849de0b724">sprite</a> (const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;sprite, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;position, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;origin, const <a class="el" href="structblit_1_1Vec2.html">Vec2</a> &amp;scale, uint8_t transform=0)</td></tr>
<tr class="separator:a870af12de43239889fa183849de0b724"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23441dddb2a585fb1a9f1c16afe61d13"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a23441dddb2a585fb1a9f1c16afe61d13">sprite</a> (const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;sprite, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;position, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;origin, const <a class="el" href="structblit_1_1Vec2.html">Vec2</a> &amp;scale, uint8_t transform=0)</td></tr>
<tr class="separator:a23441dddb2a585fb1a9f1c16afe61d13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad857edab6bc232d8abb026718c99d480"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#ad857edab6bc232d8abb026718c99d480">sprite</a> (uint16_t sprite, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;position, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;origin, const <a class="el" href="structblit_1_1Vec2.html">Vec2</a> &amp;scale, uint8_t transform=0)</td></tr>
<tr class="separator:ad857edab6bc232d8abb026718c99d480"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af33dfd2a26b09cc151c4ae6b094d6f02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#af33dfd2a26b09cc151c4ae6b094d6f02">sprite</a> (const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;sprite, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;position, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;origin, float scale, uint8_t transform=0)</td></tr>
<tr class="separator:af33dfd2a26b09cc151c4ae6b094d6f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbeb3cee1a661703e2d2d6b9e71af666"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#afbeb3cee1a661703e2d2d6b9e71af666">sprite</a> (const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;sprite, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;position, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;origin, float scale, uint8_t transform=0)</td></tr>
<tr class="separator:afbeb3cee1a661703e2d2d6b9e71af666"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af000d71274936b944522ad5c990e553c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#af000d71274936b944522ad5c990e553c">sprite</a> (uint16_t sprite, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;position, const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;origin, float scale, uint8_t transform=0)</td></tr>
<tr class="separator:af000d71274936b944522ad5c990e553c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a1122fd92faa1fd002e87d5dc67736f5b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a1122fd92faa1fd002e87d5dc67736f5b">load</a> (const std::string &amp;filename, uint8_t *data, size_t data_size)</td></tr>
<tr class="separator:a1122fd92faa1fd002e87d5dc67736f5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2e8e45b814ba9459383f225bbdd3dc3"><td class="memItemLeft" align="right" valign="top"><a id="ab2e8e45b814ba9459383f225bbdd3dc3"></a>
static <a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>load</b> (const std::string &amp;filename)</td></tr>
<tr class="separator:ab2e8e45b814ba9459383f225bbdd3dc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f77252fe1e2a82313ac9f6ac86f7167"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a5f77252fe1e2a82313ac9f6ac86f7167">load</a> (const <a class="el" href="structblit_1_1packed__image.html">packed_image</a> *image, uint8_t *data, size_t data_size)</td></tr>
<tr class="separator:a5f77252fe1e2a82313ac9f6ac86f7167"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8205361937596384967799767cf5680b"><td class="memItemLeft" align="right" valign="top"><a id="a8205361937596384967799767cf5680b"></a>
static <a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>load</b> (const <a class="el" href="structblit_1_1packed__image.html">packed_image</a> *image)</td></tr>
<tr class="separator:a8205361937596384967799767cf5680b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae93d52c6173dd121854233c1944df73f"><td class="memItemLeft" align="right" valign="top"><a id="ae93d52c6173dd121854233c1944df73f"></a>
static <a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>load</b> (const uint8_t *image, uint8_t *data, size_t data_size)</td></tr>
<tr class="separator:ae93d52c6173dd121854233c1944df73f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec91469842f90263166463336166ca40"><td class="memItemLeft" align="right" valign="top"><a id="aec91469842f90263166463336166ca40"></a>
static <a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>load</b> (const uint8_t *image)</td></tr>
<tr class="separator:aec91469842f90263166463336166ca40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a434daa09901706736758fcc722600804"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structblit_1_1Surface.html#a434daa09901706736758fcc722600804">load_read_only</a> (const <a class="el" href="structblit_1_1packed__image.html">packed_image</a> *image)</td></tr>
<tr class="separator:a434daa09901706736758fcc722600804"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9d2fa7ffb8f507eb4573d68a980a5a9"><td class="memItemLeft" align="right" valign="top"><a id="ab9d2fa7ffb8f507eb4573d68a980a5a9"></a>
static <a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>load_read_only</b> (const uint8_t *image)</td></tr>
<tr class="separator:ab9d2fa7ffb8f507eb4573d68a980a5a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a7717297b021f94a63cd36c3b5876af68"><td class="memItemLeft" align="right" valign="top"><a id="a7717297b021f94a63cd36c3b5876af68"></a>
uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b></td></tr>
<tr class="separator:a7717297b021f94a63cd36c3b5876af68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1942b8856dbd289763477a8e14ec771"><td class="memItemLeft" align="right" valign="top"><a id="ad1942b8856dbd289763477a8e14ec771"></a>
<a class="el" href="structblit_1_1Size.html">Size</a>&#160;</td><td class="memItemRight" valign="bottom"><b>bounds</b></td></tr>
<tr class="separator:ad1942b8856dbd289763477a8e14ec771"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6473be5075c7acc22c6d78638b74f321"><td class="memItemLeft" align="right" valign="top"><a id="a6473be5075c7acc22c6d78638b74f321"></a>
<a class="el" href="structblit_1_1Rect.html">Rect</a>&#160;</td><td class="memItemRight" valign="bottom"><b>clip</b></td></tr>
<tr class="separator:a6473be5075c7acc22c6d78638b74f321"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60f699f6466f1c2a63068d9f7e11a659"><td class="memItemLeft" align="right" valign="top"><a id="a60f699f6466f1c2a63068d9f7e11a659"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>alpha</b> = 255</td></tr>
<tr class="separator:a60f699f6466f1c2a63068d9f7e11a659"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a996643f1b1dce3082d0d0ea25f304867"><td class="memItemLeft" align="right" valign="top"><a id="a996643f1b1dce3082d0d0ea25f304867"></a>
<a class="el" href="structblit_1_1Pen.html">Pen</a>&#160;</td><td class="memItemRight" valign="bottom"><b>pen</b></td></tr>
<tr class="separator:a996643f1b1dce3082d0d0ea25f304867"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61b5db75e21f0b86e14fe50cf2d5ceb9"><td class="memItemLeft" align="right" valign="top"><a id="a61b5db75e21f0b86e14fe50cf2d5ceb9"></a>
PixelFormat&#160;</td><td class="memItemRight" valign="bottom"><b>format</b></td></tr>
<tr class="separator:a61b5db75e21f0b86e14fe50cf2d5ceb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5e8ccc094f132b73909bb023126d500"><td class="memItemLeft" align="right" valign="top"><a id="ae5e8ccc094f132b73909bb023126d500"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>pixel_stride</b></td></tr>
<tr class="separator:ae5e8ccc094f132b73909bb023126d500"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a569ebf8a2756f73f2a7652e8046b63"><td class="memItemLeft" align="right" valign="top"><a id="a9a569ebf8a2756f73f2a7652e8046b63"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>row_stride</b></td></tr>
<tr class="separator:a9a569ebf8a2756f73f2a7652e8046b63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fd222698f8282404e8865ecde9d0382"><td class="memItemLeft" align="right" valign="top"><a id="a3fd222698f8282404e8865ecde9d0382"></a>
<a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> = nullptr</td></tr>
<tr class="separator:a3fd222698f8282404e8865ecde9d0382"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3ad21d39d007d724823c3cbfdfca849"><td class="memItemLeft" align="right" valign="top"><a id="aa3ad21d39d007d724823c3cbfdfca849"></a>
<a class="el" href="structblit_1_1Pen.html">Pen</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>palette</b> = nullptr</td></tr>
<tr class="separator:aa3ad21d39d007d724823c3cbfdfca849"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9ba641eda8758a35a8ea3f291bf4044"><td class="memItemLeft" align="right" valign="top"><a id="af9ba641eda8758a35a8ea3f291bf4044"></a>
<a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>sprites</b> = nullptr</td></tr>
<tr class="separator:af9ba641eda8758a35a8ea3f291bf4044"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad295898ce8af04f2f59ee490e53690bb"><td class="memItemLeft" align="right" valign="top"><a id="ad295898ce8af04f2f59ee490e53690bb"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>transparent_index</b> = 0</td></tr>
<tr class="separator:ad295898ce8af04f2f59ee490e53690bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac070d5248c099296f6edc6eab908c04a"><td class="memItemLeft" align="right" valign="top"><a id="ac070d5248c099296f6edc6eab908c04a"></a>
blit::PenBlendFunc&#160;</td><td class="memItemRight" valign="bottom"><b>pbf</b></td></tr>
<tr class="separator:ac070d5248c099296f6edc6eab908c04a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8290cbe4eb9eb8b06ea8e8441e87082"><td class="memItemLeft" align="right" valign="top"><a id="af8290cbe4eb9eb8b06ea8e8441e87082"></a>
blit::BlitBlendFunc&#160;</td><td class="memItemRight" valign="bottom"><b>bbf</b></td></tr>
<tr class="separator:af8290cbe4eb9eb8b06ea8e8441e87082"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e0eea70e96403eb2bc75995c7b2364d"><td class="memItemLeft" align="right" valign="top"><a id="a6e0eea70e96403eb2bc75995c7b2364d"></a>
blit::PenGetFunc&#160;</td><td class="memItemRight" valign="bottom"><b>pgf</b></td></tr>
<tr class="separator:a6e0eea70e96403eb2bc75995c7b2364d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42d6e1de41361f5431aeb1af00c203dc"><td class="memItemLeft" align="right" valign="top"><a id="a42d6e1de41361f5431aeb1af00c203dc"></a>
std::vector&lt; <a class="el" href="structblit_1_1Surface.html">Surface</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>mipmaps</b></td></tr>
<tr class="separator:a42d6e1de41361f5431aeb1af00c203dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dc5106624f1f03dc008c5e34bb7714e"><td class="memItemLeft" align="right" valign="top"><a id="a9dc5106624f1f03dc008c5e34bb7714e"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>rows</b></td></tr>
<tr class="separator:a9dc5106624f1f03dc008c5e34bb7714e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9573f043191fd5423085c574646edef2"><td class="memItemLeft" align="right" valign="top"><a id="a9573f043191fd5423085c574646edef2"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>cols</b></td></tr>
<tr class="separator:a9573f043191fd5423085c574646edef2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1de96ba2c49cc0497ab7a96824754a49"><td class="memItemLeft" align="right" valign="top"><a id="a1de96ba2c49cc0497ab7a96824754a49"></a>
int32_t&#160;</td><td class="memItemRight" valign="bottom"><b>y</b> { return data + x * pixel_stride + y * row_stride</td></tr>
<tr class="separator:a1de96ba2c49cc0497ab7a96824754a49"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a50aaba8ddc7a828464e3795054d10258"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50aaba8ddc7a828464e3795054d10258">&#9670;&nbsp;</a></span>blit() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::blit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>t</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Blit another surface to the surface with a transform</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">sprite</td><td></td></tr>
<tr><td class="paramname">p</td><td></td></tr>
<tr><td class="paramname">t</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ae029f273b23d082bfd536a548d1f1154"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae029f273b23d082bfd536a548d1f1154">&#9670;&nbsp;</a></span>blit() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::blit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structblit_1_1Rect.html">Rect</a>&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structblit_1_1Point.html">Point</a>&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Blit another surface to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">src</td><td></td></tr>
<tr><td class="paramname">r</td><td></td></tr>
<tr><td class="paramname">p</td><td></td></tr>
<tr><td class="paramname">hflip</td><td><code>true</code> to flip the source surface horizontally </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a60fca9a28f5d4e9ea2fdfd113f58099c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60fca9a28f5d4e9ea2fdfd113f58099c">&#9670;&nbsp;</a></span>circle()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::circle </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>r</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draw a circle in the current pen colour.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">c</td><td><code><a class="el" href="structblit_1_1Point.html">Point</a></code> describing the center of the circle. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>Radius of the circle. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a0abc100bc68222807e72701d80cfb0ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0abc100bc68222807e72701d80cfb0ee">&#9670;&nbsp;</a></span>clear()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::clear </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear the surface to the current pen colour. </p>
</div>
</div>
<a id="adb69d83a49a2610f80a7a286f2d3de0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb69d83a49a2610f80a7a286f2d3de0e">&#9670;&nbsp;</a></span>custom_blend()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::custom_blend </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structblit_1_1Rect.html">Rect</a>&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structblit_1_1Point.html">Point</a>&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::function&lt; void(uint8_t *psrc, uint8_t *pdest, int16_t c)&gt;&#160;</td>
<td class="paramname"><em>f</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>TODO: Document this function</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">src</td><td></td></tr>
<tr><td class="paramname">r</td><td></td></tr>
<tr><td class="paramname">p</td><td></td></tr>
<tr><td class="paramname">f</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a5fadf74243be38b43c78204a9d7d5cb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5fadf74243be38b43c78204a9d7d5cb2">&#9670;&nbsp;</a></span>custom_modify()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::custom_modify </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structblit_1_1Rect.html">Rect</a>&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::function&lt; void(uint8_t *p, int16_t c)&gt;&#160;</td>
<td class="paramname"><em>f</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>TODO: Document this function</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">r</td><td></td></tr>
<tr><td class="paramname">f</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a5475ac177bc2410bb300e40a281de27b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5475ac177bc2410bb300e40a281de27b">&#9670;&nbsp;</a></span>generate_mipmaps()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::generate_mipmaps </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>depth</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Generate mipmaps for surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">depth</td><td><code>uint8_t</code> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="af81db9b4d9f2cb652d794d976ea269be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af81db9b4d9f2cb652d794d976ea269be">&#9670;&nbsp;</a></span>h_span()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::h_span </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structblit_1_1Point.html">Point</a>&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int16_t&#160;</td>
<td class="paramname"><em>c</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draw a fast horizontal line in the current pen colour.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td><code><a class="el" href="structblit_1_1Point.html">Point</a></code> describing start of the line. \ param[in] c <code>Count</code> of pixels to draw. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a5136435762070e7109328be902a9fdd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5136435762070e7109328be902a9fdd8">&#9670;&nbsp;</a></span>line()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::line </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>p2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draw a line in the current pen colour.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p1</td><td><code><a class="el" href="structblit_1_1Point.html">Point</a></code> describing the start of the line. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p2</td><td><code><a class="el" href="structblit_1_1Point.html">Point</a></code> describing the end of the line. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a5f77252fe1e2a82313ac9f6ac86f7167"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f77252fe1e2a82313ac9f6ac86f7167">&#9670;&nbsp;</a></span>load() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structblit_1_1Surface.html">Surface</a> * blit::Surface::load </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1packed__image.html">packed_image</a> *&#160;</td>
<td class="paramname"><em>image</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>data_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Loads a packed or raw image asset into a <code><a class="el" href="structblit_1_1Surface.html">Surface</a></code></p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">image</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code><a class="el" href="structblit_1_1Surface.html">Surface</a></code> containing loaded data or <code>nullptr</code> if the image was invalid </dd></dl>
</div>
</div>
<a id="a1122fd92faa1fd002e87d5dc67736f5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1122fd92faa1fd002e87d5dc67736f5b">&#9670;&nbsp;</a></span>load() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structblit_1_1Surface.html">Surface</a> * blit::Surface::load </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>data_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>string filename </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a434daa09901706736758fcc722600804"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a434daa09901706736758fcc722600804">&#9670;&nbsp;</a></span>load_read_only()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structblit_1_1Surface.html">Surface</a> * blit::Surface::load_read_only </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1packed__image.html">packed_image</a> *&#160;</td>
<td class="paramname"><em>image</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Similar to <a class="el" href="structblit_1_1Surface.html#a1122fd92faa1fd002e87d5dc67736f5b">load</a>, but the resulting <code><a class="el" href="structblit_1_1Surface.html">Surface</a></code> points directly at the image data instead of copying it. <code>data</code> should not be modified after loading, so no drawing can be done to this surface. If the image is paletted, the palette can still be modified.</p>
<p>Only works for non-packed images.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">image</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code><a class="el" href="structblit_1_1Surface.html">Surface</a></code> containing loaded data or <code>nullptr</code> if the image was invalid </dd></dl>
</div>
</div>
<a id="a9cce86f678b425b2ac9eca9cee75e375"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9cce86f678b425b2ac9eca9cee75e375">&#9670;&nbsp;</a></span>measure_text()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structblit_1_1Size.html">Size</a> blit::Surface::measure_text </td>
<td>(</td>
<td class="paramtype">std::string_view&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Font.html">Font</a> &amp;&#160;</td>
<td class="paramname"><em>font</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>variable</em> = <code>true</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculate the size that text would take up using the specified font</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">message</td><td>Text to measure </td></tr>
<tr><td class="paramname">font</td><td><a class="el" href="structblit_1_1Font.html">Font</a> to use for measurement </td></tr>
<tr><td class="paramname">variable</td><td>Use variable character widths</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Measured <a class="el" href="structblit_1_1Size.html">Size</a> of text </dd></dl>
</div>
</div>
<a id="a519ba0cebc671e9a0df026fca1fdc93c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a519ba0cebc671e9a0df026fca1fdc93c">&#9670;&nbsp;</a></span>pixel()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::pixel </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>p</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Put a single pixel in the current pen colour.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td><code><a class="el" href="structblit_1_1Point.html">Point</a></code> describing the pixel location. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a4604e174e5a3d4846cdf431df935995f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4604e174e5a3d4846cdf431df935995f">&#9670;&nbsp;</a></span>polygon()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::polygon </td>
<td>(</td>
<td class="paramtype">std::vector&lt; <a class="el" href="structblit_1_1Point.html">Point</a> &gt;&#160;</td>
<td class="paramname"><em>points</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draw a polygon from a std::vector&lt;point&gt; list of points.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">points</td><td><code>std::vector&lt;point&gt;</code> of points describing the polygon. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a8c997e63c669852c191da244cea7d3f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c997e63c669852c191da244cea7d3f6">&#9670;&nbsp;</a></span>rectangle()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::rectangle </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;&#160;</td>
<td class="paramname"><em>r</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draw a filled rectangle in the current pen colour.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">r</td><td><code><a class="el" href="structblit_1_1Rect.html">Rect</a></code> describing the desired rectangle. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a23441dddb2a585fb1a9f1c16afe61d13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a23441dddb2a585fb1a9f1c16afe61d13">&#9670;&nbsp;</a></span>sprite() <span class="overload">[1/12]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::sprite </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>position</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>origin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Vec2.html">Vec2</a> &amp;&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>transform</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draws a sprite to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sprite</td><td><code>point</code> describing the x/y offset of the sprite in the spritesheet in tiles/units </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">position</td><td><code>point</code> at which to place the sprite in the target surface </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">origin</td><td><code>point</code> around which to transform &amp; scale the sprite </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td><code>vec2</code> x/y scale factor </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>to apply </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="afbeb3cee1a661703e2d2d6b9e71af666"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afbeb3cee1a661703e2d2d6b9e71af666">&#9670;&nbsp;</a></span>sprite() <span class="overload">[2/12]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::sprite </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>position</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>origin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>transform</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draws a sprite to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sprite</td><td><code>point</code> describing the x/y offset of the sprite in the spritesheet in tiles/units </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">position</td><td><code>point</code> at which to place the sprite in the target surface </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">origin</td><td><code>point</code> around which to transform &amp; scale the sprite </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td><code>float</code> x/y scale factor </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>to apply </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a1f36a46fd4a29e0b0a0f48575b5b9122"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f36a46fd4a29e0b0a0f48575b5b9122">&#9670;&nbsp;</a></span>sprite() <span class="overload">[3/12]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::sprite </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>position</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>origin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>transform</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draws a sprite to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sprite</td><td><code>point</code> describing the x/y offset of the sprite in the spritesheet in tiles/units </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">position</td><td><code>point</code> at which to place the sprite in the target surface </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">origin</td><td><code>point</code> around which to transform the sprite </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>to apply </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a091db9f2113110d4073084b5ae369766"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a091db9f2113110d4073084b5ae369766">&#9670;&nbsp;</a></span>sprite() <span class="overload">[4/12]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::sprite </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>position</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>transform</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draws a sprite to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sprite</td><td><code>point</code> describing the x/y offset of the sprite in the spritesheet in tiles/units </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">position</td><td><code>point</code> at which to place the sprite in the target surface </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>to apply </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a870af12de43239889fa183849de0b724"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a870af12de43239889fa183849de0b724">&#9670;&nbsp;</a></span>sprite() <span class="overload">[5/12]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::sprite </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>position</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>origin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Vec2.html">Vec2</a> &amp;&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>transform</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draws a sprite to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sprite</td><td><code>rect</code> describing the x/y offset and size of the sprite in the spritesheet in tiles/units </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">position</td><td><code>point</code> at which to place the sprite in the target surface </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">origin</td><td><code>point</code> around which to transform &amp; scale the sprite </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td><code>vec2</code> x/y scale factor </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>to apply </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="af33dfd2a26b09cc151c4ae6b094d6f02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af33dfd2a26b09cc151c4ae6b094d6f02">&#9670;&nbsp;</a></span>sprite() <span class="overload">[6/12]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::sprite </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>position</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>origin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>transform</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draws a sprite to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sprite</td><td><code>rect</code> describing the x/y offset and size of the sprite in the spritesheet in tiles/units </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">position</td><td><code>point</code> at which to place the sprite in the target surface </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">origin</td><td><code>point</code> around which to transform &amp; scale the sprite </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td><code>float</code> x/y scale factor </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>to apply </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a9e7438f93a612ad68f302833fae4dbde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e7438f93a612ad68f302833fae4dbde">&#9670;&nbsp;</a></span>sprite() <span class="overload">[7/12]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::sprite </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>position</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>origin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>transform</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draws a sprite to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sprite</td><td><code>rect</code> describing the x/y offset and size of the sprite in the spritesheet in tiles/units </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">position</td><td><code>point</code> at which to place the sprite in the target surface </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">origin</td><td><code>point</code> around which to transform the sprite </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>to apply </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a97af99334f225a285e16857d3ff8c928"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97af99334f225a285e16857d3ff8c928">&#9670;&nbsp;</a></span>sprite() <span class="overload">[8/12]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::sprite </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>position</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>transform</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draws a sprite to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sprite</td><td><code>rect</code> describing the x/y offset and size of the sprite in the spritesheet in tiles/units </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">position</td><td><code>point</code> at which to place the sprite in the target surface </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>to apply </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ad857edab6bc232d8abb026718c99d480"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad857edab6bc232d8abb026718c99d480">&#9670;&nbsp;</a></span>sprite() <span class="overload">[9/12]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::sprite </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>position</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>origin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Vec2.html">Vec2</a> &amp;&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>transform</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draws a sprite to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sprite</td><td>Index of the sprite in the sheet </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">position</td><td><code>point</code> at which to place the sprite in the target surface </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">origin</td><td><code>point</code> around which to transform &amp; scale the sprite </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td><code>vec2</code> x/y scale factor </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>to apply </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="af000d71274936b944522ad5c990e553c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af000d71274936b944522ad5c990e553c">&#9670;&nbsp;</a></span>sprite() <span class="overload">[10/12]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::sprite </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>position</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>origin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>transform</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draws a sprite to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sprite</td><td>Index of the sprite in the sheet </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">position</td><td><code>point</code> at which to place the sprite in the target surface </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">origin</td><td><code>point</code> around which to transform &amp; scale the sprite </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td><code>float</code> x/y scale factor </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>to apply </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a0ef5e5b7bc28b708fa55589694ac0279"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ef5e5b7bc28b708fa55589694ac0279">&#9670;&nbsp;</a></span>sprite() <span class="overload">[11/12]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::sprite </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>position</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>origin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>transform</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draws a sprite to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sprite</td><td>Index of the sprite in the sheet </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">position</td><td><code>point</code> at which to place the sprite in the target surface </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">origin</td><td><code>point</code> around which to transform the sprite </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>to apply </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a77ac07b70fa57428d61b65df2b03ac3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77ac07b70fa57428d61b65df2b03ac3d">&#9670;&nbsp;</a></span>sprite() <span class="overload">[12/12]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::sprite </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>position</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>transform</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draws a sprite to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sprite</td><td>Index of the sprite in the sheet </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">position</td><td><code>point</code> at which to place the sprite in the target surface </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transform</td><td>to apply </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ad3dfc56ff402b5068eab287cfa7bc237"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3dfc56ff402b5068eab287cfa7bc237">&#9670;&nbsp;</a></span>sprite_bounds() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structblit_1_1Rect.html">Rect</a> blit::Surface::sprite_bounds </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>p</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the bounds of a sprite by index</p>
<p>Takes a <code>point</code> describing the x/y offset of the sprite in terms of tiles/units and returns a <code>rect</code> describing the location of the sprite in pixels.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td><code>point</code> describing the x/y offset of the sprite in the spritesheet </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>rect</code> sprite x/y location (always a multiple of 8) and size (always 8x8) </dd></dl>
</div>
</div>
<a id="a0479da223c2b86e99a0a00428ff58f11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0479da223c2b86e99a0a00428ff58f11">&#9670;&nbsp;</a></span>sprite_bounds() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structblit_1_1Rect.html">Rect</a> blit::Surface::sprite_bounds </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;&#160;</td>
<td class="paramname"><em>r</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the bounds of a sprite by index</p>
<p>Takes a <code>rect</code> describing the x/y offset and size of the sprite in terms of tiles/units and returns a <code>rect</code> describing the location and size of the sprite in pixels.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">r</td><td><code>rect</code> describing the x/y offset and size of the sprite in sprite tiles </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>rect</code> sprite x/y location (always a multiple of 8) and size (always 8x8) </dd></dl>
</div>
</div>
<a id="a025480cd51beea7ba11b334d93e66f09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a025480cd51beea7ba11b334d93e66f09">&#9670;&nbsp;</a></span>sprite_bounds() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structblit_1_1Rect.html">Rect</a> blit::Surface::sprite_bounds </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the bounds of a sprite by index</p>
<p>Takes an index offset to the sprite in the spritesheet and returns a <code>rect</code> describing the location and size of the sprite in pixels.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>Index of the sprite in the sheet </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>rect</code> sprite x/y location (always a multiple of 8) and size (always 8x8) </dd></dl>
</div>
</div>
<a id="a25049b2933df77f76e50693f669f1917"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25049b2933df77f76e50693f669f1917">&#9670;&nbsp;</a></span>stretch_blit() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::stretch_blit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;&#160;</td>
<td class="paramname"><em>sr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;&#160;</td>
<td class="paramname"><em>dr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Blit from another surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">src</td><td></td></tr>
<tr><td class="paramname">sr</td><td><code>rect</code> soruce </td></tr>
<tr><td class="paramname">dr</td><td><code>rect</code> destination </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a206814f575bb4792bda7855bfd0c91da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a206814f575bb4792bda7855bfd0c91da">&#9670;&nbsp;</a></span>stretch_blit() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::stretch_blit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;&#160;</td>
<td class="paramname"><em>sprite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>t</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Blit a stretched and transformed surface to the surface</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">sprite</td><td></td></tr>
<tr><td class="paramname">p</td><td></td></tr>
<tr><td class="paramname">t</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ad2435e9c20d3f8f78a33c83907efbecd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2435e9c20d3f8f78a33c83907efbecd">&#9670;&nbsp;</a></span>stretch_blit_vspan()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::stretch_blit_vspan </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structblit_1_1Surface.html">Surface</a> *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structblit_1_1Point.html">Point</a>&#160;</td>
<td class="paramname"><em>uv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>sc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structblit_1_1Point.html">Point</a>&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int16_t&#160;</td>
<td class="paramname"><em>dc</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Blit a vertical span</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">src</td><td></td></tr>
<tr><td class="paramname">uv</td><td></td></tr>
<tr><td class="paramname">sc</td><td></td></tr>
<tr><td class="paramname">p</td><td></td></tr>
<tr><td class="paramname">dc</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ae27f6e99863e2a2337e6dbc7660800bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae27f6e99863e2a2337e6dbc7660800bb">&#9670;&nbsp;</a></span>text() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::text </td>
<td>(</td>
<td class="paramtype">std::string_view&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Font.html">Font</a> &amp;&#160;</td>
<td class="paramname"><em>font</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>variable</em> = <code>true</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceblit.html#aca4e2964fbb75a5368d2d0f88792f93f">TextAlign</a>&#160;</td>
<td class="paramname"><em>align</em> = <code>TextAlign::top_left</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draw text to surface using the specified font and the current pen.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">message</td><td>Text to draw </td></tr>
<tr><td class="paramname">font</td><td><a class="el" href="structblit_1_1Font.html">Font</a> to use </td></tr>
<tr><td class="paramname">p</td><td><a class="el" href="structblit_1_1Point.html">Point</a> to align text to </td></tr>
<tr><td class="paramname">variable</td><td>Draw text using variable character widths </td></tr>
<tr><td class="paramname">align</td><td>Alignment </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a4b4f9375a498340ecf8f5d06281e9add"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b4f9375a498340ecf8f5d06281e9add">&#9670;&nbsp;</a></span>text() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::text </td>
<td>(</td>
<td class="paramtype">std::string_view&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Font.html">Font</a> &amp;&#160;</td>
<td class="paramname"><em>font</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Rect.html">Rect</a> &amp;&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>variable</em> = <code>true</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceblit.html#aca4e2964fbb75a5368d2d0f88792f93f">TextAlign</a>&#160;</td>
<td class="paramname"><em>align</em> = <code>TextAlign::top_left</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draw text to surface using the specified font and the current pen.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">message</td><td>Text to draw </td></tr>
<tr><td class="paramname">font</td><td><a class="el" href="structblit_1_1Font.html">Font</a> to use </td></tr>
<tr><td class="paramname">r</td><td><a class="el" href="structblit_1_1Rect.html">Rect</a> to align text to </td></tr>
<tr><td class="paramname">variable</td><td>Draw text using variable character widths </td></tr>
<tr><td class="paramname">align</td><td>Alignment </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a879bbbdb39d68569dd6c7393f7df9681"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a879bbbdb39d68569dd6c7393f7df9681">&#9670;&nbsp;</a></span>triangle()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::triangle </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structblit_1_1Point.html">Point</a>&#160;</td>
<td class="paramname"><em>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structblit_1_1Point.html">Point</a>&#160;</td>
<td class="paramname"><em>p2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structblit_1_1Point.html">Point</a>&#160;</td>
<td class="paramname"><em>p3</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draw a triangle in the current pen colour</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p1</td><td>First <code><a class="el" href="structblit_1_1Point.html">Point</a></code> of triangle. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p2</td><td>Second <code><a class="el" href="structblit_1_1Point.html">Point</a></code> of triangle. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p3</td><td>This <code><a class="el" href="structblit_1_1Point.html">Point</a></code> of triangle. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a7f34d04d47c44ed7d8e5b547f65dbe2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f34d04d47c44ed7d8e5b547f65dbe2a">&#9670;&nbsp;</a></span>v_span()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::v_span </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structblit_1_1Point.html">Point</a>&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int16_t&#160;</td>
<td class="paramname"><em>c</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Draw a fast vertical line in the current pen colour.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td><code><a class="el" href="structblit_1_1Point.html">Point</a></code> describing start of the line. \ param[in] c <code>Count</code> of pixels to draw. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a8ac73290e2db68838716d96cc8f17a34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ac73290e2db68838716d96cc8f17a34">&#9670;&nbsp;</a></span>watermark()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void blit::Surface::watermark </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>TODO: Document this function </p>
</div>
</div>
<a id="ab050f8a9c85d5b8cbe7b759fb761e627"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab050f8a9c85d5b8cbe7b759fb761e627">&#9670;&nbsp;</a></span>wrap_text()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string Surface::wrap_text </td>
<td>(</td>
<td class="paramtype">std::string_view&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structblit_1_1Font.html">Font</a> &amp;&#160;</td>
<td class="paramname"><em>font</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>variable</em> = <code>true</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>words</em> = <code>true</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wrap text to fit the specified width</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">message</td><td>Text to wrap </td></tr>
<tr><td class="paramname">width</td><td>Maximum width of a line of text </td></tr>
<tr><td class="paramname">font</td><td><a class="el" href="structblit_1_1Font.html">Font</a> to use for measurement </td></tr>
<tr><td class="paramname">variable</td><td>Use variable character widths </td></tr>
<tr><td class="paramname">words</td><td>Attempt to break lines between words if <code>true</code></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Wrapped text </dd></dl>
</div>
</div>
<hr/>The documentation for this struct was generated from the following files:<ul>
<li>graphics/<a class="el" href="surface_8hpp_source.html">surface.hpp</a></li>
<li>graphics/<a class="el" href="primitive_8cpp.html">primitive.cpp</a></li>
<li>graphics/<a class="el" href="sprite_8cpp.html">sprite.cpp</a></li>
<li>graphics/<a class="el" href="surface_8cpp.html">surface.cpp</a></li>
<li>graphics/text.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespaceblit.html">blit</a></li><li class="navelem"><a class="el" href="structblit_1_1Surface.html">Surface</a></li>
<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>