User:Roc/WorkerCanvasProposal: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 23: Line 23:
== Spec changes ==
== Spec changes ==


Structured clone of ImageBitmaps has to be defined; since they're immutable, it's straightforward. The implementation can share the underlying buffer data across threads. ImageBitmaps can also represent the results of deferred rendering of a list of drawing commands.
Structured clone of ImageBitmaps has to be defined; since they're immutable, it's straightforward. The implementation can share the underlying buffer data across threads. An ImageBitmap can also be implemented as the result of deferred rendering of a list of drawing commands.

Revision as of 22:54, 17 October 2013

WebIDL

[Constructor(unsigned long width, unsigned long height)]
interface WorkerCanvas {
  readonly attribute unsigned long width;
  readonly attribute unsigned long height;
  void resize(unsigned long width, unsigned long height);
  RenderingContext? getContext(DOMString contextId, any... arguments); 
  void toBlob(FileCallback? _callback, optional DOMString type, any... arguments);
  ImageBitmap transferToImageBitmap();
};

partial interface RenderingContext {
  void commit();
};

WorkerCanvas implements Transferable;

partial interface HTMLCanvasElement {
  WorkerCanvas transferControlToWorker();
};

Spec changes

Structured clone of ImageBitmaps has to be defined; since they're immutable, it's straightforward. The implementation can share the underlying buffer data across threads. An ImageBitmap can also be implemented as the result of deferred rendering of a list of drawing commands.