<div dir="ltr">Amazing!!!<br><div>The rotation and zooming of the windows works great! </div><div><br></div><div>Congratulations Juan, it is completely usable at least in my machine. Great work!! </div><div><br></div><div>Cheers!</div><div>Hernan.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 26, 2021 at 2:05 PM Juan Vuletich via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Folks,<br>
<br>
I added some new features to the VectorEnginePlugin. Unicode text (UTF-8 <br>
and UTF-32) can now be rendered by the plugin, with excellent <br>
performance, quality and multilingual support. SVG examples also work <br>
great. Take a look!<br>
<br>
I hope you like it.<br>
<br>
To explore this stuff:<br>
<br>
A -To see it running. Experimental. I only buit it for MacOS.<br>
1) Grab VM including the plugin from<br>
<a href="https://www.dropbox.com/sh/rhkt4ayq24t2xbf/AACDb3mrjMUDB8Mptd-Bi6Zsa?dl=0" rel="noreferrer" target="_blank">https://www.dropbox.com/sh/rhkt4ayq24t2xbf/AACDb3mrjMUDB8Mptd-Bi6Zsa?dl=0</a><br>
2) Pull Cuis repo.<br>
3) Start Cuis with the VM above<br>
4) Evaluate:<br>
     ChangeSet installNewUpdates.<br>
5) Evaluate:<br>
     Feature require: 'VectorGraphics'.<br>
6) Set a TT Font, like DejaVu.../DejaVuSans (Stuff will break with <br>
StrikeFonts and you'll need to kill the image)<br>
7) Evaluate:<br>
     M3Exp01Morph new openInWorld.<br>
     Answer yes.<br>
     Play with the halo. Very slow! Still running the Smalltalk code for <br>
VectorEngine<br>
8) Evaluate:<br>
     (self runningWorld canvas instVarNamed: 'vectorCanvas') usePlugin.<br>
     Play with the halo. Rotate (bottom left handle) and Zool (bottom <br>
right handle) Now it is very fast! The plugin is working.<br>
9) For the following, it is advisable to download the GPL licensed <br>
"HanWangMingMedium" chinese font, and make it accessible to Cuis. Evaluate:<br>
     VectorCanvas demoUTF8Unicode.<br>
     VectorCanvas demoUTF32Unicode.<br>
10) Evaluate<br>
     Feature require: 'SVG'.<br>
     SVGElementMorph examplesLion<br>
     SVGElementMorph examplesMagician<br>
     SVGElementMorph examplesTiger<br>
     SVGElementMorph phoneExample<br>
     Note that loading some of these files takes a bit of time. These <br>
are complex SVG files! Still, note that they are drawn quickly by the <br>
plugin, even when doing high-quality subpixel antialiasing. To compare <br>
quality, you might try opening these SVG files with a web browser. You <br>
can rotate and zoom, of course. You can also use the halo to extract or <br>
duplicate parts of the SVG composites, like you would do in Inkscape.<br>
12) Hide the taskbar<br>
13) redefine WidgetMorph>>requiresVectorCanvas to answer true,<br>
14) refresh the display. Now every window and window element, including<br>
all the text, is drawn by VectorEngine. You might notice that all the<br>
appareances of any glyph, for example $a are no longer identical. Text<br>
layout and Glyph placement is done with Float arithmetic, using subpixel<br>
locations!<br>
15) redefine WidgetMorph>>hasVariableExtent to answer false.<br>
16) Open the halo on any window. Use the rotate and zoom handles.<br>
<br>
B - You want to look at the generated C code for the plugin, or build it<br>
for another platform. You need a working setup to build the<br>
OpenSmalltalk VM. The dropbox opensmalltalk-vm includes the files needed<br>
to build the VM with the plugin.<br>
<br>
C - You want to experiment with the Slang plugin source code. I have<br>
only done this in Cuis, not yet in the official Squeak VMMaker image.<br>
1) Clone / pull VMMaker repo<br>
2) Start Cuis<br>
3) Evaluate:<br>
     ChangeSet installNewUpdates.<br>
     Feature require: 'VMMaker'.<br>
     Feature require: 'VectorEnginePlugin'<br>
     VectorEnginePlugin translateInDirectory: DirectoryEntry <br>
currentDirectory doInlining: true<br>
<br>
Cheers,<br>
<br>
-- <br>
Juan Vuletich<br>
<a href="http://www.cuis-smalltalk.org" rel="noreferrer" target="_blank">www.cuis-smalltalk.org</a><br>
<a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" rel="noreferrer" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a><br>
<a href="https://github.com/jvuletich" rel="noreferrer" target="_blank">https://github.com/jvuletich</a><br>
<a href="https://www.linkedin.com/in/juan-vuletich-75611b3" rel="noreferrer" target="_blank">https://www.linkedin.com/in/juan-vuletich-75611b3</a><br>
@JuanVuletich<br>
<br>
-- <br>
Cuis-dev mailing list<br>
<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br>
<a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><a href="https://10pines.com/" style="font-family:Roboto,Helvetica,Arial,sans-serif;font-size:medium" target="_blank"><img width="108" src="https://10pines.github.io/email-signature/10pines-firma@2x.png" style="margin-bottom: 0.5em;"></a><span style="color:rgb(0,0,0);font-family:Roboto,Helvetica,Arial,sans-serif;font-size:medium"></span><h1 style="margin:0px;font-size:14px">Hernán Wilkinson</h1><h2 style="margin:0px 0px 1em;font-size:14px;color:rgb(100,100,100)">Software Developer, Teacher & Coach</h2><p style="margin:0px;color:rgb(100,100,100);font-size:12px">Alem 896, Floor 6, Buenos Aires, Argentina</p><p style="margin:0px;color:rgb(100,100,100);font-size:12px">+54 11 6091 3125</p><p style="margin:0px;color:rgb(100,100,100);font-size:12px">@HernanWilkinson</p></div></div></div></div></div></div></div></div></div></div>