Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kassane/sokol-d
D bindings for the sokol headers (https://github.com/floooh/sokol)
https://github.com/kassane/sokol-d
bindings d dlang sokol zig
Last synced: 4 months ago
JSON representation
D bindings for the sokol headers (https://github.com/floooh/sokol)
- Host: GitHub
- URL: https://github.com/kassane/sokol-d
- Owner: kassane
- License: zlib
- Created: 2023-12-11T19:41:35.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-28T13:01:08.000Z (4 months ago)
- Last Synced: 2024-10-05T15:58:28.480Z (4 months ago)
- Topics: bindings, d, dlang, sokol, zig
- Language: C
- Homepage: http://sokol-d.dub.pm/
- Size: 2.27 MB
- Stars: 12
- Watchers: 2
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![CI Build](https://github.com/kassane/sokol-d/actions/workflows/build.yml/badge.svg)](https://github.com/kassane/sokol-d/actions/workflows/build.yml)
Auto-generated [D](https://dlang.org) bindings for the [sokol headers](https://github.com/floooh/sokol).
#### Targets
- Native
- Wasm (`-Dtarget=wasm32-emscripten-none`)By default, the backend 3D API will be selected based on the target platform:
- macOS: Metal
- Windows: D3D11
- Linux: GL## BUILD
**Required**
- [zig](https://ziglang.org/download) v0.13.0 or master
- [ldc](https://ldc-developers.github.io) v1.39.0 or latest-CI (nightly)Supported platforms are: Windows, macOS, Linux (with X11)
On Linux install the following packages: libglu1-mesa-dev, mesa-common-dev, xorg-dev, libasound-dev (or generally: the dev packages required for X11, GL and ALSA development)
```bash
# build sokol library + all examples [default: static library]
zig build -Doptimize=ReleaseSafe# build sokol shared library + all examples
zig build -Doptimize=ReleaseSafe -Dshared# Run Examples
zig build run-blend -Doptimize=ReleaseSafe
zig build run-clear -Doptimize=ReleaseSafe
zig build run-cube -Doptimize=ReleaseSafe
zig build run-debugtext -Doptimize=ReleaseSafe
zig build run-mrt -Doptimize=ReleaseSafe
zig build run-saudio -Doptimize=ReleaseSafe
zig build run-sgl_context -Doptimize=ReleaseSafe
zig build run-sgl_points -Doptimize=ReleaseSafe
zig build run-user_data -Doptimize=ReleaseSafe
zig build run-triangle -Doptimize=ReleaseSafe
zig build run-imgui -Doptimize=ReleaseSafe -Dimgui
zig build run-droptest -Doptimize=ReleaseSafe -Dimguizig build --help
# Project-Specific Options:
# -Dgl=[bool] Force OpenGL (default: false)
# -Dwgpu=[bool] Force WebGPU (default: false, web only)
# -Dx11=[bool] Force X11 (default: true, Linux only)
# -Dwayland=[bool] Force Wayland (default: false, Linux only, not supported in main-line headers)
# -Degl=[bool] Force EGL (default: false, Linux only)
# -Dimgui=[bool] Add support for sokol_imgui.h bindings
# -Dartifact=[bool] Build artifacts (default: false)
# -DbetterC=[bool] Omit generating some runtime information and helper functions #(default: false)
# -DzigCC=[bool] Use zig cc as compiler and linker (default: false)
# -Dtarget=[string] The CPU architecture, OS, and ABI to build for
# -Dcpu=[string] Target CPU features to add or subtract
# -Ddynamic-linker=[string] Path to interpreter on the target system
# -Doptimize=[enum] Prioritize performance, safety, or binary size
# Supported Values:
# Debug
# ReleaseSafe
# ReleaseFast
# ReleaseSmall
# -Dshared=[bool] Build sokol dynamic library (default: static)
```
(also run `zig build -l` to get a list of build targets)## Shaders
Checkout [sokol-tools](https://github.com/floooh/sokol-tools) for a sokol shader pipeline! It supports these D bindings and all shaders in the examples folder
here have been compiled using it with `-f sokol_d`!```bash
zig build shaders # (re)generate D bindings from shaders.
```
## License and attributions
This code is released under the zlib license (see `LICENSE` for info). Parts of `gen_d.py` have been copied and modified from
the zig-bindings (https://github.com/floooh/sokol-zig/) and rust-bindings (https://github.com/floooh/sokol-rust/) for sokol.
The sokol headers are created by Andre Weissflog (floooh) and sokol is released under its own license here: https://github.com/floooh/sokol/blob/master/LICENSE