Hi Ashley,

With the budding of Canvas 2D and WebGL UI frameworks, I believe that, in a 
couple years' time, the role of CSS in the cases I described will diminish 
drastically. A lot of this was kind of waiting for Apple to give the OK before 
people began committing their hearts to WebGL.


> On Jul 7, 2014, at 5:17 PM, Ashley Gullen <ash...@scirra.com> wrote:
> 
> Having developed a major HTML5 game engine, and given this appears to be 
> aimed at a gaming use case, I feel qualified to offer my opinion: I'm not 
> sure this is a good idea.
> 
> Despite being 99% canvas and javascript, we use CSS to implement some useful 
> scaling modes (like letterbox fullscreen). We also use the DOM for many 
> useful features, such as form controls, divs, Twitter or Facebook buttons and 
> so on, which are positioned over the canvas. In particular text inputs are 
> useful for things like name entry or logins even for games, and are typically 
> difficult and error-prone to reimplement in only canvas and javascript.
> 
> Is there any evidence that such a mode would actually improve performance? 
> Are there benchmarks indicating the existence of a DOM, even if inert, harms 
> performance in any way?
> 
> Ashley Gullen
> Scirra.com
> 
> 
> 
>> On 7 July 2014 21:35, Brian Blakely <anewpage.me...@gmail.com> wrote:
>> Floating a concept for a document mode which eschews CSS and the DOM
>> to enable a more jank-free Canvas surface.
>> 
>> Depending on how this allows for optimization, might be used well for
>> games, VR, wearables, and ultra-portable or high-performance apps.
>> Probably most beneficial to memory usage and first paint time.  Would
>> appreciate if some vendor engineers who might be reading could chime
>> in on this point.
>> 
>> Strawman:
>> 
>> Document only contains <!doctype canvas-[2d|3d]> and script elements.
>> Everything else is ignored.  "document" object is gone.
>> 
>> A Canvas drawing surface consumes the entire viewport.  It always has
>> an opaque backing store, same as specifying getContext('2d', { alpha:
>> false }).
>> 
>> UA provides:
>> * A host object representing surface's CanvasRenderingContext2D or
>> WebGLRenderingContext (depending on specified doctype).
>> 
>> * In lieu of DOM, an API for creating offscreen canvases (actually,
>> this abstraction should probably exist anyway).  This might live on
>> the Context host obj, which may open a beneficial performance
>> relationship between onscreen canvas and offscreen "children".
> 

Reply via email to