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.