commit
f139c5dc79
19 changed files with 221 additions and 90 deletions
File diff suppressed because one or more lines are too long
|
@ -156,16 +156,6 @@ function main() {
|
|||
<li><a class="reference" href="#maskerSimd%2CBlendMode"
|
||||
title="maskerSimd(blendMode: BlendMode): MaskerSimd">maskerSimd,<wbr>BlendMode</a></li>
|
||||
|
||||
</ul>
|
||||
<ul class="simple nested-toc-section">unpackAlphaValues
|
||||
<li><a class="reference" href="#unpackAlphaValues%2CM128i"
|
||||
title="unpackAlphaValues(v: M128i): M128i">unpackAlphaValues,<wbr>M128i</a></li>
|
||||
|
||||
</ul>
|
||||
<ul class="simple nested-toc-section">packAlphaValues
|
||||
<li><a class="reference" href="#packAlphaValues%2CM128i"
|
||||
title="packAlphaValues(v: M128i): M128i">packAlphaValues,<wbr>M128i</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</ul>
|
||||
|
@ -252,20 +242,6 @@ Blends alphas of backdrop, source.
|
|||
|
||||
|
||||
|
||||
</dd>
|
||||
<a id="packAlphaValues,M128i"></a>
|
||||
<dt><pre><span class="Keyword">proc</span> <a href="#packAlphaValues%2CM128i"><span class="Identifier">packAlphaValues</span></a><span class="Other">(</span><span class="Identifier">v</span><span class="Other">:</span> <span class="Identifier">M128i</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">M128i</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
|
||||
<dd>
|
||||
|
||||
Shuffle the alpha values for these 4 colors to the first 4 bytes
|
||||
|
||||
</dd>
|
||||
<a id="unpackAlphaValues,M128i"></a>
|
||||
<dt><pre><span class="Keyword">proc</span> <a href="#unpackAlphaValues%2CM128i"><span class="Identifier">unpackAlphaValues</span></a><span class="Other">(</span><span class="Identifier">v</span><span class="Other">:</span> <span class="Identifier">M128i</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">M128i</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
|
||||
<dd>
|
||||
|
||||
Unpack the first 32 bits into 4 rgba(0, 0, 0, value)
|
||||
|
||||
</dd>
|
||||
<a id="blenderSimd,BlendMode"></a>
|
||||
<dt><pre><span class="Keyword">proc</span> <a href="#blenderSimd%2CBlendMode"><span class="Identifier">blenderSimd</span></a><span class="Other">(</span><span class="Identifier">blendMode</span><span class="Other">:</span> <a href="blends.html#BlendMode"><span class="Identifier">BlendMode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="blends.html#BlenderSimd"><span class="Identifier">BlenderSimd</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">]</span><span class="Other">,</span>
|
||||
|
@ -307,7 +283,7 @@ Is there a blend masking function with SIMD support?
|
|||
<div class="twelve-columns footer">
|
||||
<span class="nim-sprite"></span>
|
||||
<br/>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 18:15:59 UTC</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -27,8 +27,6 @@ blender pixie/blends.html#blender,BlendMode blends: blender(blendMode: BlendMode
|
|||
masker pixie/blends.html#masker,BlendMode blends: masker(blendMode: BlendMode): Masker
|
||||
BlenderSimd pixie/blends.html#BlenderSimd blends: BlenderSimd
|
||||
MaskerSimd pixie/blends.html#MaskerSimd blends: MaskerSimd
|
||||
packAlphaValues pixie/blends.html#packAlphaValues,M128i blends: packAlphaValues(v: M128i): M128i
|
||||
unpackAlphaValues pixie/blends.html#unpackAlphaValues,M128i blends: unpackAlphaValues(v: M128i): M128i
|
||||
blenderSimd pixie/blends.html#blenderSimd,BlendMode blends: blenderSimd(blendMode: BlendMode): BlenderSimd
|
||||
hasSimdBlender pixie/blends.html#hasSimdBlender,BlendMode blends: hasSimdBlender(blendMode: BlendMode): bool
|
||||
maskerSimd pixie/blends.html#maskerSimd,BlendMode blends: maskerSimd(blendMode: BlendMode): MaskerSimd
|
||||
|
|
|
@ -239,7 +239,7 @@ Linearly interpolate between a and b using t.
|
|||
<div class="twelve-columns footer">
|
||||
<span class="nim-sprite"></span>
|
||||
<br/>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 18:15:59 UTC</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -182,7 +182,7 @@ Encodes an image into the BMP file format.
|
|||
<div class="twelve-columns footer">
|
||||
<span class="nim-sprite"></span>
|
||||
<br/>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 18:15:59 UTC</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -182,7 +182,7 @@ Encodes Image into a JPEG data string.
|
|||
<div class="twelve-columns footer">
|
||||
<span class="nim-sprite"></span>
|
||||
<br/>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 18:15:59 UTC</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -201,7 +201,7 @@ Encodes the mask data into the PNG file format.
|
|||
<div class="twelve-columns footer">
|
||||
<span class="nim-sprite"></span>
|
||||
<br/>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 18:16:00 UTC</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -171,7 +171,7 @@ Render SVG file and return the image. Defaults to the SVG's view box size.
|
|||
<div class="twelve-columns footer">
|
||||
<span class="nim-sprite"></span>
|
||||
<br/>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:09 UTC</small>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 18:16:00 UTC</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -288,7 +288,7 @@ function main() {
|
|||
<div class="section" id="6">
|
||||
<h1><a class="toc-backref" href="#6">Imports</a></h1>
|
||||
<dl class="item">
|
||||
<a class="reference external" href="blends.html">blends</a>, <a class="reference external" href="common.html">common</a>, <a class="reference external" href="masks.html">masks</a>
|
||||
<a class="reference external" href="blends.html">blends</a>, <a class="reference external" href="common.html">common</a>, <a class="reference external" href="masks.html">masks</a>, <a class="reference external" href="internal.html">internal</a>
|
||||
</dl></div>
|
||||
<div class="section" id="7">
|
||||
<h1><a class="toc-backref" href="#7">Types</a></h1>
|
||||
|
@ -601,7 +601,7 @@ Create a shadow of the image with the offset, spread and blur.
|
|||
<div class="twelve-columns footer">
|
||||
<span class="nim-sprite"></span>
|
||||
<br/>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 18:15:59 UTC</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
152
docs/pixie/internal.html
Normal file
152
docs/pixie/internal.html
Normal file
|
@ -0,0 +1,152 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<!-- This file is generated by Nim. -->
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<!-- Favicon -->
|
||||
<link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
|
||||
|
||||
<!-- Google fonts -->
|
||||
<link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
|
||||
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
|
||||
|
||||
<!-- CSS -->
|
||||
<title>pixie/internal</title>
|
||||
<link rel="stylesheet" type="text/css" href="../nimdoc.out.css">
|
||||
|
||||
<script type="text/javascript" src="../dochack.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
function main() {
|
||||
var pragmaDots = document.getElementsByClassName("pragmadots");
|
||||
for (var i = 0; i < pragmaDots.length; i++) {
|
||||
pragmaDots[i].onclick = function(event) {
|
||||
// Hide tease
|
||||
event.target.parentNode.style.display = "none";
|
||||
// Show actual
|
||||
event.target.parentNode.nextElementSibling.style.display = "inline";
|
||||
}
|
||||
}
|
||||
|
||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
||||
function switchTheme(e) {
|
||||
if (e.target.checked) {
|
||||
document.documentElement.setAttribute('data-theme', 'dark');
|
||||
localStorage.setItem('theme', 'dark');
|
||||
} else {
|
||||
document.documentElement.setAttribute('data-theme', 'light');
|
||||
localStorage.setItem('theme', 'light');
|
||||
}
|
||||
}
|
||||
|
||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
||||
|
||||
const currentTheme = localStorage.getItem('theme') ? localStorage.getItem('theme') : null;
|
||||
if (currentTheme) {
|
||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
||||
|
||||
if (currentTheme === 'dark') {
|
||||
toggleSwitch.checked = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="main()">
|
||||
<div class="document" id="documentId">
|
||||
<div class="container">
|
||||
<h1 class="title">pixie/internal</h1>
|
||||
<div class="row">
|
||||
<div class="three columns">
|
||||
<div class="theme-switch-wrapper">
|
||||
<label class="theme-switch" for="checkbox">
|
||||
<input type="checkbox" id="checkbox" />
|
||||
<div class="slider round"></div>
|
||||
</label>
|
||||
<em>Dark Mode</em>
|
||||
</div>
|
||||
<div id="global-links">
|
||||
<ul class="simple">
|
||||
<li>
|
||||
<a href="../theindex.html">Index</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchInputDiv">
|
||||
Search: <input type="text" id="searchInput"
|
||||
onkeyup="search()" />
|
||||
</div>
|
||||
<div>
|
||||
Group by:
|
||||
<select onchange="groupBy(this.value)">
|
||||
<option value="section">Section</option>
|
||||
<option value="type">Type</option>
|
||||
</select>
|
||||
</div>
|
||||
<ul class="simple simple-toc" id="toc-list">
|
||||
<li>
|
||||
<a class="reference reference-toplevel" href="#12" id="62">Procs</a>
|
||||
<ul class="simple simple-toc-section">
|
||||
<ul class="simple nested-toc-section">unpackAlphaValues
|
||||
<li><a class="reference" href="#unpackAlphaValues%2CM128i"
|
||||
title="unpackAlphaValues(v: M128i): M128i">unpackAlphaValues,<wbr>M128i</a></li>
|
||||
|
||||
</ul>
|
||||
<ul class="simple nested-toc-section">packAlphaValues
|
||||
<li><a class="reference" href="#packAlphaValues%2CM128i"
|
||||
title="packAlphaValues(v: M128i): M128i">packAlphaValues,<wbr>M128i</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="nine columns" id="content">
|
||||
<div id="tocRoot"></div>
|
||||
|
||||
<p class="module-desc"></p>
|
||||
<div class="section" id="12">
|
||||
<h1><a class="toc-backref" href="#12">Procs</a></h1>
|
||||
<dl class="item">
|
||||
<a id="packAlphaValues,M128i"></a>
|
||||
<dt><pre><span class="Keyword">proc</span> <a href="#packAlphaValues%2CM128i"><span class="Identifier">packAlphaValues</span></a><span class="Other">(</span><span class="Identifier">v</span><span class="Other">:</span> <span class="Identifier">M128i</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">M128i</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
|
||||
<dd>
|
||||
|
||||
Shuffle the alpha values for these 4 colors to the first 4 bytes
|
||||
|
||||
</dd>
|
||||
<a id="unpackAlphaValues,M128i"></a>
|
||||
<dt><pre><span class="Keyword">proc</span> <a href="#unpackAlphaValues%2CM128i"><span class="Identifier">unpackAlphaValues</span></a><span class="Other">(</span><span class="Identifier">v</span><span class="Other">:</span> <span class="Identifier">M128i</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">M128i</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
|
||||
<dd>
|
||||
|
||||
Unpack the first 32 bits into 4 rgba(0, 0, 0, value)
|
||||
|
||||
</dd>
|
||||
|
||||
</dl></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="twelve-columns footer">
|
||||
<span class="nim-sprite"></span>
|
||||
<br/>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 18:15:59 UTC</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
2
docs/pixie/internal.idx
Normal file
2
docs/pixie/internal.idx
Normal file
|
@ -0,0 +1,2 @@
|
|||
packAlphaValues pixie/internal.html#packAlphaValues,M128i internal: packAlphaValues(v: M128i): M128i
|
||||
unpackAlphaValues pixie/internal.html#unpackAlphaValues,M128i internal: unpackAlphaValues(v: M128i): M128i
|
|
@ -354,7 +354,7 @@ A value of 0 stays 0. Anything else turns into 255.
|
|||
<div class="twelve-columns footer">
|
||||
<span class="nim-sprite"></span>
|
||||
<br/>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 18:15:59 UTC</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -243,7 +243,7 @@ Angular gradient.
|
|||
<div class="twelve-columns footer">
|
||||
<span class="nim-sprite"></span>
|
||||
<br/>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:09 UTC</small>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 18:16:00 UTC</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -289,7 +289,7 @@ function main() {
|
|||
<div class="section" id="6">
|
||||
<h1><a class="toc-backref" href="#6">Imports</a></h1>
|
||||
<dl class="item">
|
||||
<a class="reference external" href="blends.html">blends</a>, <a class="reference external" href="common.html">common</a>, <a class="reference external" href="images.html">images</a>, <a class="reference external" href="masks.html">masks</a>, <a class="reference external" href="paints.html">paints</a>
|
||||
<a class="reference external" href="blends.html">blends</a>, <a class="reference external" href="common.html">common</a>, <a class="reference external" href="images.html">images</a>, <a class="reference external" href="masks.html">masks</a>, <a class="reference external" href="paints.html">paints</a>, <a class="reference external" href="internal.html">internal</a>
|
||||
</dl></div>
|
||||
<div class="section" id="7">
|
||||
<h1><a class="toc-backref" href="#7">Types</a></h1>
|
||||
|
@ -662,7 +662,7 @@ Return elements in pairs: (1st, 2nd), (2nd, 3rd) ... (n - 1, last).
|
|||
<div class="twelve-columns footer">
|
||||
<span class="nim-sprite"></span>
|
||||
<br/>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:09 UTC</small>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 18:16:00 UTC</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -63,7 +63,7 @@ function main() {
|
|||
<div class="document" id="documentId">
|
||||
<div class="container">
|
||||
<h1 class="title">Index</h1>
|
||||
Modules: <a href="pixie.html">pixie</a>, <a href="pixie/blends.html">pixie/blends</a>, <a href="pixie/common.html">pixie/common</a>, <a href="pixie/fileformats/bmp.html">pixie/fileformats/bmp</a>, <a href="pixie/fileformats/jpg.html">pixie/fileformats/jpg</a>, <a href="pixie/fileformats/png.html">pixie/fileformats/png</a>, <a href="pixie/fileformats/svg.html">pixie/fileformats/svg</a>, <a href="pixie/images.html">pixie/images</a>, <a href="pixie/masks.html">pixie/masks</a>, <a href="pixie/paints.html">pixie/paints</a>, <a href="pixie/paths.html">pixie/paths</a>.<br/><p /><h2>API symbols</h2>
|
||||
Modules: <a href="pixie.html">pixie</a>, <a href="pixie/blends.html">pixie/blends</a>, <a href="pixie/common.html">pixie/common</a>, <a href="pixie/fileformats/bmp.html">pixie/fileformats/bmp</a>, <a href="pixie/fileformats/jpg.html">pixie/fileformats/jpg</a>, <a href="pixie/fileformats/png.html">pixie/fileformats/png</a>, <a href="pixie/fileformats/svg.html">pixie/fileformats/svg</a>, <a href="pixie/images.html">pixie/images</a>, <a href="pixie/internal.html">pixie/internal</a>, <a href="pixie/masks.html">pixie/masks</a>, <a href="pixie/paints.html">pixie/paints</a>, <a href="pixie/paths.html">pixie/paths</a>.<br/><p /><h2>API symbols</h2>
|
||||
<dl><dt><a name="%60%24%60" href="#%60%24%60"><span>`$`:</span></a></dt><dd><ul class="simple">
|
||||
<li><a class="reference external"
|
||||
data-doc-search-tag="images: `$`(image: Image): string" href="pixie/images.html#%24%2CImage">images: `$`(image: Image): string</a></li>
|
||||
|
@ -598,7 +598,7 @@ function main() {
|
|||
</ul></dd>
|
||||
<dt><a name="packAlphaValues" href="#packAlphaValues"><span>packAlphaValues:</span></a></dt><dd><ul class="simple">
|
||||
<li><a class="reference external"
|
||||
data-doc-search-tag="blends: packAlphaValues(v: M128i): M128i" href="pixie/blends.html#packAlphaValues%2CM128i">blends: packAlphaValues(v: M128i): M128i</a></li>
|
||||
data-doc-search-tag="internal: packAlphaValues(v: M128i): M128i" href="pixie/internal.html#packAlphaValues%2CM128i">internal: packAlphaValues(v: M128i): M128i</a></li>
|
||||
</ul></dd>
|
||||
<dt><a name="Paint" href="#Paint"><span>Paint:</span></a></dt><dd><ul class="simple">
|
||||
<li><a class="reference external"
|
||||
|
@ -884,7 +884,7 @@ function main() {
|
|||
</ul></dd>
|
||||
<dt><a name="unpackAlphaValues" href="#unpackAlphaValues"><span>unpackAlphaValues:</span></a></dt><dd><ul class="simple">
|
||||
<li><a class="reference external"
|
||||
data-doc-search-tag="blends: unpackAlphaValues(v: M128i): M128i" href="pixie/blends.html#unpackAlphaValues%2CM128i">blends: unpackAlphaValues(v: M128i): M128i</a></li>
|
||||
data-doc-search-tag="internal: unpackAlphaValues(v: M128i): M128i" href="pixie/internal.html#unpackAlphaValues%2CM128i">internal: unpackAlphaValues(v: M128i): M128i</a></li>
|
||||
</ul></dd>
|
||||
<dt><a name="VLine" href="#VLine"><span>VLine:</span></a></dt><dd><ul class="simple">
|
||||
<li><a class="reference external"
|
||||
|
@ -923,7 +923,7 @@ function main() {
|
|||
<div class="twelve-columns footer">
|
||||
<span class="nim-sprite"></span>
|
||||
<br/>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:09 UTC</small>
|
||||
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 18:16:00 UTC</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -35,10 +35,10 @@ type
|
|||
bmIntersectMask
|
||||
bmExcludeMask
|
||||
|
||||
Blender* = proc(backdrop, source: ColorRGBA): ColorRGBA ## Function signature
|
||||
## returned by blender.
|
||||
Masker* = proc(backdrop, source: uint8): uint8 ## Function signature returned
|
||||
## by masker.
|
||||
Blender* = proc(backdrop, source: ColorRGBA): ColorRGBA
|
||||
## Function signature returned by blender.
|
||||
Masker* = proc(backdrop, source: uint8): uint8
|
||||
## Function signature returned by masker.
|
||||
|
||||
when defined(release):
|
||||
{.push checks: off.}
|
||||
|
@ -515,46 +515,10 @@ when defined(amd64) and not defined(pixieNoSimd):
|
|||
import nimsimd/sse2
|
||||
|
||||
type
|
||||
BlenderSimd* = proc(blackdrop, source: M128i): M128i ## Function signature
|
||||
## returned by blenderSimd.
|
||||
MaskerSimd* = proc(blackdrop, source: M128i): M128i ## Function signature
|
||||
## returned by maskerSimd.
|
||||
|
||||
proc packAlphaValues*(v: M128i): M128i {.inline.} =
|
||||
## Shuffle the alpha values for these 4 colors to the first 4 bytes
|
||||
result = mm_srli_epi32(v, 24)
|
||||
let
|
||||
i = mm_srli_si128(result, 3)
|
||||
j = mm_srli_si128(result, 6)
|
||||
k = mm_srli_si128(result, 9)
|
||||
first32 = cast[M128i]([uint32.high, 0, 0, 0])
|
||||
result = mm_or_si128(mm_or_si128(result, i), mm_or_si128(j, k))
|
||||
result = mm_and_si128(result, first32)
|
||||
|
||||
proc unpackAlphaValues*(v: M128i): M128i {.inline.} =
|
||||
## Unpack the first 32 bits into 4 rgba(0, 0, 0, value)
|
||||
let
|
||||
first32 = cast[M128i]([uint32.high, 0, 0, 0]) # First 32 bits
|
||||
alphaMask = mm_set1_epi32(cast[int32](0xff000000)) # Only `a`
|
||||
|
||||
result = mm_shuffle_epi32(v, MM_SHUFFLE(0, 0, 0, 0))
|
||||
|
||||
var
|
||||
i = mm_and_si128(result, first32)
|
||||
j = mm_and_si128(result, mm_slli_si128(first32, 4))
|
||||
k = mm_and_si128(result, mm_slli_si128(first32, 8))
|
||||
l = mm_and_si128(result, mm_slli_si128(first32, 12))
|
||||
|
||||
# Shift the values to `a`
|
||||
i = mm_slli_si128(i, 3)
|
||||
j = mm_slli_si128(j, 2)
|
||||
k = mm_slli_si128(k, 1)
|
||||
# l = mm_slli_si128(l, 0)
|
||||
|
||||
result = mm_and_si128(
|
||||
mm_or_si128(mm_or_si128(i, j), mm_or_si128(k, l)),
|
||||
alphaMask
|
||||
)
|
||||
BlenderSimd* = proc(blackdrop, source: M128i): M128i
|
||||
## Function signature returned by blenderSimd.
|
||||
MaskerSimd* = proc(blackdrop, source: M128i): M128i
|
||||
## Function signature returned by maskerSimd.
|
||||
|
||||
proc blendNormalSimd(backdrop, source: M128i): M128i =
|
||||
let
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import blends, bumpy, chroma, common, masks, system/memory, vmath
|
||||
import blends, bumpy, chroma, common, masks, pixie/internal, system/memory, vmath
|
||||
|
||||
when defined(amd64) and not defined(pixieNoSimd):
|
||||
import nimsimd/sse2
|
||||
|
|
38
src/pixie/internal.nim
Normal file
38
src/pixie/internal.nim
Normal file
|
@ -0,0 +1,38 @@
|
|||
when defined(amd64) and not defined(pixieNoSimd):
|
||||
import nimsimd/sse2
|
||||
|
||||
proc packAlphaValues*(v: M128i): M128i {.inline.} =
|
||||
## Shuffle the alpha values for these 4 colors to the first 4 bytes
|
||||
result = mm_srli_epi32(v, 24)
|
||||
let
|
||||
i = mm_srli_si128(result, 3)
|
||||
j = mm_srli_si128(result, 6)
|
||||
k = mm_srli_si128(result, 9)
|
||||
first32 = cast[M128i]([uint32.high, 0, 0, 0])
|
||||
result = mm_or_si128(mm_or_si128(result, i), mm_or_si128(j, k))
|
||||
result = mm_and_si128(result, first32)
|
||||
|
||||
proc unpackAlphaValues*(v: M128i): M128i {.inline.} =
|
||||
## Unpack the first 32 bits into 4 rgba(0, 0, 0, value)
|
||||
let
|
||||
first32 = cast[M128i]([uint32.high, 0, 0, 0]) # First 32 bits
|
||||
alphaMask = mm_set1_epi32(cast[int32](0xff000000)) # Only `a`
|
||||
|
||||
result = mm_shuffle_epi32(v, MM_SHUFFLE(0, 0, 0, 0))
|
||||
|
||||
var
|
||||
i = mm_and_si128(result, first32)
|
||||
j = mm_and_si128(result, mm_slli_si128(first32, 4))
|
||||
k = mm_and_si128(result, mm_slli_si128(first32, 8))
|
||||
l = mm_and_si128(result, mm_slli_si128(first32, 12))
|
||||
|
||||
# Shift the values to `a`
|
||||
i = mm_slli_si128(i, 3)
|
||||
j = mm_slli_si128(j, 2)
|
||||
k = mm_slli_si128(k, 1)
|
||||
# l = mm_slli_si128(l, 0)
|
||||
|
||||
result = mm_and_si128(
|
||||
mm_or_si128(mm_or_si128(i, j), mm_or_si128(k, l)),
|
||||
alphaMask
|
||||
)
|
|
@ -1,4 +1,5 @@
|
|||
import blends, bumpy, chroma, common, images, masks, paints, strutils, vmath
|
||||
import blends, bumpy, chroma, common, images, masks, paints, pixie/internal,
|
||||
strutils, vmath
|
||||
|
||||
when defined(amd64) and not defined(pixieNoSimd):
|
||||
import nimsimd/sse2
|
||||
|
|
Loading…
Reference in a new issue