Page 2 of 3
Re: The basis for an xtalk engine [I/we] control
Posted: Wed Mar 26, 2025 10:22 am
by richmond62
At one time someone did release an LC stack to do Bezier curves: but I am not sure in what way it was licensed.
But curves for shapes in LCC 'pure' is not possible beyond distorting the Oval graphic.
This was discussed over the road late last year.
Re: The basis for an xtalk engine [I/we] control
Posted: Wed Mar 26, 2025 11:01 am
by FourthWorld
richmond62 wrote: ↑Wed Mar 26, 2025 10:22 am
At one time someone did release an LC stack to do Bezier curves: but I am not sure in what way it was licensed.
I have two on my drive, one from Mark Waddingham and another from Jim Hurley.
Both use polygons, acceptable on screen but not on any hi-res printer.
And neither has any licensing info at all, so they're unusable in any distributed work unless one reaches out to the author to obtain compatible licence.
Re: The basis for an xtalk engine [I/we] control
Posted: Wed Mar 26, 2025 12:57 pm
by OpenXTalkPaul
FourthWorld wrote: ↑Wed Mar 26, 2025 11:01 am
richmond62 wrote: ↑Wed Mar 26, 2025 10:22 am
At one time someone did release an LC stack to do Bezier curves: but I am not sure in what way it was licensed.
I have two on my drive, one from Mark Waddingham and another from Jim Hurley.
Both use polygons, acceptable on screen but not on any hi-res printer.
And neither has any licensing info at all, so they're unusable in any distributed work unless one reaches out to the author to obtain compatible licence.
IANAL, but I think that is not exactly true, my understanding is that if the code was released open source (unprotected stack) for use with the FOSS community engine then it falls under the GPLv3 license of LC Community Edition (and OXT community engines inherited) license.
But yeah, until Extension Builder Canvas and SVG support, there was no built-in way to arbitrary create true multi-points curved lines drawing with the engine, you can only make graphic objects that are ovals or arcs segments.
You
could group a bunch of those together to create more complex arc. There's even a stack around that can convert fairly complex EPS files (Encapsulated Postscript) into groups of hundreds of Graphics shapes using that method. I have different few examples of creating brazier handles for editing curved path from various people, including Hermann Hoch (that means it was MIT licensed).
if you get 'the effective points of an oval or an arch you get a points list that draws an approximation of the curve using a bunch of straight lines rather than a smooth curve. And if you rasterize them to a pixel image they get the 'jaggies' or pixelated 'stair stepping'.
Re: The basis for an xtalk engine [I/we] control
Posted: Wed Mar 26, 2025 4:37 pm
by FourthWorld
OpenXTalkPaul wrote: ↑Wed Mar 26, 2025 12:57 pm
FourthWorld wrote: ↑Wed Mar 26, 2025 11:01 am
richmond62 wrote: ↑Wed Mar 26, 2025 10:22 am
At one time someone did release an LC stack to do Bezier curves: but I am not sure in what way it was licensed.
I have two on my drive, one from Mark Waddingham and another from Jim Hurley.
Both use polygons, acceptable on screen but not on any hi-res printer.
And neither has any licensing info at all, so they're unusable in any distributed work unless one reaches out to the author to obtain compatible licence.
IANAL, but I think that is not exactly true, my understanding is that
if the code was released open source (unprotected stack) for use with the FOSS community engine then it falls under the GPLv3 license of LC Community Edition (and OXT community engines inherited) license.
No such usage limitations were included.
Unexpressed intentions are ambiguous.
Clarity is provided when licensing is provided.
Re: The basis for an xtalk engine [I/we] control
Posted: Wed Mar 26, 2025 5:00 pm
by OpenXTalkPaul
FourthWorld wrote: ↑Wed Mar 26, 2025 4:37 pm
IANAL, but I think that is not exactly true, my understanding is that if the code was released open source (unprotected stack) for use with the FOSS community engine then it falls under the GPLv3 license of LC Community Edition (and OXT community engines inherited) license.
No such usage limitations were included.
Unexpressed intentions are ambiguous.
Clarity is provided when licensing is provided.
It seems like you're saying that any sample code 'out in the wild' anywhere is not legally safe to use unless you know the license terms. That would basically render tons of code on the internet on sites and like Stack-Overflow virtually useless. LiveCode share site would've been entirely pointless and I would like any of my sample stacks removed from there if that's the case.
The LC Community license, according to LC Mark, follows the WordPress take on licensing, which is that if the code relies on the LC engine to be functional, then it's a derivative work subject to the same GPLv3 license. Having had that dual-licensing scheme really muddies the water though.
Re: The basis for an xtalk engine [I/we] control
Posted: Wed Mar 26, 2025 5:06 pm
by richmond62
which is that if the code relies on the LC engine to be functional, then it's a derivative work subject to the same GPLv3 license.
Err: and isn't GPLv3 pretty well 'grab it and run'?
Are ALL versions of the LC engine up to 9.6.3 GPLv3?
If that is the case I wonder what bits of the commercial LC distributions were NOT GPLv3.
FourthWorld (in his usual, charming fashion) suggested we should egt in touch with the authors of these stacks (just to cover our backs, even if nothing else).
I always understood (right from stacks I released back in 2002 with RunRev 1.0) that ANYTHING released vai the LC Use-List or the LC Forums was 'up for grabs'.
I'll leave the nit-picking about licences re stacks posted on public forums (for nit-picking is what it is) to FourthWorld and his team of experts.
Many, many years ago (erm 1983) I found a book in a junk shop in Crewkerne, in Somerset, that had been published in 1624 (that's a while ago), and bought it, and still have it, here in Bulgaria on one of my bookshelves. Now I subsequently published a section of it (about 20 pages) in an edition of 50 copies while I was at my first university (Durham) and sold it to my friends, lecturers, and several unsuspecting types who had a free pound. Later, I discovered that some wag had another copy of that book and had attempted to copyright it (whether they succeeded or not, I don't know) who sent me, via a lawyer (how the fudge they had got their sweaty paws on my edition escapes me), a "snotty" letter. I didn't bother to reply . . .
I don't know or care is that was a legal wrong on my part, but morally it was alright.

