mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 18:27: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:
parent
8c094699db
commit
2da1c1c10e
9 changed files with 1787 additions and 1404 deletions
14
Meta/CMake/libgl_generators.cmake
Normal file
14
Meta/CMake/libgl_generators.cmake
Normal file
|
@ -0,0 +1,14 @@
|
|||
function (generate_libgl_implementation)
|
||||
set(LIBGL_INPUT_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
invoke_generator(
|
||||
"GLAPI.cpp"
|
||||
Lagom::GenerateGLAPIWrapper
|
||||
"${LIBGL_INPUT_FOLDER}/GLAPI.json"
|
||||
"GL/glapi.h"
|
||||
"GLAPI.cpp"
|
||||
arguments -j "${LIBGL_INPUT_FOLDER}/GLAPI.json"
|
||||
)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GL/glapi.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/LibGL/GL/")
|
||||
endfunction()
|
Loading…
Add table
Add a link
Reference in a new issue