W3C home > Mailing lists > Public > public-canvas-api@w3.org > October to December 2014

Re: Advice on extending CanvasRenderingContext2D to support Depth Streams

From: Kostiainen, Anssi <anssi.kostiainen@intel.com>
Date: Tue, 11 Nov 2014 10:09:03 +0000
To: Rik Cabanier <cabanier@gmail.com>
CC: "public-canvas-api@w3.org" <public-canvas-api@w3.org>, Rob Manson <roBman@buildAR.com>, "Hu, Ningxin" <ningxin.hu@intel.com>
Message-ID: <72FE40ED-C016-45B2-89D6-4C07B101D065@intel.com>
Hi Rik,

> On 11 Nov 2014, at 10:20, Rob Manson <roBman@buildAR.com> wrote:
> 
>> Why don't you create a new canvas context type that just defines the
>> methods that you need and add it to the HTML spec [1]?
>> 
>> This will be much simpler to specify and you won't have to battle
>> browser vendors that will almost certainly object.
>> When implementing this new context, you can likely store a hidden 2D
>> context that you draw the actual pixels into so you get HW acceleration
>> for free.
> 
> That's an excellent suggestion and thanks for the constructive feedback.
> 
> This has created some good discussion amongst the editors and we'll definitely explore this option.
> 
> We may also seek further advice from you and the public-canvas-api list based on all your experience with canvas contexts.

Rik - thanks for the proposal.

Re the API surface: given the getContext(type) extension point has its known issues (see [1]), I'd guess we'd be better off defining a getter such as getContextDepth() that returns a to-be-defined CanvasRenderingContextDepth object:

[omitting some details for brevity]

partial interface CanvasRenderingContext2D {
  CanvasRenderingContextDepth getContextDepth();
};

interface CanvasRenderingContextDepth {
  DepthData createDepthData (/* ... */);
  DepthData getDepthData (/* ... */);
  void putDepthData (/* ... */);
  // ...
};

Or do you think the ship has sailed and we should just reuse getContext(type)?

Thanks,

-Anssi

[1] http://robert.ocallahan.org/2012/05/canvas-getcontext-mistake.html 
Received on Tuesday, 11 November 2014 10:09:34 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:31:57 UTC