Re: Proposal: Custom Filter Effects Modules

On Mon, Dec 10, 2012 at 6:35 AM, Dirk Schulze <dschulze@adobe.com> wrote:
> Hi David,
>
> On Dec 10, 2012, at 3:30 AM, David Sheets <kosmo.zb@gmail.com> wrote:
>
>> Hello FXTF,
>>
>> I would like to propose a revision of a previous proposal by Dirk
>> Schulze that integrates with HTTP, URI, HTML, XML, and CSS features.
>> The proposed CSS expression of Custom Filter Effects Modules looks
>> like:
>>
>> @filter curl {
>>  type: "fx1";
>>  meshfn: url("/fx/curl.fx#mesh") url("/fx/curl.fx#mesh-fallback");
>>  pxfn: url("/fx/curl.fx#px");
>>  mesh: 4 4;
>>  mix: source-in multiply;
>>  parameters: identityMatrix mat3(1,0,0,0,1,0,0,0,1);
>> }
>>
>> @filter curl {
>>  type: "msfx1";
>>  ms-src: url("/fx/curl.fx#ms-fx-bundle");
>> }
>>
>> filter: custom(curl);
>>
>> You can read more at <http://dsheets.github.com/custom-fx-modules/>.
>>
>> I look forward to your feedback.
>
> Thank you very much David. This is the same proposal as second one on the parallel discussion "[filter-effects] New syntax proposal for 'custom' filter function" [1] (with one detail), why I would like to discuss it on the original thread.

The above CSS syntactic expression is very similar but the proposal is
not the same. If you read the document at
<http://dsheets.github.com/custom-fx-modules/>, you will note a number
of important differences including the distinction between operational
models ("fx1"/"msfx1") and shading languages ("application/webglsl").

As you are the originator of both the basis for this proposal and a
new effect abstraction proposal and appear to be in favor of the new
effect abstraction proposal, I believe this evolution of your work
deserves an unconflicted champion. The "[filter-effects] New syntax
proposal for 'custom' filter function" [1] thread has multiple
proposals in it which, as you have pointed out, is a source of
confusion.

> The detail: The fallback has the same name. I really like the idea to let the fallback have the same name. I checked if this idea would work with CSS Animations, but sadly this is not the case at the moment. The last specified at-rule must be valid on Firefox as well as on WebKit. Means the default would always need to be last. Sadly the default would always override previous definitions. I will check CSS Animations if this behavior is currently specified. At-rules should be harmonized with each other.

I agree at-rules should strive to maintain consistent syntax. There
are a number of solutions to this issue:

1. introduce a filter-family descriptor with type IDENT that binds
multiple (nameless) @filter uses together.

@filter {
  filter-family: curl;
  type: fx1;
}

@filter {
  filter-family: curl;
  type: msfx1;
}

2. introduce an @filter IDENT(IDENT) syntax that parameterizes a
specific name (1st IDENT) by an operational model capability (2nd
IDENT).

@filter curl(fx1) {

}

@filter curl(msfx1) {

}

3. introduce a nested @-rule to bind alternative representations of
operational models together

@filter curl {

  @model fx1 {
  ...
  }

  @model msfx1 {
  ...
  }
}

Another distinction you will notice is the ability to specify
fallbacks for specific function resources. I believe this is important
for language and language extension extensibility. An abstract filter
fallback may also be desired:

filter: custom(curl, almostCurl)

Regards,

David

> [1] http://lists.w3.org/Archives/Public/public-fx/2012OctDec/0070.html

Received on Monday, 10 December 2012 19:43:56 UTC