W3C home > Mailing lists > Public > public-fx@w3.org > October to December 2011

Re: [css-shaders] GLSL implementation defined limits

From: Chris Marrin <cmarrin@apple.com>
Date: Fri, 11 Nov 2011 14:50:56 -0800
Cc: Vincent Hardy <vhardy@adobe.com>, "Gregg Tavares (wrk)" <gman@google.com>, "public-fx@w3.org" <public-fx@w3.org>
Message-id: <EFB859B8-0213-4461-87CC-6A47AFCEC22F@apple.com>
To: "Tab Atkins Jr." <jackalmage@gmail.com>

On Nov 11, 2011, at 12:29 PM, Tab Atkins Jr. wrote:

> On Fri, Nov 11, 2011 at 10:17 AM, Chris Marrin <cmarrin@apple.com> wrote:
>> I'm not actually sure of how CSS handles fallback. Maybe we could do this:
>>        .filtered: {
>>                filter: shader(<my complicated shader>);
>>                filter: shader(<my less complicated shader>);
>>                filter: blur(3);
>>        }
>> So if the complicated shader fails, it will try the less complicated one. If that fails, it will use a simple blur. Would that work?
> No, that sort of fallback is parser-level, to allow you to provide
> fallback for *syntax* that legacy UAs don't understand.  UAs are
> allowed to (and do) throw away all the rules that are "replaced" by
> later ones.  In your above example, the .filtered class would just
> receive a blur(3).
> We do have some feature-level fallbacks, but they have to be defined
> explicitly.  The 'font-family' property takes a list of fonts and uses
> the first one it can find that has the correct glyph.  The 'image()'
> function defined in CSS3 Image Values takes a list of images and
> represents the first one that the browser understands.  One could
> design something similar for shaders, but I'd want a clear explanation
> of the use-cases, but I don't think copying the 'image()' solution
> would help Gregg.

Well, maybe it would though. You could do something like:

	.filtered {
		filter: shader(program url(complex.vs) url(complex.fs), program url(simple.vs) url(simple.fs), ...);

The new 'program' parameter groups a vs and fs. The first set that succeeds is used. Isn't that similar to what image() does? This doesn't allow a fallback to something that is not a shader, but I think that's probably ok. You just need to supply a shader that you're confident will run on all platforms. In fact, this would give authors a pretty powerful tool. They could go pretty nuts with exotic shaders, and as long as they also provide something more tame, everyone will see something reasonable.

Received on Friday, 11 November 2011 22:51:29 UTC

This archive was generated by hypermail 2.3.1 : Monday, 22 June 2015 03:33:46 UTC