Merge pull request #152 from guzba/master

1.1.0 SomeColor
This commit is contained in:
treeform 2021-03-11 19:56:26 -08:00 committed by GitHub
commit 26bd527edb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
22 changed files with 470 additions and 254 deletions

File diff suppressed because one or more lines are too long

View file

@ -1,35 +1,38 @@
ffPng pixie.html#ffPng FileFormat.ffPng
ffBmp pixie.html#ffBmp FileFormat.ffBmp
ffJpg pixie.html#ffJpg FileFormat.ffJpg
ffGif pixie.html#ffGif FileFormat.ffGif
FileFormat pixie.html#FileFormat pixie: FileFormat
autoStraightAlpha pixie.html#autoStraightAlpha.c,ColorRGBX pixie: autoStraightAlpha(c: ColorRGBX): ColorRGBA
autoPremultipliedAlpha pixie.html#autoPremultipliedAlpha.c,ColorRGBA pixie: autoPremultipliedAlpha(c: ColorRGBA): ColorRGBX
decodeImage pixie.html#decodeImage pixie: decodeImage(data: string | seq[uint8]): Image
readImage pixie.html#readImage,string pixie: readImage(filePath: string): Image
encodeImage pixie.html#encodeImage,Image,FileFormat pixie: encodeImage(image: Image; fileFormat: FileFormat): string
writeFile pixie.html#writeFile,Image,string,FileFormat pixie: writeFile(image: Image; filePath: string; fileFormat: FileFormat)
writeFile pixie.html#writeFile,Image,string pixie: writeFile(image: Image; filePath: string)
fillRect pixie.html#fillRect,Image,Rect,ColorRGBA pixie: fillRect(image: Image; rect: Rect; color: ColorRGBA)
fillRect pixie.html#fillRect,Image,Rect,SomeColor pixie: fillRect(image: Image; rect: Rect; color: SomeColor)
fillRect pixie.html#fillRect,Mask,Rect pixie: fillRect(mask: Mask; rect: Rect)
strokeRect pixie.html#strokeRect,Image,Rect,ColorRGBA,float pixie: strokeRect(image: Image; rect: Rect; color: ColorRGBA; strokeWidth = 1.0)
strokeRect pixie.html#strokeRect,Image,Rect,SomeColor,float pixie: strokeRect(image: Image; rect: Rect; color: SomeColor; strokeWidth = 1.0)
strokeRect pixie.html#strokeRect,Mask,Rect,float pixie: strokeRect(mask: Mask; rect: Rect; strokeWidth = 1.0)
fillRoundedRect pixie.html#fillRoundedRect,Image,Rect,float32,float32,float32,float32,ColorRGBA pixie: fillRoundedRect(image: Image; rect: Rect; nw, ne, se, sw: float32;\n color: ColorRGBA)
fillRoundedRect pixie.html#fillRoundedRect,Image,Rect,float32,ColorRGBA pixie: fillRoundedRect(image: Image; rect: Rect; radius: float32; color: ColorRGBA)
fillRoundedRect pixie.html#fillRoundedRect,Image,Rect,float32,float32,float32,float32,SomeColor pixie: fillRoundedRect(image: Image; rect: Rect; nw, ne, se, sw: float32;\n color: SomeColor)
fillRoundedRect pixie.html#fillRoundedRect,Image,Rect,float32,SomeColor pixie: fillRoundedRect(image: Image; rect: Rect; radius: float32; color: SomeColor)
fillRoundedRect pixie.html#fillRoundedRect,Mask,Rect,float32,float32,float32,float32 pixie: fillRoundedRect(mask: Mask; rect: Rect; nw, ne, se, sw: float32)
fillRoundedRect pixie.html#fillRoundedRect,Mask,Rect,float32 pixie: fillRoundedRect(mask: Mask; rect: Rect; radius: float32)
strokeRoundedRect pixie.html#strokeRoundedRect,Image,Rect,float32,float32,float32,float32,ColorRGBA,float pixie: strokeRoundedRect(image: Image; rect: Rect; nw, ne, se, sw: float32;\n color: ColorRGBA; strokeWidth = 1.0)
strokeRoundedRect pixie.html#strokeRoundedRect,Image,Rect,float32,ColorRGBA,float pixie: strokeRoundedRect(image: Image; rect: Rect; radius: float32; color: ColorRGBA;\n strokeWidth = 1.0)
strokeRoundedRect pixie.html#strokeRoundedRect,Image,Rect,float32,float32,float32,float32,SomeColor,float pixie: strokeRoundedRect(image: Image; rect: Rect; nw, ne, se, sw: float32;\n color: SomeColor; strokeWidth = 1.0)
strokeRoundedRect pixie.html#strokeRoundedRect,Image,Rect,float32,SomeColor,float pixie: strokeRoundedRect(image: Image; rect: Rect; radius: float32; color: SomeColor;\n strokeWidth = 1.0)
strokeRoundedRect pixie.html#strokeRoundedRect,Mask,Rect,float32,float32,float32,float32,float pixie: strokeRoundedRect(mask: Mask; rect: Rect; nw, ne, se, sw: float32;\n strokeWidth = 1.0)
strokeRoundedRect pixie.html#strokeRoundedRect,Mask,Rect,float32,float pixie: strokeRoundedRect(mask: Mask; rect: Rect; radius: float32; strokeWidth = 1.0)
strokeSegment pixie.html#strokeSegment,Image,Segment,ColorRGBA,float pixie: strokeSegment(image: Image; segment: Segment; color: ColorRGBA;\n strokeWidth = 1.0)
strokeSegment pixie.html#strokeSegment,Image,Segment,SomeColor,float pixie: strokeSegment(image: Image; segment: Segment; color: SomeColor;\n strokeWidth = 1.0)
strokeSegment pixie.html#strokeSegment,Mask,Segment,float32 pixie: strokeSegment(mask: Mask; segment: Segment; strokeWidth: float32)
fillEllipse pixie.html#fillEllipse,Image,Vec2,float32,float32,ColorRGBA pixie: fillEllipse(image: Image; center: Vec2; rx, ry: float32; color: ColorRGBA;\n blendMode = bmNormal)
fillEllipse pixie.html#fillEllipse,Image,Vec2,float32,float32,SomeColor pixie: fillEllipse(image: Image; center: Vec2; rx, ry: float32; color: SomeColor;\n blendMode = bmNormal)
fillEllipse pixie.html#fillEllipse,Mask,Vec2,float32,float32 pixie: fillEllipse(mask: Mask; center: Vec2; rx, ry: float32)
strokeEllipse pixie.html#strokeEllipse,Image,Vec2,float32,float32,ColorRGBA,float pixie: strokeEllipse(image: Image; center: Vec2; rx, ry: float32; color: ColorRGBA;\n strokeWidth = 1.0)
strokeEllipse pixie.html#strokeEllipse,Image,Vec2,float32,float32,SomeColor,float pixie: strokeEllipse(image: Image; center: Vec2; rx, ry: float32; color: SomeColor;\n strokeWidth = 1.0)
strokeEllipse pixie.html#strokeEllipse,Mask,Vec2,float32,float32,float pixie: strokeEllipse(mask: Mask; center: Vec2; rx, ry: float32; strokeWidth = 1.0)
fillCircle pixie.html#fillCircle,Image,Vec2,float32,ColorRGBA pixie: fillCircle(image: Image; center: Vec2; radius: float32; color: ColorRGBA)
fillCircle pixie.html#fillCircle,Image,Vec2,float32,SomeColor pixie: fillCircle(image: Image; center: Vec2; radius: float32; color: SomeColor)
fillCircle pixie.html#fillCircle,Mask,Vec2,float32 pixie: fillCircle(mask: Mask; center: Vec2; radius: float32)
strokeCircle pixie.html#strokeCircle,Image,Vec2,float32,ColorRGBA,float pixie: strokeCircle(image: Image; center: Vec2; radius: float32; color: ColorRGBA;\n strokeWidth = 1.0)
strokeCircle pixie.html#strokeCircle,Image,Vec2,float32,SomeColor,float pixie: strokeCircle(image: Image; center: Vec2; radius: float32; color: SomeColor;\n strokeWidth = 1.0)
strokeCircle pixie.html#strokeCircle,Mask,Vec2,float32,float pixie: strokeCircle(mask: Mask; center: Vec2; radius: float32; strokeWidth = 1.0)
fillPolygon pixie.html#fillPolygon,Image,Vec2,float32,int,ColorRGBA pixie: fillPolygon(image: Image; pos: Vec2; size: float32; sides: int; color: ColorRGBA)
fillPolygon pixie.html#fillPolygon,Image,Vec2,float32,int,SomeColor pixie: fillPolygon(image: Image; pos: Vec2; size: float32; sides: int; color: SomeColor)
fillPolygon pixie.html#fillPolygon,Mask,Vec2,float32,int pixie: fillPolygon(mask: Mask; pos: Vec2; size: float32; sides: int)
strokePolygon pixie.html#strokePolygon,Image,Vec2,float32,int,ColorRGBA,float pixie: strokePolygon(image: Image; pos: Vec2; size: float32; sides: int;\n color: ColorRGBA; strokeWidth = 1.0)
strokePolygon pixie.html#strokePolygon,Image,Vec2,float32,int,SomeColor,float pixie: strokePolygon(image: Image; pos: Vec2; size: float32; sides: int;\n color: SomeColor; strokeWidth = 1.0)
strokePolygon pixie.html#strokePolygon,Mask,Vec2,float32,int,float pixie: strokePolygon(mask: Mask; pos: Vec2; size: float32; sides: int;\n strokeWidth = 1.0)

View file

@ -283,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-28 07:11:38 UTC</small>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-03-12 03:47:39 UTC</small>
</div>
</div>
</div>

View file

@ -196,7 +196,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-28 07:11:38 UTC</small>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-03-12 03:47:39 UTC</small>
</div>
</div>
</div>

View file

@ -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-28 07:11:38 UTC</small>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-03-12 03:47:39 UTC</small>
</div>
</div>
</div>

