Skip to content

fserb/canvas2D

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Update Canvas 2D API

This repo contains new, current and old proposals for the Canvas 2D API, following a set of rationales.

Explainer video

In active development

  • Layers. Support layers in canvas, that will be drawn in one, allowing effects only possible with auxiliary canvases.

  • WebGPU Access. Switch contexts between Canvas2D and WebGPU/WebGL.

  • Enhanced Text Metrics. Extend measureText to support DOM-provided APIs, like selection rect and more.

  • Mesh2D. Draw a large number of texture-mapped triangles efficiently.

Launched

Those proposals have already been incorporated on the WhatWG spec and may be in different stages of implementation on browsers.

Parked / Future ideas

  • Perspective transforms. Allow for perspective transforms Canvas 2D rendering. Support 4x4 transform matrices.

  • Recorded pictures. Create a record object that receives all the commands from a Canvas2D and can be replayed multiple times.

  • Conic curves. Draw primitive.

  • Batch text rendering.

  • Text blob.

  • Path2D Inspection. Allow inspection of Path2D objects, that are currently opaque.

  • Element as a source for drawImage.

  • Display list object. Format and data structure for retained mode drawings, making Canvas apps faster, more accessible and indexable.

  • WebGPU Shaders. Allow for WebGPU shaders to be used as Canvas2D layers filters.

Dropped ideas

  • Color input. support for new color input on Canvas.

  • Batch drawImage. Support for multiple images being drawn within a single API call.

  • Modern filters. Support composited filters, create a filter object that can be updated, and support more SVG-like filters. Superseded by layers.