| Store | Cart

Re: [TCLCORE] state of tip 507 simple svg support

From: Francois Vogel <fvog...@free.fr>
Thu, 6 Sep 2018 22:30:20 +0200
Le 05/09/2018 à 09:13, Zaumseil René a écrit :
> it is now some weeks after the last discussion on this tip. I think I > have answered all open issues. The current state is in the tk > repository at http://core.tcl.tk/tk/timeline?n=100&r=tip-507 If there > are no more questions I would like to get a vote on it.

Here are some comments and questions summing up my reading and testing:


A. About the TIP

A.1. Quoting the TIP: "are there better libraries with our requirements?":
What are those requirements?
What was the reason for going with tksvg rather than another choice?
Is there another option, another implementation? Was this discussed and 
settled? Any pointer to the discussion?

A.2. Quoting the TIP: "nanosvg is no full svg library":
I'm wondering about the future: putting this tip-507 code into the core 
condemn us to maintain it for the next 20 years at least (who commits to 
do this by the way?). Since nanosvg provides only part of the SVG 
library, will upward compatibility be reasonably guaranteed when we will 
be willing to replace this nanosvg by another code having more complete 
SVG functionality?
Or perhaps we consider we don't care since this nanosvg is already a 
huge improvement over having no SVG support at all? This would be a 
position I could agree on.
Nonetheless, what governed the choice of a partial SVG library as 
opposed to a full SVG-featured library (see section "Alternatives" in 
the TIP)?

A.3. I really believe, and this was also requested by Harald Oehlmann on 
tcl-core on 29 May 2018, that the TIP should document what is NOT 
possible/supported with nanovsg (compared to a full-featured SVG library).

A.4. If you're requesting a vote, then the proposal should be fully 
decided by consensus. Therefore the "Discussion" section of the TIP, 
containing open questions, should not stay as it is now.

A.5. The TIP still does not mention that the format parameter is 
read-only. When Koen Danckaert noticed this you agreed to update the TIP 
accordingly.


B. About the source code, the build and the running of the test suite

B.1. The tip-507 branch compiles with success on Windows Vista and Win7, 
with Visual C++ 2008.It also compiles with success on macOS. Didn't try 
on Linux, anyone can check please?

B.2. The test suite runs successfully on Windows (Win7), both 
imgSVGnano.test alone and the full Tk test suite (exactly zero 
failure).Same good results on macOS. Didn't try on Linux, anyone can 
check please?

B.3. Naming: nanosvg or svgnano? Both are present in the source code 
from tip-507 branch. Shouldn't this be homogeneous (i.e. pick one and 
use it consistently)?Is there some reason that escapes me for not having 
consistency?

B.4. Still <TODO> in the source code, according to Harald Oehlmann: "the 
quick fix by me has to be replaced (stroll replaced by strol)". Any taker?


C. About the documentation (in photo.n)

C.1. What was in the tip-507 branch did not compile to html. I have 
fixed the syntax errors and changed the text slightly since I was there. 
Proofreading by any native english speaker is probably needed.

C.2. Quotingthe man page: "The svgnano format supports a wide range of 
SVG features, but the full SVG standard is not available for instance 
the 'text' feature is missing.": I think we should point the reader to 
the full documentation of what is supported in our subset of the SVG 
standard and what is not supported. Even better would be we document 
this properly in Tk. As dkf reminded us at some point in the discussion: 
we have a long tradition of not forcing our users to read the code to 
find out what feature Tcl/Tk has.

C.3. Quoting the man page: "Available units are px (default, coordinates 
in pixel), mm , cm and in." But reading nanosvg.h one learns that "The 
units passed to NanoVG should be one of: 'px', 'pt', 'pc' 'mm', 'cm', or 
'in'." Why were some of these units left out of the man page?

C.4. In one of his messages to tcl-core, René mentioned: "Be aware each 
new -format call will reset previous ones." This is true, and definitely 
deserves to be added in the man page (if we don't see this as a bug, 
which was my first reaction). The options do not cumulate, e.g.:
   $img configure -format {svgnano -scale 2}
   $img configure -format {svgnano -x 10}    ; # this call resets -scale 
to 1 !!
But really I tend to view this as a bug. Opinions?

Regards,
Francois


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Tcl-Core mailing list
Tcl-...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tcl-core

Recent Messages in this Thread
Zaumseil René Sep 05, 2018 07:13 am
Francois Vogel Sep 06, 2018 08:30 pm
Brian Griffin Sep 17, 2018 04:20 pm
Donal K. Fellows Sep 18, 2018 07:11 am
Christian Gollwitzer Sep 25, 2018 05:48 pm
Zaumseil René Sep 26, 2018 06:42 am
Kevin Kenny Sep 18, 2018 03:29 pm
Zaumseil René Sep 19, 2018 03:06 pm
Francois Vogel Sep 22, 2018 02:38 pm
Zaumseil René Sep 24, 2018 06:26 am
Zaumseil René Sep 24, 2018 06:30 am
Donal K. Fellows Sep 25, 2018 08:41 am
Stefan Sobernig Sep 25, 2018 09:03 am
Donal K. Fellows Sep 25, 2018 10:04 am
Stefan Sobernig Sep 26, 2018 08:51 am
Donal K. Fellows Sep 26, 2018 01:24 pm
Christian Gollwitzer Sep 26, 2018 01:48 pm
Zaumseil René Sep 26, 2018 02:08 pm
Messages in this thread