X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=misc%2Ftools%2Fcompress-texture;h=743992215a8af6548c0b1c99da307db88328360d;hb=93b2b357082ec5abb160b6cd1be7261d995ccd28;hp=d1ceecd0ec1f7d308d99d41ca343343c6d07315d;hpb=0e1fbbc2bf03b525cefeb1dbd78deaa458c354b6;p=xonotic%2Fxonotic.git diff --git a/misc/tools/compress-texture b/misc/tools/compress-texture index d1ceecd0..74399221 100755 --- a/misc/tools/compress-texture +++ b/misc/tools/compress-texture @@ -3,27 +3,40 @@ # usage: compress-texture tool compression in.png out.dds # example: compress-texture compressonator dxt1 foo.jpg foo.dds +echo >&2 "$0 $*" + tool=$1; shift format=$1; shift src=$1; shift dst=$1; shift +c= f= case "$tool" in - compressonator) + compressonator-dxtc|compressonator-atic) + case "$tool" in + *-dxtc) c="-codec DXTC.dll" ;; + *-atic) c="-codec ATICompressor.dll" ;; + esac case "$format" in dxt1) f="+fourCC DXT1" ;; dxt3) f="+fourCC DXT3" ;; dxt5) f="+fourCC DXT5" ;; esac - echo ">> $f ($format)" dir=`mktemp -d "$HOME/.wine/drive_c/compressonator.XXXXXX"` dir_dos="C:/${dir##*/}" ext=${src##*.} cp "$src" "$dir/src.$ext" - wine "$HOME/.wine/drive_c/Program Files/AMD/The Compressonator 1.50/TheCompressonator.exe" -convert -mipmaps "$dir_dos/src.$ext" "$dir_dos/dst.dds" -codec DXTC.dll $f "$@" - mv "$dir/dst.dds" "$dst" + + # compressonator and wine suck, so we sometimes have to retry :( + for retry in 1 2 3 4 5; do + wine "c:/Program Files/AMD/The Compressonator 1.50/TheCompressonator.exe" -convert -mipmaps "$dir_dos/src.$ext" "$dir_dos/dst.dds" $c $f "$@" -mipper BoxFilter.dll + if mv "$dir/dst.dds" "$dst"; then + break + fi + done rm -rf "$dir" + [ -f "$dst" ] ;; nvcompress) case "$format" in