Add README.md for each library module documenting API, platform backends, and usage. Add .gitignore for build artifacts. Remove pre-built binaries from version control. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
libsst-glapi
Thread-safe OpenGL 3.3 function loader with per-thread context management.
Usage
#include <SST/SST_GLAPI.h>
SST_GLAPI_InitForThread(NULL); // NULL = platform default library
// Standard GL calls work via macros:
glClear(GL_COLOR_BUFFER_BIT);
glDrawArrays(GL_TRIANGLES, 0, 3);
SST_GLAPI_ShutdownForThread();
The macros in SST_GLAPIMacros.h dispatch through a thread-local
SST_GLAPI struct containing 334 function pointers.
API
SST_GLAPI_InitForThread(libName)-- load GL library, resolve all symbolsSST_GLAPI_ShutdownForThread()-- release resourcesSST_GLAPI_GetThreadGLAPI()-- get current thread's function tableSST_GLAPI_CopyForThread(api)-- install a custom function table
Platform backends
| Platform | Library | Symbol resolution |
|---|---|---|
| Windows | opengl32.dll | wglGetProcAddress + GetProcAddress |
| Linux/POSIX | libGL.so.1 | glXGetProcAddressARB |
| macOS | OpenGL.framework | dlsym |
Code generation
parsegl.c reads gl33.txt and generates SST_GLAPIStruct.h,
SST_GLAPIStruct.c, and SST_GLAPIMacros.h.