r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[SVG Renderer] SVG rendering in Draw AGG

BrianH
12-Oct-2009
[194]
Draw should be the same, afaik, which isn't that far. Have the parse 
improvements helped?
Steeve
12-Oct-2009
[195x2]
not so much ;-)
but the new grad-pen command of draw is awesome
BrianH
12-Oct-2009
[197]
Cool :)
Maxim
12-Oct-2009
[198]
that was seriously missing in R2 draw.. happy its in R3  :-)
Steeve
12-Oct-2009
[199]
By the way the DRAW function can't render that, it's crashing.
BrianH
12-Oct-2009
[200]
The DRAW function is still there? I really need to pay more attention 
to the graphics stuff.
Steeve
12-Oct-2009
[201]
i wonder why it's crashing. I thougth gobs was using the DRAW function 
in background, but seems not...
BrianH
12-Oct-2009
[202]
They probably call the same code internally, but the draw function 
may be crashing in a non-shared portion of its code.
Maxim
12-Oct-2009
[203]
to image works though?
Steeve
12-Oct-2009
[204]
sometimes ;-)
Maxim
12-Oct-2009
[205]
hehe
BrianH
12-Oct-2009
[206x2]
I'd put a :( on that.
I know we haven't been focussing on graphics or GUI bugs lately, 
but you should at least write the graphics bugs down somewhere.
Steeve
12-Oct-2009
[208]
You know it's a problem when you can't replicate the bug and focus 
clearly what the problem is.
Carl put a spell on me because of that (in his last note)
BrianH
12-Oct-2009
[209]
Heisenbugs are the worst :(
Steeve
12-Oct-2009
[210x2]
There is another problem with draw in Gobs.

When there is an error in the commands, nothing is showed but you 
don't know where it comes from.
blank page, that''s what you got
Henrik
12-Oct-2009
[212]
it usually renders up until the error occurs
Steeve
12-Oct-2009
[213]
that's not what i got.
i got a blank screen when an error occurs.
Maxim
12-Oct-2009
[214]
it depends on the error... its the same in R2.
Steeve
12-Oct-2009
[215]
yep it depends... Brian"s heisenbugs are everywhere in draw
Henrik
12-Oct-2009
[216]
well, it should do the same in R3. at least it did in earlier builds, 
but does PARSE have anything to do with that?
Steeve
12-Oct-2009
[217]
why parse ?
Maxim
12-Oct-2009
[218]
doesn't DRAW use the other fast dialect making parser? don't remember 
its name.
Steeve
12-Oct-2009
[219]
delect
Maxim
12-Oct-2009
[220x2]
yeah that its.
meant... yeah  that's it...
shadwolf
12-Oct-2009
[222x9]
wahoo ... lot to read .. T___T  basically there is in Draw/AGG some 
limitations due to gradient  system and matrix translation bugs i 
don't know if they have been solved  since i pointed a them ...
steeve is working on annimated splash screen logo animated in svg 
for the next version of viva-rebol :P
rebol even our splash screen are ass kickers ;P
i'm fighting with several e-commerce solution (free ware) for a client 
i want to die ... how can web 2.0  without rebol can be such a pain 
T___T

Oscommerce, thelia, virtuemart, prestashop, magento, zencart, OSCC 
... have cool back offcie cool functionnalité but when you don't 
want to fit to the header, menu, left_col, document, right_col, footer 
design  you are face big troubles allmost all the engine in those 
product is to be remade....
why clients wants those shits ???? 

because they read that apache + php + mysql + ajax/css  was the top 
of  art .... yurk ...
can't anyone shake that area and put rebol in it ....  something 
like a rebol os-commerce all strong and mighty in 200Ko ... Ok you 
can go to 2Mo last limit... lol
(and yeah you will say to me but why you don't do your solution os-commerce 
like based in rebol ?)

hum the amount of  capabilities in a e-shop web site clients are 
used to see now in days  are big...

Stat tools,  catalog edition, shiping, card. And then the hosting 
solution simply doesn't know about rebol so if it's not apache/php/mysql 
or apache/java/mysql  you are fried unless you have full access to 
the hosting solution and you are able to install what ever you want....(cheyenne!/rebol/mysql-protocol 
etc...)
congratulation steeve anyway  ^^
on my computer your annimation is lighting fast ... (maybe too fast) 
it's a very lively lizar lol
Steeve
13-Oct-2009
[231]
As far i am, i made some useful tiny mezz, perhaps some could be 
in R3.

reuse: funco [b [block!]][head reduce/into b clear []]

** REUSE, reduce a block, but re-use always the same block 

** Actually, 3 time slower than a reduce block, but save memory and 
GC recycles if used massivly.
** I use it to pass small blocks of coordinates.

mulm: func [

 {multiply a matrix [a b c d e f] by coordinates x y, return coordinates 
 [x' y']}
	x y m [block!]
][
	reuse [x * m/1 + (y * m/3) + m/5 x * m/2 + (y * m/4) + m/6]
]

atan2: func [

 {Angle of the vector (0,0)-(x,y) with arctangent y / x. The resulting 
 angle is extended to -pi,+pi}
	x y
][
	if x = 0 [x: 0.0000000001]
	add arctangent y / x pick [0 180] x > 0
]

Project: func [

 {orthogonal projection of a point P on a line AB, return coordinates 
 [x y]}
	ax ay bx by px py
	/local sx sy ux uy ratio
][
	sx: bx - ax
	sy: by - ay
	ux: px - ax
	uy: py - ay
	ratio:  sx * ux + (sy * uy) / (sx * sx + (sy * sy))
	reuse [ratio * sx + ax  ratio * sy + ay]
]


vector-length: func [x1 y1 x2 y2][square-root add x2 - x1 ** 2 y2 
- y1  ** 2]
BrianH
13-Oct-2009
[232]
REUSE might run into problems with multitasking. Ladislav has talked 
about adding a native atan2.
Steeve
13-Oct-2009
[233]
Probably should be implemented with a closure!
BrianH
13-Oct-2009
[234]
Yeah, a closure that returns a function is a good pattern. However, 
a closure by itself won't reuse the block. It's the reuse that is 
the problem - the block probably won't be task-safe.
Steeve
13-Oct-2009
[235x3]
To be task safe, the module should reinitiate the function like this:
reuse: make :reuse []
Obfuscated thing
or with
reuse: copy/deep :reuse
BrianH
13-Oct-2009
[238]
Then you aren't reusing, which is why it will be task-safe.
Steeve
13-Oct-2009
[239x4]
but it has to reuse the same block, in a context
n
no
not globaly
BrianH
13-Oct-2009
[243]
That reuse is what won't be task-safe. Only non-modifiable series 
will be sharable.