1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 18:57:35 +00:00

LibGL: Generate the API wrappers

We now generate all LibGL API wrappers from a single API method
definition list stored in `GLAPI.json`. Since a significant portion of
the OpenGL API methods are relatively consistent variants, we take
advantage of this to generate a lot of these variants at once.

The autogenerated methods check for the non-nullness of the current
`GLContext`, and only perform an action if a `GLContext` is present.
This prevents a crash in ports like GLTron, who assume you can still
call the OpenGL API without an active context.

This increases our API wrapper method count from 211 to 356.

Fixes #15814.
This commit is contained in:
Jelle Raaijmakers 2022-12-05 17:09:03 +01:00 committed by Andreas Kling
parent 8c094699db
commit 2da1c1c10e
9 changed files with 1787 additions and 1404 deletions

View file

@ -1,9 +1,10 @@
include(libgl_generators)
set(SOURCES
Buffer/Buffer.cpp
Buffer.cpp
ClipPlane.cpp
ContextParameter.cpp
GLAPI.cpp
GLContext.cpp
Image.cpp
Lighting.cpp
@ -19,5 +20,10 @@ set(SOURCES
Vertex.cpp
)
generate_libgl_implementation()
set(GENERATED_SOURCES
GLAPI.cpp)
serenity_lib(LibGL gl)
target_link_libraries(LibGL PRIVATE LibCore LibGfx LibGLSL LibGPU)