DRAW Effect Being Finalized
The new REBOL/View DRAW effect that utilizes the AGG library (Antigrain.com) is in it's final alpha design stages. It has a number of improvements over the 2D DRAW functions provided in ealier versions. Our goal is to release a Beta by the end of this month.
We are currently considering these important issues with regard to the final design:
1. Transformation context block? - There are currently commands to push and pop the transformation matrix (translation, rotation, scaling). But, standard REBOL style would dictate that it would be better to allow a sub-block and apply the transformations to that block. When exiting the block the prior transormation matrix could be restored. It's the same as the push and pop method, but turns a linear sequence into a tree hierarchy. Comments are requested! Please contact Cyphre.
2. Words for options? - Should commands (like those for gradients and text) that have enumerated options use numbers or words for those options? For example, on gradients is it better to specify 1, 2, 3 or 'radial, 'vertical, etc. REBOL usually makes such values words, but that may not make using them much easier, because you'll still probably need to look them up. Let us know.
3. RGB alpha values? - In REBOL, RGB is represented with a TUPLE datatype. A color tuple can be 3 or 4 integers long. The 4th value of the tuple is the alpha channel value. If the 4th value is not specified, the math for tuples assumes that it is 0 (zero), and we make that the fully opaque color (no transparency). That allows you to write 255.0.0 and get red. However, in the world of graphics libraries, it is common for zero alpha to indicate full transparency. 255 is opaque. So, REBOL's notation is somewhat reversed for alpha channel. We discussed this issue about a year ago, and there was not a lot of feedback. The decision was made to leave it as is. We are inclined to do so now as well (for compatiblity), but if you feel strongly about this, please contact us.
There is also an issue regarding the support of some of the text features on the Linux (and other OS) build. We hope to be addressing these in more detail soon.
Thanks again to Cyphre and Maxim (Antigrain) for their efforts on this project.