# dav1dde/glad

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/dav1dde-glad).**

4,425 stars · 493 forks · C · other

## Links

- GitHub: https://github.com/Dav1dde/glad
- Homepage: https://gen.glad.sh/
- awesome-repositories: https://awesome-repositories.com/repository/dav1dde-glad.md

## Topics

`c` `code-generation` `cpp` `d` `egl` `generator` `gl` `glad` `gles` `gles2` `glx` `loader-generator` `nim` `opengl` `pascal` `python` `rust` `vulkan` `wgl`

## Description

Glad is a cross-platform graphics API loader generator that produces source code for loading function pointers based on official specifications. It functions as a multi-language tool designed to ensure consistent communication between applications and graphics drivers across different operating systems and hardware.

The tool utilizes a plugin-based architecture to generate loading code for multiple programming languages. It employs specification-driven code generation, parsing official XML or JSON files to ensure the correctness of function signatures and mapping optional API extensions to specific pointers based on detected hardware capabilities.

The project provides capabilities for GPU extension management and cross-language API binding, specifically targeting the loading of OpenGL and Vulkan functions. It produces minimal source files for header-only distribution, allowing loaders to be included in projects without pre-compiled binary libraries.

## Tags

### Graphics & Multimedia

- [Graphics API Loaders](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/graphics-apis-bindings/graphics-rendering-apis/graphics-api-loaders.md) — Generates source code to resolve hardware-accelerated function pointers for graphics APIs based on official specifications. ([source](https://github.com/Dav1dde/glad/wiki))
- [Extension Loaders](https://awesome-repositories.com/f/graphics-multimedia/opengl-graphics-programming/extension-loaders.md) — Automatically creates loaders that handle OpenGL versions and specific hardware extensions.
- [GPU Extension Management](https://awesome-repositories.com/f/graphics-multimedia/webgl-extension-management/gpu-extension-management.md) — Manages specific graphics API extensions and versions to utilize latest hardware features in a portable way.
- [Cross-Platform Graphics Tooling](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/graphics-apis-bindings/cross-platform-graphics-tooling.md) — Provides consistent graphics API communication across different operating systems and hardware drivers.

### Development Tools & Productivity

- [Schema-Driven Code Generators](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/code-generation/schema-driven-code-generators.md) — Parses official XML or JSON specification files to produce type-safe source code for graphics APIs.
- [Header-Only Libraries](https://awesome-repositories.com/f/development-tools-productivity/header-only-libraries.md) — Produces minimal source files as single-file headers to simplify project integration without binary libraries.
- [Plugin Systems](https://awesome-repositories.com/f/development-tools-productivity/plugin-systems.md) — Provides a community-driven plugin system to extend the generator's support for additional programming languages. ([source](https://cdn.jsdelivr.net/gh/dav1dde/glad@glad2/README.md))

### Operating Systems & Systems Programming

- [Driver Interface Discovery](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-drivers/driver-interface-discovery.md) — Ensures applications can communicate with GPUs by dynamically discovering available API functions at runtime.

### Programming Languages & Runtimes

- [Cross-Language Bindings Layers](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/foreign-function-interfaces/cross-language-bindings-layers.md) — Generates boilerplate code across multiple programming languages to interface with low-level graphics specifications.
- [Language Generators](https://awesome-repositories.com/f/programming-languages-runtimes/language-specifications-standards/language-specifications/language-generators.md) — Employs a modular system of language-specific generators to translate API specifications into target language syntaxes.

### Software Engineering & Architecture

- [Hardware Capability Mapping](https://awesome-repositories.com/f/software-engineering-architecture/component-functional-extensions/hardware-capability-mapping.md) — Maps optional API extensions to specific function pointers based on the detected hardware capabilities at runtime.

### Web Development

- [Multi-Language Client Generation](https://awesome-repositories.com/f/web-development/api-client-generators/multi-language-client-generation.md) — Automates the generation of loading libraries across various programming languages from a common specification.
