W3C home > Mailing lists > Public > whatwg@whatwg.org > September 2012

Re: [whatwg] [canvas] Proposal for supportsContext

From: Dean Jackson <dino@apple.com>
Date: Mon, 10 Sep 2012 12:46:00 -0700
Message-id: <CF8AF421-6A6D-4513-B42D-DF29E3E60292@apple.com>
To: Tobie Langel <tobie.langel@gmail.com>
Cc: "whatwg@lists.whatwg.org" <whatwg@lists.whatwg.org>

On Sep 10, 2012, at 12:44 PM, Tobie Langel <tobie.langel@gmail.com> wrote:

>>> What about enabling feature detection by providing a method per context?
>>> 
>>> interface HTMLCanvasElement : HTMLElement {
>>> object get2DContext();
>>> object getWebGLContext(any... args);
>>> };
>>> 
>>> That way, developers can use idiomatic JS for feature testing like
>>> pretty much everywhere else on the Web platform:
>>> 
>>> if (canvas.get2DContext) {
>>> // do stuff with 2D canvas
>>> }
>> 
>> This doesn't address the problem we are hitting, which is that
>> it is expensive to create a context.
> 
> It does. Only expose the API when you can create the context.

This is actually what we could do now. We could hide window.WebGLRenderingContext
when we can't create one. But then we'd have to hide all these too:

        attribute [Conditional=WEBGL] WebGLActiveInfoConstructor WebGLActiveInfo;
        attribute [Conditional=WEBGL] WebGLBufferConstructor WebGLBuffer;
        attribute [Conditional=WEBGL] WebGLFramebufferConstructor WebGLFramebuffer;
        attribute [Conditional=WEBGL] WebGLProgramConstructor WebGLProgram;
        attribute [Conditional=WEBGL] WebGLRenderbufferConstructor WebGLRenderbuffer;
        attribute [Conditional=WEBGL] WebGLRenderingContextConstructor WebGLRenderingContext;
        attribute [Conditional=WEBGL] WebGLShaderConstructor WebGLShader;
        attribute [Conditional=WEBGL] WebGLShaderPrecisionFormatConstructor WebGLShaderPrecisionFormat;
        attribute [Conditional=WEBGL] WebGLTextureConstructor WebGLTexture;
        attribute [Conditional=WEBGL] WebGLUniformLocationConstructor WebGLUniformLocation;

It seems like a pain.

Dean

> 
>> It's also a big change to
>> an existing operational API.
> 
> Agreed. You can always leave the previous method around for backward
> compatibility.
> 
> --tobie
Received on Monday, 10 September 2012 19:47:12 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:45 UTC