`Gl.*` binds the whole OpenGL 4.1 core API — every entry point of the platform gl3.h with every GL_* constant, generated by `ludic-dev glgen` with per-call ABI thunks. Windowed builds get an NSOpenGLContext on the existing window at Retina resolution; headless builds render into an offscreen CGL context, so a program that uses Gl.* renders and screenshots identically under the test harness. It links gl.ll, the thunks and OpenGL.framework only when used; every other build stays byte-identical. packages/ludic.render3d is a physically based renderer written on that surface: HDRI image-based lighting, GPU-generated terrain with scanned PBR materials, CDLOD, cascaded shadows, glTF with skinning, instanced vegetation with impostors, procedural grass, water, SSAO, and an HDR pipeline with bloom, auto-exposure and ACES. It also carries this session's work on it: the terrain at half its cost (10.3 -> 5.4 ms of frame), the streaming hitch that got worse the longer you played, a resize that emptied the world, and the packaging that lets a game use the renderer from its own repository — `ludic assets`, the material manifest shipping with the package, and shader lookup falling back to the install root. See changes/ for each, with its numbers. The camping game that drove all of it has moved out to its own repository, Maroon Lake; examples/rendering/smooth.ludic stays as the renderer's example here. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
56 lines
2.1 KiB
Text
56 lines
2.1 KiB
Text
# Generated build tree: LLVM IR, objects, compiled apps, the headless render
|
|
# (build/out.ppm) and the docs site all land under build/ (see `bin/ludic-dev build` /
|
|
# `bin/ludic clean`). Root-anchored so a source dir named "build" elsewhere is never
|
|
# accidentally ignored. Nothing is written to the repo root any more.
|
|
/build/
|
|
|
|
# Archives are never tracked: the Kenney art is committed *extracted* under
|
|
# assets/kenney/**/ (PNG/tmx/License), while the original download .zips and any
|
|
# packaged plugin .zip are local-only build inputs/outputs.
|
|
*.zip
|
|
|
|
# the toolchain binaries (ludicc, ludic, ludic-dev, ludic-fmt, ludic-lsp) — all built
|
|
# into bin/ by the one-line bootstrap + `bin/ludic-dev build`; never checked in. The
|
|
# only thing published is the source and the LLVM-IR seed (selfhost/ludicc.seed.ll).
|
|
/bin/
|
|
|
|
# package manager (issue #63): the per-project linked view into the global
|
|
# content-addressed store, and the optional hermetic copy from `ludic vendor`. Both
|
|
# are regenerated by `ludic get` / `ludic vendor` — package.ludic + package.lock.ludic
|
|
# are the tracked source of truth, so these stay out of the tree.
|
|
ludic_modules/
|
|
vendor/
|
|
|
|
# editor toolchain build artifacts
|
|
tools/editors/vscode/node_modules/
|
|
tools/editors/vscode/*.vsix
|
|
tools/editors/jetbrains/.gradle/
|
|
tools/editors/jetbrains/build/
|
|
|
|
# IntelliJ plugin SDK sandbox (tools/editors/jetbrains)
|
|
.intellijPlatform/
|
|
.idea/
|
|
|
|
# macOS Finder metadata
|
|
.DS_Store
|
|
**/.DS_Store
|
|
|
|
# Python bytecode cache from the docgen / release tooling
|
|
__pycache__/
|
|
*.pyc
|
|
|
|
# Release artifacts produced by `ludic-dev release`
|
|
/dist/
|
|
|
|
# Build/release tarballs anywhere in the tree. `git -C <repo> archive -o foo.tgz`
|
|
# resolves -o relative to the repo, not the caller's directory, so a stray
|
|
# archive lands in the root and a blanket `git add -A` will commit it.
|
|
*.tar.gz
|
|
*.tgz
|
|
|
|
# The CC0 Poly Haven downloads are fetched, not committed (`ludic-dev fetch-assets`
|
|
# reads the manifest that ships with the renderer, packages/ludic.render3d/assets.manifest,
|
|
# so a game outside this repository fetches the same set with `ludic assets`).
|
|
assets/polyhaven/hdri/
|
|
assets/polyhaven/textures/
|
|
assets/polyhaven/models/
|