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 ffPng pixie.html#ffPng FileFormat.ffPng
ffBmp pixie.html#ffBmp FileFormat.ffBmp ffBmp pixie.html#ffBmp FileFormat.ffBmp
ffJpg pixie.html#ffJpg FileFormat.ffJpg ffJpg pixie.html#ffJpg FileFormat.ffJpg
ffGif pixie.html#ffGif FileFormat.ffGif
FileFormat pixie.html#FileFormat pixie: FileFormat 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 decodeImage pixie.html#decodeImage pixie: decodeImage(data: string | seq[uint8]): Image
readImage pixie.html#readImage,string pixie: readImage(filePath: string): Image readImage pixie.html#readImage,string pixie: readImage(filePath: string): Image
encodeImage pixie.html#encodeImage,Image,FileFormat pixie: encodeImage(image: Image; fileFormat: FileFormat): string 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,FileFormat pixie: writeFile(image: Image; filePath: string; fileFormat: FileFormat)
writeFile pixie.html#writeFile,Image,string pixie: writeFile(image: Image; filePath: string) 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) 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) 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,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,ColorRGBA pixie: fillRoundedRect(image: Image; rect: Rect; radius: float32; color: ColorRGBA) 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,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) 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,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,ColorRGBA,float pixie: strokeRoundedRect(image: Image; rect: Rect; radius: float32; color: ColorRGBA;\n 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,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) 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) 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) 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) 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) 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) 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) 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) 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"> <div class="twelve-columns footer">
<span class="nim-sprite"></span> <span class="nim-sprite"></span>
<br/> <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> </div>
</div> </div>

View file

@ -196,7 +196,7 @@ Linearly interpolate between a and b using t.
<div class="twelve-columns footer"> <div class="twelve-columns footer">
<span class="nim-sprite"></span> <span class="nim-sprite"></span>
<br/> <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> </div>
</div> </div>

View file

@ -182,7 +182,7 @@ Encodes an image into the BMP file format.
<div class="twelve-columns footer"> <div class="twelve-columns footer">
<span class="nim-sprite"></span> <span class="nim-sprite"></span>
<br/> <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> </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"> <div class="twelve-columns footer">
<span class="nim-sprite"></span> <span class="nim-sprite"></span>
<br/> <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> </div>
</div> </div>

View file