View file

@ -0,0 +1,171 @@
<?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/fileformats/gif</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/fileformats/gif</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>
&nbsp;&nbsp;&nbsp; <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="#6" id="56">Imports</a>
<ul class="simple simple-toc-section">
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#10" id="60">Consts</a>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#gifSignatures"
title="gifSignatures = [&quot;GIF87a&quot;, &quot;GIF89a&quot;]">gifSignatures</a></li>
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#12" id="62">Procs</a>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">decodeGif
<li><a class="reference" href="#decodeGif%2Cstring"
title="decodeGif(data: string): Image">decodeGif,<wbr>string</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="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="../common.html">../common</a>, <a class="reference external" href="../images.html">../images</a>
</dl></div>
<div class="section" id="10">
<h1><a class="toc-backref" href="#10">Consts</a></h1>
<dl class="item">
<a id="gifSignatures"></a>
<dt><pre><a href="gif.html#gifSignatures"><span class="Identifier">gifSignatures</span></a> <span class="Other">=</span> <span class="Other">[</span><span class="StringLit">&quot;GIF87a&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;GIF89a&quot;</span><span class="Other">]</span></pre></dt>
<dd>
</dd>
</dl></div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<a id="decodeGif,string"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#decodeGif%2Cstring"><span class="Identifier">decodeGif</span></a><span class="Other">(</span><span class="Identifier">data</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="../images.html#Image"><span class="Identifier">Image</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> <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>
Decodes GIF data into an Image.
</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-03-12 03:47:39 UTC</small>
</div>
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,2 @@
gifSignatures pixie/fileformats/gif.html#gifSignatures gif: gifSignatures
decodeGif pixie/fileformats/gif.html#decodeGif,string gif: decodeGif(data: string): Image

View file

@ -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-28 07:11:38 UTC</small>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-03-12 03:47:39 UTC</small>
</div>
</div>
</div>

View file

@ -138,7 +138,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="../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="../internal.html">../internal</a>
<a class="reference external" href="../common.html">../common</a>, <a class="reference external" href="../images.html">../images</a>, <a class="reference external" href="../internal.html">../internal</a>, <a class="reference external" href="../masks.html">../masks</a>
</dl></div>
<div class="section" id="10">
<h1><a class="toc-backref" href="#10">Consts</a></h1>
@ -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-28 07:11:38 UTC</small>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-03-12 03:47:39 UTC</small>
</div>
</div>
</div>

View file

@ -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-28 07:11:38 UTC</small>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-03-12 03:47:40 UTC</small>
</div>
</div>
</div>

View file

@ -145,8 +145,8 @@ function main() {
</ul>
<ul class="simple nested-toc-section">setRgbaUnsafe
<li><a class="reference" href="#setRgbaUnsafe%2CImage%2Cint%2Cint%2CColorRGBX"
title="setRgbaUnsafe(image: Image; x, y: int; rgba: ColorRGBX)">setRgbaUnsafe,<wbr>Image,<wbr>int,<wbr>int,<wbr>ColorRGBX</a></li>
<li><a class="reference" href="#setRgbaUnsafe%2CImage%2Cint%2Cint%2CSomeColor"
title="setRgbaUnsafe(image: Image; x, y: int; color: SomeColor)">setRgbaUnsafe,<wbr>Image,<wbr>int,<wbr>int,<wbr>SomeColor</a></li>
</ul>
<ul class="simple nested-toc-section">shift
@ -155,8 +155,8 @@ function main() {
</ul>
<ul class="simple nested-toc-section">[]=
<li><a class="reference" href="#%5B%5D%3D%2CImage%2Cint%2Cint%2CColorRGBX"
title="`[]=`(image: Image; x, y: int; rgba: ColorRGBX)">[]=,<wbr>Image,<wbr>int,<wbr>int,<wbr>ColorRGBX</a></li>
<li><a class="reference" href="#%5B%5D%3D%2CImage%2Cint%2Cint%2CSomeColor"
title="`[]=`(image: Image; x, y: int; color: SomeColor)">[]=,<wbr>Image,<wbr>int,<wbr>int,<wbr>SomeColor</a></li>
</ul>
<ul class="simple nested-toc-section">invert
@ -175,8 +175,8 @@ function main() {
</ul>
<ul class="simple nested-toc-section">fill
<li><a class="reference" href="#fill%2CImage%2CColorRGBX"
title="fill(image: Image; rgba: ColorRGBX)">fill,<wbr>Image,<wbr>ColorRGBX</a></li>
<li><a class="reference" href="#fill%2CImage%2CSomeColor"
title="fill(image: Image; color: SomeColor)">fill,<wbr>Image,<wbr>SomeColor</a></li>
</ul>
<ul class="simple nested-toc-section">wh
@ -200,8 +200,8 @@ function main() {
</ul>
<ul class="simple nested-toc-section">shadow
<li><a class="reference" href="#shadow%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CColorRGBX"
title="shadow(image: Image; offset: Vec2; spread, blur: float32; color: ColorRGBX): Image">shadow,<wbr>Image,<wbr>Vec2,<wbr>float32,<wbr>float32,<wbr>ColorRGBX</a></li>
<li><a class="reference" href="#shadow%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CSomeColor"
title="shadow(image: Image; offset: Vec2; spread, blur: float32; color: SomeColor): Image">shadow,<wbr>Image,<wbr>Vec2,<wbr>float32,<wbr>float32,<wbr>SomeColor</a></li>
</ul>
<ul class="simple nested-toc-section">newMask
@ -235,8 +235,8 @@ function main() {
</ul>
<ul class="simple nested-toc-section">blur
<li><a class="reference" href="#blur%2CImage%2Cfloat32"
title="blur(image: Image; radius: float32; outOfBounds = ColorRGBX())">blur,<wbr>Image,<wbr>float32</a></li>
<li><a class="reference" href="#blur%2CImage%2Cfloat32%2CSomeColor"
title="blur(image: Image; radius: float32; outOfBounds: SomeColor = ColorRGBX())">blur,<wbr>Image,<wbr>float32,<wbr>SomeColor</a></li>
</ul>
<ul class="simple nested-toc-section">dataIndex
@ -265,8 +265,8 @@ function main() {
</ul>
<ul class="simple nested-toc-section">fillUnsafe
<li><a class="reference" href="#fillUnsafe%2Cseq%5BColorRGBX%5D%2CColorRGBX%2Cint%2Cint"
title="fillUnsafe(data: var seq[ColorRGBX]; rgba: ColorRGBX; start, len: int)">fillUnsafe,<wbr>seq[ColorRGBX],<wbr>ColorRGBX,<wbr>int,<wbr>int</a></li>
<li><a class="reference" href="#fillUnsafe%2Cseq%5BColorRGBX%5D%2CSomeColor%2Cint%2Cint"
title="fillUnsafe(data: var seq[ColorRGBX]; color: SomeColor; start, len: int)">fillUnsafe,<wbr>seq[ColorRGBX],<wbr>SomeColor,<wbr>int,<wbr>int</a></li>
</ul>
@ -363,9 +363,8 @@ Gets a color from (x, y) coordinates.<ul class="simple"><li>No bounds checking *
Gets a pixel at (x, y) or returns transparent black if outside of bounds.
</dd>
<a id="setRgbaUnsafe,Image,int,int,ColorRGBX"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setRgbaUnsafe%2CImage%2Cint%2Cint%2CColorRGBX"><span class="Identifier">setRgbaUnsafe</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">rgba</span><span class="Other">:</span> <span class="Identifier">ColorRGBX</span><span class="Other">)</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>
<a id="setRgbaUnsafe,Image,int,int,SomeColor"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setRgbaUnsafe%2CImage%2Cint%2Cint%2CSomeColor"><span class="Identifier">setRgbaUnsafe</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">SomeColor</span><span class="Other">)</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><span class="Other">.}</span></span></pre></dt>
<dd>
Sets a color from (x, y) coordinates.<ul class="simple"><li>No bounds checking *</li>
@ -374,24 +373,22 @@ Sets a color from (x, y) coordinates.<ul class="simple"><li>No bounds checking *
</dd>
<a id="[]=,Image,int,int,ColorRGBX"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CImage%2Cint%2Cint%2CColorRGBX"><span class="Identifier">`[]=`</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">rgba</span><span class="Other">:</span> <span class="Identifier">ColorRGBX</span><span class="Other">)</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>
<a id="[]=,Image,int,int,SomeColor"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CImage%2Cint%2Cint%2CSomeColor"><span class="Identifier">`[]=`</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">SomeColor</span><span class="Other">)</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><span class="Other">.}</span></span></pre></dt>
<dd>
Sets a pixel at (x, y) or does nothing if outside of bounds.
</dd>
<a id="fillUnsafe,seq[ColorRGBX],ColorRGBX,int,int"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#fillUnsafe%2Cseq%5BColorRGBX%5D%2CColorRGBX%2Cint%2Cint"><span class="Identifier">fillUnsafe</span></a><span class="Other">(</span><span class="Identifier">data</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Identifier">ColorRGBX</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">rgba</span><span class="Other">:</span> <span class="Identifier">ColorRGBX</span><span class="Other">;</span> <span class="Identifier">start</span><span class="Other">,</span> <span class="Identifier">len</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</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">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>
<a id="fillUnsafe,seq[ColorRGBX],SomeColor,int,int"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#fillUnsafe%2Cseq%5BColorRGBX%5D%2CSomeColor%2Cint%2Cint"><span class="Identifier">fillUnsafe</span></a><span class="Other">(</span><span class="Identifier">data</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Identifier">ColorRGBX</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">SomeColor</span><span class="Other">;</span> <span class="Identifier">start</span><span class="Other">,</span> <span class="Identifier">len</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span></pre></dt>
<dd>
Fills the image data with the parameter color starting at index start and continuing for len indices.
</dd>
<a id="fill,Image,ColorRGBX"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#fill%2CImage%2CColorRGBX"><span class="Identifier">fill</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">rgba</span><span class="Other">:</span> <span class="Identifier">ColorRGBX</span><span class="Other">)</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>
<a id="fill,Image,SomeColor"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#fill%2CImage%2CSomeColor"><span class="Identifier">fill</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">SomeColor</span><span class="Other">)</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><span class="Other">.}</span></span></pre></dt>
<dd>
Fills the image with the parameter color.
@ -463,9 +460,8 @@ Multiplies alpha of the image by opacity.
Inverts all of the colors and alpha.
</dd>
<a id="blur,Image,float32"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#blur%2CImage%2Cfloat32"><span class="Identifier">blur</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span> <span class="Identifier">outOfBounds</span> <span class="Other">=</span> <span class="Identifier">ColorRGBX</span><span class="Other">(</span><span class="Other">)</span><span class="Other">)</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">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</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>
<a id="blur,Image,float32,SomeColor"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#blur%2CImage%2Cfloat32%2CSomeColor"><span class="Identifier">blur</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span> <span class="Identifier">outOfBounds</span><span class="Other">:</span> <span class="Identifier">SomeColor</span> <span class="Other">=</span> <span class="Identifier">ColorRGBX</span><span class="Other">(</span><span class="Other">)</span><span class="Other">)</span></pre></dt>
<dd>
Applies Gaussian blur to the image given a radius.
@ -573,9 +569,8 @@ Resize an image to a given hight and width.
Shifts the target by offset.
</dd>
<a id="shadow,Image,Vec2,float32,float32,ColorRGBX"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#shadow%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CColorRGBX"><span class="Identifier">shadow</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">offset</span><span class="Other">:</span> <span class="Identifier">Vec2</span><span class="Other">;</span> <span class="Identifier">spread</span><span class="Other">,</span> <span class="Identifier">blur</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBX</span><span class="Other">)</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</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="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
<a id="shadow,Image,Vec2,float32,float32,SomeColor"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#shadow%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CSomeColor"><span class="Identifier">shadow</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">offset</span><span class="Other">:</span> <span class="Identifier">Vec2</span><span class="Other">;</span> <span class="Identifier">spread</span><span class="Other">,</span> <span class="Identifier">blur</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">SomeColor</span><span class="Other">)</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a></pre></dt>
<dd>
Create a shadow of the image with the offset, spread and blur.
@ -591,7 +586,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-28 07:11:38 UTC</small>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-03-12 03:47:39 UTC</small>
</div>
</div>
</div>

