{"id":27940556,"url":"https://github.com/khronosgroup/egl-registry","last_synced_at":"2025-05-07T10:18:16.497Z","repository":{"id":14157016,"uuid":"76110702","full_name":"KhronosGroup/EGL-Registry","owner":"KhronosGroup","description":"EGL API and Extension Registry","archived":false,"fork":false,"pushed_at":"2025-03-26T10:22:47.000Z","size":3274,"stargazers_count":126,"open_issues_count":21,"forks_count":109,"subscribers_count":56,"default_branch":"main","last_synced_at":"2025-05-07T10:18:07.686Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KhronosGroup.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.adoc","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-12-10T12:18:06.000Z","updated_at":"2025-04-04T03:12:37.000Z","dependencies_parsed_at":"2022-07-08T20:47:32.329Z","dependency_job_id":"f3eac2db-0d7a-44db-93b9-74e401398973","html_url":"https://github.com/KhronosGroup/EGL-Registry","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KhronosGroup%2FEGL-Registry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KhronosGroup%2FEGL-Registry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KhronosGroup%2FEGL-Registry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KhronosGroup%2FEGL-Registry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KhronosGroup","download_url":"https://codeload.github.com/KhronosGroup/EGL-Registry/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252856568,"owners_count":21814858,"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","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":[],"created_at":"2025-05-07T10:18:15.681Z","updated_at":"2025-05-07T10:18:16.488Z","avatar_url":"https://github.com/KhronosGroup.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EGL-Registry\n\nThe EGL-Registry repository contains the EGL API and Extension Registry,\nincluding specifications, reference pages and reference cards, and the\nenumerant registry. It is also used as a backing store for the web view of\nthe registry at https://www.khronos.org/registry/egl/ ; commits to the\nmain branch of this repository will be reflected there.\n\nIn the past, the EGL registry was maintained in a public Subversion\nrepository. The history in that repository has not been imported to github,\nbut it is still available at\nhttps://cvs.khronos.org/svn/repos/registry/trunk/public/egl/ .\n\nInteresting files in this repository include:\n\n* index.php - toplevel index page for the web view. This relies on PHP\n  include files found elsewhere on www.khronos.org and so is not very useful\n  in isolation.\n* registry.tcl - extension number registry. Documents the names and index\n  numbers assigned to EGL extension specifications.\n* api/egl.xml - extension enumerant and API registry. Defines the EGL API,\n  including extensions, and is used to generate headers. Documents the EGL\n  enumerant ranges assigned to different vendors.\n* api/EGL/ and api/KHR/ - header files used by an EGL implementation.\n  EGL/eglext.h and EGL/egl.h are generated from egl.xml. The other headers\n  are handcoded and express OS and window system (platform) dependencies.\n* extensions/ - EGL extension specifications, grouped into vendor-specific\n  subdirectories.\n* sdk/ - EGL reference pages and reference cards. There are separate sets\n  for each API version.\n* specs/ - EGL specification documents.\n\n## Reserving EGL Enumerant Ranges\n\nEGL enumerants are documented in api/egl.xml . New ranges can be allocated\nby proposing a pull request to main modifying this file, following the\nexisting examples. Allocate ranges starting at the lowest free values\navailable (search for \"Reservable for future use\"). Ranges are not\nofficially allocated until your pull request is *accepted* into main. At\nthat point you can use values from your assigned range for API extensions.\n\n\n## Adding Extension Specifications\n\nExtension specification documents can be added by proposing a pull request\nto main, adding the specification .txt file and related changes under\nextensions/\\\u003cvendor\\\u003e/filename.txt. Your pull request must also:\n\n* Allocate an extension number in registry.tcl (follow the existing\n  ```\u003cextension\u003e``` examples, search for \"Next free extension number\", and use\n  the lowest available extension number).\n* Include that extension number in the extension specification document.\n* Define the interfaces introduced by this extension in api/egl.xml,\n  following the examples of existing extensions. If you have difficulty\n  doing this, consult the registry schema documentation in the GL registry\n  at www.khronos.org/registry/gl/; you may also create Issues in the\n  EGL-Registry repository to request help.\n* Verify that the EGL headers regenerate properly after applying your XML\n  changes. In the api/ directory, you must be able to do the following without\n  errors:\n```\n    # Validate XML changes\n    make validate\n    # Verify headers build and are legal C\n    make clobber\n    make\n    make tests\n```\n* Finally, add a link from the extensions section of index.php to the\n  extension document, using the specified extension number, so it shows up\n  in the web view (this could in principle be generated automatically from\n  registry.tcl / egl.xml, but isn't at present).\n\nSometimes extension text files contain inappropriate UTF-8 characters. They\nshould be restricted to the ASCII subset of UTF-8 at present. They can be\nremoved using the iconv Linux command-line tool via\n\n    iconv -c -f utf-8 -t ascii filename.txt\n\n(see internal Bugzilla issue 16141 for more).\n\nWe may transition to an asciidoc-based extension specification format at\nsome point.\n\n\n## Build Tools\n\nThis section is not complete (see https://github.com/KhronosGroup/EGL-Registry/issues/92).\n\nTo validate the XML and build the headers you will need at least GNU make,\n'jing' for the 'make validate' step (https://relaxng.org/jclark/jing.html),\nand Python 3.5 for the 'make' step.\nThe 'make tests' step requires whatever the C and C++ compilers configured\nfor GNU make are, usually gcc and g++.\n\nAll of these components are available prepackaged for major Linux\ndistributions and for the Windows 10 Debian WSL.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhronosgroup%2Fegl-registry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkhronosgroup%2Fegl-registry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhronosgroup%2Fegl-registry/lists"}