@ -138,7 +138,7 @@ function main() {
<div class="section" id="6"> <div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1> <h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item"> <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> </dl></div>
<div class="section" id="10"> <div class="section" id="10">
<h1><a class="toc-backref" href="#10">Consts</a></h1> <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"> <div class="twelve-columns footer">
<span class="nim-sprite"></span> <span class="nim-sprite"></span>
<br/> <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> </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"> <div class="twelve-columns footer">
<span class="nim-sprite"></span> <span class="nim-sprite"></span>
<br/> <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> </div>
</div> </div>

View file

@ -145,8 +145,8 @@ function main() {
</ul> </ul>
<ul class="simple nested-toc-section">setRgbaUnsafe <ul class="simple nested-toc-section">setRgbaUnsafe
<li><a class="reference" href="#setRgbaUnsafe%2CImage%2Cint%2Cint%2CColorRGBX" <li><a class="reference" href="#setRgbaUnsafe%2CImage%2Cint%2Cint%2CSomeColor"
title="setRgbaUnsafe(image: Image; x, y: int; rgba: ColorRGBX)">setRgbaUnsafe,<wbr>Image,<wbr>int,<wbr>int,<wbr>ColorRGBX</a></li> title="setRgbaUnsafe(image: Image; x, y: int; color: SomeColor)">setRgbaUnsafe,<wbr>Image,<wbr>int,<wbr>int,<wbr>SomeColor</a></li>
</ul> </ul>
<ul class="simple nested-toc-section">shift <ul class="simple nested-toc-section">shift
@ -155,8 +155,8 @@ function main() {
</ul> </ul>
<ul class="simple nested-toc-section">[]= <ul class="simple nested-toc-section">[]=
<li><a class="reference" href="#%5B%5D%3D%2CImage%2Cint%2Cint%2CColorRGBX" <li><a class="reference" href="#%5B%5D%3D%2CImage%2Cint%2Cint%2CSomeColor"
title="`[]=`(image: Image; x, y: int; rgba: ColorRGBX)">[]=,<wbr>Image,<wbr>int,<wbr>int,<wbr>ColorRGBX</a></li> title="`[]=`(image: Image; x, y: int; color: SomeColor)">[]=,<wbr>Image,<wbr>int,<wbr>int,<wbr>SomeColor</a></li>
</ul> </ul>
<ul class="simple nested-toc-section">invert <ul class="simple nested-toc-section">invert
@ -175,8 +175,8 @@ function main() {
</ul> </ul>
<ul class="simple nested-toc-section">fill <ul class="simple nested-toc-section">fill
<li><a class="reference" href="#fill%2CImage%2CColorRGBX" <li><a class="reference" href="#fill%2CImage%2CSomeColor"
title="fill(image: Image; rgba: ColorRGBX)">fill,<wbr>Image,<wbr>ColorRGBX</a></li> title="fill(image: Image; color: SomeColor)">fill,<wbr>Image,<wbr>SomeColor</a></li>
</ul> </ul>
<ul class="simple nested-toc-section">wh <ul class="simple nested-toc-section">wh
@ -200,8 +200,8 @@ function main() {
</ul> </ul>
<ul class="simple nested-toc-section">shadow <ul class="simple nested-toc-section">shadow
<li><a class="reference" href="#shadow%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CColorRGBX" <li><a class="reference" href="#shadow%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CSomeColor"
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> 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>
<ul class="simple nested-toc-section">newMask <ul class="simple nested-toc-section">newMask
@ -235,8 +235,8 @@ function main() {
</ul> </ul>
<ul class="simple nested-toc-section">blur <ul class="simple nested-toc-section">blur
<li><a class="reference" href="#blur%2CImage%2Cfloat32" <li><a class="reference" href="#blur%2CImage%2Cfloat32%2CSomeColor"
title="blur(image: Image; radius: float32; outOfBounds = ColorRGBX())">blur,<wbr>Image,<wbr>float32</a></li> title="blur(image: Image; radius: float32; outOfBounds: SomeColor = ColorRGBX())">blur,<wbr>Image,<wbr>float32,<wbr>SomeColor</a></li>
</ul> </ul>
<ul class="simple nested-toc-section">dataIndex <ul class="simple nested-toc-section">dataIndex
@ -265,8 +265,8 @@ function main() {
</ul> </ul>
<ul class="simple nested-toc-section">fillUnsafe <ul class="simple nested-toc-section">fillUnsafe
<li><a class="reference" href="#fillUnsafe%2Cseq%5BColorRGBX%5D%2CColorRGBX%2Cint%2Cint" <li><a class="reference" href="#fillUnsafe%2Cseq%5BColorRGBX%5D%2CSomeColor%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> title="fillUnsafe(data: var seq[ColorRGBX]; color: SomeColor; start, len: int)">fillUnsafe,<wbr>seq[ColorRGBX],<wbr>SomeColor,<wbr>int,<wbr>int</a></li>
</ul> </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. Gets a pixel at (x, y) or returns transparent black if outside of bounds.
</dd> </dd>
<a id="setRgbaUnsafe,Image,int,int,ColorRGBX"></a> <a id="setRgbaUnsafe,Image,int,int,SomeColor"></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> <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>
<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> <dd>
Sets a color from (x, y) coordinates.<ul class="simple"><li>No bounds checking *</li> 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> </dd>
<a id="[]=,Image,int,int,ColorRGBX"></a> <a id="[]=,Image,int,int,SomeColor"></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> <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>
<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> <dd>
Sets a pixel at (x, y) or does nothing if outside of bounds. Sets a pixel at (x, y) or does nothing if outside of bounds.
</dd> </dd>
<a id="fillUnsafe,seq[ColorRGBX],ColorRGBX,int,int"></a> <a id="fillUnsafe,seq[ColorRGBX],SomeColor,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"> <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>
<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> <dd>
Fills the image data with the parameter color starting at index start and continuing for len indices. Fills the image data with the parameter color starting at index start and continuing for len indices.
</dd> </dd>
<a id="fill,Image,ColorRGBX"></a> <a id="fill,Image,SomeColor"></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> <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> <dd>
Fills the image with the parameter color. 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. Inverts all of the colors and alpha.
</dd> </dd>
<a id="blur,Image,float32"></a> <a id="blur,Image,float32,SomeColor"></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"> <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>
<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> <dd>
Applies Gaussian blur to the image given a radius. 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. Shifts the target by offset.
</dd> </dd>
<a id="shadow,Image,Vec2,float32,float32,ColorRGBX"></a> <a id="shadow,Image,Vec2,float32,float32,SomeColor"></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"> <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>
<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>
<dd> <dd>
Create a shadow of the image with the offset, spread and blur. 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"> <div class="twelve-columns footer">
<span class="nim-sprite"></span> <span class="nim-sprite"></span>
<br/> <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> </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 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 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 `[]` 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) setRgbaUnsafe pixie/images.html#setRgbaUnsafe,Image,int,int,SomeColor images: setRgbaUnsafe(image: Image; x, y: int; color: SomeColor)
`[]=` pixie/images.html#[]=,Image,int,int,ColorRGBX images: `[]=`(image: Image; x, y: int; rgba: ColorRGBX) `[]=` pixie/images.html#[]=,Image,int,int,SomeColor images: `[]=`(image: Image; x, y: int; color: SomeColor)
fillUnsafe pixie/images.html#fillUnsafe,seq[ColorRGBX],ColorRGBX,int,int images: fillUnsafe(data: var seq[ColorRGBX]; rgba: ColorRGBX; start, len: int) 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,ColorRGBX images: fill(image: Image; rgba: ColorRGBX) fill pixie/images.html#fill,Image,SomeColor images: fill(image: Image; color: SomeColor)
flipHorizontal pixie/images.html#flipHorizontal,Image images: flipHorizontal(image: Image) flipHorizontal pixie/images.html#flipHorizontal,Image images: flipHorizontal(image: Image)
flipVertical pixie/images.html#flipVertical,Image images: flipVertical(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 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 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) applyOpacity pixie/images.html#applyOpacity,,float32 images: applyOpacity(target: Image | Mask; opacity: float32)
invert pixie/images.html#invert images: invert(target: Image | Mask) 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 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 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) 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) 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 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) 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"> <div class="twelve-columns footer">
<span class="nim-sprite"></span> <span class="nim-sprite"></span>
<br/> <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> </div>
</div> </div>

View file

@ -367,7 +367,7 @@ Applies Gaussian blur to the image given a radius.
<div class="twelve-columns footer"> <div class="twelve-columns footer">
<span class="nim-sprite"></span> <span class="nim-sprite"></span>
<br/> <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> </div>
</div> </div>

View file

@ -243,7 +243,7 @@ Angular gradient.
<div class="twelve-columns footer"> <div class="twelve-columns footer">
<span class="nim-sprite"></span> <span class="nim-sprite"></span>
<br/> <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> </div>
</div> </div>

View file

@ -152,13 +152,13 @@ function main() {
</ul> </ul>
<ul class="simple nested-toc-section">strokePath <ul class="simple nested-toc-section">strokePath
<li><a class="reference" href="#strokePath%2CImage%2CSomePath%2CColorRGBX%2Cfloat" <li><a class="reference" href="#strokePath%2CImage%2CSomePath%2CSomeColor%2Cfloat"
title="strokePath(image: Image; path: SomePath; color: ColorRGBX; strokeWidth = 1.0; title="strokePath(image: Image; path: SomePath; color: SomeColor; strokeWidth = 1.0;
lineCap = lcButt; lineJoin = ljMiter; blendMode = bmNormal)">strokePath,<wbr>Image,<wbr>SomePath,<wbr>ColorRGBX,<wbr>float</a></li> 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%2CColorRGBX%2C%2Cfloat" <li><a class="reference" href="#strokePath%2CImage%2CSomePath%2CSomeColor%2C%2Cfloat"
title="strokePath(image: Image; path: SomePath; color: ColorRGBX; title="strokePath(image: Image; path: SomePath; color: SomeColor;
transform: Vec2 | Mat3; strokeWidth = 1.0; lineCap = lcButt; 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" <li><a class="reference" href="#strokePath%2CMask%2CSomePath%2Cfloat"
title="strokePath(mask: Mask; path: SomePath; strokeWidth = 1.0; lineCap = lcButt; title="strokePath(mask: Mask; path: SomePath; strokeWidth = 1.0; lineCap = lcButt;
lineJoin = ljMiter)">strokePath,<wbr>Mask,<wbr>SomePath,<wbr>float</a></li> lineJoin = ljMiter)">strokePath,<wbr>Mask,<wbr>SomePath,<wbr>float</a></li>
@ -252,12 +252,12 @@ function main() {
</ul> </ul>
<ul class="simple nested-toc-section">fillPath <ul class="simple nested-toc-section">fillPath
<li><a class="reference" href="#fillPath%2CImage%2CSomePath%2CColorRGBX" <li><a class="reference" href="#fillPath%2CImage%2CSomePath%2CSomeColor"
title="fillPath(image: Image; path: SomePath; color: ColorRGBX; title="fillPath(image: Image; path: SomePath; color: SomeColor;
windingRule = wrNonZero; blendMode = bmNormal)">fillPath,<wbr>Image,<wbr>SomePath,<wbr>ColorRGBX</a></li> windingRule = wrNonZero; blendMode = bmNormal)">fillPath,<wbr>Image,<wbr>SomePath,<wbr>SomeColor</a></li>
<li><a class="reference" href="#fillPath%2CImage%2CSomePath%2CColorRGBX%2C" <li><a class="reference" href="#fillPath%2CImage%2CSomePath%2CSomeColor%2C"
title="fillPath(image: Image; path: SomePath; color: ColorRGBX; transform: Vec2 | Mat3; title="fillPath(image: Image; path: SomePath; color: SomeColor; transform: Vec2 | Mat3;
windingRule = wrNonZero; blendMode = bmNormal)">fillPath,<wbr>Image,<wbr>SomePath,<wbr>ColorRGBX,<wbr></a></li> windingRule = wrNonZero; blendMode = bmNormal)">fillPath,<wbr>Image,<wbr>SomePath,<wbr>SomeColor,<wbr></a></li>
<li><a class="reference" href="#fillPath%2CMask%2CSomePath" <li><a class="reference" href="#fillPath%2CMask%2CSomePath"
title="fillPath(mask: Mask; path: SomePath; windingRule = wrNonZero)">fillPath,<wbr>Mask,<wbr>SomePath</a></li> title="fillPath(mask: Mask; path: SomePath; windingRule = wrNonZero)">fillPath,<wbr>Mask,<wbr>SomePath</a></li>
<li><a class="reference" href="#fillPath%2CMask%2CSomePath%2C" <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. Converts SVG-like commands to line segments.
</dd> </dd>
<a id="fillPath,Image,SomePath,ColorRGBX"></a> <a id="fillPath,Image,SomePath,SomeColor"></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> <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> <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> <dd>
Fills a path. Fills a path.
</dd> </dd>
<a id="fillPath,Image,SomePath,ColorRGBX,"></a> <a id="fillPath,Image,SomePath,SomeColor,"></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> <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">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> <span class="Identifier">blendMode</span> <span class="Other">=</span> <span class="Identifier">bmNormal</span><span class="Other">)</span></pre></dt>
<dd> <dd>
@ -606,8 +606,8 @@ Fills a path.
Fills a path. Fills a path.
</dd> </dd>
<a id="strokePath,Image,SomePath,ColorRGBX,float"></a> <a id="strokePath,Image,SomePath,SomeColor,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> <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">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> <span class="Identifier">blendMode</span> <span class="Other">=</span> <span class="Identifier">bmNormal</span><span class="Other">)</span></pre></dt>
<dd> <dd>
@ -615,8 +615,8 @@ Fills a path.
Strokes a path. Strokes a path.
</dd> </dd>
<a id="strokePath,Image,SomePath,ColorRGBX,,float"></a> <a id="strokePath,Image,SomePath,SomeColor,,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> <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">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> <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> <dd>
@ -662,7 +662,7 @@ Return elements in pairs: (1st, 2nd), (2nd, 3rd) ... (n - 1, last).
<div class="twelve-columns footer"> <div class="twelve-columns footer">
<span class="nim-sprite"></span> <span class="nim-sprite"></span>
<br/> <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> </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) 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]] 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 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,SomeColor paths: fillPath(image: Image; path: SomePath; color: SomeColor;\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; 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; 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,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) 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,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,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;\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; 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) 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="document" id="documentId">
<div class="container"> <div class="container">
<h1 class="title">Index</h1> <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"> <dl><dt><a name="%60%24%60" href="#%60%24%60"><span>`$`:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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> 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> </ul></dd>
<dt><a name="%60%5B%5D%3D%60" href="#%60%5B%5D%3D%60"><span>`[]=`:</span></a></dt><dd><ul class="simple"> <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" <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" <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> 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> </ul></dd>
@ -102,6 +102,14 @@ function main() {
<li><a class="reference external" <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> 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> </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"> <dt><a name="bezierCurveTo" href="#bezierCurveTo"><span>bezierCurveTo:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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> 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> </ul></dd>
<dt><a name="blur" href="#blur"><span>blur:</span></a></dt><dd><ul class="simple"> <dt><a name="blur" href="#blur"><span>blur:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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" <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> 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> </ul></dd>
@ -268,6 +276,10 @@ function main() {
<li><a class="reference external" <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> 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> </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"> <dt><a name="decodeImage" href="#decodeImage"><span>decodeImage:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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> 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" <li><a class="reference external"
data-doc-search-tag="FileFormat.ffBmp" href="pixie.html#ffBmp">FileFormat.ffBmp</a></li> data-doc-search-tag="FileFormat.ffBmp" href="pixie.html#ffBmp">FileFormat.ffBmp</a></li>
</ul></dd> </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"> <dt><a name="ffJpg" href="#ffJpg"><span>ffJpg:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <li><a class="reference external"
data-doc-search-tag="FileFormat.ffJpg" href="pixie.html#ffJpg">FileFormat.ffJpg</a></li> data-doc-search-tag="FileFormat.ffJpg" href="pixie.html#ffJpg">FileFormat.ffJpg</a></li>
@ -364,7 +380,7 @@ function main() {
</ul></dd> </ul></dd>
<dt><a name="fill" href="#fill"><span>fill:</span></a></dt><dd><ul class="simple"> <dt><a name="fill" href="#fill"><span>fill:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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" <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> 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> </ul></dd>
@ -376,14 +392,14 @@ function main() {
</ul></dd> </ul></dd>
<dt><a name="fillCircle" href="#fillCircle"><span>fillCircle:</span></a></dt><dd><ul class="simple"> <dt><a name="fillCircle" href="#fillCircle"><span>fillCircle:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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" <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> 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> </ul></dd>
<dt><a name="fillEllipse" href="#fillEllipse"><span>fillEllipse:</span></a></dt><dd><ul class="simple"> <dt><a name="fillEllipse" href="#fillEllipse"><span>fillEllipse:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <li><a class="reference external"
data-doc-search-tag="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%2CColorRGBA">pixie: fillEllipse(image: Image; center: Vec2; rx, ry: float32; color: ColorRGBA; 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> blendMode = bmNormal)</a></li>
<li><a class="reference external" <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> 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> </ul></dd>
<dt><a name="fillPath" href="#fillPath"><span>fillPath:</span></a></dt><dd><ul class="simple"> <dt><a name="fillPath" href="#fillPath"><span>fillPath:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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> 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" <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> 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" <li><a class="reference external"
@ -412,7 +428,7 @@ function main() {
</ul></dd> </ul></dd>
<dt><a name="fillPolygon" href="#fillPolygon"><span>fillPolygon:</span></a></dt><dd><ul class="simple"> <dt><a name="fillPolygon" href="#fillPolygon"><span>fillPolygon:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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" <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> 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> </ul></dd>
@ -422,17 +438,17 @@ function main() {
</ul></dd> </ul></dd>
<dt><a name="fillRect" href="#fillRect"><span>fillRect:</span></a></dt><dd><ul class="simple"> <dt><a name="fillRect" href="#fillRect"><span>fillRect:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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" <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> 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> </ul></dd>
<dt><a name="fillRoundedRect" href="#fillRoundedRect"><span>fillRoundedRect:</span></a></dt><dd><ul class="simple"> <dt><a name="fillRoundedRect" href="#fillRoundedRect"><span>fillRoundedRect:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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; 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: SomeColor)" href="pixie.html#fillRoundedRect%2CImage%2CRect%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32%2CSomeColor">pixie: fillRoundedRect(image: Image; rect: Rect; nw, ne, se, sw: float32;
color: ColorRGBA)</a></li> 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" <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> 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" <li><a class="reference external"
@ -440,7 +456,7 @@ function main() {
</ul></dd> </ul></dd>
<dt><a name="fillUnsafe" href="#fillUnsafe"><span>fillUnsafe:</span></a></dt><dd><ul class="simple"> <dt><a name="fillUnsafe" href="#fillUnsafe"><span>fillUnsafe:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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" <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> 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> </ul></dd>
@ -476,6 +492,10 @@ function main() {
<li><a class="reference external" <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> 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> </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"> <dt><a name="hasSimdBlender" href="#hasSimdBlender"><span>hasSimdBlender:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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> 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> </ul></dd>
<dt><a name="setRgbaUnsafe" href="#setRgbaUnsafe"><span>setRgbaUnsafe:</span></a></dt><dd><ul class="simple"> <dt><a name="setRgbaUnsafe" href="#setRgbaUnsafe"><span>setRgbaUnsafe:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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> </ul></dd>
<dt><a name="setValueUnsafe" href="#setValueUnsafe"><span>setValueUnsafe:</span></a></dt><dd><ul class="simple"> <dt><a name="setValueUnsafe" href="#setValueUnsafe"><span>setValueUnsafe:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <li><a class="reference external"
@ -766,7 +786,7 @@ function main() {
</ul></dd> </ul></dd>
<dt><a name="shadow" href="#shadow"><span>shadow:</span></a></dt><dd><ul class="simple"> <dt><a name="shadow" href="#shadow"><span>shadow:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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> </ul></dd>
<dt><a name="shift" href="#shift"><span>shift:</span></a></dt><dd><ul class="simple"> <dt><a name="shift" href="#shift"><span>shift:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <li><a class="reference external"
@ -782,30 +802,30 @@ function main() {
</ul></dd> </ul></dd>
<dt><a name="strokeCircle" href="#strokeCircle"><span>strokeCircle:</span></a></dt><dd><ul class="simple"> <dt><a name="strokeCircle" href="#strokeCircle"><span>strokeCircle:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <li><a class="reference external"
data-doc-search-tag="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%2CColorRGBA%2Cfloat">pixie: strokeCircle(image: Image; center: Vec2; radius: float32; color: ColorRGBA; 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> strokeWidth = 1.0)</a></li>
<li><a class="reference external" <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> 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> </ul></dd>
<dt><a name="strokeEllipse" href="#strokeEllipse"><span>strokeEllipse:</span></a></dt><dd><ul class="simple"> <dt><a name="strokeEllipse" href="#strokeEllipse"><span>strokeEllipse:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <li><a class="reference external"
data-doc-search-tag="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%2CColorRGBA%2Cfloat">pixie: strokeEllipse(image: Image; center: Vec2; rx, ry: float32; color: ColorRGBA; 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> strokeWidth = 1.0)</a></li>
<li><a class="reference external" <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> 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> </ul></dd>
<dt><a name="strokePath" href="#strokePath"><span>strokePath:</span></a></dt><dd><ul class="simple"> <dt><a name="strokePath" href="#strokePath"><span>strokePath:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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; 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; transform: Vec2 | Mat3; strokeWidth = 1.0; lineCap = lcButt;
lineJoin = ljMiter; blendMode = bmNormal)</a></li> lineJoin = ljMiter; blendMode = bmNormal)</a></li>
<li><a class="reference external" <li><a class="reference external"
data-doc-search-tag="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%2CColorRGBX%2Cfloat">paths: strokePath(image: Image; path: SomePath; color: ColorRGBX; 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> lineCap = lcButt; lineJoin = ljMiter; blendMode = bmNormal)</a></li>
<li><a class="reference external" <li><a class="reference external"
data-doc-search-tag="paths: strokePath(mask: Mask; path: SomePath; transform: Vec2 | Mat3; 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"> <dt><a name="strokePolygon" href="#strokePolygon"><span>strokePolygon:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <li><a class="reference external"
data-doc-search-tag="pixie: strokePolygon(image: Image; pos: Vec2; size: float32; sides: int; 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: 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: ColorRGBA; strokeWidth = 1.0)</a></li> color: SomeColor; strokeWidth = 1.0)</a></li>
<li><a class="reference external" <li><a class="reference external"
data-doc-search-tag="pixie: strokePolygon(mask: Mask; pos: Vec2; size: float32; sides: int; 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; 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> </ul></dd>
<dt><a name="strokeRect" href="#strokeRect"><span>strokeRect:</span></a></dt><dd><ul class="simple"> <dt><a name="strokeRect" href="#strokeRect"><span>strokeRect:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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" <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> 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> </ul></dd>
<dt><a name="strokeRoundedRect" href="#strokeRoundedRect"><span>strokeRoundedRect:</span></a></dt><dd><ul class="simple"> <dt><a name="strokeRoundedRect" href="#strokeRoundedRect"><span>strokeRoundedRect:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <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; 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: 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: ColorRGBA; strokeWidth = 1.0)</a></li> 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" <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> 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" <li><a class="reference external"
@ -850,8 +870,8 @@ function main() {
</ul></dd> </ul></dd>
<dt><a name="strokeSegment" href="#strokeSegment"><span>strokeSegment:</span></a></dt><dd><ul class="simple"> <dt><a name="strokeSegment" href="#strokeSegment"><span>strokeSegment:</span></a></dt><dd><ul class="simple">
<li><a class="reference external" <li><a class="reference external"
data-doc-search-tag="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%2CColorRGBA%2Cfloat">pixie: strokeSegment(image: Image; segment: Segment; color: ColorRGBA; strokeWidth = 1.0)" href="pixie.html#strokeSegment%2CImage%2CSegment%2CSomeColor%2Cfloat">pixie: strokeSegment(image: Image; segment: Segment; color: SomeColor;
strokeWidth = 1.0)</a></li> strokeWidth = 1.0)</a></li>
<li><a class="reference external" <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> 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"> <div class="twelve-columns footer">
<span class="nim-sprite"></span> <span class="nim-sprite"></span>
<br/> <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> </div>
</div> </div>

View file

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

View file

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

View file

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

View file

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