View file

@ -7,10 +7,10 @@ inside pixie/images.html#inside,Image,int,int images: inside(image: Image; x, y:
dataIndex pixie/images.html#dataIndex,Image,int,int images: dataIndex(image: Image; x, y: int): int
getRgbaUnsafe pixie/images.html#getRgbaUnsafe,Image,int,int images: getRgbaUnsafe(image: Image; x, y: int): ColorRGBX
`[]` pixie/images.html#[],Image,int,int images: `[]`(image: Image; x, y: int): ColorRGBX
setRgbaUnsafe pixie/images.html#setRgbaUnsafe,Image,int,int,ColorRGBX images: setRgbaUnsafe(image: Image; x, y: int; rgba: ColorRGBX)
`[]=` pixie/images.html#[]=,Image,int,int,ColorRGBX images: `[]=`(image: Image; x, y: int; rgba: ColorRGBX)
fillUnsafe pixie/images.html#fillUnsafe,seq[ColorRGBX],ColorRGBX,int,int images: fillUnsafe(data: var seq[ColorRGBX]; rgba: ColorRGBX; start, len: int)
fill pixie/images.html#fill,Image,ColorRGBX images: fill(image: Image; rgba: ColorRGBX)
setRgbaUnsafe pixie/images.html#setRgbaUnsafe,Image,int,int,SomeColor images: setRgbaUnsafe(image: Image; x, y: int; color: SomeColor)
`[]=` pixie/images.html#[]=,Image,int,int,SomeColor images: `[]=`(image: Image; x, y: int; color: SomeColor)
fillUnsafe pixie/images.html#fillUnsafe,seq[ColorRGBX],SomeColor,int,int images: fillUnsafe(data: var seq[ColorRGBX]; color: SomeColor; start, len: int)
fill pixie/images.html#fill,Image,SomeColor images: fill(image: Image; color: SomeColor)
flipHorizontal pixie/images.html#flipHorizontal,Image images: flipHorizontal(image: Image)
flipVertical pixie/images.html#flipVertical,Image images: flipVertical(image: Image)
subImage pixie/images.html#subImage,Image,int,int,int,int images: subImage(image: Image; x, y, w, h: int): Image
@ -20,7 +20,7 @@ minifyBy2 pixie/images.html#minifyBy2,Image,int images: minifyBy2(image: Image;
magnifyBy2 pixie/images.html#magnifyBy2,Image,int images: magnifyBy2(image: Image; power = 1): Image
applyOpacity pixie/images.html#applyOpacity,,float32 images: applyOpacity(target: Image | Mask; opacity: float32)
invert pixie/images.html#invert images: invert(target: Image | Mask)
blur pixie/images.html#blur,Image,float32 images: blur(image: Image; radius: float32; outOfBounds = ColorRGBX())
blur pixie/images.html#blur,Image,float32,SomeColor images: blur(image: Image; radius: float32; outOfBounds: SomeColor = ColorRGBX())
newMask pixie/images.html#newMask,Image images: newMask(image: Image): Mask
getRgbaSmooth pixie/images.html#getRgbaSmooth,Image,float32,float32 images: getRgbaSmooth(image: Image; x, y: float32; wrapped = false): ColorRGBX
draw pixie/images.html#draw,Image,Image,Mat3 images: draw(a, b: Image; mat: Mat3; blendMode = bmNormal)
@ -34,4 +34,4 @@ draw pixie/images.html#draw,Mask,Image images: draw(mask: Mask; image: Image; po
drawTiled pixie/images.html#drawTiled,Image,Image,Mat3 images: drawTiled(dest, src: Image; mat: Mat3; blendMode = bmNormal)
resize pixie/images.html#resize,Image,int,int images: resize(srcImage: Image; width, height: int): Image
shift pixie/images.html#shift,,Vec2 images: shift(target: Image | Mask; offset: Vec2)
shadow pixie/images.html#shadow,Image,Vec2,float32,float32,ColorRGBX images: shadow(image: Image; offset: Vec2; spread, blur: float32; color: ColorRGBX): Image
shadow pixie/images.html#shadow,Image,Vec2,float32,float32,SomeColor images: shadow(image: Image; offset: Vec2; spread, blur: float32; color: SomeColor): Image

View file

@ -178,7 +178,7 @@ Unpack the first 32 bits into 4 rgba(0, 0, 0, value)
<div class="twelve-columns footer">
<span class="nim-sprite"></span>
<br/>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-28 07:11:38 UTC</small>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-03-12 03:47:39 UTC</small>
</div>
</div>
</div>

View file

@ -367,7 +367,7 @@ Applies Gaussian blur to the image given a radius.
<div class="twelve-columns footer">
<span class="nim-sprite"></span>
<br/>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-02-28 07:11:38 UTC</small>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-03-12 03:47:39 UTC</small>
</div>
</div>
</div>

View file

@ -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-28 07:11:38 UTC</small>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-03-12 03:47:39 UTC</small>
</div>
</div>
</div>

View file

