Re: Properties of Custom Paint

Hi François,

On Sun, May 24, 2015 at 10:05 PM, François REMY <
francois.remy.dev@outlook.com> wrote:

> I'm self-quoting here as I think my point wasn't made clear in the
> previous mail; I'm not much arguing for a specific implementation of the
> drawing operations themselves (though I believe WebGL Shaders should be the
> "go-to" solution whenever it is possible) but I was making the comparison
> with Web Audio mainly for the "graph-of-operations" nature of their
> technology.
>
Thanks for the examples. Your proposal is a lot clearer to me now.

Effectively you want to be able to directly control the painting order of
elements. (Brought to you by http://www.w3.org/TR/CSS2/zindex.html
<http://www.google.com/url?q=http%3A%2F%2Fwww.w3.org%2FTR%2FCSS2%2Fzindex.html&sa=D&sntz=1&usg=AFQjCNHF4Qi3mIzzMg4OeHAsJ9AEMIzuVA>
 :) in addition to combinators (blends, etc).

This makes a lot sense to me. With this you would be able to explain a few
behaviours of CSS properties which I personally haven’t considered for
Houdini. Namely:
z­index: controlling the order in which children get painted.
paint­-ordering: controlling if a type of element gets special priority in
paint-­order. For example: table paint­-order magic.

As you described, using this you would be able to implement things like:
-­ Filters on parts of the paint-­order. For example “background-­filter:
blur(2px)” could just apply a filter just to the background layer.
- A reworked paint-­order. Make things not (paint) intrude in each other.
E.g. backgrounds can’t intrude into siblings.
-­ A more sensible z-­index (element paint order stacking api).

In terms of moving forward, my main priorities are the custom layout &
paint (being the “CustomDraw on 2D Canvas” box in your diagram), to keep
focus.
I think that this is a useful part of Houdini (being able to explain
z-index & paint ordering); are you able to come up with more fleshed out
thoughts so that we can talk about them in Paris? (I read that you are
coming?) For example how this would look as a JS API? How this would work
with more complex scenarios, for example implementing table paint order (or
something similarly interesting)? :)

Thanks,
Ian

Received on Tuesday, 26 May 2015 23:56:07 UTC