- 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.
34 lines
993 B
Bash
34 lines
993 B
Bash
#!/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"
|