@ -152,13 +152,13 @@ function main() {
</ul>
<ul class="simple nested-toc-section">strokePath
<li><a class="reference" href="#strokePath%2CImage%2CSomePath%2CColorRGBX%2Cfloat"
title="strokePath(image: Image; path: SomePath; color: ColorRGBX; strokeWidth = 1.0;
lineCap = lcButt; lineJoin = ljMiter; blendMode = bmNormal)">strokePath,<wbr>Image,<wbr>SomePath,<wbr>ColorRGBX,<wbr>float</a></li>
<li><a class="reference" href="#strokePath%2CImage%2CSomePath%2CColorRGBX%2C%2Cfloat"
title="strokePath(image: Image; path: SomePath; color: ColorRGBX;
<li><a class="reference" href="#strokePath%2CImage%2CSomePath%2CSomeColor%2Cfloat"
title="strokePath(image: Image; path: SomePath; color: SomeColor; strokeWidth = 1.0;
lineCap = lcButt; lineJoin = ljMiter; blendMode = bmNormal)">strokePath,<wbr>Image,<wbr>SomePath,<wbr>SomeColor,<wbr>float</a></li>
<li><a class="reference" href="#strokePath%2CImage%2CSomePath%2CSomeColor%2C%2Cfloat"
title="strokePath(image: Image; path: SomePath; color: SomeColor;
transform: Vec2 | Mat3; strokeWidth = 1.0; lineCap = lcButt;
lineJoin = ljMiter; blendMode = bmNormal)">strokePath,<wbr>Image,<wbr>SomePath,<wbr>ColorRGBX,<wbr>,<wbr>float</a></li>
lineJoin = ljMiter; blendMode = bmNormal)">strokePath,<wbr>Image,<wbr>SomePath,<wbr>SomeColor,<wbr>,<wbr>float</a></li>
<li><a class="reference" href="#strokePath%2CMask%2CSomePath%2Cfloat"
title="strokePath(mask: Mask; path: SomePath; strokeWidth = 1.0; lineCap = lcButt;
lineJoin = ljMiter)">strokePath,<wbr>Mask,<wbr>SomePath,<wbr>float</a></li>
@ -252,12 +252,12 @@ function main() {
</ul>
<ul class="simple nested-toc-section">fillPath
<li><a class="reference" href="#fillPath%2CImage%2CSomePath%2CColorRGBX"
title="fillPath(image: Image; path: SomePath; color: ColorRGBX;
windingRule = wrNonZero; blendMode = bmNormal)">fillPath,<wbr>Image,<wbr>SomePath,<wbr>ColorRGBX</a></li>
<li><a class="reference" href="#fillPath%2CImage%2CSomePath%2CColorRGBX%2C"
title="fillPath(image: Image; path: SomePath; color: ColorRGBX; transform: Vec2 | Mat3;
windingRule = wrNonZero; blendMode = bmNormal)">fillPath,<wbr>Image,<wbr>SomePath,<wbr>ColorRGBX,<wbr></a></li>
<li><a class="reference" href="#fillPath%2CImage%2CSomePath%2CSomeColor"
title="fillPath(image: Image; path: SomePath; color: SomeColor;
windingRule = wrNonZero; blendMode = bmNormal)">fillPath,<wbr>Image,<wbr>SomePath,<wbr>SomeColor</a></li>
<li><a class="reference" href="#fillPath%2CImage%2CSomePath%2CSomeColor%2C"
title="fillPath(image: Image; path: SomePath; color: SomeColor; transform: Vec2 | Mat3;
windingRule = wrNonZero; blendMode = bmNormal)">fillPath,<wbr>Image,<wbr>SomePath,<wbr>SomeColor,<wbr></a></li>
<li><a class="reference" href="#fillPath%2CMask%2CSomePath"
title="fillPath(mask: Mask; path: SomePath; windingRule = wrNonZero)">fillPath,<wbr>Mask,<wbr>SomePath</a></li>
<li><a class="reference" href="#fillPath%2CMask%2CSomePath%2C"
@ -566,16 +566,16 @@ Draws a n-sided regular polygon at (x, y) with the parameter size.
Converts SVG-like commands to line segments.
</dd>
<a id="fillPath,Image,SomePath,ColorRGBX"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#fillPath%2CImage%2CSomePath%2CColorRGBX"><span class="Identifier">fillPath</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">path</span><span class="Other">:</span> <a href="paths.html#SomePath"><span class="Identifier">SomePath</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBX</span><span class="Other">;</span>
<a id="fillPath,Image,SomePath,SomeColor"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#fillPath%2CImage%2CSomePath%2CSomeColor"><span class="Identifier">fillPath</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">path</span><span class="Other">:</span> <a href="paths.html#SomePath"><span class="Identifier">SomePath</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">SomeColor</span><span class="Other">;</span>
<span class="Identifier">windingRule</span> <span class="Other">=</span> <span class="Identifier">wrNonZero</span><span class="Other">;</span> <span class="Identifier">blendMode</span> <span class="Other">=</span> <span class="Identifier">bmNormal</span><span class="Other">)</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><span class="Other">.}</span></span></pre></dt>
<dd>
Fills a path.
</dd>
<a id="fillPath,Image,SomePath,ColorRGBX,"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#fillPath%2CImage%2CSomePath%2CColorRGBX%2C"><span class="Identifier">fillPath</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">path</span><span class="Other">:</span> <a href="paths.html#SomePath"><span class="Identifier">SomePath</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBX</span><span class="Other">;</span>
<a id="fillPath,Image,SomePath,SomeColor,"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#fillPath%2CImage%2CSomePath%2CSomeColor%2C"><span class="Identifier">fillPath</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">path</span><span class="Other">:</span> <a href="paths.html#SomePath"><span class="Identifier">SomePath</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">SomeColor</span><span class="Other">;</span>
<span class="Identifier">transform</span><span class="Other">:</span> <span class="Identifier">Vec2</span> <span class="Operator">|</span> <span class="Identifier">Mat3</span><span class="Other">;</span> <span class="Identifier">windingRule</span> <span class="Other">=</span> <span class="Identifier">wrNonZero</span><span class="Other">;</span>
<span class="Identifier">blendMode</span> <span class="Other">=</span> <span class="Identifier">bmNormal</span><span class="Other">)</span></pre></dt>
<dd>
@ -606,8 +606,8 @@ Fills a path.
Fills a path.
</dd>
<a id="strokePath,Image,SomePath,ColorRGBX,float"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#strokePath%2CImage%2CSomePath%2CColorRGBX%2Cfloat"><span class="Identifier">strokePath</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">path</span><span class="Other">:</span> <a href="paths.html#SomePath"><span class="Identifier">SomePath</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBX</span><span class="Other">;</span>
<a id="strokePath,Image,SomePath,SomeColor,float"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#strokePath%2CImage%2CSomePath%2CSomeColor%2Cfloat"><span class="Identifier">strokePath</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">path</span><span class="Other">:</span> <a href="paths.html#SomePath"><span class="Identifier">SomePath</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">SomeColor</span><span class="Other">;</span>
<span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">;</span> <span class="Identifier">lineCap</span> <span class="Other">=</span> <span class="Identifier">lcButt</span><span class="Other">;</span> <span class="Identifier">lineJoin</span> <span class="Other">=</span> <span class="Identifier">ljMiter</span><span class="Other">;</span>
<span class="Identifier">blendMode</span> <span class="Other">=</span> <span class="Identifier">bmNormal</span><span class="Other">)</span></pre></dt>
<dd>
@ -615,8 +615,8 @@ Fills a path.
Strokes a path.
</dd>
<a id="strokePath,Image,SomePath,ColorRGBX,,float"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#strokePath%2CImage%2CSomePath%2CColorRGBX%2C%2Cfloat"><span class="Identifier">strokePath</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">path</span><span class="Other">:</span> <a href="paths.html#SomePath"><span class="Identifier">SomePath</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBX</span><span class="Other">;</span>
<a id="strokePath,Image,SomePath,SomeColor,,float"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#strokePath%2CImage%2CSomePath%2CSomeColor%2C%2Cfloat"><span class="Identifier">strokePath</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">path</span><span class="Other">:</span> <a href="paths.html#SomePath"><span class="Identifier">SomePath</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">SomeColor</span><span class="Other">;</span>
<span class="Identifier">transform</span><span class="Other">:</span> <span class="Identifier">Vec2</span> <span class="Operator">|</span> <span class="Identifier">Mat3</span><span class="Other">;</span> <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">;</span> <span class="Identifier">lineCap</span> <span class="Other">=</span> <span class="Identifier">lcButt</span><span class="Other">;</span>
<span class="Identifier">lineJoin</span> <span class="Other">=</span> <span class="Identifier">ljMiter</span><span class="Other">;</span> <span class="Identifier">blendMode</span> <span class="Other">=</span> <span class="Identifier">bmNormal</span><span class="Other">)</span></pre></dt>
<dd>
@ -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-28 07:11:38 UTC</small>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-03-12 03:47:39 UTC</small>
</div>
</div>
</div>

View file

@ -60,12 +60,12 @@ polygon pixie/paths.html#polygon,Path,float32,float32,float32,int paths: polygon
polygon pixie/paths.html#polygon,Path,Vec2,float32,int paths: polygon(path: var Path; pos: Vec2; size: float32; sides: int)
commandsToShapes pixie/paths.html#commandsToShapes,Path,float32 paths: commandsToShapes(path: Path; pixelScale: float32 = 1.0): seq[seq[Vec2]]
segments pixie/paths.html#segments.i,seq[Vec2] paths: segments(s: seq[Vec2]): Segment
fillPath pixie/paths.html#fillPath,Image,SomePath,ColorRGBX paths: fillPath(image: Image; path: SomePath; color: ColorRGBX;\n windingRule = wrNonZero; blendMode = bmNormal)
fillPath pixie/paths.html#fillPath,Image,SomePath,ColorRGBX, paths: fillPath(image: Image; path: SomePath; color: ColorRGBX; transform: Vec2 | Mat3;\n windingRule = wrNonZero; blendMode = bmNormal)
fillPath pixie/paths.html#fillPath,Image,SomePath,SomeColor paths: fillPath(image: Image; path: SomePath; color: SomeColor;\n windingRule = wrNonZero; blendMode = bmNormal)
fillPath pixie/paths.html#fillPath,Image,SomePath,SomeColor, paths: fillPath(image: Image; path: SomePath; color: SomeColor; transform: Vec2 | Mat3;\n windingRule = wrNonZero; blendMode = bmNormal)
fillPath pixie/paths.html#fillPath,Mask,SomePath paths: fillPath(mask: Mask; path: SomePath; windingRule = wrNonZero)
fillPath pixie/paths.html#fillPath,Mask,SomePath, paths: fillPath(mask: Mask; path: SomePath; transform: Vec2 | Mat3;\n windingRule = wrNonZero)
fillPath pixie/paths.html#fillPath,Image,SomePath,Paint paths: fillPath(image: Image; path: SomePath; paint: Paint; windingRule = wrNonZero)
strokePath pixie/paths.html#strokePath,Image,SomePath,ColorRGBX,float paths: strokePath(image: Image; path: SomePath; color: ColorRGBX; strokeWidth = 1.0;\n lineCap = lcButt; lineJoin = ljMiter; blendMode = bmNormal)
strokePath pixie/paths.html#strokePath,Image,SomePath,ColorRGBX,,float paths: strokePath(image: Image; path: SomePath; color: ColorRGBX;\n transform: Vec2 | Mat3; strokeWidth = 1.0; lineCap = lcButt;\n lineJoin = ljMiter; blendMode = bmNormal)
strokePath pixie/paths.html#strokePath,Image,SomePath,SomeColor,float paths: strokePath(image: Image; path: SomePath; color: SomeColor; strokeWidth = 1.0;\n lineCap = lcButt; lineJoin = ljMiter; blendMode = bmNormal)
strokePath pixie/paths.html#strokePath,Image,SomePath,SomeColor,,float paths: strokePath(image: Image; path: SomePath; color: SomeColor;\n transform: Vec2 | Mat3; strokeWidth = 1.0; lineCap = lcButt;\n lineJoin = ljMiter; blendMode = bmNormal)
strokePath pixie/paths.html#strokePath,Mask,SomePath,float paths: strokePath(mask: Mask; path: SomePath; strokeWidth = 1.0; lineCap = lcButt;\n lineJoin = ljMiter)
strokePath pixie/paths.html#strokePath,Mask,SomePath,,float paths: strokePath(mask: Mask; path: SomePath; transform: Vec2 | Mat3;\n strokeWidth = 1.0; lineCap = lcButt; lineJoin = ljMiter)

