ladybird/Libraries/LibWeb/WebGL
Aliaksandr Kalenik 004e5f851e LibWeb: Use ExternalContentSource for canvas painting
present() now snapshots the PaintingSurface into an ImmutableBitmap
and publishes it to the ExternalContentSource, so the rendering thread
never touches the live GPU surface — eliminating the data race
described in the ExternalContentSource commit (problem 1).

Canvas elements are registered with Page and presented once per frame
from the event loop, rather than on every individual draw call in
CRC2D::did_draw(). A dirty flag on HTMLCanvasElement ensures the
snapshot is only taken when content has actually changed, and makes
the present() call in CanvasPaintable::paint() a no-op when the
surface has already been snapshotted for the current frame.
2026-02-20 18:41:33 +01:00
..
Extensions LibWeb: Implement the OES_element_index_uint WebGL extension 2026-02-02 11:22:52 -07:00
EventNames.cpp LibWeb: Remove the initialize_strings methods 2025-01-12 00:35:58 +01:00
EventNames.h LibWeb: Remove the initialize_strings methods 2025-01-12 00:35:58 +01:00
OpenGLContext.cpp LibWeb: Correctly report available WebGL extensions 2025-11-01 16:53:39 -07:00
OpenGLContext.h LibWeb: Add a webgl_version getter to OpenGLContext 2025-11-05 02:19:32 +01:00
Types.h LibWeb: Deduplicate the WebGL null_terminated_string helper 2025-11-05 02:19:32 +01:00
Types.idl LibWeb/WebGL: Define Float32List exactly like in the spec 2025-09-30 16:47:16 +02:00
WebGL2RenderingContext.cpp LibWeb: Use ExternalContentSource for canvas painting 2026-02-20 18:41:33 +01:00
WebGL2RenderingContext.h LibWeb: Use ExternalContentSource for canvas painting 2026-02-20 18:41:33 +01:00
WebGL2RenderingContext.idl LibWeb: Add stubbed-out WebGL2RenderingContext 2024-12-06 15:35:36 +01:00
WebGL2RenderingContextBase.idl LibWeb: Implement WebGL2 getQuery 2026-02-02 11:22:52 -07:00
WebGL2RenderingContextImpl.cpp LibWeb: Implement WebGL2 getQuery 2026-02-02 11:22:52 -07:00
WebGL2RenderingContextImpl.h LibWeb: Give IDL exposed PlatformObjects an InterfaceName 2026-02-14 20:22:40 +01:00
WebGL2RenderingContextOverloads.cpp LibWeb: Set error when buffer passed to WebGL readPixels is null 2026-02-02 11:22:52 -07:00
WebGL2RenderingContextOverloads.h LibWeb: Give IDL exposed PlatformObjects an InterfaceName 2026-02-14 20:22:40 +01:00
WebGL2RenderingContextOverloads.idl LibWeb: Implement WebGL2's readPixels with a byte offset argument 2025-10-30 16:20:33 -07:00
WebGLActiveInfo.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLActiveInfo.h LibWeb/WebGL: Implement getActiveAttrib() and getActiveUniform() 2024-12-03 23:35:45 +01:00
WebGLActiveInfo.idl LibWeb/WebGL: Implement getActiveAttrib() and getActiveUniform() 2024-12-03 23:35:45 +01:00
WebGLBuffer.cpp LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLBuffer.h LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLBuffer.idl LibWeb: Add WebGLBuffer 2024-11-13 11:41:54 +01:00
WebGLContextAttributes.cpp LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
WebGLContextAttributes.h LibWeb/WebGL: Implement getContextAttributes() 2024-12-05 09:57:10 +01:00
WebGLContextEvent.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLContextEvent.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WebGLContextEvent.idl Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
WebGLFramebuffer.cpp LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLFramebuffer.h LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLFramebuffer.idl LibWeb: Add WebGLFramebuffer 2024-11-13 11:41:54 +01:00
WebGLObject.cpp LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLObject.h LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLObject.idl LibWeb: Add WebGLObject interface 2024-11-13 11:41:54 +01:00
WebGLProgram.cpp LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLProgram.h LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLProgram.idl LibWeb: Add WebGLProgram 2024-11-13 11:41:54 +01:00
WebGLQuery.cpp LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLQuery.h LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLQuery.idl LibWeb/WebGL: Add stub class for WebGLQuery 2024-12-06 15:35:36 +01:00
WebGLRenderbuffer.cpp LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLRenderbuffer.h LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLRenderbuffer.idl LibWeb: Add WebGLRenderbuffer 2024-11-13 11:41:54 +01:00
WebGLRenderingContext.cpp LibWeb: Use ExternalContentSource for canvas painting 2026-02-20 18:41:33 +01:00
WebGLRenderingContext.h LibWeb: Use ExternalContentSource for canvas painting 2026-02-20 18:41:33 +01:00
WebGLRenderingContext.idl LibWeb: Add stubbed-out WebGL2RenderingContext 2024-12-06 15:35:36 +01:00
WebGLRenderingContextBase.cpp LibGfx+LibMedia: Send video frames to Skia as subsampled YUV 2026-01-22 19:44:36 +01:00
WebGLRenderingContextBase.h LibWeb: Give IDL exposed PlatformObjects an InterfaceName 2026-02-14 20:22:40 +01:00
WebGLRenderingContextBase.idl LibWeb: Implement WebGL getTexParameter 2026-02-02 11:22:52 -07:00
WebGLRenderingContextImpl.cpp LibWeb: Clear set WebGL textures when they get deleted 2026-02-02 11:22:52 -07:00
WebGLRenderingContextImpl.h LibWeb: Give IDL exposed PlatformObjects an InterfaceName 2026-02-14 20:22:40 +01:00
WebGLRenderingContextOverloads.cpp LibWeb: Set error when buffer passed to WebGL readPixels is null 2026-02-02 11:22:52 -07:00
WebGLRenderingContextOverloads.h LibWeb: Give IDL exposed PlatformObjects an InterfaceName 2026-02-14 20:22:40 +01:00
WebGLRenderingContextOverloads.idl LibWeb/WebGL: Define Int32List exactly like in the spec 2025-09-30 17:57:46 +02:00
WebGLSampler.cpp LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLSampler.h LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLSampler.idl LibWeb/WebGL: Add stub class for WebGLSampler 2024-12-06 15:35:36 +01:00
WebGLShader.cpp LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLShader.h LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLShader.idl LibWeb: Add WebGLShader 2024-11-13 11:41:54 +01:00
WebGLShaderPrecisionFormat.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLShaderPrecisionFormat.h LibWeb/WebGL: Implement getShaderPrecisionFormat 2024-12-05 21:27:32 +01:00
WebGLShaderPrecisionFormat.idl LibWeb/WebGL: Implement getShaderPrecisionFormat 2024-12-05 21:27:32 +01:00
WebGLSync.cpp LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLSync.h LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLSync.idl LibWeb/WebGL: Add stub class for WebGLSync 2024-12-06 15:35:36 +01:00
WebGLTexture.cpp LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLTexture.h LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLTexture.idl LibWeb: Add WebGLTexture 2024-11-13 11:41:54 +01:00
WebGLTransformFeedback.cpp LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLTransformFeedback.h LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLTransformFeedback.idl LibWeb/WebGL: Add stub class for WebGLTransformFeedback 2024-12-06 15:35:36 +01:00
WebGLUniformLocation.cpp LibWeb: Bind WebGL uniform locations to their respective program 2025-11-27 19:19:54 +01:00
WebGLUniformLocation.h LibWeb: Bind WebGL uniform locations to their respective program 2025-11-27 19:19:54 +01:00
WebGLUniformLocation.idl LibWeb: Add WebGLUniformLocation 2024-11-13 11:41:54 +01:00
WebGLVertexArrayObject.cpp LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLVertexArrayObject.h LibWeb: Make WebGLRenderingContextBase derive from PlatformObject 2026-01-10 13:22:17 +01:00
WebGLVertexArrayObject.idl LibWeb/WebGL: Add stub class for WebGLVertexArrayObject 2024-12-06 15:35:36 +01:00