v0.3.0: display abstraction, map-browser menu, SAGE terrain tiling/blends
- ra3.client::display: shared interactive loops; SDL and Vulkan backends implement only the primitives (init/present/poll_event/window_size/ key_down/present_terrain). ra3.display picks the backend. - Menu: maps by localized name (gamestrings.csf), red/gold theme, hover highlight, mouse + keyboard, wheel scroll, fullscreen and FPS/vsync options, loading progress bar. - Terrain: continuous tile sampling via a texture array (REPEAT, uv = cell/(2*cellSize)) removes per-cell grid seams; SAGE blend ramp for material transitions; FPS label + top-right minimap overlays. - Skip the skirmish sim for map views; reuse the Vulkan texture; no idle terrain redraw.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env sh
|
||||
# Regenerate the committed SPIR-V blobs under shaders/generated/.
|
||||
#
|
||||
# The build embeds the .spv files directly (see CMakeLists.txt), so no shader
|
||||
# compiler is needed to build OpenRA3. Run this only after editing a .vert/.frag.
|
||||
#
|
||||
# Needs one of: glslc (shaderc) or glslangValidator (glslang-tools). On a host
|
||||
# without either, use a throwaway container:
|
||||
# docker run --rm -v "$PWD/shaders:/s" ubuntu:26.04 bash -c \
|
||||
# "apt-get update -qq && apt-get install -y -qq glslang-tools && \
|
||||
# cd /s && sh ./compile.sh"
|
||||
set -eu
|
||||
|
||||
DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
OUT="$DIR/generated"
|
||||
mkdir -p "$OUT"
|
||||
|
||||
compile() {
|
||||
src="$1"
|
||||
dst="$2"
|
||||
if command -v glslc >/dev/null 2>&1; then
|
||||
glslc "$src" -o "$dst"
|
||||
else
|
||||
glslangValidator -V "$src" -o "$dst"
|
||||
fi
|
||||
}
|
||||
|
||||
for name in scene terrain; do
|
||||
compile "$DIR/$name.vert" "$OUT/$name.vert.spv"
|
||||
compile "$DIR/$name.frag" "$OUT/$name.frag.spv"
|
||||
done
|
||||
|
||||
echo "wrote $OUT/{scene,terrain}.{vert,frag}.spv"
|
||||
Reference in New Issue
Block a user