View file

@ -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/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>
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/gif.html">pixie/fileformats/gif</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>
@ -74,7 +74,7 @@ function main() {
</ul></dd>
<dt><a name="%60%5B%5D%3D%60" href="#%60%5B%5D%3D%60"><span>`[]=`:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="images: `[]=`(image: Image; x, y: int; rgba: ColorRGBX)" href="pixie/images.html#%5B%5D%3D%2CImage%2Cint%2Cint%2CColorRGBX">images: `[]=`(image: Image; x, y: int; rgba: ColorRGBX)</a></li>
data-doc-search-tag="images: `[]=`(image: Image; x, y: int; color: SomeColor)" href="pixie/images.html#%5B%5D%3D%2CImage%2Cint%2Cint%2CSomeColor">images: `[]=`(image: Image; x, y: int; color: SomeColor)</a></li>
<li><a class="reference external"
data-doc-search-tag="masks: `[]=`(mask: Mask; x, y: int; value: uint8)" href="pixie/masks.html#%5B%5D%3D%2CMask%2Cint%2Cint%2Cuint8">masks: `[]=`(mask: Mask; x, y: int; value: uint8)</a></li>
</ul></dd>
@ -102,6 +102,14 @@ function main() {
<li><a class="reference external"
data-doc-search-tag="paths: arcTo(path: var Path; ctrl1, ctrl2: Vec2; radius: float32)" href="pixie/paths.html#arcTo%2CPath%2CVec2%2CVec2%2Cfloat32">paths: arcTo(path: var Path; ctrl1, ctrl2: Vec2; radius: float32)</a></li>
</ul></dd>
<dt><a name="autoPremultipliedAlpha" href="#autoPremultipliedAlpha"><span>autoPremultipliedAlpha:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: autoPremultipliedAlpha(c: ColorRGBA): ColorRGBX" href="pixie.html#autoPremultipliedAlpha.c%2CColorRGBA">pixie: autoPremultipliedAlpha(c: ColorRGBA): ColorRGBX</a></li>
</ul></dd>
<dt><a name="autoStraightAlpha" href="#autoStraightAlpha"><span>autoStraightAlpha:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: autoStraightAlpha(c: ColorRGBX): ColorRGBA" href="pixie.html#autoStraightAlpha.c%2CColorRGBX">pixie: autoStraightAlpha(c: ColorRGBX): ColorRGBA</a></li>
</ul></dd>
<dt><a name="bezierCurveTo" href="#bezierCurveTo"><span>bezierCurveTo:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="paths: bezierCurveTo(path: var Path; x1, y1, x2, y2, x3, y3: float32)" href="pixie/paths.html#bezierCurveTo%2CPath%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32">paths: bezierCurveTo(path: var Path; x1, y1, x2, y2, x3, y3: float32)</a></li>
@ -134,7 +142,7 @@ function main() {
</ul></dd>
<dt><a name="blur" href="#blur"><span>blur:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="images: blur(image: Image; radius: float32; outOfBounds = ColorRGBX())" href="pixie/images.html#blur%2CImage%2Cfloat32">images: blur(image: Image; radius: float32; outOfBounds = ColorRGBX())</a></li>
data-doc-search-tag="images: blur(image: Image; radius: float32; outOfBounds: SomeColor = ColorRGBX())" href="pixie/images.html#blur%2CImage%2Cfloat32%2CSomeColor">images: blur(image: Image; radius: float32; outOfBounds: SomeColor = ColorRGBX())</a></li>
<li><a class="reference external"
data-doc-search-tag="masks: blur(mask: Mask; radius: float32; outOfBounds: uint8 = 0)" href="pixie/masks.html#blur%2CMask%2Cfloat32%2Cuint8">masks: blur(mask: Mask; radius: float32; outOfBounds: uint8 = 0)</a></li>
</ul></dd>
@ -268,6 +276,10 @@ function main() {
<li><a class="reference external"
data-doc-search-tag="bmp: decodeBmp(data: string): Image" href="pixie/fileformats/bmp.html#decodeBmp%2Cstring">bmp: decodeBmp(data: string): Image</a></li>
</ul></dd>
<dt><a name="decodeGif" href="#decodeGif"><span>decodeGif:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="gif: decodeGif(data: string): Image" href="pixie/fileformats/gif.html#decodeGif%2Cstring">gif: decodeGif(data: string): Image</a></li>
</ul></dd>
<dt><a name="decodeImage" href="#decodeImage"><span>decodeImage:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: decodeImage(data: string | seq[uint8]): Image" href="pixie.html#decodeImage">pixie: decodeImage(data: string | seq[uint8]): Image</a></li>
@ -350,6 +362,10 @@ function main() {
<li><a class="reference external"
data-doc-search-tag="FileFormat.ffBmp" href="pixie.html#ffBmp">FileFormat.ffBmp</a></li>
</ul></dd>
<dt><a name="ffGif" href="#ffGif"><span>ffGif:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="FileFormat.ffGif" href="pixie.html#ffGif">FileFormat.ffGif</a></li>
</ul></dd>
<dt><a name="ffJpg" href="#ffJpg"><span>ffJpg:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="FileFormat.ffJpg" href="pixie.html#ffJpg">FileFormat.ffJpg</a></li>
@ -364,7 +380,7 @@ function main() {
</ul></dd>
<dt><a name="fill" href="#fill"><span>fill:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="images: fill(image: Image; rgba: ColorRGBX)" href="pixie/images.html#fill%2CImage%2CColorRGBX">images: fill(image: Image; rgba: ColorRGBX)</a></li>
data-doc-search-tag="images: fill(image: Image; color: SomeColor)" href="pixie/images.html#fill%2CImage%2CSomeColor">images: fill(image: Image; color: SomeColor)</a></li>
<li><a class="reference external"
data-doc-search-tag="masks: fill(mask: Mask; value: uint8)" href="pixie/masks.html#fill%2CMask%2Cuint8">masks: fill(mask: Mask; value: uint8)</a></li>
</ul></dd>
@ -376,14 +392,14 @@ function main() {
</ul></dd>
<dt><a name="fillCircle" href="#fillCircle"><span>fillCircle:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: fillCircle(image: Image; center: Vec2; radius: float32; color: ColorRGBA)" href="pixie.html#fillCircle%2CImage%2CVec2%2Cfloat32%2CColorRGBA">pixie: fillCircle(image: Image; center: Vec2; radius: float32; color: ColorRGBA)</a></li>
data-doc-search-tag="pixie: fillCircle(image: Image; center: Vec2; radius: float32; color: SomeColor)" href="pixie.html#fillCircle%2CImage%2CVec2%2Cfloat32%2CSomeColor">pixie: fillCircle(image: Image; center: Vec2; radius: float32; color: SomeColor)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: fillCircle(mask: Mask; center: Vec2; radius: float32)" href="pixie.html#fillCircle%2CMask%2CVec2%2Cfloat32">pixie: fillCircle(mask: Mask; center: Vec2; radius: float32)</a></li>
</ul></dd>
<dt><a name="fillEllipse" href="#fillEllipse"><span>fillEllipse:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: fillEllipse(image: Image; center: Vec2; rx, ry: float32; color: ColorRGBA;
blendMode = bmNormal)" href="pixie.html#fillEllipse%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CColorRGBA">pixie: fillEllipse(image: Image; center: Vec2; rx, ry: float32; color: ColorRGBA;
data-doc-search-tag="pixie: fillEllipse(image: Image; center: Vec2; rx, ry: float32; color: SomeColor;
blendMode = bmNormal)" href="pixie.html#fillEllipse%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CSomeColor">pixie: fillEllipse(image: Image; center: Vec2; rx, ry: float32; color: SomeColor;
blendMode = bmNormal)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: fillEllipse(mask: Mask; center: Vec2; rx, ry: float32)" href="pixie.html#fillEllipse%2CMask%2CVec2%2Cfloat32%2Cfloat32">pixie: fillEllipse(mask: Mask; center: Vec2; rx, ry: float32)</a></li>
@ -394,15 +410,15 @@ function main() {
</ul></dd>
<dt><a name="fillPath" href="#fillPath"><span>fillPath:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="paths: fillPath(image: Image; path: SomePath; color: ColorRGBX;
windingRule = wrNonZero; blendMode = bmNormal)" href="pixie/paths.html#fillPath%2CImage%2CSomePath%2CColorRGBX">paths: fillPath(image: Image; path: SomePath; color: ColorRGBX;
windingRule = wrNonZero; blendMode = bmNormal)</a></li>
<li><a class="reference external"
data-doc-search-tag="paths: fillPath(image: Image; path: SomePath; color: ColorRGBX; transform: Vec2 | Mat3;
windingRule = wrNonZero; blendMode = bmNormal)" href="pixie/paths.html#fillPath%2CImage%2CSomePath%2CColorRGBX%2C">paths: fillPath(image: Image; path: SomePath; color: ColorRGBX; transform: Vec2 | Mat3;
windingRule = wrNonZero; blendMode = bmNormal)</a></li>
<li><a class="reference external"
data-doc-search-tag="paths: fillPath(image: Image; path: SomePath; paint: Paint; windingRule = wrNonZero)" href="pixie/paths.html#fillPath%2CImage%2CSomePath%2CPaint">paths: fillPath(image: Image; path: SomePath; paint: Paint; windingRule = wrNonZero)</a></li>
<li><a class="reference external"
data-doc-search-tag="paths: fillPath(image: Image; path: SomePath; color: SomeColor;
windingRule = wrNonZero; blendMode = bmNormal)" href="pixie/paths.html#fillPath%2CImage%2CSomePath%2CSomeColor">paths: fillPath(image: Image; path: SomePath; color: SomeColor;
windingRule = wrNonZero; blendMode = bmNormal)</a></li>
<li><a class="reference external"
data-doc-search-tag="paths: fillPath(image: Image; path: SomePath; color: SomeColor; transform: Vec2 | Mat3;
windingRule = wrNonZero; blendMode = bmNormal)" href="pixie/paths.html#fillPath%2CImage%2CSomePath%2CSomeColor%2C">paths: fillPath(image: Image; path: SomePath; color: SomeColor; transform: Vec2 | Mat3;
windingRule = wrNonZero; blendMode = bmNormal)</a></li>
<li><a class="reference external"
data-doc-search-tag="paths: fillPath(mask: Mask; path: SomePath; windingRule = wrNonZero)" href="pixie/paths.html#fillPath%2CMask%2CSomePath">paths: fillPath(mask: Mask; path: SomePath; windingRule = wrNonZero)</a></li>
<li><a class="reference external"
@ -412,7 +428,7 @@ function main() {
</ul></dd>
<dt><a name="fillPolygon" href="#fillPolygon"><span>fillPolygon:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: fillPolygon(image: Image; pos: Vec2; size: float32; sides: int; color: ColorRGBA)" href="pixie.html#fillPolygon%2CImage%2CVec2%2Cfloat32%2Cint%2CColorRGBA">pixie: fillPolygon(image: Image; pos: Vec2; size: float32; sides: int; color: ColorRGBA)</a></li>
data-doc-search-tag="pixie: fillPolygon(image: Image; pos: Vec2; size: float32; sides: int; color: SomeColor)" href="pixie.html#fillPolygon%2CImage%2CVec2%2Cfloat32%2Cint%2CSomeColor">pixie: fillPolygon(image: Image; pos: Vec2; size: float32; sides: int; color: SomeColor)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: fillPolygon(mask: Mask; pos: Vec2; size: float32; sides: int)" href="pixie.html#fillPolygon%2CMask%2CVec2%2Cfloat32%2Cint">pixie: fillPolygon(mask: Mask; pos: Vec2; size: float32; sides: int)</a></li>
</ul></dd>
@ -422,17 +438,17 @@ function main() {
</ul></dd>
<dt><a name="fillRect" href="#fillRect"><span>fillRect:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: fillRect(image: Image; rect: Rect; color: ColorRGBA)" href="pixie.html#fillRect%2CImage%2CRect%2CColorRGBA">pixie: fillRect(image: Image; rect: Rect; color: ColorRGBA)</a></li>
data-doc-search-tag="pixie: fillRect(image: Image; rect: Rect; color: SomeColor)" href="pixie.html#fillRect%2CImage%2CRect%2CSomeColor">pixie: fillRect(image: Image; rect: Rect; color: SomeColor)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: fillRect(mask: Mask; rect: Rect)" href="pixie.html#fillRect%2CMask%2CRect">pixie: fillRect(mask: Mask; rect: Rect)</a></li>
</ul></dd>
<dt><a name="fillRoundedRect" href="#fillRoundedRect"><span>fillRoundedRect:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: fillRoundedRect(image: Image; rect: Rect; radius: float32; color: ColorRGBA)" href="pixie.html#fillRoundedRect%2CImage%2CRect%2Cfloat32%2CColorRGBA">pixie: fillRoundedRect(image: Image; rect: Rect; radius: float32; color: ColorRGBA)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: fillRoundedRect(image: Image; rect: Rect; nw, ne, se, sw: float32;
color: ColorRGBA)" href="pixie.html#fillRoundedRect%2CImage%2CRect%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32%2CColorRGBA">pixie: fillRoundedRect(image: Image; rect: Rect; nw, ne, se, sw: float32;
color: ColorRGBA)</a></li>
color: SomeColor)" href="pixie.html#fillRoundedRect%2CImage%2CRect%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32%2CSomeColor">pixie: fillRoundedRect(image: Image; rect: Rect; nw, ne, se, sw: float32;
color: SomeColor)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: fillRoundedRect(image: Image; rect: Rect; radius: float32; color: SomeColor)" href="pixie.html#fillRoundedRect%2CImage%2CRect%2Cfloat32%2CSomeColor">pixie: fillRoundedRect(image: Image; rect: Rect; radius: float32; color: SomeColor)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: fillRoundedRect(mask: Mask; rect: Rect; radius: float32)" href="pixie.html#fillRoundedRect%2CMask%2CRect%2Cfloat32">pixie: fillRoundedRect(mask: Mask; rect: Rect; radius: float32)</a></li>
<li><a class="reference external"
@ -440,7 +456,7 @@ function main() {
</ul></dd>
<dt><a name="fillUnsafe" href="#fillUnsafe"><span>fillUnsafe:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="images: fillUnsafe(data: var seq[ColorRGBX]; rgba: ColorRGBX; start, len: int)" href="pixie/images.html#fillUnsafe%2Cseq%5BColorRGBX%5D%2CColorRGBX%2Cint%2Cint">images: fillUnsafe(data: var seq[ColorRGBX]; rgba: ColorRGBX; start, len: int)</a></li>
data-doc-search-tag="images: fillUnsafe(data: var seq[ColorRGBX]; color: SomeColor; start, len: int)" href="pixie/images.html#fillUnsafe%2Cseq%5BColorRGBX%5D%2CSomeColor%2Cint%2Cint">images: fillUnsafe(data: var seq[ColorRGBX]; color: SomeColor; start, len: int)</a></li>
<li><a class="reference external"
data-doc-search-tag="masks: fillUnsafe(data: var seq[uint8]; value: uint8; start, len: int)" href="pixie/masks.html#fillUnsafe%2Cseq%5Buint8%5D%2Cuint8%2Cint%2Cint">masks: fillUnsafe(data: var seq[uint8]; value: uint8; start, len: int)</a></li>
</ul></dd>
@ -476,6 +492,10 @@ function main() {
<li><a class="reference external"
data-doc-search-tag="masks: getValueUnsafe(mask: Mask; x, y: int): uint8" href="pixie/masks.html#getValueUnsafe%2CMask%2Cint%2Cint">masks: getValueUnsafe(mask: Mask; x, y: int): uint8</a></li>
</ul></dd>
<dt><a name="gifSignatures" href="#gifSignatures"><span>gifSignatures:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="gif: gifSignatures" href="pixie/fileformats/gif.html#gifSignatures">gif: gifSignatures</a></li>
</ul></dd>
<dt><a name="hasSimdBlender" href="#hasSimdBlender"><span>hasSimdBlender:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="blends: hasSimdBlender(blendMode: BlendMode): bool" href="pixie/blends.html#hasSimdBlender%2CBlendMode">blends: hasSimdBlender(blendMode: BlendMode): bool</a></li>
@ -758,7 +778,7 @@ function main() {
</ul></dd>
<dt><a name="setRgbaUnsafe" href="#setRgbaUnsafe"><span>setRgbaUnsafe:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="images: setRgbaUnsafe(image: Image; x, y: int; rgba: ColorRGBX)" href="pixie/images.html#setRgbaUnsafe%2CImage%2Cint%2Cint%2CColorRGBX">images: setRgbaUnsafe(image: Image; x, y: int; rgba: ColorRGBX)</a></li>
data-doc-search-tag="images: setRgbaUnsafe(image: Image; x, y: int; color: SomeColor)" href="pixie/images.html#setRgbaUnsafe%2CImage%2Cint%2Cint%2CSomeColor">images: setRgbaUnsafe(image: Image; x, y: int; color: SomeColor)</a></li>
</ul></dd>
<dt><a name="setValueUnsafe" href="#setValueUnsafe"><span>setValueUnsafe:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
@ -766,7 +786,7 @@ function main() {
</ul></dd>
<dt><a name="shadow" href="#shadow"><span>shadow:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="images: shadow(image: Image; offset: Vec2; spread, blur: float32; color: ColorRGBX): Image" href="pixie/images.html#shadow%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CColorRGBX">images: shadow(image: Image; offset: Vec2; spread, blur: float32; color: ColorRGBX): Image</a></li>
data-doc-search-tag="images: shadow(image: Image; offset: Vec2; spread, blur: float32; color: SomeColor): Image" href="pixie/images.html#shadow%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CSomeColor">images: shadow(image: Image; offset: Vec2; spread, blur: float32; color: SomeColor): Image</a></li>
</ul></dd>
<dt><a name="shift" href="#shift"><span>shift:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
@ -782,30 +802,30 @@ function main() {
</ul></dd>
<dt><a name="strokeCircle" href="#strokeCircle"><span>strokeCircle:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: strokeCircle(image: Image; center: Vec2; radius: float32; color: ColorRGBA;
strokeWidth = 1.0)" href="pixie.html#strokeCircle%2CImage%2CVec2%2Cfloat32%2CColorRGBA%2Cfloat">pixie: strokeCircle(image: Image; center: Vec2; radius: float32; color: ColorRGBA;
data-doc-search-tag="pixie: strokeCircle(image: Image; center: Vec2; radius: float32; color: SomeColor;
strokeWidth = 1.0)" href="pixie.html#strokeCircle%2CImage%2CVec2%2Cfloat32%2CSomeColor%2Cfloat">pixie: strokeCircle(image: Image; center: Vec2; radius: float32; color: SomeColor;
strokeWidth = 1.0)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: strokeCircle(mask: Mask; center: Vec2; radius: float32; strokeWidth = 1.0)" href="pixie.html#strokeCircle%2CMask%2CVec2%2Cfloat32%2Cfloat">pixie: strokeCircle(mask: Mask; center: Vec2; radius: float32; strokeWidth = 1.0)</a></li>
</ul></dd>
<dt><a name="strokeEllipse" href="#strokeEllipse"><span>strokeEllipse:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: strokeEllipse(image: Image; center: Vec2; rx, ry: float32; color: ColorRGBA;
strokeWidth = 1.0)" href="pixie.html#strokeEllipse%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CColorRGBA%2Cfloat">pixie: strokeEllipse(image: Image; center: Vec2; rx, ry: float32; color: ColorRGBA;
data-doc-search-tag="pixie: strokeEllipse(image: Image; center: Vec2; rx, ry: float32; color: SomeColor;
strokeWidth = 1.0)" href="pixie.html#strokeEllipse%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CSomeColor%2Cfloat">pixie: strokeEllipse(image: Image; center: Vec2; rx, ry: float32; color: SomeColor;
strokeWidth = 1.0)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: strokeEllipse(mask: Mask; center: Vec2; rx, ry: float32; strokeWidth = 1.0)" href="pixie.html#strokeEllipse%2CMask%2CVec2%2Cfloat32%2Cfloat32%2Cfloat">pixie: strokeEllipse(mask: Mask; center: Vec2; rx, ry: float32; strokeWidth = 1.0)</a></li>
</ul></dd>
<dt><a name="strokePath" href="#strokePath"><span>strokePath:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="paths: strokePath(image: Image; path: SomePath; color: ColorRGBX;
data-doc-search-tag="paths: strokePath(image: Image; path: SomePath; color: SomeColor;
transform: Vec2 | Mat3; strokeWidth = 1.0; lineCap = lcButt;
lineJoin = ljMiter; blendMode = bmNormal)" href="pixie/paths.html#strokePath%2CImage%2CSomePath%2CColorRGBX%2C%2Cfloat">paths: strokePath(image: Image; path: SomePath; color: ColorRGBX;
lineJoin = ljMiter; blendMode = bmNormal)" href="pixie/paths.html#strokePath%2CImage%2CSomePath%2CSomeColor%2C%2Cfloat">paths: strokePath(image: Image; path: SomePath; color: SomeColor;
transform: Vec2 | Mat3; strokeWidth = 1.0; lineCap = lcButt;
lineJoin = ljMiter; blendMode = bmNormal)</a></li>
<li><a class="reference external"
data-doc-search-tag="paths: strokePath(image: Image; path: SomePath; color: ColorRGBX; strokeWidth = 1.0;
lineCap = lcButt; lineJoin = ljMiter; blendMode = bmNormal)" href="pixie/paths.html#strokePath%2CImage%2CSomePath%2CColorRGBX%2Cfloat">paths: strokePath(image: Image; path: SomePath; color: ColorRGBX; strokeWidth = 1.0;
data-doc-search-tag="paths: strokePath(image: Image; path: SomePath; color: SomeColor; strokeWidth = 1.0;
lineCap = lcButt; lineJoin = ljMiter; blendMode = bmNormal)" href="pixie/paths.html#strokePath%2CImage%2CSomePath%2CSomeColor%2Cfloat">paths: strokePath(image: Image; path: SomePath; color: SomeColor; strokeWidth = 1.0;
lineCap = lcButt; lineJoin = ljMiter; blendMode = bmNormal)</a></li>
<li><a class="reference external"
data-doc-search-tag="paths: strokePath(mask: Mask; path: SomePath; transform: Vec2 | Mat3;
@ -819,8 +839,8 @@ function main() {
<dt><a name="strokePolygon" href="#strokePolygon"><span>strokePolygon:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: strokePolygon(image: Image; pos: Vec2; size: float32; sides: int;
color: ColorRGBA; strokeWidth = 1.0)" href="pixie.html#strokePolygon%2CImage%2CVec2%2Cfloat32%2Cint%2CColorRGBA%2Cfloat">pixie: strokePolygon(image: Image; pos: Vec2; size: float32; sides: int;
color: ColorRGBA; strokeWidth = 1.0)</a></li>
color: SomeColor; strokeWidth = 1.0)" href="pixie.html#strokePolygon%2CImage%2CVec2%2Cfloat32%2Cint%2CSomeColor%2Cfloat">pixie: strokePolygon(image: Image; pos: Vec2; size: float32; sides: int;
color: SomeColor; strokeWidth = 1.0)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: strokePolygon(mask: Mask; pos: Vec2; size: float32; sides: int;
strokeWidth = 1.0)" href="pixie.html#strokePolygon%2CMask%2CVec2%2Cfloat32%2Cint%2Cfloat">pixie: strokePolygon(mask: Mask; pos: Vec2; size: float32; sides: int;
@ -828,19 +848,19 @@ function main() {
</ul></dd>
<dt><a name="strokeRect" href="#strokeRect"><span>strokeRect:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: strokeRect(image: Image; rect: Rect; color: ColorRGBA; strokeWidth = 1.0)" href="pixie.html#strokeRect%2CImage%2CRect%2CColorRGBA%2Cfloat">pixie: strokeRect(image: Image; rect: Rect; color: ColorRGBA; strokeWidth = 1.0)</a></li>
data-doc-search-tag="pixie: strokeRect(image: Image; rect: Rect; color: SomeColor; strokeWidth = 1.0)" href="pixie.html#strokeRect%2CImage%2CRect%2CSomeColor%2Cfloat">pixie: strokeRect(image: Image; rect: Rect; color: SomeColor; strokeWidth = 1.0)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: strokeRect(mask: Mask; rect: Rect; strokeWidth = 1.0)" href="pixie.html#strokeRect%2CMask%2CRect%2Cfloat">pixie: strokeRect(mask: Mask; rect: Rect; strokeWidth = 1.0)</a></li>
</ul></dd>
<dt><a name="strokeRoundedRect" href="#strokeRoundedRect"><span>strokeRoundedRect:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: strokeRoundedRect(image: Image; rect: Rect; radius: float32; color: ColorRGBA;
strokeWidth = 1.0)" href="pixie.html#strokeRoundedRect%2CImage%2CRect%2Cfloat32%2CColorRGBA%2Cfloat">pixie: strokeRoundedRect(image: Image; rect: Rect; radius: float32; color: ColorRGBA;
strokeWidth = 1.0)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: strokeRoundedRect(image: Image; rect: Rect; nw, ne, se, sw: float32;
color: ColorRGBA; strokeWidth = 1.0)" href="pixie.html#strokeRoundedRect%2CImage%2CRect%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32%2CColorRGBA%2Cfloat">pixie: strokeRoundedRect(image: Image; rect: Rect; nw, ne, se, sw: float32;
color: ColorRGBA; strokeWidth = 1.0)</a></li>
color: SomeColor; strokeWidth = 1.0)" href="pixie.html#strokeRoundedRect%2CImage%2CRect%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32%2CSomeColor%2Cfloat">pixie: strokeRoundedRect(image: Image; rect: Rect; nw, ne, se, sw: float32;
color: SomeColor; strokeWidth = 1.0)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: strokeRoundedRect(image: Image; rect: Rect; radius: float32; color: SomeColor;
strokeWidth = 1.0)" href="pixie.html#strokeRoundedRect%2CImage%2CRect%2Cfloat32%2CSomeColor%2Cfloat">pixie: strokeRoundedRect(image: Image; rect: Rect; radius: float32; color: SomeColor;
strokeWidth = 1.0)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: strokeRoundedRect(mask: Mask; rect: Rect; radius: float32; strokeWidth = 1.0)" href="pixie.html#strokeRoundedRect%2CMask%2CRect%2Cfloat32%2Cfloat">pixie: strokeRoundedRect(mask: Mask; rect: Rect; radius: float32; strokeWidth = 1.0)</a></li>
<li><a class="reference external"
@ -850,8 +870,8 @@ function main() {
</ul></dd>
<dt><a name="strokeSegment" href="#strokeSegment"><span>strokeSegment:</span></a></dt><dd><ul class="simple">
<li><a class="reference external"
data-doc-search-tag="pixie: strokeSegment(image: Image; segment: Segment; color: ColorRGBA;
strokeWidth = 1.0)" href="pixie.html#strokeSegment%2CImage%2CSegment%2CColorRGBA%2Cfloat">pixie: strokeSegment(image: Image; segment: Segment; color: ColorRGBA;
data-doc-search-tag="pixie: strokeSegment(image: Image; segment: Segment; color: SomeColor;
strokeWidth = 1.0)" href="pixie.html#strokeSegment%2CImage%2CSegment%2CSomeColor%2Cfloat">pixie: strokeSegment(image: Image; segment: Segment; color: SomeColor;
strokeWidth = 1.0)</a></li>
<li><a class="reference external"
data-doc-search-tag="pixie: strokeSegment(mask: Mask; segment: Segment; strokeWidth: float32)" href="pixie.html#strokeSegment%2CMask%2CSegment%2Cfloat32">pixie: strokeSegment(mask: Mask; segment: Segment; strokeWidth: float32)</a></li>
@ -925,7 +945,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-28 07:11:38 UTC</small>
<small style="color: var(--hint);">Made with Nim. Generated: 2021-03-12 03:47:40 UTC</small>
</div>
</div>
</div>

