Release: nanovega.d rendering lib like html5 canvas

WebFreak001 d.forum at webfreak.org
Fri Mar 9 17:33:24 UTC 2018


On Thursday, 8 March 2018 at 22:08:30 UTC, aberba wrote:
> On Thursday, 8 March 2018 at 19:24:43 UTC, WebFreak001 wrote:
>> On Thursday, 8 March 2018 at 03:55:35 UTC, Adam D. Ruppe wrote:
>>> https://github.com/adamdruppe/arsd
>>>
>>> nanovega.d
>>>
>>> [...]
>>
>> AMAZING! I think this will revolutionize how we do GUI and 
>> rendering in D, especially nogc. You can make really cool 
>> effects and renders very quickly.
>>
>> Got some cool project ideas how you could use this already. 
>> You could make a WPF clone in D for example if you put in a 
>> lot of time, but it would probably be far superior than all 
>> other currently existing GUI toolkits if you get the data 
>> binding and event layer right.
>
> And theming. Especially with a subset of CSS.

Yeah you can make really cool effects: https://wfr.moe/fFYvHH.png

---

string txt = "Text me up.";
float[4] bounds;
nvg.fontFace = "Roboto";
nvg.fontSize = 32;
nvg.textBounds(64, 64, txt, bounds[]);
nvg.beginPath();
nvg.roundedRect(bounds[0] - 32, bounds[1] - 8 + 8, 
bounds[2]-bounds[0] + 64, bounds[3]-bounds[1] + 16, 4);
nvg.fillPaint = nvg.linearGradient(bounds[0], bounds[1], 
bounds[2], bounds[3], NVGColor("#c50"), NVGColor("#860"));
nvg.fill();
nvg.beginPath();
nvg.roundedRect(bounds[0] - 32, bounds[1] - 8, 
bounds[2]-bounds[0] + 64, bounds[3]-bounds[1] + 16, 4);
nvg.fillPaint = nvg.linearGradient(bounds[0], bounds[1], 
bounds[2], bounds[3], NVGColor("#f70"), NVGColor("#a90"));
nvg.fill();
nvg.fillPaint = pattern;
nvg.fill();
nvg.beginPath();
nvg.roundedRect(bounds[0] - 32, bounds[1] - 8, 
bounds[2]-bounds[0] + 64, bounds[3]-bounds[1] + 16 + 8, 4);
nvg.strokeColor = NVGColor.white;
nvg.strokeWidth = 2;
nvg.stroke();
nvg.fillColor = NVGColor.black;
nvg.text(64, 64, txt);


More information about the Digitalmars-d-announce mailing list