This repo contains new, current and old proposals for the Canvas 2D API, following a set of rationales.
-
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.
Those proposals have already been incorporated on the WhatWG spec and may be in different stages of implementation on browsers.
-
Canvas context loss. Allow canvas to be discarded and re-drawn by demand.
-
willReadFrequently. context creation attribute.
-
Text modifiers. CSS text/font properties on Canvas.
-
Reset function. Draw primitive.
-
RoundRect. Draw primitive.
-
Conic Gradient. Draw primitive.
-
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.
-
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.