View file

@ -1,4 +1,4 @@
version = "1.0.5"
version = "1.1.0"
author = "Andre von Houck and Ryan Oldenburg"
description = "Full-featured 2d graphics library for Nim."
license = "MIT"
@ -7,7 +7,7 @@ srcDir = "src"
requires "nim >= 1.2.6"
requires "vmath >= 0.4.0"
requires "chroma >= 0.2.4"
requires "chroma >= 0.2.5"
requires "zippy >= 0.3.5"
requires "flatty >= 0.1.3"
requires "nimsimd >= 1.0.0"

View file

@ -63,7 +63,7 @@ proc writeFile*(image: Image, filePath: string) =
raise newException(PixieError, "Unsupported image file extension")
image.writeFile(filePath, fileformat)
proc fillRect*(image: Image, rect: Rect, color: ColorRGBA) =
proc fillRect*(image: Image, rect: Rect, color: SomeColor) =
## Fills a rectangle.
var path: Path
path.rect(rect)
@ -76,7 +76,7 @@ proc fillRect*(mask: Mask, rect: Rect) =
mask.fillPath(path)
proc strokeRect*(
image: Image, rect: Rect, color: ColorRGBA, strokeWidth = 1.0
image: Image, rect: Rect, color: SomeColor, strokeWidth = 1.0
) =
## Strokes a rectangle.
var path: Path
@ -93,7 +93,7 @@ proc fillRoundedRect*(
image: Image,
rect: Rect,
nw, ne, se, sw: float32,
color: ColorRGBA
color: SomeColor
) =
## Fills a rounded rectangle.
var path: Path
@ -104,7 +104,7 @@ proc fillRoundedRect*(
image: Image,
rect: Rect,
radius: float32,
color: ColorRGBA
color: SomeColor
) =
## Fills a rounded rectangle.
var path: Path
@ -127,7 +127,7 @@ proc strokeRoundedRect*(
image: Image,
rect: Rect,
nw, ne, se, sw: float32,
color: ColorRGBA,
color: SomeColor,
strokeWidth = 1.0
) =
## Strokes a rounded rectangle.
@ -139,7 +139,7 @@ proc strokeRoundedRect*(
image: Image,
rect: Rect,
radius: float32,
color: ColorRGBA,
color: SomeColor,
strokeWidth = 1.0
) =
## Strokes a rounded rectangle.
@ -166,7 +166,7 @@ proc strokeRoundedRect*(
proc strokeSegment*(
image: Image,
segment: Segment,
color: ColorRGBA,
color: SomeColor,
strokeWidth = 1.0
) =
## Strokes a segment (draws a line from segment.at to segment.to).
@ -186,7 +186,7 @@ proc fillEllipse*(
image: Image,
center: Vec2,
rx, ry: float32,
color: ColorRGBA,
color: SomeColor,
blendMode = bmNormal
) =
## Fills an ellipse.
@ -208,7 +208,7 @@ proc strokeEllipse*(
image: Image,
center: Vec2,
rx, ry: float32,
color: ColorRGBA,
color: SomeColor,
strokeWidth = 1.0
) =
## Strokes an ellipse.
@ -231,7 +231,7 @@ proc fillCircle*(
image: Image,
center: Vec2,
radius: float32,
color: ColorRGBA
color: SomeColor
) =
## Fills a circle.
var path: Path
@ -252,7 +252,7 @@ proc strokeCircle*(
image: Image,
center: Vec2,
radius: float32,
color: ColorRGBA,
color: SomeColor,
strokeWidth = 1.0
) =
## Strokes a circle.
@ -276,7 +276,7 @@ proc fillPolygon*(
pos: Vec2,
size: float32,
sides: int,
color: ColorRGBA
color: SomeColor
) =
## Fills a polygon.
var path: Path
@ -294,7 +294,7 @@ proc strokePolygon*(
pos: Vec2,
size: float32,
sides: int,
color: ColorRGBA,
color: SomeColor,
strokeWidth = 1.0
) =
## Strokes a polygon.

View file

@ -56,30 +56,32 @@ proc `[]`*(image: Image, x, y: int): ColorRGBX {.inline.} =
if image.inside(x, y):
return image.getRgbaUnsafe(x, y)
proc setRgbaUnsafe*(image: Image, x, y: int, rgba: ColorRGBX) {.inline.} =
proc setRgbaUnsafe*(image: Image, x, y: int, color: SomeColor) {.inline.} =
## Sets a color from (x, y) coordinates.
## * No bounds checking *
## Make sure that x, y are in bounds.
## Failure in the assumptions will case unsafe memory writes.
image.data[image.dataIndex(x, y)] = rgba
image.data[image.dataIndex(x, y)] = color.asRgbx()
proc `[]=`*(image: Image, x, y: int, rgba: ColorRGBX) {.inline.} =
proc `[]=`*(image: Image, x, y: int, color: SomeColor) {.inline.} =
## Sets a pixel at (x, y) or does nothing if outside of bounds.
if image.inside(x, y):
image.setRgbaUnsafe(x, y, rgba)
image.setRgbaUnsafe(x, y, color.asRgbx())
proc fillUnsafe*(data: var seq[ColorRGBX], rgba: ColorRGBX, start, len: int) =
proc fillUnsafe*(data: var seq[ColorRGBX], color: SomeColor, start, len: int) =
## Fills the image data with the parameter color starting at index start and
## continuing for len indices.
let rgbx = color.asRgbx()
# Use memset when every byte has the same value
if rgba.r == rgba.g and rgba.r == rgba.b and rgba.r == rgba.a:
nimSetMem(data[start].addr, rgba.r.cint, len * 4)
if rgbx.r == rgbx.g and rgbx.r == rgbx.b and rgbx.r == rgbx.a:
nimSetMem(data[start].addr, rgbx.r.cint, len * 4)
else:
var i = start
when defined(amd64) and not defined(pixieNoSimd):
# When supported, SIMD fill until we run out of room
let m = mm_set1_epi32(cast[int32](rgba))
let m = mm_set1_epi32(cast[int32](rgbx))
for j in countup(i, start + len - 8, 8):
mm_storeu_si128(data[j].addr, m)
mm_storeu_si128(data[j + 4].addr, m)
@ -88,18 +90,18 @@ proc fillUnsafe*(data: var seq[ColorRGBX], rgba: ColorRGBX, start, len: int) =
when sizeof(int) == 8:
# Fill 8 bytes at a time when possible
let
u32 = cast[uint32](rgba)
u32 = cast[uint32](rgbx)
u64 = cast[uint64]([u32, u32])
for j in countup(i, start + len - 2, 2):
cast[ptr uint64](data[j].addr)[] = u64
i += 2
# Fill whatever is left the slow way
for j in i ..< start + len:
data[j] = rgba
data[j] = rgbx
proc fill*(image: Image, rgba: ColorRGBX) {.inline.} =
proc fill*(image: Image, color: SomeColor) {.inline.} =
## Fills the image with the parameter color.
fillUnsafe(image.data, rgba, 0, image.data.len)
fillUnsafe(image.data, color, 0, image.data.len)
proc flipHorizontal*(image: Image) =
## Flips the image around the Y axis.
@ -347,13 +349,17 @@ proc invert*(target: Image | Mask) =
for j in i ..< target.data.len:
target.data[j] = (255 - target.data[j]).uint8
proc blur*(image: Image, radius: float32, outOfBounds = ColorRGBX()) =
proc blur*(
image: Image, radius: float32, outOfBounds: SomeColor = ColorRGBX()
) =
## Applies Gaussian blur to the image given a radius.
let radius = round(radius).int
if radius == 0:
return
let kernel = gaussianKernel(radius)
let
kernel = gaussianKernel(radius)
outOfBounds = outOfBounds.asRgbx()
proc `*`(sample: ColorRGBX, a: uint32): array[4, uint32] {.inline.} =
[
@ -794,7 +800,7 @@ proc shift*(target: Image | Mask, offset: Vec2) =
target.draw(copy, offset, bmOverwrite) # Draw copy at offset
proc shadow*(
image: Image, offset: Vec2, spread, blur: float32, color: ColorRGBX
image: Image, offset: Vec2, spread, blur: float32, color: SomeColor
): Image =
## Create a shadow of the image with the offset, spread and blur.
let mask = image.newMask()

View file

@ -1105,11 +1105,12 @@ template computeCoverages(
proc fillShapes(
image: Image,
shapes: seq[seq[Vec2]],
color: ColorRGBX,
color: SomeColor,
windingRule: WindingRule,
blendMode: BlendMode
) =
let
rgbx = color.asRgbx()
partitions = partitionSegments(shapes, image.height)
partitionHeight = image.height.uint32 div partitions.len.uint32
@ -1128,7 +1129,7 @@ proc fillShapes(
first32 = cast[M128i]([uint32.high, 0, 0, 0]) # First 32 bits
oddMask = mm_set1_epi16(cast[int16](0xff00))
div255 = mm_set1_epi16(cast[int16](0x8081))
vColor = mm_set1_epi32(cast[int32](color))
vColor = mm_set1_epi32(cast[int32](rgbx))
var
coverages = newSeq[uint8](image.width)
@ -1160,7 +1161,7 @@ proc fillShapes(
# If the coverages are not all zero
if mm_movemask_epi8(mm_cmpeq_epi32(coverage, first32)) == 0xffff:
# Coverages are all 255
if color.a == 255 and blendMode == bmNormal:
if rgbx.a == 255 and blendMode == bmNormal:
mm_storeu_si128(image.data[index].addr, vColor)
else:
let backdrop = mm_loadu_si128(image.data[index].addr)
@ -1203,12 +1204,12 @@ proc fillShapes(
let coverage = coverages[x]
if coverage != 0:
var source = color
var source = rgbx
if coverage != 255:
source.r = ((color.r.uint32 * coverage) div 255).uint8
source.g = ((color.g.uint32 * coverage) div 255).uint8
source.b = ((color.b.uint32 * coverage) div 255).uint8
source.a = ((color.a.uint32 * coverage) div 255).uint8
source.r = ((source.r.uint32 * coverage) div 255).uint8
source.g = ((source.g.uint32 * coverage) div 255).uint8
source.b = ((source.b.uint32 * coverage) div 255).uint8
source.a = ((source.a.uint32 * coverage) div 255).uint8
if source.a == 255 and blendMode == bmNormal:
# Skip blending
@ -1418,7 +1419,7 @@ proc parseSomePath(
proc fillPath*(
image: Image,
path: SomePath,
color: ColorRGBX,
color: SomeColor,
windingRule = wrNonZero,
blendMode = bmNormal
) {.inline.} =
@ -1428,7 +1429,7 @@ proc fillPath*(
proc fillPath*(
image: Image,
path: SomePath,
color: ColorRGBX,
color: SomeColor,
transform: Vec2 | Mat3,
windingRule = wrNonZero,
blendMode = bmNormal
@ -1526,7 +1527,7 @@ proc fillPath*(
proc strokePath*(
image: Image,
path: SomePath,
color: ColorRGBX,
color: SomeColor,
strokeWidth = 1.0,
lineCap = lcButt,
lineJoin = ljMiter,
@ -1541,7 +1542,7 @@ proc strokePath*(
proc strokePath*(
image: Image,
path: SomePath,
color: ColorRGBX,
color: SomeColor,
transform: Vec2 | Mat3,
strokeWidth = 1.0,
lineCap = lcButt,