: ${ogg_qual:=1}
: ${del_src:=false}
: ${git_src_repo:=}
+: ${dds_noalpha:=dxt1}
+: ${dds_prealpha:=dxt4}
+: ${dds_sepalpha:=dxt5}
selfprofile_t0=`date +%s`
selfprofile_step=init
[ -z "$outfile2" ] || tempfile2="${name2%/*}/new-${name2##*/}"
if [ -f "$name1" ] && { [ -z "$outfile2" ] || [ -f "$name2" ]; }; then
selfprofile convert_copyoutput
- case "$outfile1" in */*) mkdir -p "${outfile1%/*}"; esac && { ln -vf "$name1" "$outfile1" || { rm -f "$outfile1" && cp "$name1" "$outfile1"; }; }
- [ -z "$outfile2" ] || { case "$outfile2" in */*) mkdir -p "${outfile2%/*}"; esac && { ln -vf "$name2" "$outfile2" || { rm -f "$outfile2" && cp "$name2" "$outfile2"; }; }; }
+ case "$outfile1" in */*) mkdir -p "${outfile1%/*}"; esac && { ln -f "$name1" "$outfile1" 2>/dev/null || { rm -f "$outfile1" && cp "$name1" "$outfile1"; }; }
+ [ -z "$outfile2" ] || { case "$outfile2" in */*) mkdir -p "${outfile2%/*}"; esac && { ln -f "$name2" "$outfile2" 2>/dev/null || { rm -f "$outfile2" && cp "$name2" "$outfile2"; }; }; }
conv=true
elif selfprofile convert_makeoutput; "$method" "$infile1" "$infile2" "$tempfile1" "$tempfile2" "$@"; then
mv "$tempfile1" "$name1"
ia=$1; shift
o=$1; shift; shift
convert "$i" "$ia" -compose CopyOpacity -composite "$tmpdir/x.tga" && \
- "$meprefix"compress-texture "$dds_tool" dxt5 "$tmpdir/x.tga" "$o" $1
+ "$meprefix"compress-texture "$dds_tool" "$dds_sepalpha" "$tmpdir/x.tga" "$o" $1
}
reduce_jpeg2_dds_premul()
ia=$1; shift
o=$1; shift; shift
convert "$i" "$ia" -compose CopyOpacity -composite "$tmpdir/x.tga" && \
- "$meprefix"compress-texture "$dds_tool" dxt4 "$tmpdir/x.tga" "$o" $1
+ "$meprefix"compress-texture "$dds_tool" "$dds_prealpha" "$tmpdir/x.tga" "$o" $1
}
reduce_jpeg2_jpeg2()
i=$1; shift; shift
o=$1; shift; shift
convert "$i" "$tmpdir/x.tga" && \
- "$meprefix"compress-texture "$dds_tool" dxt5 "$tmpdir/x.tga" "$o" $1
+ "$meprefix"compress-texture "$dds_tool" "$dds_sepalpha" "$tmpdir/x.tga" "$o" $1
}
reduce_rgba_dds_premul()
i=$1; shift; shift
o=$1; shift; shift
convert "$i" "$tmpdir/x.tga" && \
- "$meprefix"compress-texture "$dds_tool" dxt4 "$tmpdir/x.tga" "$o" $1
+ "$meprefix"compress-texture "$dds_tool" "$dds_prealpha" "$tmpdir/x.tga" "$o" $1
}
reduce_rgba_jpeg2()
i=$1; shift; shift
o=$1; shift; shift
convert "$i" "$tmpdir/x.tga" && \
- "$meprefix"compress-texture "$dds_tool" dxt1 "$tmpdir/x.tga" "$o" $1
+ "$meprefix"compress-texture "$dds_tool" "$dds_noalpha" "$tmpdir/x.tga" "$o" $1
}
reduce_rgb_jpeg()
will_jpeg=$do_jpeg
will_dds=$do_dds
+ will_ogg=$do_ogg
case "$f" in
+ ./sounds/misc/talk*.wav) will_ogg=false ;; # engine "feature"
*_bump) will_dds=false ;;
./models/player/*) will_dds=false ;;
./models/sprites/*) will_dds=false ;;
;;
esac
+ # configure S2TC
+ case "$f" in
+ *_norm)
+ export S2TC_COLORDIST_MODE=NORMALMAP
+ export S2TC_RANDOM_COLORS=256
+ export S2TC_REFINE_COLORS=LOOP
+ ;;
+ *)
+ export S2TC_COLORDIST_MODE=SRGB_MIXED
+ export S2TC_RANDOM_COLORS=64
+ export S2TC_REFINE_COLORS=LOOP
+ ;;
+ esac
+
# for deluxemaps, lightmaps and normalmaps, enforce high jpeg quality (like on alpha channels)
if [ "$jqual_a" -gt "$jqual_rgb" ]; then
case "$f" in
rm -f "$F.hasalpha"
;;
*.ogg)
- cached "$do_ogg" reduce_ogg_ogg "$F" "" "$F" "" "$ogg_qual"
+ cached "$will_ogg" reduce_ogg_ogg "$F" "" "$F" "" "$ogg_qual"
;;
./sound/misc/null.wav)
# never convert this one
;;
*.wav)
- cached "$do_ogg" reduce_wav_ogg "$F" "" "${f}.ogg" "" "$ogg_qual"
+ cached "$will_ogg" reduce_wav_ogg "$F" "" "${f}.ogg" "" "$ogg_qual"
;;
esac
selfprofile marktodelete