{"id":23043220,"url":"https://github.com/cginternals/khrbinding-generator","last_synced_at":"2025-08-14T22:33:01.909Z","repository":{"id":31126139,"uuid":"126962191","full_name":"cginternals/khrbinding-generator","owner":"cginternals","description":"A Python generator for the Khronos APIs OpenGL, OpenGL ES, OpenGL SC, and EGL","archived":false,"fork":false,"pushed_at":"2025-04-16T09:31:05.000Z","size":395,"stargazers_count":5,"open_issues_count":14,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-16T12:32:41.785Z","etag":null,"topics":["binding-generator","egl","opengl-api","opengl-es","opengl-sc"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cginternals.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-03-27T09:27:16.000Z","updated_at":"2025-04-16T09:31:11.000Z","dependencies_parsed_at":"2024-02-27T11:53:37.853Z","dependency_job_id":null,"html_url":"https://github.com/cginternals/khrbinding-generator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cginternals/khrbinding-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cginternals%2Fkhrbinding-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cginternals%2Fkhrbinding-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cginternals%2Fkhrbinding-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cginternals%2Fkhrbinding-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cginternals","download_url":"https://codeload.github.com/cginternals/khrbinding-generator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cginternals%2Fkhrbinding-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270494129,"owners_count":24593883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-14T02:00:10.309Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binding-generator","egl","opengl-api","opengl-es","opengl-sc"],"created_at":"2024-12-15T20:46:37.499Z","updated_at":"2025-08-14T22:33:01.543Z","avatar_url":"https://github.com/cginternals.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KHR Binding C++ Generator\n\n## Process\n\n1. Load XML from Khronos repository\n2. Generate C++ API binding from XML\n\n## Preconfigured Profiles\n\nCurrently available profiles for loading and generating (in subdirectory `profiles`):\n * `gl.json` for the OpenGL API (results are deployed in [glbinding](https://github.com/cginternals/glbinding))\n * `gles.json` for the OpenGL ES API (results are deployed in [glesbinding](https://github.com/cginternals/glesbinding))\n * `glsc.json` for the OpenGL SC API (results are deployed in [glscbinding](https://github.com/cginternals/glscbinding))\n * `egl.json` for the EGL API (results are deployed in [eglbinding](https://github.com/cginternals/eglbinding))\n\n## Examples\n\n### Load XML from Khronos repository\n\n```bash\npython3 update.py -p \"profiles/gl.json\"\npython3 update.py -p \"profiles/gles.json\"\npython3 update.py -p \"profiles/glsc.json\"\npython3 update.py -p \"profiles/egl.json\"\npython3 update.py -p \"profiles/vk.json\"\n```\n\n### Generate C++ API binding from XML\n\n```bash\npython3 generate.py -p \"profiles/gl.json\" -d \"../glbinding/source\"\npython3 generate.py -p \"profiles/gles.json\" -d \"../glesbinding/source\"\npython3 generate.py -p \"profiles/glsc.json\" -d \"../glscbinding/source\"\npython3 generate.py -p \"profiles/egl.json\" -d \"../eglbinding/source\"\npython3 generate.py -p \"profiles/vk.json\" -d \"../vkbinding/source\"\n```\n\n## Profile Documentation\n\nA profile file is a JSON file with a flat layout, although semantic groups are intended.\nThe currently supported tags are:\n\n* API specification\n  * `sourceUrl`: The url to download the API specification\n  * `sourceFile`: The intermediate file name to store the API specification\n  * `apiIdentifier`: For multi-API specification files, specifies the one API to select\n* Code Generation\n  * `bindingNamespace`: The identifier for the subdirectories and C++ binding namespace\n  * `baseNamespace`: The C++ namespace for the generated API\n  * `coreProfileSince`: The version of core profile introduction (e.g., 3.2 for OpenGL)\n  * `multiContext`: Set to true if the API supports multiple contexts\n  * `booleanWidth`: The width of a boolean in this API (may be either 8 or 32)\n\nMore options are subject to future development. Ideas and requirements are welcomed.\n\n### Example profile gl.json\n\n```json\n{\n  \"\": \"API specification\",\n  \"apiIdentifier\": \"gl\",\n  \"sourceUrl\": \"https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/gl.xml\",\n  \"sourceFile\": \"gl.xml\",\n\n  \"\": \"Code Generation\",\n  \"bindingNamespace\": \"glbinding\",\n  \"baseNamespace\": \"gl\",\n  \"coreProfileSince\": \"3.2\",\n  \"multiContext\": true,\n  \"booleanWidth\": 8\n}\n```\n\n## Dependencies\n\n* Python 3\n  * jinja2\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcginternals%2Fkhrbinding-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcginternals%2Fkhrbinding-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcginternals%2Fkhrbinding-generator/lists"}