5 CXX="g++ -Wall -Wextra -O3"
13 echo >&3 "<html><title>S2TC</title>"
15 <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
16 <script type="text/javascript">
22 me.data("src", me.attr("src"));
23 me.attr("src", me.data("src"));
24 if(refsrc == me.data("src"))
27 refsrc = me.data("src");
33 me.data("src", me.attr("src"));
35 me.attr("src", refsrc);
41 me.attr("src", me.data("src"));
45 $('img').click(clickfunc);
46 $('img').mouseenter(enterfunc);
47 $('img').mouseleave(leavefunc);
51 echo >&3 "<body onLoad=\"run()\"><h1>S2TC</h1>"
53 echo >&3 "<tr><th>Picture</th>"
54 echo >&3 "<th>Original</th>"
56 if $use_compressonator; then
57 echo >&3 "<th>Compressonator</th>"
59 if $use_nvcompress; then
60 echo >&3 "<th>nvcompress</th>"
62 echo >&3 "<th>rand32-sRGB-mixed</th>"
63 echo >&3 "<th>rand32-wavg</th>"
64 echo >&3 "<th>rand32-avg</th>"
66 if $use_libtxc_dxtn; then
67 echo >&3 "<th>libtxc_dxtn</th>"
69 echo >&3 "<th>norand-wavg</th>"
70 echo >&3 "<th>faster-wavg</th>"
76 echo >&3 "<tr><th>$1</th>"
83 convert "$1" -crop 256x256+192+128 "html/$1.png"
84 echo >&3 "<td><img src=\"$1.png\" alt=\"$1\" title=\"$1$deltatime\"></td>"
85 eval "prevdeltatime=\$deltatime_$col"
86 prevdeltatime=`echo "($prevdeltatime-0)+$deltatime_raw" | bc`
87 eval "deltatime_$col=\$prevdeltatime"
92 ./s2tc_decompress < "$1" | convert TGA:- -crop 256x256+192+128 "html/$1-s2tc.png"
93 echo >&3 "<td><img src=\"$1-s2tc.png\" alt=\"$1\" title=\"$1$deltatime\"></td>"
94 eval "prevdeltatime=\$deltatime_$col"
95 prevdeltatime=`echo "($prevdeltatime-0)+$deltatime_raw" | bc`
96 eval "deltatime_$col=\$prevdeltatime"
105 echo >&3 "<tr><th>Total runtime</th><td>(original)</td>"
108 eval "prevdeltatime=\$deltatime_$col"
109 [ -n "$prevdeltatime" ] || break
110 deltatime=`echo "scale=3; $prevdeltatime / 1000000000" | bc -l`
111 echo >&3 "<td>$deltatime seconds</td>"
114 echo >&3 "</table></body></html>"
122 deltatime_raw=`echo "$t1 - $t0" | bc`
123 deltatime=`echo "scale=3; $deltatime_raw / 1000000000" | bc -l`
124 deltatime=" ($deltatime seconds)"
131 timing "$@" < "$in" > "$out"
135 if which nvcompress >/dev/null 2>&1; then
140 if which wine >/dev/null 2>&1 && [ -f "$HOME/.wine/drive_c/Program Files (x86)/AMD/The Compressonator 1.50/TheCompressonator.exe" ]; then
141 use_compressonator=true
143 use_compressonator=false
145 if [ -f /usr/lib/libtxc_dxtn.so ]; then
148 use_libtxc_dxtn=false
152 for i in dxtfail fract001 base_concrete1a disabled floor_tile3a lift02 panel_ceil1a sunset amelia rms noise noise_solid supernova ishihara augenkrebs; do
157 if $use_compressonator; then
158 timing wine "c:/Program Files (x86)/AMD/The Compressonator 1.50/TheCompressonator.exe" -convert -overwrite -mipmaps "$i".tga "$i"-amdcompress.dds -codec DXTC.dll +fourCC DXT1 -mipper BoxFilter.dll
159 html "$i"-amdcompress.dds
162 if $use_nvcompress; then
163 timing nvcompress "$i".tga "$i"-nvcompress.dds
164 html "$i"-nvcompress.dds
167 S2TC_COLORDIST_MODE=SRGB_MIXED S2TC_RANDOM_COLORS=32 S2TC_REFINE_COLORS=CHECK t "$i".tga "$i"-rand32-mrgb-r.dds ./s2tc
168 S2TC_COLORDIST_MODE=WAVG S2TC_RANDOM_COLORS=32 S2TC_REFINE_COLORS=CHECK t "$i".tga "$i"-rand32-wavg-r.dds ./s2tc
169 S2TC_COLORDIST_MODE=AVG S2TC_RANDOM_COLORS=32 S2TC_REFINE_COLORS=CHECK t "$i".tga "$i"-rand32-avg-r.dds ./s2tc
170 if $use_libtxc_dxtn; then
171 LD_PRELOAD=/usr/lib/libtxc_dxtn.so t "$i".tga "$i"-libtxc_dxtn.dds ./s2tc
174 S2TC_COLORDIST_MODE=WAVG S2TC_RANDOM_COLORS=0 S2TC_REFINE_COLORS=ALWAYS t "$i".tga "$i"-norand-wavg-r.dds ./s2tc
175 S2TC_COLORDIST_MODE=WAVG S2TC_RANDOM_COLORS=-1 S2TC_REFINE_COLORS=ALWAYS t "$i".tga "$i"-faster-wavg-r.dds ./s2tc