<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Eliot, Hi David,<br>
<br>
Thanks for your interest in VectorEnginePlugin! It is exciting to
know that it will be included in official VM builds, as this will
ensure it is available for everybody, and it avoids the need to
maintain separate VM builds for this.<br>
<br>
Let me explain a little bit why it is not simply maintained as a
Monticello repository. I wrote and maintain the plugin using Cuis,
because Cuis has a morphic implementation that is compatible with
it, and this eases development and testing. Cuis uses the .pck.st
file format for packages, that is essentially a change set with very
little additional metadata. Squeak can read .pck.st files without
trouble.<br>
<br>
Cuis can run enough of VMMaker to be able to generate C sources for
plugins (although it can't generate the full VM or run simulated
Slang). As Dave said, Squeak can also load VectorEnginePlugin.pck.st
in a VMMaker Squeak image and generate C sources for it.<br>
<br>
Dave, thanks a lot for your offer to commit the generated sources to
the OpenSmalltalk repo, or alternatively to set up an upstream
Monticello mirror for VectorEnginePlugin. I haven't used much
Squeak, VMMaker or Monticello in years, if I tried to do that I'm
sure I'd make a lot of mistakes!<br>
<br>
Finally, if you want to try it for yourself, clone or copy as a zip
file <a class="moz-txt-link-freetext" href="http://www.github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">http://www.github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a> and run
it with one of the experimental VMs at <br>
<a class="moz-txt-link-freetext" href="https://www.dropbox.com/sh/rhkt4ayq24t2xbf/AACDb3mrjMUDB8Mptd-Bi6Zsa?dl=0">https://www.dropbox.com/sh/rhkt4ayq24t2xbf/AACDb3mrjMUDB8Mptd-Bi6Zsa?dl=0</a>
. VMs are available for LinuxX64, Windows64 and Windows32 (built by
Gerald Klix), LinuxX64-v3-interpreter (built by Dave) and MacOS
(built by me).<br>
<br>
Once you get Cuis running with a VM that includes
VectorEnginePlugin, (and using the complete folder structure of that
GitHub repo), you can do World / Preferences... / Set System Font...
/ DejaVu / DejaVuSans , or, for example, ComputerModern... /
NeoEuler or ComputerModernConcreteRoman .<br>
<br>
Now use center-click to bring a halo on the "About Cuis" window, or
a Smalltalk browser. Note that in addition to the resize handle,
there is a zoom handle at the rightCenter and a rotate handle at the
bottomLeft. Just play with them. Note that the TrueType text is
rasterized straight from the TrueType Bezier curves spec to the
Display, at any angle and zoom level (no Form caching at all).<br>
<br>
You can also do World / New Morph... / From Alphabetical List /
M3Exp01Morph . Clone it with the topRight halo handle. See what
happens when one of them touches another. Other example morphs, like
M3Exp03Morph and M3Exp05Morph show how little code is needed to draw
arbitrary shapes, while the framework handles all geometry details
(such as detecting when the hand touches the morph, in order to drag
it or open the halo).<br>
<br>
If you clone the SVG repo, you can also see how we can read and turn
into Morph structure some rather complex SVG files.<br>
<br>
One interesting note about VectorEnginePlugin is that exactly the
same algorithm is doing TrueType (meaning that it is good enough for
text, i.e. better quality than Cairo) and fast enough for SVG
manipulation and animation.<br>
<br>
I hope you like it.<br>
<br>
Cheers,<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
<a class="moz-txt-link-abbreviated" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a>
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a class="moz-txt-link-freetext" href="https://github.com/jvuletich">https://github.com/jvuletich</a>
<a class="moz-txt-link-freetext" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
@JuanVuletich</pre>
<br>
<br>
On 7/21/2021 4:09 PM, Eliot Miranda wrote:
<blockquote
cite="mid:CAC20JE08JOWYnZs5x9Ne12OK1QBW6Ahg6zDO7N0WiWzyWpqoQQ@mail.gmail.com"
type="cite">
<pre wrap="">Hi David, Hi Juan,
</pre>
<div dir="ltr"><br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, Jul 20, 2021 at 5:48
PM David T. Lewis <<a moz-do-not-send="true"
href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</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;"> <br>
VectorEnginePlugin is a new plugin by Juan Vuletich that can
be added to<br>
standard VM builds as an external plugin. Currently it is
used principally<br>
by Cuis, but is applicable to Squeak and related images as
well.</blockquote>
<div><br>
</div>
<div class="gmail_default" style="font-size: small;">great
news!</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
<br>
The Smalltalk slang source is hosted at <a
moz-do-not-send="true"
href="https://github.com/Cuis-Smalltalk" rel="noreferrer"
target="_blank">https://github.com/Cuis-Smalltalk</a><br>
and the package file for fileIn to Cuis or Squeak is<br>
<a moz-do-not-send="true"
href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Packages/Features/VectorEnginePlugin.pck.st"
rel="noreferrer" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Packages/Features/VectorEnginePlugin.pck.st</a>.<br>
<br>
No external platforms files are required. The plugin source
can be<br>
generated from any Cuis or Squeak VMMaker image and is
portable for any<br>
platform or VM flavor. Squeak (and hence any VMMaker image)
already has<br>
the necessary support for filing in the plugin without
modification.<br>
<br>
The minimal requirement for adding this to the
opensmalltalk-vm (and traditional<br>
squeakvm) is to commit the generated sources to
src/plugins/VectorEnginePlugin/<br>
and add it to the the various plugins.ext files.<br>
<br>
Beyond that, I want to ask in advance how we should support
VectorEnginePlugin<br>
moving forward. The simplest thing to do is treat the Cuis
GitHub repository<br>
as the upstream repository (which it is), and just check
generated sources into<br>
the opensmalltalk-vm and <a moz-do-not-send="true"
href="http://squeakvm.org" rel="noreferrer"
target="_blank">squeakvm.org</a> repositories. This
however is different<br>
from what we usually do with plugins that live in Monticello
repositories<br>
and are loaded into VMMaker images, usually from
repositories hosted on<br>
<a moz-do-not-send="true" href="http://source.squeak.org"
rel="noreferrer" target="_blank">source.squeak.org</a> or
<a moz-do-not-send="true" href="http://squeaksource.com"
rel="noreferrer" target="_blank">squeaksource.com</a>.<br>
<br>
Are there any preferences or recommendations as to how to
best handle this?<br>
I have been tracking the VectorEnginePlugin for some time
and I'm willing<br>
to do any administrative things that may be needed,
including checking in<br>
generated sources and/or possibly setting up and maintaining
a Monticello<br>
mirror of the upstream repository (e.g. a project on
squeaksource) if<br>
that is preferred.<br>
</blockquote>
<div><br>
</div>
<div class="gmail_default" style="font-size: small;">An
upstream Monticello mirror would be most helpful. We have a
tiny script for generating correct histories in exports to
Monticello from Tonel repositories if it is of help. I will
fold the VectorEnginePlugin into the standard builds within
the next few days (not today, I need some downtime).</div>
<div class="gmail_default" style="font-size: small;"><br>
</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
<br>
Thanks for any ideas or suggestions, and thanks to Juan for
developing<br>
the new VectorEnginePlugin.<br>
</blockquote>
<div><br>
</div>
<div class="gmail_default" style="font-size: small;">+1000!!!</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
<br>
Dave<br>
<br>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr">
<div><span style="font-size: small; border-collapse:
separate;">
<div>_,,,^..^,,,_<br>
</div>
<div>best, Eliot</div>
</span></div>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>