Re: The basis for an xtalk engine [I/we] control
Posted: Wed Mar 26, 2025 5:35 pm
by richmond62
Re: The basis for an xtalk engine [I/we] control
Posted: Wed Mar 26, 2025 5:44 pm
by richmond62
Using the thing that is coyly called '
Curve Graphic' results in nothing of the sort:
-

- Screenshot 2025-03-26 at 19.39.50.png (115.6 KiB) Viewed 5808 times
-

- Screenshot 2025-03-26 at 19.40.50.png (225.26 KiB) Viewed 5808 times
-
as while apparently providing a curved graphic actually provides a graphic object composed of points . . .
Re: The basis for an xtalk engine [I/we] control
Posted: Wed Mar 26, 2025 5:48 pm
by richmond62
This:
-

- Screenshot 2025-03-26 at 19.47.26.png (191.24 KiB) Viewed 5806 times
-
is in actual fact some sort of a group.
Here it is ungrouped:
-

- Screenshot 2025-03-26 at 19.49.16.png (198.31 KiB) Viewed 5806 times
-
And we can see that each component is, again, a graphic with points:
-

- Screenshot 2025-03-26 at 19.50.26.png (248.18 KiB) Viewed 5804 times
-
Which is still NBG as it will produce jaggy "doo-dahs".
So: if you want REAL Bezier curves, don't worry about any licensing as it isn't worth having.
Re: The basis for an xtalk engine [I/we] control
Posted: Wed Mar 26, 2025 5:55 pm
by richmond62
As even my 63 year old eyes can see the jaggies with this one I'll not waste my time deconstructing it:
-

