We currently support a good chunk of the canvas features, but not all of them. The goal of this task is to check the Canvas specification for additional features, and considering adding them either as new algebras or as modifications to existing algebras.
Here are some notes on preliminary investigation:
-
The Canvas text properties are more expressive than what we currently expose, and similar to CSS and SVG text properties. Maybe the same? The current text support is suited to what Java2D support and quite limited. Consider creating a new algebra that supports more expressive text / font rendering.
-
Canvas supports some basic filters that we could easily expose. There is work to add SVG style filters but it looks like this has been replaced by layers, which provide additional functionality and are a better solution. (If / when layers are available we should support them in some form. For example, they'll fix the current issue with blending on the Canvas.)
-
Canvas supports rounded rectangles. This should perhaps be a basic shape we support, as it's so useful, SVG also supports it, and we can easily emulate on Java 2D
-
Additional gradient types: conic gradients. We need to sort out the mess that is gradients, for which we probably need an Extent type.
-
Canvas can also fill with patterns. I can see that being useful. It's probably in SVG.
We currently support a good chunk of the canvas features, but not all of them. The goal of this task is to check the Canvas specification for additional features, and considering adding them either as new algebras or as modifications to existing algebras.
Here are some notes on preliminary investigation:
The Canvas text properties are more expressive than what we currently expose, and similar to CSS and SVG text properties. Maybe the same? The current text support is suited to what Java2D support and quite limited. Consider creating a new algebra that supports more expressive text / font rendering.
Canvas supports some basic filters that we could easily expose. There is work to add SVG style filters but it looks like this has been replaced by layers, which provide additional functionality and are a better solution. (If / when layers are available we should support them in some form. For example, they'll fix the current issue with blending on the Canvas.)
Canvas supports rounded rectangles. This should perhaps be a basic shape we support, as it's so useful, SVG also supports it, and we can easily emulate on Java 2D
Additional gradient types: conic gradients. We need to sort out the mess that is gradients, for which we probably need an
Extenttype.Canvas can also fill with patterns. I can see that being useful. It's probably in SVG.