From 0e1fbbc2bf03b525cefeb1dbd78deaa458c354b6 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Sat, 26 Jun 2010 16:29:41 +0200 Subject: [PATCH] also support ATI Compressonator via WINE for release building --- misc/tools/cached-converter.sh | 20 ++++++++++++++----- misc/tools/compress-texture | 36 ++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 5 deletions(-) create mode 100755 misc/tools/compress-texture diff --git a/misc/tools/cached-converter.sh b/misc/tools/cached-converter.sh index fda5cac0..e9a214b7 100755 --- a/misc/tools/cached-converter.sh +++ b/misc/tools/cached-converter.sh @@ -7,10 +7,20 @@ set -e : ${jpeg_qual_rgb:=95} : ${jpeg_qual_a:=99} : ${do_dds:=true} -: ${dds_flags:=} +: ${dds_tool:=compressonator} : ${do_ogg:=false} : ${ogg_qual:=1} +me=$0 +case "$me" in + */*) + meprefix=${me%/*}/ + ;; + *) + meprefix= + ;; +esac + tmpdir=`mktemp -d -t cached-converter.XXXXXX` trap 'exit 1' INT trap 'rm -rf "$tmpdir"' EXIT @@ -47,7 +57,7 @@ cached() else rm -f "$tempfile1" rm -f "$tempfile2" - exit 1 + exit 1 fi } @@ -57,7 +67,7 @@ reduce_jpeg2_dds() ia=$1; shift o=$1; shift; shift convert "$i" "$ia" -compose CopyOpacity -composite "$tmpdir/x.png" && \ - nvcompress -alpha -bc3 $1 "$tmpdir/x.png" "$o" + "$meprefix"compress-texture "$dds_tool" dxt5 "$tmpdir/x.png" "$o" $1 } reduce_jpeg2_jpeg2() @@ -89,7 +99,7 @@ reduce_rgba_dds() { i=$1; shift; shift o=$1; shift; shift - nvcompress -alpha -bc3 $1 "$i" "$o" + "$meprefix"compress-texture "$dds_tool" dxt5 "$i" "$o" $1 } reduce_rgba_jpeg2() @@ -107,7 +117,7 @@ reduce_rgb_dds() { i=$1; shift; shift o=$1; shift; shift - nvcompress -bc1 $1 "$i" "$o" + "$meprefix"compress-texture "$dds_tool" dxt1 "$i" "$o" $1 } reduce_rgb_jpeg() diff --git a/misc/tools/compress-texture b/misc/tools/compress-texture new file mode 100755 index 00000000..d1ceecd0 --- /dev/null +++ b/misc/tools/compress-texture @@ -0,0 +1,36 @@ +#!/bin/sh + +# usage: compress-texture tool compression in.png out.dds +# example: compress-texture compressonator dxt1 foo.jpg foo.dds + +tool=$1; shift +format=$1; shift +src=$1; shift +dst=$1; shift + +f= +case "$tool" in + compressonator) + 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" + rm -rf "$dir" + ;; + nvcompress) + case "$format" in + dxt1) f="-bc1" ;; + dxt3) f="-alpha -bc3" ;; + dxt5) f="-alpha -bc5" ;; + esac + nvcompress $f "$@" "$src" "$dst" + ;; +esac -- 2.39.2