ladybird/Libraries/LibWeb/WebGL
Erik Kurzinger 8fd1df4f8b
Some checks are pending
CI / macOS, arm64, Sanitizer, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer, Clang (push) Waiting to run
Package the js repl as a binary artifact / Linux, arm64 (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / Linux, x86_64 (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
LibGfx: Enable WebGL on Linux
This enabled WebGL on Linux. It uses ANGLE's OpenGL backend running atop
EGL_PLATFORM_SURFACELESS_MESA. Eventually we should probably switch to
the Vulkan backend but that doesn't seem to be enabled in the vcpkg
angle package. Anyway, switching later should be trivial.

The painting surface is allocated through Vulkan and then imported into
EGL as a dma-buf. The DRM format modifier mechanism, along with Vulkan
initializing the image with VK_IMAGE_LAYOUT_GENERAL, should ensure
surface compatibility across the two APIs.

For now, we will synchronize rendering and presentation using glFinish,
although this is admittedly suboptimal. Really we should grab an
EGLSync, export that to an fd, import it into Skia and have it wait for
it before reading from the image. That can be implemented in a future
change, though.
2025-08-19 00:30:22 +02:00
..
Extensions LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
EventNames.cpp
EventNames.h
OpenGLContext.cpp LibGfx: Enable WebGL on Linux 2025-08-19 00:30:22 +02:00
OpenGLContext.h LibGfx: Enable WebGL on Linux 2025-08-19 00:30:22 +02:00
Types.h
Types.idl
WebGL2RenderingContext.cpp LibWeb/WebGL: Use eglWaitUntilWorkScheduledANGLE instead of glFlush 2025-06-09 15:40:41 -06:00
WebGL2RenderingContext.h
WebGL2RenderingContext.idl
WebGL2RenderingContextBase.idl
WebGL2RenderingContextImpl.cpp LibWeb+Meta: Move WebGL rendering context implementations in tree 2025-07-02 19:00:49 +02:00
WebGL2RenderingContextImpl.h LibWeb+Meta: Move WebGL rendering context implementations in tree 2025-07-02 19:00:49 +02:00
WebGL2RenderingContextOverloads.idl
WebGLActiveInfo.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLActiveInfo.h
WebGLActiveInfo.idl
WebGLBuffer.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLBuffer.h
WebGLBuffer.idl
WebGLContextAttributes.cpp LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
WebGLContextAttributes.h
WebGLContextEvent.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLContextEvent.h
WebGLContextEvent.idl
WebGLFramebuffer.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLFramebuffer.h
WebGLFramebuffer.idl
WebGLObject.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLObject.h
WebGLObject.idl
WebGLProgram.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLProgram.h LibWeb/WebGL: Return vertex shader from Program::attached_vertex_shader 2025-05-26 17:16:42 +03:00
WebGLProgram.idl
WebGLQuery.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLQuery.h
WebGLQuery.idl
WebGLRenderbuffer.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLRenderbuffer.h
WebGLRenderbuffer.idl
WebGLRenderingContext.cpp LibWeb/WebGL: Use eglWaitUntilWorkScheduledANGLE instead of glFlush 2025-06-09 15:40:41 -06:00
WebGLRenderingContext.h LibWeb/WebGL: Implement EXT_blend_minmax extension 2025-04-07 23:21:11 +02:00
WebGLRenderingContext.idl
WebGLRenderingContextBase.h LibWeb: Add OffscreenCanvas to IDL types 2025-06-30 09:46:21 -06:00
WebGLRenderingContextBase.idl LibWeb: Fix typos - act II 2025-04-09 15:05:20 +01:00
WebGLRenderingContextImpl.cpp LibWeb+Meta: Move WebGL rendering context implementations in tree 2025-07-02 19:00:49 +02:00
WebGLRenderingContextImpl.h LibWeb+Meta: Move WebGL rendering context implementations in tree 2025-07-02 19:00:49 +02:00
WebGLRenderingContextOverloads.idl LibWeb: Add OffscreenCanvas to IDL types 2025-06-30 09:46:21 -06:00
WebGLSampler.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLSampler.h
WebGLSampler.idl
WebGLShader.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLShader.h
WebGLShader.idl
WebGLShaderPrecisionFormat.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLShaderPrecisionFormat.h
WebGLShaderPrecisionFormat.idl
WebGLSync.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLSync.h
WebGLSync.idl
WebGLTexture.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLTexture.h
WebGLTexture.idl
WebGLTransformFeedback.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLTransformFeedback.h
WebGLTransformFeedback.idl
WebGLUniformLocation.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLUniformLocation.h
WebGLUniformLocation.idl
WebGLVertexArrayObject.cpp LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebGLVertexArrayObject.h
WebGLVertexArrayObject.idl