- Screenshot 2025-03-26 at 19.53.54.png (224.99 KiB) Viewed 5793 times
Re: The basis for an xtalk engine [I/we] control
Posted: Wed Mar 26, 2025 6:02 pm
by richmond62
Of course those 2 stacks were popped out in 2013.
So: time for Richmond to try some "silly buggers".
I downloaded this:
https://www.svgrepo.com/svg/482800/caduceus-staff-icon
Imported it into a stack:
-

- Screenshot 2025-03-26 at 20.03.02.png (308.05 KiB) Viewed 5781 times
-
Then I thought about
effective points . . .
Yup: a load of cobblers:
-

- Screenshot 2025-03-26 at 20.07.22.png (306.44 KiB) Viewed 5779 times
Re: The basis for an xtalk engine [I/we] control
Posted: Wed Mar 26, 2025 6:05 pm
by FourthWorld
richmond62 wrote: ↑Wed Mar 26, 2025 5:06 pm
which is that if the code relies on the LC engine to be functional, then it's a derivative work subject to the same GPLv3 license.
Err: and isn't GPLv3 pretty well 'grab it and run'?
Reading the text of that license would answer that question.
If that is the case I wonder what bits of the commercial LC distributions were NOT GPLv3.
The license accompanying a distributed work governs its use. With dual-licensed products like MySQL, LC, and others, different licenses may apply to different distributions. With any software, FOSS or proprietary, the license accompanying the work will determine how it can be used.
FourthWorld (in his usual, charming fashion) suggested we should egt in touch with the authors of these stacks (just to cover our backs, even if nothing else).
I do have a personal preference to live in a world where consent matters, and try to exemplify that.
I always understood (right from stacks I released back in 2002 with RunRev 1.0) that ANYTHING released vai the LC Use-List or the LC Forums was 'up for grabs'.
I'll leave the nit-picking about licences re stacks posted on public forums (for nit-picking is what it is) to FourthWorld and his team of experts.
I employ no "team of experts", just make a reasonable good-faith effort to comply with established practice among FOSS professionals.
For example, GitHub is one of the most popular repositories of FOSS works; their guidance may be useful:
https://docs.github.com/en/repositories ... repository
Gathered OXT IDE posts
Posted: Wed Mar 26, 2025 6:13 pm
by tperry2x
Creating this to put various gathered posts in, which are about our LCC-based IDE, rather than them being in topics
about browser-based ones. (having a sort-out).
Re: Gathered OXT IDE posts
Posted: Wed Mar 26, 2025 6:31 pm
by richmond62
(having a sort-out)
Sensible.

Re: Gathered OXT IDE posts
Posted: Wed Mar 26, 2025 6:40 pm
by richmond62
https://revonline2.runrev.com/stack/112/SVGL
If your Bezier data is uncompressed, then it´s relatively
straightforward to import them into LiveCode.
Of course the imported result will NOT be a bezier curve; presumably, again, a jaggy compromise.
Re: Gathered OXT IDE posts
Posted: Wed Mar 26, 2025 7:09 pm
by tperry2x
Righto. You've reeled me in and I've took the bait.

- 2025-03-26-19-00-35.png (489.92 KiB) Viewed 5705 times
Looking at it, yes - very impressive and very clever - but the issue is the limitation of the engine.
The engine is not set to understand curves. As Paul has said, not without using LCB syntax. The standard engine just does not know how to display it.
If you increase the scale factor of that stack:

