Regarding the serialization of Spiro control points
by Fred Brennan
Greetings,
I write from the FontForge project. Of particular interest to me is the Spiro
spline feature, which was originated around ten years ago by Raph Levien.
One thing I'd like to add, (which would benefit both our projects,) is the
ability of FontForge to understand the Inkscape Spiro serialization format.
However, there are several things about the format which to me as an outsider
appear to be defects serious enough that I have no idea how to even *import*
these splines correctly, much less export our Spiro splines to this format. I
would very much like to support the _de facto_ standard Inkscape has
originated of supporting Spiro in SVG, but I am lost.
George Williams, FontForge's original author, noticed this defect over eleven
years ago.[1] Things are virtually unchanged since then, I checked `git
blame`.
Spiro has five point types, not including beginning and ending points. They
are:
* G4 curve (o)
* G2 curve (c)
* Corner (v)
* Left Constraint ([)
* Right Constraint (])
The ASCII single letters are the normal method of Spiro serialization, as
championed by Raph Levien and by us in FontForge.
Inkscape seems to create what I will call a "pseudo-SVG path". So, it is not
really an SVG path, but rather is an SVG path which undergoes transformation
into the typical Spiro format. Inkscape stores this in the "original-d"
attribute.
So, given a Bezier spline with control points defined as (x, y, c1, c2),
Inkscape interprets a control point with only (x, y) to be a corner, meanwhile
a control point with all four is a G4 curve, and (x, y, c1, NULL) is a left
constraint while (x, y, NULL, c2) is a right constraint.
I can probably overcome this, although George Williams was right to be
skeptical of this format. There is no way I can see to define a G2 curve in
this strange "original-d" format.
Thus, this email. I write to ask a few things. I suppose first of all, what
are the chances that we can convince you guys to store Spiro splines in
plate[2] format, or another widely accepted Spiro serialization format?
Second, if we cannot convince you to do that, how do I export FontForge spiros
which contain G2 control points to Inkscape's original-d format? It's not
possible, yes? So should I just silently fail and save them as G4? The curves
will not be the same if I do that. Should I disallow export to SVG w/Spiro if
glyph contains G2 control point? That seems a steep cost that will just
confuse my users, so perhaps I should abandon the whole thing if it comes to
that.
Cordial regards,
Fredrick Brennan (@ctrlcctrlv)
[1]: https://narkive.com/63FADpG3.4
[2]: https://levien.com/garden/ppedit/README, section "Plate files"
1 year, 8 months
GDI BUS Issues - constantly Crashing Inkscape.
by gjr
Since V1.0
When opening ANY Non exported, Non embedded, Non Related image file with
ANY other "GRAPHICS/RASTER" app causes inkscape to crash with a GDI BUS
error if INSKSCAPE (NOT RESPONDING) is active in memory.
Getting sick of it. For crying out loud - even attaching image to email
crashes inkscape.
I'm running Win 8.1 (yes, I know).
I have tried assigning admin perms to Inkscape and gdibus.exe, to no avail.
Here's what I think,
you are lockcing the gdi bus memory, ASSUMING THAT ANY CALL TO THE GDI
IS FOR YOU, THEN YOU RECEIVE A NULL RESPONSE AND YOU HAVE ZERO ERROR
HANDLING.
Not every gdi bus call is for inkscape.
Fix this.
Seriously, I have lost so much stuff because of this - it corrupts text
areas and gradients and I am getting sick of it.
For crying out loud, handling a null response is coding 101!
Kind Regards,
Gary
--
.....................
Gary Rockley
Tel +1 512 519 9593
Cel +1 651-216-4726
2 years, 2 months
Inkscape is participating in Outreachy!
by Martin Owens
Dear Developers,
Inkscape is confirmed to be participating in Outreachy Dec-2021, the
principle mentors are Kavya and Adam.Belis, but if you have a project
you think would be good for an intern to work on, please do become a
mentor or co-mentor too. The projects don't have to be development
(unlike GSoC) so if you've been sitting on a documentation project and
haven't had time to get to it, now is the time to do some mentoring and
make Inkscape even better.
Commitment is a couple of hours a week during the intern period.
You can go to https://www.outreachy.org/communities/cfp/inkscape/
Scroll down to the bottom to the green "Submit a Project Proposal"
button and fill out the forms. The outreachy coordinators (myself, Tav
and Marc) will review all the project proposals and confirm them and
then they'll be open to potential interns to select from.
= Schedule =
Oct. 1, 2021 - Contribution period begins
Oct. 31, 2021 - Contribution period ends
Nov - Lots of administration happens.
Dec. 6, 2021 - March 4, 2022 - Internships period
Let me know if you need any guidance or further details
Best Regards, Martin Owens
2 years, 2 months
Inkscape Crash Jam 111 (Sept 8th)
by Martin Owens
Dear Developers,
Please join us tomorrow for the Inkscape Crash Jam 1.1.1, we're getting
together for a few hours September 8th from 4PM UTC (for your own
timezone, see calendar https://inkscape.org/*developer/calendar/ )
The goal is to go through merge requests and find crash fixes which
should be back ported to the 1.1.x branch of Inkscape. Currently the
1.1 point release is quite thin, but we think there's useful fixes that
could make it a nicer release, so if you can, please join us and we'll
have some fun on the video chat socialising too.
Best Regards, Martin Owens
Developer Hat
2 years, 2 months