- 2025-03-26-19-01-16.png (174.82 KiB) Viewed 5705 times
It doesn't pixellate because each tiny part of it is made into a separate vector graphic. So although you don't get the 'jaggies' on a straight line, all the things that might look like ovals or circles are actually made out of a series of angular points. (because there's no true arc or curve support). This very clever script is working out what angular points it needs to plot to give the illusion of that.

- 2025-03-26-19-03-42.png (207.64 KiB) Viewed 5705 times
Re: Gathered OXT IDE posts
Posted: Wed Mar 26, 2025 7:11 pm
by tperry2x
Here you can see all the graphics it generates:

- 2025-03-26-19-05-01.png (382.81 KiB) Viewed 5705 times
Really clever, don't get me wrong - but it's a case of 'fake it until you can make it'. Having stared at the engine source code A LOT (when I was pulling my hair out with a mac compile), I can confirm there's no support in the standard engine for curves (bezier, quadratic, arc or otherwise).
Re: Gathered OXT IDE posts
Posted: Wed Mar 26, 2025 9:20 pm
by OpenXTalkPaul
Yeah very clever work in those stacks like the SVGL importer, but as Richmond said, it's not worth even worrying about complying to any license for those stacks because they're actually working around shortcomings of that engine (created prior to LCB Canvas & SVG support in image controls).
Using a modern standard browser as the runtime engine we can instead wrap something like bezierCurveTo in xTalk-like syntax and have first class Bezier curves and we have plenty of code examples that are MIT or similarly liberal licensed.
Like this bezier editor:
https://github.com/SuperDelphi/bezier-d ... me-ov-file
Live demo here:
https://frenchforge.fr/bezier/
Bézier curves are included in HTML5 Canvas API
https://www.w3schools.com/jsref/canvas_ ... urveto.asp
https://developer.mozilla.org/en-US/doc ... ierCurveTo
Here's a MIT licensed JS library for more drawing curves in a useful manner
https://pomax.github.io/bezierjs/
https://github.com/Pomax/bezierjs
BSD licensed
https://richardfuhr.neocities.org/BusyBCurves
More liberal licensed graphics visual stuff:
https://github.com/epistemex/cardinal-spline-js
https://mbostock.github.io/protovis/
https://threejs.org/examples/#webgl_geo ... ine_editor
https://jsfiddle.net/cordesmj/4e2am/
Re: Gathered OXT IDE posts
Posted: Thu Mar 27, 2025 12:27 am
by FourthWorld
OpenXTalkPaul wrote: ↑Wed Mar 26, 2025 9:20 pm
Yeah very clever work in those stacks like the SVGL importer, but as Richmond said, it's not worth even worrying about complying to any license for those stacks because they're actually working around shortcomings of that engine (created prior to LCB Canvas & SVG support in image controls).
Wise.
Using a modern standard browser as the runtime engine we can instead wrap something like bezierCurveTo in xTalk-like syntax and have first class Bezier curves and we have plenty of code examples that are MIT or similarly liberal licensed.
The browser-native SVG syntax is pretty good, reasonably concise:
https://www.w3schools.com/graphics/svg_path.asp
Manual editing is where libraries are helpful. I feel we're just one good "pointer tool" library away from a great many very useful solutions.
Re: Gathered OXT IDE posts
Posted: Thu Mar 27, 2025 2:26 am
by OpenXTalkPaul
FourthWorld wrote: ↑Thu Mar 27, 2025 12:27 am
Manual editing is where libraries are helpful.
Point taken, there is a lot to HTML5 APIs and many I haven't really looked very deeply at yet, I'm basically learning modern JS as we go, hopefully enough so that when it's ready I never have to look at JS again
I think we want to make sure that we're only using parts of these HTML5 APIs that have already been widely adopted, which not every attribute or method has been by all browser engines. But in my mind that's not different than supporting multiple versions of macOS APIs (for example).
I agree, once there is some IDE infrastructure (eg 'Tools' pallete) in there it will be much more useful, but I think we need the syntax and 'controls' ('parts' / objects) to be more complete before worrying about IDE UI.
Using a browser as the runtime certainly opens up a lot more possibilities for extended the syntax beyond what came before, for a basic yet powerful example allowing proportional heights and widths parameters instead of only allowing dimensions based on pixels. Certainly the ecosystem for JS libraries is vast, and this route gives us access to all of that.