Compare commits
534 Commits
Author | SHA1 | Date | |
---|---|---|---|
fa6ebda53f | |||
383331bb42 | |||
1a75484520 | |||
a11a6739c2 | |||
94e0ba9ec7 | |||
1770ad7280 | |||
d41c7ac33a | |||
396b6153af | |||
831ebec475 | |||
b0afc82d7d | |||
8659d3fb4a | |||
3c4ccd41fa | |||
475c66d2cc | |||
f8790a536a | |||
b549e862b0 | |||
203eda1d47 | |||
47b06d3255 | |||
e965a668a3 | |||
65b3dfa4a6 | |||
875a78a124 | |||
46e5c6a8ee | |||
2bd367a4dc | |||
49677da371 | |||
3850b22f7f | |||
db8fc561c3 | |||
9b79638f79 | |||
7596650a2d | |||
308050923b | |||
9d6c7d6a69 | |||
a20044bccc | |||
268e6abd65 | |||
87ca69bd14 | |||
63d29a508e | |||
e9a8630a3f | |||
c0ad0f4d31 | |||
a382ea5b21 | |||
26723de502 | |||
58617584d4 | |||
4ef408b591 | |||
592c8b8b0a | |||
b254961b22 | |||
d32f0e0173 | |||
701f8224dc | |||
7b031aa4bf | |||
d01d72f8e7 | |||
0d205015ae | |||
7aa0390f32 | |||
68e6cbdd40 | |||
fa062aa298 | |||
205f492e2e | |||
899a99a106 | |||
766edcb1a6 | |||
b37ca4498d | |||
9ad63e7f3a | |||
81336cc3e9 | |||
e9d44813d2 | |||
d4fbfd0ff4 | |||
4c7ff58885 | |||
a083337473 | |||
6bc3224fe7 | |||
7e2a9d1adb | |||
2d6fc0e304 | |||
d019cd7080 | |||
4cb60cc5ba | |||
9722101114 | |||
3f0bffaadf | |||
6e69560969 | |||
8f4ebf1d93 | |||
132443013a | |||
ac87eefa6d | |||
f705b2eaa1 | |||
6ade0e27b7 | |||
7e74261f92 | |||
57298c71c8 | |||
b06a6f46a5 | |||
63d6036e3a | |||
ab316deeaa | |||
f2fa0517b5 | |||
474239c784 | |||
77188a42ac | |||
57b99a1595 | |||
b2b367ef5f | |||
022944e49b | |||
27024253ce | |||
22bc0b949d | |||
ac0759efc8 | |||
94d0635285 | |||
634229a842 | |||
eb5556548d | |||
14faa8e564 | |||
2f12bfdb41 | |||
358bd0296e | |||
aa6cd0d2e5 | |||
83bdcb541c | |||
1d8d067caf | |||
15f5e19d40 | |||
63897b3ecc | |||
ac3f2d1794 | |||
bff3dab505 | |||
04bdc76749 | |||
3b4fcd0369 | |||
fea97461c5 | |||
897cc78397 | |||
0eb7c3eb71 | |||
20c5078e93 | |||
c784e03be5 | |||
803301ea89 | |||
fa4ba97f6d | |||
b130487c2a | |||
8ff802dac1 | |||
69e8641db5 | |||
d5a3c1d3a7 | |||
79360e6501 | |||
547c59e52f | |||
5473a89132 | |||
dca493b6c4 | |||
b6b47ff254 | |||
095737d863 | |||
9609d1e2fd | |||
d36f68fd66 | |||
d252888850 | |||
21af952fec | |||
778bdec4ba | |||
f1c943cd57 | |||
1248743859 | |||
fa468b04ab | |||
06c170b41b | |||
cb6c18efa4 | |||
d44a65c7b7 | |||
d08c9e61e3 | |||
8922ab86d6 | |||
6d843c78cf | |||
e46f48f0a3 | |||
f2d90ee844 | |||
23bfc1b514 | |||
035997bc2e | |||
086bf0343c | |||
97f17dc6d8 | |||
50a5d5967b | |||
78d48e62a9 | |||
2e9afac689 | |||
fa0800a24a | |||
0b3959e1a1 | |||
e98d795d2b | |||
d11d7a5f38 | |||
2ec37026be | |||
94401919b8 | |||
cbf4b2e3bf | |||
d8aec20022 | |||
e462e3ef58 | |||
9e7651e2d5 | |||
78fa1e785d | |||
149a50a26f | |||
18b3f8025e | |||
eb10483faf | |||
dc13d9e9d2 | |||
676a0b2908 | |||
9de43e7757 | |||
f0d9497e1f | |||
d87b7edd5f | |||
e15aa7a9bf | |||
2e96567459 | |||
8e586ca693 | |||
03c3fa42a8 | |||
dbdf9b6398 | |||
fcd296cd81 | |||
95811dfdff | |||
91e6bbe5c3 | |||
8c65e4c62d | |||
2364f539eb | |||
5081360073 | |||
3c0ab2d3f3 | |||
9c0658edca | |||
86b43e55c1 | |||
0b05255f90 | |||
17e01ed240 | |||
af9ba8ae90 | |||
4906642ac3 | |||
b68d428492 | |||
02709e1699 | |||
fe108af32e | |||
8b096b4186 | |||
5d19ff392a | |||
2952480d30 | |||
66d02325d8 | |||
69ff14a54c | |||
71d53e0d4e | |||
2643a62d4a | |||
144a8d6d4b | |||
11d04287c9 | |||
76a7adf83e | |||
8a837981b6 | |||
9ebcff93de | |||
ce8647c51d | |||
43b16d85f4 | |||
ad7a618222 | |||
765a0e394a | |||
1aac4215ff | |||
dfcf8ecf37 | |||
92d7ebded3 | |||
9302ee2cb0 | |||
28592e73a8 | |||
609db2639e | |||
b74cd8ec97 | |||
cd6f798b85 | |||
2338eeb4c0 | |||
b72a69f25c | |||
71b88deb2a | |||
0a290a64cc | |||
94dce3b623 | |||
659b684bf2 | |||
92db15b8d9 | |||
12bf7f9346 | |||
95b5e1decd | |||
4f098c4ff9 | |||
4fc1952539 | |||
5324156cc4 | |||
5f8cd22cdb | |||
993e853a5f | |||
a2f0e566c7 | |||
66c9729097 | |||
a607aadf32 | |||
8d99f2c6c4 | |||
f4cf5dd32c | |||
f99761c813 | |||
34d2631502 | |||
3265c36e14 | |||
3ee2c39be4 | |||
b2f59ea0d7 | |||
260097151d | |||
c21fa98ba5 | |||
eea2fce447 | |||
96b757130d | |||
c51f25f38d | |||
0bb3011f7f | |||
af5595c845 | |||
23b140416a | |||
4cbf43165c | |||
d6f6c1f1d4 | |||
1484c667a0 | |||
1f1afe0c33 | |||
5cf219a22e | |||
26283c8c25 | |||
49482d1441 | |||
c532ffb34e | |||
86ee333c02 | |||
199fc19277 | |||
1d4a2ea710 | |||
5f845513ee | |||
c1204bfb66 | |||
5225f4810f | |||
1e2567e4a3 | |||
8838b5220a | |||
bdf60f16a4 | |||
5d408c0aa4 | |||
ea42b83573 | |||
5ae77ae037 | |||
1c588e3311 | |||
4bbf62855c | |||
188d5043d8 | |||
09e46ead48 | |||
47df8ff7d6 | |||
a4356caefe | |||
f0bcbdca5c | |||
bd74a9ffc6 | |||
5d498d6824 | |||
5d80fb8219 | |||
2bd7db4244 | |||
25507428c2 | |||
df13c904b2 | |||
06bf4ea960 | |||
765a89951d | |||
19f872161e | |||
276c608f26 | |||
2c969b70a5 | |||
e8dc679874 | |||
47e8f23e9f | |||
83e249a1a0 | |||
9e881f28d1 | |||
ac7c017c35 | |||
da548fd03a | |||
9094756997 | |||
30b9545d75 | |||
1db253b243 | |||
50d80e3b81 | |||
e5736fcf92 | |||
1e0dea0738 | |||
cfdc731634 | |||
528b93ab14 | |||
39c291e2a6 | |||
5c60989043 | |||
f2c581dec1 | |||
f9753b649a | |||
11411bae2b | |||
42a641f0a5 | |||
b19cd63558 | |||
5bb6a54f61 | |||
82da6ea0a0 | |||
7b65595fe2 | |||
357b91a9b2 | |||
322dcd72c1 | |||
68cbe543b0 | |||
f08e2c4f64 | |||
e5ffd618f7 | |||
f233188963 | |||
c3bc24b165 | |||
caff2c9006 | |||
da503d2b3e | |||
adbb0c3338 | |||
cf62ecc199 | |||
4b08c20b0e | |||
c8bf853ba4 | |||
9ae9ec1975 | |||
8e074b2e28 | |||
757e372726 | |||
cf2b20dd43 | |||
fd6b8449bf | |||
035231a928 | |||
1454cbac14 | |||
3956d8a0c2 | |||
18ad53aa24 | |||
c09067e477 | |||
51a4fe7e2d | |||
e7f2d1e2bc | |||
56401d5f7d | |||
8cbd2c9ec6 | |||
77bfabca3b | |||
27f84c5caa | |||
a32d780347 | |||
d38b89edc7 | |||
0322f1b54a | |||
f6a39d6eab | |||
4fa93f8676 | |||
639f11d0b9 | |||
6e32d1e010 | |||
85db14f213 | |||
ac5f849e91 | |||
4783d5621e | |||
85b9c2b0c5 | |||
447634d263 | |||
f436a71479 | |||
e848645e88 | |||
78b55e1e37 | |||
3b0e0c3402 | |||
a19e25228f | |||
d8ed531e4c | |||
73851ab86f | |||
0cabfb6cfa | |||
1fafffd8af | |||
96f22f8cd4 | |||
558f7970b1 | |||
d2fbcc5259 | |||
0e5a1877a8 | |||
8e436b1d30 | |||
2f0fe5149f | |||
f744e700ae | |||
48f5dd4603 | |||
78bb864c14 | |||
7bc1eb6a29 | |||
f63abb3ef6 | |||
e8500dead4 | |||
2e1d1e70ae | |||
bc3299b78b | |||
d01bdaf370 | |||
d90b3d927b | |||
3e5c47d9fb | |||
6a667fff50 | |||
dfe081d32a | |||
acc02abaf1 | |||
8871fefe89 | |||
2543f4c9ed | |||
ac46c40b3e | |||
bcf0df2b49 | |||
8c7f54056c | |||
34cd266d8c | |||
9a9366cf4c | |||
8820c43175 | |||
18a3abf794 | |||
384f74ba39 | |||
7d75840398 | |||
8ea52efbf4 | |||
d86a89742e | |||
fd11f5e7ef | |||
dcfdabaee3 | |||
2d97ee9c03 | |||
14f49b6003 | |||
ea7dabc6b1 | |||
0878c0e967 | |||
a088ae5789 | |||
a52d3b7cdc | |||
307c418acc | |||
d0218cb18b | |||
c1f9c4df42 | |||
78d65e8368 | |||
18474cdb33 | |||
b7fbd1fc9b | |||
9de3298d6b | |||
568f34d838 | |||
e38e584db2 | |||
8655259379 | |||
7d65633f63 | |||
cb62c3c461 | |||
573cc1b371 | |||
9c6f6e143e | |||
126816ef72 | |||
2ca6e4a1bd | |||
b839b873e1 | |||
ab473f4ec5 | |||
f1ebbd4da6 | |||
ac79935c88 | |||
2aca4673ab | |||
43893d5d0f | |||
009eaf2aa6 | |||
fd2492670e | |||
7d88f4fa32 | |||
60022acaa7 | |||
a5faf51738 | |||
8365df0adf | |||
2d38f4fb2c | |||
3adf00b4b9 | |||
63897f3fe6 | |||
71f29a27f3 | |||
720be412fa | |||
8d361eee22 | |||
8d54d22cb2 | |||
782a127071 | |||
154e117e13 | |||
603d8ad1a2 | |||
bed4d78f6b | |||
d7f8fba7a7 | |||
e0a7e103c1 | |||
319ed6bac0 | |||
9e959d0191 | |||
53265596a3 | |||
ae24cb163d | |||
fb75d6065d | |||
ae744f88e6 | |||
5ac76b68c9 | |||
f2090df7a5 | |||
0a8de141a6 | |||
9aaee3ae16 | |||
820eb374d5 | |||
974cacda5f | |||
953a63d7b5 | |||
19477d60c0 | |||
8a48250bcb | |||
18d95584cc | |||
9b3075030e | |||
dd98ce6eab | |||
35ff0e5aa6 | |||
8529dcf755 | |||
56543e1a92 | |||
72543c9307 | |||
872c61e1d1 | |||
7f3cee4db9 | |||
3f036a11a6 | |||
3df9aff396 | |||
be12367910 | |||
c59a2e0a4b | |||
0abec17ab4 | |||
6b67f4a0d7 | |||
6e2565d1a4 | |||
3e3c8a4d18 | |||
8e836591ee | |||
50b8b67185 | |||
36850f6241 | |||
ed58bd90ff | |||
ab73c790e1 | |||
4a34c673a4 | |||
0ce578668f | |||
53e6c4c911 | |||
d99cf11e2e | |||
d9832ed22c | |||
a02649faa9 | |||
a28ebb4ccf | |||
0f5a5e5d24 | |||
8f0b129a52 | |||
098bc2f905 | |||
5943e8f42f | |||
ba72ebafcb | |||
a89735994c | |||
e7fd290af6 | |||
35b97e7a13 | |||
472c2d691f | |||
e48f56a15e | |||
25e32c8ff2 | |||
db63ba7fa4 | |||
3df66be089 | |||
3a52923697 | |||
9953883d26 | |||
5ed9090012 | |||
93e2fb46a9 | |||
03c9ec0f62 | |||
88fc5ca18e | |||
6fb29816a2 | |||
c67edca820 | |||
9d5242594b | |||
69c74d7a5e | |||
b7ea7a255b | |||
17790a34df | |||
7741a99b90 | |||
36dd7fb76b | |||
8fa870bf0c | |||
1afdf2da8a | |||
242aa4254e | |||
4f576d5539 | |||
2411f3f5db | |||
1c6b65ad52 | |||
f92a2191f2 | |||
7f9b10329b | |||
49409e9d92 | |||
f753cc9702 | |||
07a4daed7b | |||
2ad15489bb | |||
fa53ddcecd | |||
7a8b3aecc9 | |||
94357626f7 | |||
19342d8adf | |||
2ed4fee447 | |||
f03d702d84 | |||
10de10b9c2 | |||
508f9fbdc2 | |||
e965b0e4a9 | |||
1f4d313d0f | |||
dc0b78ad14 | |||
b8eb12afc1 | |||
1975883bed | |||
9bda107603 | |||
b4f17b968a | |||
e5ae0c0e20 | |||
a03411e451 | |||
931580edc5 | |||
fd2f5465f8 | |||
127052f404 |
@ -1,14 +1,27 @@
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0)
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0)
|
||||
PROJECT(NV)
|
||||
ENABLE_TESTING()
|
||||
|
||||
SET(NV_CMAKE_DIR "${NV_SOURCE_DIR}/cmake")
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${NV_CMAKE_DIR}")
|
||||
|
||||
# GCC check (needs -std:c++11 flag)
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
ADD_DEFINITIONS("-std=c++11")
|
||||
ENDIF(CMAKE_COMPILER_IS_GNUCC)
|
||||
|
||||
IF(WIN32)
|
||||
SET(GNUWIN32 "${NV_SOURCE_DIR}/extern/gnuwin32")
|
||||
SET(CMAKE_INCLUDE_PATH "${GNUWIN32}/include")
|
||||
SET(CMAKE_LIBRARY_PATH "${GNUWIN32}/lib")
|
||||
# gnuwin32 paths:
|
||||
SET(GNUWIN32_PATH "${NV_SOURCE_DIR}/extern/gnuwin32")
|
||||
SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "${GNUWIN32_PATH}/include")
|
||||
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "${GNUWIN32_PATH}/lib")
|
||||
|
||||
# Set GLUT path:
|
||||
SET(GLUT_ROOT_DIR "${NV_SOURCE_DIR}/extern/glut")
|
||||
|
||||
# Set FreeImage path:
|
||||
SET(FREEIMAGE_ROOT_DIR "${NV_SOURCE_DIR}/extern/FreeImage")
|
||||
|
||||
ENDIF(WIN32)
|
||||
|
||||
INCLUDE(${NV_CMAKE_DIR}/OptimalOptions.cmake)
|
||||
@ -16,15 +29,52 @@ MESSAGE(STATUS "Setting optimal options")
|
||||
MESSAGE(STATUS " Processor: ${NV_SYSTEM_PROCESSOR}")
|
||||
MESSAGE(STATUS " Compiler Flags: ${CMAKE_CXX_FLAGS}")
|
||||
|
||||
IF(CMAKE_BUILD_TYPE MATCHES "debug")
|
||||
SET(CMAKE_DEBUG_POSTFIX "_d" CACHE STRING "Postfix for debug build libraries.")
|
||||
ENDIF()
|
||||
|
||||
|
||||
IF(NVTT_SHARED)
|
||||
SET(NVCORE_SHARED TRUE)
|
||||
SET(NVMATH_SHARED TRUE)
|
||||
SET(NVIMAGE_SHARED TRUE)
|
||||
ENDIF(NVTT_SHARED)
|
||||
|
||||
ADD_SUBDIRECTORY(extern)
|
||||
|
||||
ADD_SUBDIRECTORY(src)
|
||||
|
||||
# These files should only be installed when creating packages.
|
||||
INSTALL(FILES
|
||||
LICENSE
|
||||
README.md
|
||||
DESTINATION share/doc/nvtt)
|
||||
|
||||
# Add packaging support
|
||||
INCLUDE(InstallRequiredSystemLibraries)
|
||||
|
||||
IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
SET(CPACK_GENERATOR "TGZ;DEB")
|
||||
ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
|
||||
SET(CPACK_PACKAGE_NAME "nvidia-texture-tools")
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR "2")
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR "1")
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH "0")
|
||||
SET(CPACK_PACKAGE_VERSION "2.1.0")
|
||||
SET(CPACK_PACKAGE_CONTACT "Ignacio Casta<74>o <castano@gmail.com>")
|
||||
#SET(CPACK_PACKAGE_VENDOR "NVIDIA Corporation")
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Texture processing tools with support for Direct3D 10 and 11 formats.")
|
||||
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${NV_SOURCE_DIR}/README.md")
|
||||
SET(CPACK_RESOURCE_FILE_LICENSE "${NV_SOURCE_DIR}/LICENSE")
|
||||
|
||||
# NSIS options:
|
||||
IF(WIN32)
|
||||
ADD_SUBDIRECTORY(extern/gnuwin32)
|
||||
SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_VENDOR}\\\\NVIDIA Texture Tools 2.1")
|
||||
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}\\\\NVIDIA Texture Tools 2.1")
|
||||
SET(CPACK_PACKAGE_ICON "${NV_SOURCE_DIR}\\\\project\\\\vc8\\\\nvcompress\\\\nvidia.ico")
|
||||
ENDIF(WIN32)
|
||||
|
||||
INCLUDE(CPack)
|
||||
|
||||
|
29
ChangeLog
@ -1,4 +1,5 @@
|
||||
NVIDIA Texture Tools version 2.1.0
|
||||
* Too many changes to list here.
|
||||
* CTX1 CUDA compressor.
|
||||
* DXT1n CUDA compressor.
|
||||
* Support alpha premultiplication by Charles Nicholson. See issue 30.
|
||||
@ -8,7 +9,35 @@ NVIDIA Texture Tools version 2.1.0
|
||||
* Fix loading of EXR files using OpenEXR.
|
||||
* Use FreeImage as primary image loading library. Fixes issue 31. Reverted.
|
||||
* Output swizzle codes like AMD's tools.
|
||||
* Added support for saving PNGs by Frank Richter. Fixes issue 79 and 80.
|
||||
* Added gnome thumbnailer by Frank Richter. Fixes issue 82.
|
||||
* Cleanup sources removing files that are not strictly required.
|
||||
|
||||
NVIDIA Texture Tools version 2.0.7
|
||||
* Output correct exit codes. Fixes issue 92.
|
||||
* Fix thread-safety errors. Fixes issue 90.
|
||||
* Add SIMD power method. Fixes issue 94.
|
||||
|
||||
NVIDIA Texture Tools version 2.0.6
|
||||
* Fix dll version checking.
|
||||
* Detect CUDA 2.1 and future CUDA versions correctly.
|
||||
* Print CUDA detection message in nvcompress.
|
||||
* Select the fastest CUDA device.
|
||||
* Compile squish with -fPIC. Fixes issue 74.
|
||||
* Fix warnings under gcc 4.3.2.
|
||||
* Fix nvzoom option typo by Frank Richter. Fixes issue 81.
|
||||
* Do not use CUDA to compress small mipmaps. Fixes issue 76.
|
||||
* Compute mipmaps of semi-transparent images correctly.
|
||||
* Shutdown CUDA properly. Fixes issue 83.
|
||||
* Fix pixel format converions. Fixes issue 87.
|
||||
* Update single color compression tables. Fixes issue 85.
|
||||
|
||||
NVIDIA Texture Tools version 2.0.5
|
||||
* Fix error in single color compressor. Fixes issue 66.
|
||||
* Detect mismatch between CUDA runtime and driver, and disable CUDA in that case.
|
||||
* Fix cmake files when compiling NVTT as a shared library.
|
||||
* When linking nvtt dynamically on unix, link all libraries dynamically.
|
||||
* Select fastest CUDA device.
|
||||
|
||||
NVIDIA Texture Tools version 2.0.4
|
||||
* Fix error in RGB format output; reported by jonsoh. See issue 49.
|
||||
|
@ -1,6 +1,7 @@
|
||||
NVIDIA Texture Tools 2.0 is licensed under the MIT license.
|
||||
NVIDIA Texture Tools is licensed under the MIT license.
|
||||
|
||||
Copyright (c) 2007 NVIDIA Corporation
|
||||
Copyright (c) 2009-2016 Ignacio Castano
|
||||
Copyright (c) 2007-2009 NVIDIA Corporation
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
@ -1,167 +0,0 @@
|
||||
--------------------------------------------------------------------------------
|
||||
--------------------------------------------------------------------------------
|
||||
NVIDIA Texture Tools
|
||||
README.txt
|
||||
Version 2.1
|
||||
--------------------------------------------------------------------------------
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
TABLE OF CONTENTS
|
||||
--------------------------------------------------------------------------------
|
||||
I. Instructions
|
||||
II. Contents
|
||||
III. Compilation Instructions
|
||||
IV. Using NVIDIA Texture Tools in your own applications
|
||||
V. Known Issues
|
||||
VI. Frequently Asked Questions
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
I. Introduction
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
This is our first alpha release of our new Texture Tools. The main highlights of
|
||||
this release are support for all DX10 texture formats, higher speed and improved
|
||||
compression quality.
|
||||
|
||||
In addition to that it also comes with a hardware accelerated compressor that
|
||||
uses CUDA to compress blocks in parallel on the GPU and runs around 10 times
|
||||
faster than the CPU counterpart.
|
||||
|
||||
You can obtain CUDA from our developer site at:
|
||||
|
||||
http://developer.nvidia.com/object/cuda.html
|
||||
|
||||
The source code of the Texture Tools is being released under the terms of
|
||||
the MIT license.
|
||||
|
||||
|
||||
II. Contents
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
This release contains only the source code of the texture compression library
|
||||
and an example commandline application that shows its use.
|
||||
|
||||
|
||||
III. Compilation Instructions
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
The compression library and the example can be compiled with Visual Studio 8 on
|
||||
Windows using the following solution file:
|
||||
|
||||
project\vc8\nvtt.sln
|
||||
|
||||
On most other platforms you can also use cmake. For more information about
|
||||
cmake, visit:
|
||||
|
||||
http://www.cmake.org/
|
||||
|
||||
On unix systems you can use the standard build procedure (assuming cmake is
|
||||
installed on your system):
|
||||
|
||||
$ ./configure
|
||||
$ make
|
||||
$ sudo make install
|
||||
|
||||
|
||||
IV. Using NVIDIA Texture Tools
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
To use the NVIDIA Texture Tools in your own applications you just have to
|
||||
include the following header file:
|
||||
|
||||
src/nvimage/nvtt/nvtt.h
|
||||
|
||||
And include the nvtt library in your projects.
|
||||
|
||||
The following file contains a simple example that shows how to use the library:
|
||||
|
||||
src/nvimage/nvtt/compress.cpp
|
||||
|
||||
The usage of the commandline tool is the following:
|
||||
|
||||
$ nvcompress [options] infile [outfile]
|
||||
|
||||
where 'infile' is and TGA, PNG, PSD, DDS or JPG file, 'outfile' is a DDS file
|
||||
and 'options' is one or more of the following:
|
||||
|
||||
Input options:
|
||||
-color The input image is a color map (default).
|
||||
-normal The input image is a normal map.
|
||||
-tonormal Convert input to normal map.
|
||||
-clamp Clamp wrapping mode (default).
|
||||
-repeat Repeat wrapping mode.
|
||||
-nomips Disable mipmap generation.
|
||||
|
||||
Compression options:
|
||||
-fast Fast compression.
|
||||
-nocuda Do not use cuda compressor.
|
||||
-rgb RGBA format
|
||||
-bc1 BC1 format (DXT1)
|
||||
-bc2 BC2 format (DXT3)
|
||||
-bc3 BC3 format (DXT5)
|
||||
-bc3n BC3 normal map format (DXT5n/RXGB)
|
||||
-bc4 BC4 format (ATI1)
|
||||
-bc5 BC5 format (3Dc/ATI2)
|
||||
|
||||
In order to run the compiled example on a PC that doesn't have Microsoft Visual
|
||||
Studio 2003 installed, you will have to install the Microsoft Visual Studio 2003
|
||||
redistributable package that you can download at:
|
||||
|
||||
http://go.microsoft.com/fwlink/?linkid=65127&clcid=0x409
|
||||
|
||||
|
||||
V. Known Issues
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
None so far. Please send suggestions and bug reports to:
|
||||
|
||||
TextureTools@nvidia.com
|
||||
|
||||
or report them at:
|
||||
|
||||
http://code.google.com/p/nvidia-texture-tools/issues/list
|
||||
|
||||
|
||||
VI. Frequently Asked Questions
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
- Do the NVIDIA Texture Tools work on OSX?
|
||||
It currently compiles and runs properly, but it has not been tested extensively.
|
||||
In particular there may be endiannes errors in the code.
|
||||
|
||||
|
||||
- Do the NVIDIA Texture Tools work on Linux?
|
||||
Yes.
|
||||
|
||||
|
||||
- Do the NVIDIA Texture Tools work on Vista?
|
||||
Yes, but note that CUDA is not supported on Vista yet, so the tool is not hardware
|
||||
accelerated.
|
||||
|
||||
|
||||
- Is CUDA required?
|
||||
No. The Visual Studio solution file contains a configuration that allows you
|
||||
to compile the texture tools without CUDA support. The cmake scripts automatically
|
||||
detect the CUDA installation and use it only when available.
|
||||
|
||||
|
||||
- Where can I get CUDA?
|
||||
http://developer.nvidia.com/object/cuda.html
|
||||
|
||||
|
||||
- Why is feature XYZ not supported?
|
||||
In order to keep the code small and reduce maintenance costs we have limited the
|
||||
features available in our new texture tools. We also have open sourced the code, so
|
||||
that people can modify it and add their own favourite features.
|
||||
|
||||
|
||||
- Can I use the NVIDIA Texture Tools in my commercial application?
|
||||
Yes, the NVIDIA Texture Tools are licensed under the MIT license.
|
||||
|
||||
|
||||
- Can I use the NVIDIA Texture Tools in my GPL application?
|
||||
Yes, the MIT license is compatible with the GPL and LGPL licenses.
|
||||
|
||||
|
||||
|
46
README.md
Normal file
@ -0,0 +1,46 @@
|
||||
NVIDIA Texture Tools
|
||||
====================
|
||||
|
||||
The NVIDIA Texture Tools is a collection of image processing and texture
|
||||
manipulation tools, designed to be integrated in game tools and asset
|
||||
processing pipelines.
|
||||
|
||||
The primary features of the library are mipmap and normal map generation, format
|
||||
conversion and DXT compression.
|
||||
|
||||
|
||||
### How to build (Windows)
|
||||
|
||||
Open `project/vc12/thekla.sln` using Visual Studio.
|
||||
|
||||
Solutions for previous versions are also available, but they may not be up to date.
|
||||
|
||||
|
||||
### How to build (Linux/OSX)
|
||||
|
||||
Use [cmake](http://www.cmake.org/) and the provided configure script:
|
||||
|
||||
```bash
|
||||
$ ./configure
|
||||
$ make
|
||||
$ sudo make install
|
||||
```
|
||||
|
||||
|
||||
### Using NVIDIA Texture Tools
|
||||
|
||||
To use the NVIDIA Texture Tools in your own applications you just have to
|
||||
include the following header file:
|
||||
|
||||
src/nvimage/nvtt/nvtt.h
|
||||
|
||||
And include the nvtt library in your projects.
|
||||
|
||||
The following file contains a simple example that shows how to use the library:
|
||||
|
||||
src/nvimage/nvtt/compress.cpp
|
||||
|
||||
Detailed documentation of the API can be found at:
|
||||
|
||||
http://code.google.com/p/nvidia-texture-tools/wiki/ApiDocumentation
|
||||
|
9
buildpkg
@ -2,6 +2,9 @@
|
||||
|
||||
tar zcvf nvidia-texture-tools-`cat VERSION`.tar.gz \
|
||||
--exclude '.*' --exclude debian --exclude '*~' --exclude buildpkg \
|
||||
--exclude build --exclude data --exclude tags --exclude Makefile \
|
||||
--exclude 'nvidia-texture-tools-*.tar.gz' \
|
||||
--transform 's,^,nvidia-texture-tools/,' *
|
||||
--exclude 'build-*' --exclude data --exclude tags --exclude Makefile \
|
||||
--exclude 'doc' --exclude 'nvidia-texture-tools-*.tar.gz' \
|
||||
--exclude '*.user' -s ',^,nvidia-texture-tools/,' *
|
||||
# --exclude '*.user' --transform 's,^,nvidia-texture-tools/,' *
|
||||
# --exclude '*.user' *
|
||||
|
||||
|
@ -5,24 +5,68 @@ SET(NV_SYSTEM_PROCESSOR "i586")
|
||||
IF(UNIX)
|
||||
FIND_PROGRAM(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin )
|
||||
IF(CMAKE_UNAME)
|
||||
EXEC_PROGRAM(uname ARGS -p OUTPUT_VARIABLE NV_SYSTEM_PROCESSOR RETURN_VALUE val)
|
||||
#EXEC_PROGRAM(uname ARGS -p OUTPUT_VARIABLE NV_SYSTEM_PROCESSOR RETURN_VALUE val)
|
||||
|
||||
IF("${val}" GREATER 0 OR NV_SYSTEM_PROCESSOR STREQUAL "unknown")
|
||||
#IF("${val}" GREATER 0 OR NV_SYSTEM_PROCESSOR STREQUAL "unknown")
|
||||
EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE NV_SYSTEM_PROCESSOR RETURN_VALUE val)
|
||||
ENDIF("${val}" GREATER 0 OR NV_SYSTEM_PROCESSOR STREQUAL "unknown")
|
||||
#ENDIF("${val}" GREATER 0 OR NV_SYSTEM_PROCESSOR STREQUAL "unknown")
|
||||
|
||||
IF(NV_SYSTEM_PROCESSOR STREQUAL "Power Macintosh")
|
||||
SET(NV_SYSTEM_PROCESSOR "powerpc")
|
||||
ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "Power Macintosh")
|
||||
|
||||
# processor may have double quote in the name, and that needs to be removed
|
||||
STRING(REGEX REPLACE "\"" "" NV_SYSTEM_PROCESSOR "${NV_SYSTEM_PROCESSOR}")
|
||||
STRING(REGEX REPLACE "/" "_" NV_SYSTEM_PROCESSOR "${NV_SYSTEM_PROCESSOR}")
|
||||
ENDIF(CMAKE_UNAME)
|
||||
|
||||
# Get extended processor information with:
|
||||
# `cat /proc/cpuinfo`
|
||||
#~ # Get extended processor information from /proc/cpuinfo
|
||||
#~ IF(EXISTS "/proc/cpuinfo")
|
||||
|
||||
#~ FILE(READ /proc/cpuinfo PROC_CPUINFO)
|
||||
|
||||
#~ SET(VENDOR_ID_RX "vendor_id[ \t]*:[ \t]*([a-zA-Z]+)\n")
|
||||
#~ STRING(REGEX MATCH "${VENDOR_ID_RX}" VENDOR_ID "${PROC_CPUINFO}")
|
||||
#~ STRING(REGEX REPLACE "${VENDOR_ID_RX}" "\\1" VENDOR_ID "${VENDOR_ID}")
|
||||
|
||||
#~ SET(CPU_FAMILY_RX "cpu family[ \t]*:[ \t]*([0-9]+)")
|
||||
#~ STRING(REGEX MATCH "${CPU_FAMILY_RX}" CPU_FAMILY "${PROC_CPUINFO}")
|
||||
#~ STRING(REGEX REPLACE "${CPU_FAMILY_RX}" "\\1" CPU_FAMILY "${CPU_FAMILY}")
|
||||
|
||||
#~ SET(MODEL_RX "model[ \t]*:[ \t]*([0-9]+)")
|
||||
#~ STRING(REGEX MATCH "${MODEL_RX}" MODEL "${PROC_CPUINFO}")
|
||||
#~ STRING(REGEX REPLACE "${MODEL_RX}" "\\1" MODEL "${MODEL}")
|
||||
|
||||
#~ SET(FLAGS_RX "flags[ \t]*:[ \t]*([a-zA-Z0-9 _]+)\n")
|
||||
#~ STRING(REGEX MATCH "${FLAGS_RX}" FLAGS "${PROC_CPUINFO}")
|
||||
#~ STRING(REGEX REPLACE "${FLAGS_RX}" "\\1" FLAGS "${FLAGS}")
|
||||
|
||||
#~ # Debug output.
|
||||
#~ IF(LINUX_CPUINFO)
|
||||
#~ MESSAGE(STATUS "LinuxCPUInfo.cmake:")
|
||||
#~ MESSAGE(STATUS "VENDOR_ID : ${VENDOR_ID}")
|
||||
#~ MESSAGE(STATUS "CPU_FAMILY : ${CPU_FAMILY}")
|
||||
#~ MESSAGE(STATUS "MODEL : ${MODEL}")
|
||||
#~ MESSAGE(STATUS "FLAGS : ${FLAGS}")
|
||||
#~ ENDIF(LINUX_CPUINFO)
|
||||
|
||||
#~ ENDIF(EXISTS "/proc/cpuinfo")
|
||||
|
||||
#~ # Information on how to decode CPU_FAMILY and MODEL:
|
||||
#~ # http://balusc.xs4all.nl/srv/har-cpu-int-pm.php
|
||||
|
||||
ELSE(UNIX)
|
||||
|
||||
IF(WIN32)
|
||||
SET (NV_SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITECTURE}")
|
||||
# It's not OK to trust $ENV{PROCESSOR_ARCHITECTURE}: its value depends on the type of executable being run,
|
||||
# so a 32-bit cmake (the default binary distribution) will always say "x86" regardless of the actual target.
|
||||
IF (CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
SET (NV_SYSTEM_PROCESSOR "x86_64")
|
||||
ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
SET (NV_SYSTEM_PROCESSOR "x86")
|
||||
ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
ENDIF(WIN32)
|
||||
|
||||
ENDIF(UNIX)
|
||||
|
||||
|
||||
|
@ -1,142 +0,0 @@
|
||||
#
|
||||
# Try to find CUDA compiler, runtime libraries, and include path.
|
||||
# Once done this will define
|
||||
#
|
||||
# CUDA_FOUND
|
||||
# CUDA_INCLUDE_PATH
|
||||
# CUDA_RUNTIME_LIBRARY
|
||||
# CUDA_COMPILER
|
||||
#
|
||||
# It will also define the following macro:
|
||||
#
|
||||
# WRAP_CUDA
|
||||
#
|
||||
|
||||
IF (WIN32)
|
||||
FIND_PROGRAM (CUDA_COMPILER nvcc.exe
|
||||
$ENV{CUDA_BIN_PATH}
|
||||
DOC "The CUDA Compiler")
|
||||
ELSE(WIN32)
|
||||
FIND_PROGRAM (CUDA_COMPILER nvcc
|
||||
$ENV{CUDA_BIN_PATH}
|
||||
/usr/local/cuda/bin
|
||||
DOC "The CUDA Compiler")
|
||||
ENDIF(WIN32)
|
||||
|
||||
IF (CUDA_COMPILER)
|
||||
GET_FILENAME_COMPONENT (CUDA_COMPILER_DIR ${CUDA_COMPILER} PATH)
|
||||
GET_FILENAME_COMPONENT (CUDA_COMPILER_SUPER_DIR ${CUDA_COMPILER_DIR} PATH)
|
||||
ELSE (CUDA_COMPILER)
|
||||
SET (CUDA_COMPILER_DIR .)
|
||||
SET (CUDA_COMPILER_SUPER_DIR ..)
|
||||
ENDIF (CUDA_COMPILER)
|
||||
|
||||
FIND_PATH (CUDA_INCLUDE_PATH cuda_runtime.h
|
||||
$ENV{CUDA_INC_PATH}
|
||||
${CUDA_COMPILER_SUPER_DIR}/include
|
||||
${CUDA_COMPILER_DIR}
|
||||
DOC "The directory where CUDA headers reside")
|
||||
|
||||
FIND_LIBRARY (CUDA_RUNTIME_LIBRARY
|
||||
NAMES cudart
|
||||
PATHS
|
||||
$ENV{CUDA_LIB_PATH}
|
||||
${CUDA_COMPILER_SUPER_DIR}/lib
|
||||
${CUDA_COMPILER_DIR}
|
||||
DOC "The CUDA runtime library")
|
||||
|
||||
IF (CUDA_INCLUDE_PATH AND CUDA_RUNTIME_LIBRARY)
|
||||
SET (CUDA_FOUND TRUE)
|
||||
ELSE (CUDA_INCLUDE_PATH AND CUDA_RUNTIME_LIBRARY)
|
||||
SET (CUDA_FOUND FALSE)
|
||||
ENDIF (CUDA_INCLUDE_PATH AND CUDA_RUNTIME_LIBRARY)
|
||||
|
||||
SET (CUDA_LIBRARIES ${CUDA_RUNTIME_LIBRARY})
|
||||
|
||||
MARK_AS_ADVANCED (CUDA_FOUND CUDA_COMPILER CUDA_RUNTIME_LIBRARY)
|
||||
|
||||
|
||||
#SET(CUDA_OPTIONS "-ncfe")
|
||||
SET(CUDA_OPTIONS "--host-compilation=C++")
|
||||
|
||||
IF (CUDA_EMULATION)
|
||||
SET (CUDA_OPTIONS "${CUDA_OPTIONS} -deviceemu")
|
||||
ENDIF (CUDA_EMULATION)
|
||||
|
||||
|
||||
# Get include directories.
|
||||
MACRO(GET_CUDA_INC_DIRS _cuda_INC_DIRS)
|
||||
SET(${_cuda_INC_DIRS})
|
||||
GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES)
|
||||
|
||||
FOREACH(_current ${_inc_DIRS})
|
||||
SET(${_cuda_INC_DIRS} ${${_cuda_INC_DIRS}} "-I" ${_current})
|
||||
ENDFOREACH(_current ${_inc_DIRS})
|
||||
|
||||
SET(${_cuda_INC_DIRS} ${${_cuda_INC_DIRS}} "-I" ${CUDA_INCLUDE_PATH})
|
||||
|
||||
# IF (CMAKE_SYTEM_INCLUDE_PATH)
|
||||
# SET(${_cuda_INC_DIRS} ${${_cuda_INC_DIRS}} "-I" ${CMAKE_SYSTEM_INCLUDE_PATH})
|
||||
# ENDIF (CMAKE_SYTEM_INCLUDE_PATH)
|
||||
# IF (CMAKE_INCLUDE_PATH)
|
||||
# SET(${_cuda_INC_DIRS} ${${_cuda_INC_DIRS}} "-I" ${CMAKE_INCLUDE_PATH})
|
||||
# ENDIF (CMAKE_INCLUDE_PATH)
|
||||
|
||||
ENDMACRO(GET_CUDA_INC_DIRS)
|
||||
|
||||
|
||||
# Get file dependencies.
|
||||
MACRO (GET_CUFILE_DEPENDENCIES dependencies file)
|
||||
GET_FILENAME_COMPONENT(filepath ${file} PATH)
|
||||
|
||||
# parse file for dependencies
|
||||
FILE(READ "${file}" CONTENTS)
|
||||
#STRING(REGEX MATCHALL "#[ \t]*include[ \t]+[<\"][^>\"]*" DEPS "${CONTENTS}")
|
||||
STRING(REGEX MATCHALL "#[ \t]*include[ \t]+\"[^\"]*" DEPS "${CONTENTS}")
|
||||
|
||||
SET(${dependencies})
|
||||
|
||||
FOREACH(DEP ${DEPS})
|
||||
STRING(REGEX REPLACE "#[ \t]*include[ \t]+\"" "" DEP "${DEP}")
|
||||
|
||||
FIND_PATH(PATH_OF_${DEP} ${DEP}
|
||||
${filepath})
|
||||
|
||||
IF(NOT ${PATH_OF_${DEP}} STREQUAL PATH_OF_${DEP}-NOTFOUND)
|
||||
#MESSAGE("${file} : ${PATH_OF_${DEP}}/${DEP}")
|
||||
SET(${dependencies} ${${dependencies}} ${PATH_OF_${DEP}}/${DEP})
|
||||
ENDIF(NOT ${PATH_OF_${DEP}} STREQUAL PATH_OF_${DEP}-NOTFOUND)
|
||||
|
||||
ENDFOREACH(DEP)
|
||||
|
||||
ENDMACRO (GET_CUFILE_DEPENDENCIES)
|
||||
|
||||
|
||||
# WRAP_CUDA(outfile ...)
|
||||
MACRO (WRAP_CUDA outfiles)
|
||||
GET_CUDA_INC_DIRS(cuda_includes)
|
||||
#MESSAGE(${cuda_includes})
|
||||
|
||||
FOREACH (CUFILE ${ARGN})
|
||||
GET_FILENAME_COMPONENT (CUFILE ${CUFILE} ABSOLUTE)
|
||||
GET_FILENAME_COMPONENT (CPPFILE ${CUFILE} NAME_WE)
|
||||
SET (CPPFILE ${CMAKE_CURRENT_BINARY_DIR}/${CPPFILE}.gen.cpp)
|
||||
|
||||
GET_CUFILE_DEPENDENCIES(CUDEPS ${CUFILE})
|
||||
#MESSAGE("${CUDEPS}")
|
||||
|
||||
ADD_CUSTOM_COMMAND (
|
||||
OUTPUT ${CPPFILE}
|
||||
COMMAND ${CUDA_COMPILER}
|
||||
ARGS -cuda ${cuda_includes} ${CUDA_OPTIONS} -o ${CPPFILE} ${CUFILE}
|
||||
MAIN_DEPENDENCY ${CUFILE}
|
||||
DEPENDS ${CUDEPS})
|
||||
|
||||
#MACRO_ADD_FILE_DEPENDENCIES(${CUFILE} ${CPPFILE})
|
||||
|
||||
SET (${outfiles} ${${outfiles}} ${CPPFILE})
|
||||
ENDFOREACH (CUFILE)
|
||||
|
||||
SET_SOURCE_FILES_PROPERTIES(${outfiles} PROPERTIES GENERATED 1)
|
||||
|
||||
ENDMACRO (WRAP_CUDA)
|
@ -3,14 +3,13 @@
|
||||
# Once done this will define
|
||||
#
|
||||
# CG_FOUND =system has NVIDIA Cg and it can be used.
|
||||
# CG_INCLUDE_PATH = directory where cg.h resides
|
||||
# CG_INCLUDE_DIR = directory where cg.h resides
|
||||
# CG_LIBRARY = full path to libCg.so (Cg.DLL on win32)
|
||||
# CG_GL_LIBRARY = full path to libCgGL.so (CgGL.dll on win32)
|
||||
# CG_COMPILER = full path to cgc (cgc.exe on win32)
|
||||
#
|
||||
|
||||
# On OSX default to using the framework version of Cg.
|
||||
|
||||
IF (APPLE)
|
||||
INCLUDE(${CMAKE_ROOT}/Modules/CMakeFindFrameworks.cmake)
|
||||
SET(CG_FRAMEWORK_INCLUDES)
|
||||
@ -22,7 +21,7 @@ IF (APPLE)
|
||||
ENDFOREACH(dir)
|
||||
|
||||
# Find the include dir
|
||||
FIND_PATH(CG_INCLUDE_PATH cg.h
|
||||
FIND_PATH(CG_INCLUDE_DIR cg.h
|
||||
${CG_FRAMEWORK_INCLUDES}
|
||||
)
|
||||
|
||||
@ -38,13 +37,25 @@ IF (APPLE)
|
||||
)
|
||||
ELSE (APPLE)
|
||||
IF (WIN32)
|
||||
FIND_PROGRAM( CG_COMPILER cgc
|
||||
$ENV{CG_BIN_PATH}
|
||||
|
||||
# When compiling 64-bit programs, the binaries and libs are in bin.x64 and lib.x64 directories,
|
||||
|
||||
# This will have only effect for 64bit versions of cmake, when running the default 32bit version
|
||||
# both ProgramFiles and ProgramFiles(x86) point to the same place in Win64
|
||||
SET(PFx86_VARNAME "ProgramFiles(x86)")
|
||||
SET(PFx86 $ENV{${PFx86_VARNAME}})
|
||||
|
||||
# Let's play safe in case we are cross compiling to 64 bit: for cgc it doesn't really matter
|
||||
FIND_PROGRAM( CG_COMPILER cgc
|
||||
$ENV{CG_BIN64_PATH}
|
||||
$ENV{CG_BIN_PATH}
|
||||
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/bin
|
||||
$ENV{PFx86}/NVIDIA\ Corporation/Cg/bin
|
||||
$ENV{PROGRAMFILES}/Cg
|
||||
${PROJECT_SOURCE_DIR}/../Cg
|
||||
DOC "The Cg Compiler"
|
||||
)
|
||||
)
|
||||
|
||||
IF (CG_COMPILER)
|
||||
GET_FILENAME_COMPONENT(CG_COMPILER_DIR ${CG_COMPILER} PATH)
|
||||
GET_FILENAME_COMPONENT(CG_COMPILER_SUPER_DIR ${CG_COMPILER_DIR} PATH)
|
||||
@ -52,7 +63,7 @@ ELSE (APPLE)
|
||||
SET (CG_COMPILER_DIR .)
|
||||
SET (CG_COMPILER_SUPER_DIR ..)
|
||||
ENDIF (CG_COMPILER)
|
||||
FIND_PATH( CG_INCLUDE_PATH Cg/cg.h
|
||||
FIND_PATH( CG_INCLUDE_DIR Cg/cg.h
|
||||
$ENV{CG_INC_PATH}
|
||||
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/include
|
||||
$ENV{PROGRAMFILES}/Cg
|
||||
@ -61,27 +72,59 @@ ELSE (APPLE)
|
||||
${CG_COMPILER_DIR}
|
||||
DOC "The directory where Cg/cg.h resides"
|
||||
)
|
||||
FIND_LIBRARY( CG_LIBRARY
|
||||
NAMES Cg
|
||||
PATHS
|
||||
$ENV{CG_LIB_PATH}
|
||||
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib
|
||||
$ENV{PROGRAMFILES}/Cg
|
||||
${PROJECT_SOURCE_DIR}/../Cg
|
||||
${CG_COMPILER_SUPER_DIR}/lib
|
||||
${CG_COMPILER_DIR}
|
||||
DOC "The Cg runtime library"
|
||||
)
|
||||
FIND_LIBRARY( CG_GL_LIBRARY
|
||||
NAMES CgGL
|
||||
PATHS
|
||||
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib
|
||||
$ENV{PROGRAMFILES}/Cg
|
||||
${PROJECT_SOURCE_DIR}/../Cg
|
||||
${CG_COMPILER_SUPER_DIR}/lib
|
||||
${CG_COMPILER_DIR}
|
||||
DOC "The Cg runtime library"
|
||||
)
|
||||
|
||||
IF (NV_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
FIND_LIBRARY( CG_LIBRARY
|
||||
NAMES Cg
|
||||
PATHS
|
||||
$ENV{CG_LIB64_PATH}
|
||||
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib.x64
|
||||
$ENV{PFx86}/NVIDIA\ Corporation/Cg/lib.x64
|
||||
$ENV{PROGRAMFILES}/Cg
|
||||
$ENV{PFx86}/Cg
|
||||
${PROJECT_SOURCE_DIR}/../Cg
|
||||
${CG_COMPILER_SUPER_DIR}/lib.x64
|
||||
${CG_COMPILER_DIR}
|
||||
DOC "The Cg runtime library (64-bit)"
|
||||
)
|
||||
FIND_LIBRARY( CG_GL_LIBRARY
|
||||
NAMES CgGL
|
||||
PATHS
|
||||
$ENV{CG_LIB64_PATH}
|
||||
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib.x64
|
||||
$ENV{PFx86}/NVIDIA\ Corporation/Cg/lib.x64
|
||||
$ENV{PROGRAMFILES}/Cg
|
||||
$ENV{PFx86}/Cg
|
||||
${PROJECT_SOURCE_DIR}/../Cg
|
||||
${CG_COMPILER_SUPER_DIR}/lib.x64
|
||||
${CG_COMPILER_DIR}
|
||||
DOC "The Cg GL runtime library (64-bit)"
|
||||
)
|
||||
ELSE(NV_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
FIND_LIBRARY( CG_LIBRARY
|
||||
NAMES Cg
|
||||
PATHS
|
||||
$ENV{CG_LIB_PATH}
|
||||
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib
|
||||
$ENV{PROGRAMFILES}/Cg
|
||||
${PROJECT_SOURCE_DIR}/../Cg
|
||||
${CG_COMPILER_SUPER_DIR}/lib
|
||||
${CG_COMPILER_DIR}
|
||||
DOC "The Cg runtime library"
|
||||
)
|
||||
FIND_LIBRARY( CG_GL_LIBRARY
|
||||
NAMES CgGL
|
||||
PATHS
|
||||
$ENV{CG_LIB_PATH}
|
||||
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib
|
||||
$ENV{PROGRAMFILES}/Cg
|
||||
${PROJECT_SOURCE_DIR}/../Cg
|
||||
${CG_COMPILER_SUPER_DIR}/lib
|
||||
${CG_COMPILER_DIR}
|
||||
DOC "The Cg GL runtime library"
|
||||
)
|
||||
ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
|
||||
ELSE (WIN32)
|
||||
FIND_PROGRAM( CG_COMPILER cgc
|
||||
/usr/bin
|
||||
@ -90,7 +133,7 @@ ELSE (APPLE)
|
||||
)
|
||||
GET_FILENAME_COMPONENT(CG_COMPILER_DIR "${CG_COMPILER}" PATH)
|
||||
GET_FILENAME_COMPONENT(CG_COMPILER_SUPER_DIR "${CG_COMPILER_DIR}" PATH)
|
||||
FIND_PATH( CG_INCLUDE_PATH Cg/cg.h
|
||||
FIND_PATH( CG_INCLUDE_DIR Cg/cg.h
|
||||
/usr/include
|
||||
/usr/local/include
|
||||
${CG_COMPILER_SUPER_DIR}/include
|
||||
@ -120,10 +163,10 @@ ELSE (APPLE)
|
||||
ENDIF (WIN32)
|
||||
ENDIF (APPLE)
|
||||
|
||||
IF (CG_INCLUDE_PATH)
|
||||
IF (CG_INCLUDE_DIR)
|
||||
SET( CG_FOUND 1 CACHE STRING "Set to 1 if CG is found, 0 otherwise")
|
||||
ELSE (CG_INCLUDE_PATH)
|
||||
ELSE (CG_INCLUDE_DIR)
|
||||
SET( CG_FOUND 0 CACHE STRING "Set to 1 if CG is found, 0 otherwise")
|
||||
ENDIF (CG_INCLUDE_PATH)
|
||||
ENDIF (CG_INCLUDE_DIR)
|
||||
|
||||
MARK_AS_ADVANCED( CG_FOUND )
|
||||
|
@ -9,12 +9,14 @@
|
||||
|
||||
IF (WIN32)
|
||||
FIND_PATH( FREEIMAGE_INCLUDE_PATH FreeImage.h
|
||||
${PROJECT_SOURCE_DIR}/extern/FreeImage
|
||||
${FREEIMAGE_ROOT_DIR}/include
|
||||
${FREEIMAGE_ROOT_DIR}
|
||||
DOC "The directory where FreeImage.h resides")
|
||||
FIND_LIBRARY( FREEIMAGE_LIBRARY
|
||||
NAMES FreeImage freeimage
|
||||
PATHS
|
||||
${PROJECT_SOURCE_DIR}/FreeImage
|
||||
${FREEIMAGE_ROOT_DIR}/lib
|
||||
${FREEIMAGE_ROOT_DIR}
|
||||
DOC "The FreeImage library")
|
||||
ELSE (WIN32)
|
||||
FIND_PATH( FREEIMAGE_INCLUDE_PATH FreeImage.h
|
||||
@ -38,9 +40,9 @@ ENDIF (WIN32)
|
||||
SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARY})
|
||||
|
||||
IF (FREEIMAGE_INCLUDE_PATH AND FREEIMAGE_LIBRARY)
|
||||
SET( FREEIMAGE_FOUND TRUE CACHE BOOL "Set to TRUE if GLEW is found, FALSE otherwise")
|
||||
SET( FREEIMAGE_FOUND TRUE CACHE BOOL "Set to TRUE if FreeImage is found, FALSE otherwise")
|
||||
ELSE (FREEIMAGE_INCLUDE_PATH AND FREEIMAGE_LIBRARY)
|
||||
SET( FREEIMAGE_FOUND FALSE CACHE BOOL "Set to TRUE if GLEW is found, FALSE otherwise")
|
||||
SET( FREEIMAGE_FOUND FALSE CACHE BOOL "Set to TRUE if FreeImage is found, FALSE otherwise")
|
||||
ENDIF (FREEIMAGE_INCLUDE_PATH AND FREEIMAGE_LIBRARY)
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
|
@ -10,24 +10,28 @@
|
||||
IF (WIN32)
|
||||
FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h
|
||||
$ENV{PROGRAMFILES}/GLEW/include
|
||||
${PROJECT_SOURCE_DIR}/src/nvgl/glew/include
|
||||
${GLEW_ROOT_DIR}/include
|
||||
DOC "The directory where GL/glew.h resides")
|
||||
FIND_LIBRARY( GLEW_LIBRARY
|
||||
NAMES glew GLEW glew32 glew32s
|
||||
PATHS
|
||||
$ENV{PROGRAMFILES}/GLEW/lib
|
||||
${PROJECT_SOURCE_DIR}/src/nvgl/glew/bin
|
||||
${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib
|
||||
DOC "The GLEW library")
|
||||
|
||||
FIND_LIBRARY( GLEW_LIBRARY
|
||||
NAMES glew GLEW glew32 glew32s
|
||||
PATHS
|
||||
$ENV{PROGRAMFILES}/GLEW/lib
|
||||
${PROJECT_SOURCE_DIR}/src/nvgl/glew/bin
|
||||
${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib
|
||||
DOC "The GLEW library")
|
||||
ELSE (WIN32)
|
||||
FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h
|
||||
/usr/include
|
||||
/usr/local/include
|
||||
/sw/include
|
||||
/opt/local/include
|
||||
${GLEW_ROOT_DIR}/include
|
||||
DOC "The directory where GL/glew.h resides")
|
||||
|
||||
# Prefer the static library.
|
||||
FIND_LIBRARY( GLEW_LIBRARY
|
||||
NAMES GLEW glew
|
||||
NAMES libGLEW.a GLEW
|
||||
PATHS
|
||||
/usr/lib64
|
||||
/usr/lib
|
||||
@ -35,13 +39,12 @@ ELSE (WIN32)
|
||||
/usr/local/lib
|
||||
/sw/lib
|
||||
/opt/local/lib
|
||||
${GLEW_ROOT_DIR}/lib
|
||||
DOC "The GLEW library")
|
||||
ENDIF (WIN32)
|
||||
|
||||
IF (GLEW_INCLUDE_PATH)
|
||||
SET( GLEW_FOUND 1 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise")
|
||||
ELSE (GLEW_INCLUDE_PATH)
|
||||
SET( GLEW_FOUND 0 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise")
|
||||
ENDIF (GLEW_INCLUDE_PATH)
|
||||
|
||||
MARK_AS_ADVANCED( GLEW_FOUND )
|
||||
SET(GLEW_FOUND "NO")
|
||||
IF (GLEW_INCLUDE_PATH AND GLEW_LIBRARY)
|
||||
SET(GLEW_LIBRARIES ${GLEW_LIBRARY})
|
||||
SET(GLEW_FOUND "YES")
|
||||
ENDIF (GLEW_INCLUDE_PATH AND GLEW_LIBRARY)
|
||||
|
@ -1,127 +0,0 @@
|
||||
# - try to find glut library and include files
|
||||
# GLUT_INCLUDE_DIR, where to find GL/glut.h, etc.
|
||||
# GLUT_LIBRARIES, the libraries to link against
|
||||
# GLUT_FOUND, If false, do not try to use GLUT.
|
||||
# Also defined, but not for general use are:
|
||||
# GLUT_glut_LIBRARY = the full path to the glut library.
|
||||
# GLUT_Xmu_LIBRARY = the full path to the Xmu library.
|
||||
# GLUT_Xi_LIBRARY = the full path to the Xi Library.
|
||||
|
||||
IF (WIN32)
|
||||
|
||||
IF(CYGWIN)
|
||||
|
||||
FIND_PATH( GLUT_INCLUDE_DIR GL/glut.h
|
||||
/usr/include
|
||||
)
|
||||
|
||||
FIND_LIBRARY( GLUT_glut_LIBRARY glut32
|
||||
${OPENGL_LIBRARY_DIR}
|
||||
/usr/lib
|
||||
/usr/lib/w32api
|
||||
/usr/local/lib
|
||||
/usr/X11R6/lib
|
||||
)
|
||||
|
||||
|
||||
ELSE(CYGWIN)
|
||||
|
||||
# FIND_PATH( GLUT_INCLUDE_DIR GL/glut.h
|
||||
# ${GLUT_ROOT_PATH}/include
|
||||
# )
|
||||
|
||||
# FIND_LIBRARY( GLUT_glut_LIBRARY glut32
|
||||
# ${GLUT_ROOT_PATH}/lib
|
||||
# ${OPENGL_LIBRARY_DIR}
|
||||
# )
|
||||
|
||||
FIND_PATH( GLUT_INCLUDE_DIR GL/glut.h
|
||||
${GLUT_ROOT_PATH}/include
|
||||
${PROJECT_SOURCE_DIR}/src/nvgl/glut/include
|
||||
DOC "The directory where GL/glut.h resides")
|
||||
FIND_LIBRARY( GLUT_glut_LIBRARY
|
||||
NAMES glut GLUT glut32 glut32s
|
||||
PATHS
|
||||
${GLUT_ROOT_PATH}/lib
|
||||
${PROJECT_SOURCE_DIR}/src/nvgl/glut/bin
|
||||
${PROJECT_SOURCE_DIR}/src/nvgl/glut/lib
|
||||
${OPENGL_LIBRARY_DIR}
|
||||
DOC "The GLUT library")
|
||||
|
||||
ENDIF(CYGWIN)
|
||||
|
||||
ELSE (WIN32)
|
||||
|
||||
IF (APPLE)
|
||||
# These values for Apple could probably do with improvement.
|
||||
FIND_PATH( GLUT_INCLUDE_DIR glut.h
|
||||
/System/Library/Frameworks/GLUT.framework/Versions/A/Headers
|
||||
${OPENGL_LIBRARY_DIR}
|
||||
)
|
||||
SET(GLUT_glut_LIBRARY "-framework Glut" CACHE STRING "GLUT library for OSX")
|
||||
SET(GLUT_cocoa_LIBRARY "-framework Cocoa" CACHE STRING "Cocoa framework for OSX")
|
||||
ELSE (APPLE)
|
||||
|
||||
FIND_PATH( GLUT_INCLUDE_DIR GL/glut.h
|
||||
/usr/include
|
||||
/usr/include/GL
|
||||
/usr/local/include
|
||||
/usr/openwin/share/include
|
||||
/usr/openwin/include
|
||||
/usr/X11R6/include
|
||||
/usr/include/X11
|
||||
/opt/graphics/OpenGL/include
|
||||
/opt/graphics/OpenGL/contrib/libglut
|
||||
)
|
||||
|
||||
FIND_LIBRARY( GLUT_glut_LIBRARY glut
|
||||
/usr/lib
|
||||
/usr/local/lib
|
||||
/usr/openwin/lib
|
||||
/usr/X11R6/lib
|
||||
)
|
||||
|
||||
FIND_LIBRARY( GLUT_Xi_LIBRARY Xi
|
||||
/usr/lib
|
||||
/usr/local/lib
|
||||
/usr/openwin/lib
|
||||
/usr/X11R6/lib
|
||||
)
|
||||
|
||||
FIND_LIBRARY( GLUT_Xmu_LIBRARY Xmu
|
||||
/usr/lib
|
||||
/usr/local/lib
|
||||
/usr/openwin/lib
|
||||
/usr/X11R6/lib
|
||||
)
|
||||
|
||||
ENDIF (APPLE)
|
||||
|
||||
ENDIF (WIN32)
|
||||
|
||||
SET( GLUT_FOUND "NO" )
|
||||
IF(GLUT_INCLUDE_DIR)
|
||||
IF(GLUT_glut_LIBRARY)
|
||||
# Is -lXi and -lXmu required on all platforms that have it?
|
||||
# If not, we need some way to figure out what platform we are on.
|
||||
SET( GLUT_LIBRARIES
|
||||
${GLUT_glut_LIBRARY}
|
||||
${GLUT_Xmu_LIBRARY}
|
||||
${GLUT_Xi_LIBRARY}
|
||||
${GLUT_cocoa_LIBRARY}
|
||||
)
|
||||
SET( GLUT_FOUND "YES" )
|
||||
|
||||
#The following deprecated settings are for backwards compatibility with CMake1.4
|
||||
SET (GLUT_LIBRARY ${GLUT_LIBRARIES})
|
||||
SET (GLUT_INCLUDE_PATH ${GLUT_INCLUDE_DIR})
|
||||
|
||||
ENDIF(GLUT_glut_LIBRARY)
|
||||
ENDIF(GLUT_INCLUDE_DIR)
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
GLUT_INCLUDE_DIR
|
||||
GLUT_glut_LIBRARY
|
||||
GLUT_Xmu_LIBRARY
|
||||
GLUT_Xi_LIBRARY
|
||||
)
|
@ -53,11 +53,7 @@ ENDIF(ZLIB_FOUND)
|
||||
IF (OPENEXR_INCLUDE_PATH AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY)
|
||||
SET(OPENEXR_FOUND TRUE)
|
||||
SET(OPENEXR_INCLUDE_PATHS ${OPENEXR_INCLUDE_PATH} CACHE STRING "The include paths needed to use OpenEXR")
|
||||
SET(OPENEXR_LIBRARIES ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_HALF_LIBRARY} ${ZLIB_LIBRARY} CACHE STRING "The libraries needed to use OpenEXR")
|
||||
|
||||
IF(OPENEXR_ILMTHREAD_LIBRARY)
|
||||
SET(OPENEXR_LIBRARIES ${OPENEXR_LIBRARIES} ${OPENEXR_ILMTHREAD_LIBRARY})
|
||||
ENDIF(OPENEXR_ILMTHREAD_LIBRARY)
|
||||
SET(OPENEXR_LIBRARIES ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_HALF_LIBRARY} ${OPENEXR_ILMTHREAD_LIBRARY} ${ZLIB_LIBRARY} CACHE STRING "The libraries needed to use OpenEXR")
|
||||
ENDIF (OPENEXR_INCLUDE_PATH AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY)
|
||||
|
||||
IF(OPENEXR_FOUND)
|
||||
|
@ -35,7 +35,16 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||
# SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk")
|
||||
# SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk")
|
||||
# ENDIF(DARWIN)
|
||||
IF(APPLE)
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch i586 -arch x86_64 -msse3 -mmacosx-version-min=10.5")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch i586 -arch x86_64 -msse3 -mmacosx-version-min=10.5")
|
||||
ENDIF(APPLE)
|
||||
|
||||
IF(CMAKE_BUILD_TYPE STREQUAL "debug")
|
||||
ADD_DEFINITIONS(-D_DEBUG)
|
||||
ENDIF(CMAKE_BUILD_TYPE STREQUAL "debug")
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
||||
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
|
||||
|
||||
IF(MSVC)
|
||||
|
25
configure
vendored
@ -18,7 +18,7 @@ fi
|
||||
|
||||
|
||||
help=false
|
||||
build="Debug" # release
|
||||
build="debug" # release
|
||||
prefix=/usr/local
|
||||
|
||||
# Parse the args
|
||||
@ -26,9 +26,8 @@ for i in "$@"
|
||||
do
|
||||
case $i in
|
||||
--help ) help=true ;;
|
||||
--debug ) build="Debug" ;;
|
||||
--release ) build="Release" ;;
|
||||
--prefix=* ) prefix="${i#--prefix=}" ;;
|
||||
--debug ) build="debug" ;;
|
||||
--release ) build="release" ;;
|
||||
--prefix=* ) prefix="${i#--prefix=}" ;;
|
||||
* ) echo "Unrecognised argument $i" ;;
|
||||
esac
|
||||
@ -51,9 +50,9 @@ fi
|
||||
|
||||
echo "-- Configuring nvidia-texture-tools "`cat VERSION`
|
||||
|
||||
mkdir -p ./build
|
||||
cd ./build
|
||||
$CMAKE .. -DNVTT_SHARED=1 -DCMAKE_BUILD_TYPE=$build -DCMAKE_INSTALL_PREFIX=$prefix -G "Unix Makefiles" || exit 1
|
||||
mkdir -p ./build-$build
|
||||
cd ./build-$build
|
||||
$CMAKE .. -DNVTT_SHARED=0 -DCMAKE_BUILD_TYPE=$build -DCMAKE_INSTALL_PREFIX=$prefix -G "Unix Makefiles" || exit 1
|
||||
cd ..
|
||||
|
||||
echo ""
|
||||
@ -62,11 +61,15 @@ echo ""
|
||||
|
||||
cat > Makefile << EOF
|
||||
all:
|
||||
@make --no-print-directory -C build/
|
||||
@+make --no-print-directory -C build-$build/
|
||||
install:
|
||||
@make install --no-print-directory -C build/
|
||||
@+make install --no-print-directory -C build-$build/
|
||||
package:
|
||||
@+make package --no-print-directory -C build-$build/
|
||||
test:
|
||||
@+make test --no-print-directory -C build-$build/
|
||||
clean:
|
||||
@make clean --no-print-directory -C build/
|
||||
@+make clean --no-print-directory -C build-$build/
|
||||
distclean:
|
||||
@rm -Rf build/
|
||||
@rm -Rf build-$build/
|
||||
EOF
|
||||
|
BIN
data/bugs/85/Sky.tga
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
data/bugs/85/sky_dither.dds
Normal file
BIN
data/bugs/85/sky_error.dds
Normal file
BIN
data/bugs/85/sky_screenshot_1.png
Normal file
After Width: | Height: | Size: 168 KiB |
95
data/bugs/85/tables.cpp
Normal file
@ -0,0 +1,95 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
typedef unsigned char uint8;
|
||||
|
||||
|
||||
static int Mul8Bit(int a, int b)
|
||||
{
|
||||
int t = a * b + 128;
|
||||
return (t + (t >> 8)) >> 8;
|
||||
}
|
||||
|
||||
// this exactly matches the (fm*2 + to)/3
|
||||
static inline int Lerp13_16bit(int fm, int to)
|
||||
{
|
||||
int t = fm * (2 * 0xAAAB) + to * 0xAAAB;
|
||||
return t >> 17;
|
||||
}
|
||||
|
||||
static inline int Lerp13(int fm, int to)
|
||||
{
|
||||
return (fm * 2 + to) / 3;
|
||||
}
|
||||
|
||||
|
||||
static void PrepareOptTable(uint8 * Table, const uint8 * expand, int size)
|
||||
{
|
||||
for (int i = 0; i < 256; i++)
|
||||
{
|
||||
float bestErr = 256;
|
||||
|
||||
for (int min = 0; min < size; min++)
|
||||
{
|
||||
for (int max = 0; max < size; max++)
|
||||
{
|
||||
int mine = expand[min];
|
||||
int maxe = expand[max];
|
||||
//if (maxe - mine < 32)
|
||||
{
|
||||
//printf("%d <-> %d\n", maxe + Mul8Bit(mine-maxe, 0x55), Lerp13(maxe, mine));
|
||||
//int err = abs(Lerp13_16bit(mine, maxe) - i);
|
||||
//int err = abs(maxe + Mul8Bit(mine-maxe, 0x55) - i);
|
||||
float err = abs(Lerp13(maxe, mine) - i);
|
||||
//err += 0.03f * abs(maxe - mine);
|
||||
err += 0.03f * abs(max - min);
|
||||
|
||||
if (err < bestErr)
|
||||
{
|
||||
Table[i*2+0] = max;
|
||||
Table[i*2+1] = min;
|
||||
bestErr = err;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
printf("%d: %f %d\n", i, bestErr, abs(Table[i*2+0] - Table[i*2+1]));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
uint8 OMatch5[256*2];
|
||||
uint8 OMatch6[256*2];
|
||||
|
||||
uint8 Expand5[32];
|
||||
uint8 Expand6[64];
|
||||
|
||||
for (int i=0; i<32; i++)
|
||||
Expand5[i] = (i<<3)|(i>>2);
|
||||
|
||||
for (int i=0; i<64; i++)
|
||||
Expand6[i] = (i<<2)|(i>>4);
|
||||
|
||||
PrepareOptTable(OMatch5, Expand5, 32);
|
||||
PrepareOptTable(OMatch6, Expand6, 64);
|
||||
|
||||
printf("const static uint8 OMatch5[256][2] = {\n");
|
||||
for (int i = 0; i < 256; i++)
|
||||
{
|
||||
printf("\t{0x%.2X, 0x%.2X},\n", OMatch5[2*i+0], OMatch5[2*i+1]);
|
||||
}
|
||||
printf("}\n");
|
||||
|
||||
printf("const static uint8 OMatch6[256][2] = {\n");
|
||||
for (int i = 0; i < 256; i++)
|
||||
{
|
||||
printf("\t{0x%.2X, 0x%.2X},\n", OMatch6[2*i+0], OMatch6[2*i+1]);
|
||||
}
|
||||
printf("}\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
BIN
data/bugs/88/nmap.png
Normal file
After Width: | Height: | Size: 654 B |
BIN
data/bugs/mthomson/world.png
Executable file
After Width: | Height: | Size: 309 KiB |
BIN
data/bugs/mthomson/world.tif
Executable file
BIN
data/cubemaps/MeadowTrail.dds
Normal file
BIN
data/luma/testpat_orig.1k.png
Executable file
After Width: | Height: | Size: 56 KiB |
BIN
data/testsuite/epic/Bradley1.png
Normal file
After Width: | Height: | Size: 154 KiB |
BIN
data/testsuite/epic/Gradient.png
Normal file
After Width: | Height: | Size: 828 B |
BIN
data/testsuite/epic/MoreRocks.png
Normal file
After Width: | Height: | Size: 140 KiB |
BIN
data/testsuite/epic/Rainbow.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
data/testsuite/epic/Text.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
data/testsuite/epic/Wall.png
Normal file
After Width: | Height: | Size: 155 KiB |
BIN
data/testsuite/farbrausch/t.2d.pn02.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
data/testsuite/farbrausch/t.aircondition.01.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
data/testsuite/farbrausch/t.bricks.02.png
Normal file
After Width: | Height: | Size: 541 KiB |
BIN
data/testsuite/farbrausch/t.bricks.05.png
Normal file
After Width: | Height: | Size: 492 KiB |
BIN
data/testsuite/farbrausch/t.concrete.cracked.01.png
Normal file
After Width: | Height: | Size: 375 KiB |
BIN
data/testsuite/farbrausch/t.envi.colored02.png
Normal file
After Width: | Height: | Size: 71 KiB |
BIN
data/testsuite/farbrausch/t.envi.colored03.png
Normal file
After Width: | Height: | Size: 124 KiB |
BIN
data/testsuite/farbrausch/t.font.01.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
data/testsuite/farbrausch/t.sewers.01.png
Normal file
After Width: | Height: | Size: 444 KiB |
BIN
data/testsuite/farbrausch/t.train.03.png
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
data/testsuite/farbrausch/t.yello.01.png
Normal file
After Width: | Height: | Size: 415 KiB |
BIN
data/testsuite/id_nmap/01_arcade.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
data/testsuite/id_nmap/02_tentacle.png
Normal file
After Width: | Height: | Size: 77 KiB |
BIN
data/testsuite/id_nmap/03_chest.png
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
data/testsuite/id_nmap/04_face.png
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
data/testsuite/id_tnmap/01_dot1.png
Normal file
After Width: | Height: | Size: 136 KiB |
BIN
data/testsuite/id_tnmap/02_dot2.png
Normal file
After Width: | Height: | Size: 621 KiB |
BIN
data/testsuite/id_tnmap/03_dot3.png
Normal file
After Width: | Height: | Size: 168 KiB |
BIN
data/testsuite/id_tnmap/04_dot4.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
data/testsuite/id_tnmap/05_lumpy.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
data/testsuite/id_tnmap/06_voronoi.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
data/testsuite/id_tnmap/07_turtle.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
data/testsuite/id_tnmap/08_normalmap.png
Normal file
After Width: | Height: | Size: 407 KiB |
BIN
data/testsuite/id_tnmap/09_metal.png
Normal file
After Width: | Height: | Size: 82 KiB |
BIN
data/testsuite/id_tnmap/10_skin.png
Normal file
After Width: | Height: | Size: 574 KiB |
BIN
data/testsuite/id_tnmap/11_onetile.png
Normal file
After Width: | Height: | Size: 149 KiB |
BIN
data/testsuite/id_tnmap/12_barrel.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
data/testsuite/id_tnmap/13_arcade.png
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
data/testsuite/id_tnmap/14_tentacle.png
Normal file
After Width: | Height: | Size: 70 KiB |
BIN
data/testsuite/id_tnmap/15_chest.png
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
data/testsuite/id_tnmap/16_face.png
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
data/testsuite/kodak/kodim01.png
Normal file
After Width: | Height: | Size: 719 KiB |
BIN
data/testsuite/kodak/kodim02.png
Normal file
After Width: | Height: | Size: 604 KiB |
BIN
data/testsuite/kodak/kodim03.png
Normal file
After Width: | Height: | Size: 491 KiB |
BIN
data/testsuite/kodak/kodim04.png
Normal file
After Width: | Height: | Size: 622 KiB |
BIN
data/testsuite/kodak/kodim05.png
Normal file
After Width: | Height: | Size: 767 KiB |
BIN
data/testsuite/kodak/kodim06.png
Normal file
After Width: | Height: | Size: 604 KiB |
BIN
data/testsuite/kodak/kodim07.png
Normal file
After Width: | Height: | Size: 553 KiB |
BIN
data/testsuite/kodak/kodim08.png
Normal file
After Width: | Height: | Size: 770 KiB |
BIN
data/testsuite/kodak/kodim09.png
Normal file
After Width: | Height: | Size: 569 KiB |
BIN
data/testsuite/kodak/kodim10.png
Normal file
After Width: | Height: | Size: 580 KiB |
BIN
data/testsuite/kodak/kodim11.png
Normal file
After Width: | Height: | Size: 606 KiB |
BIN
data/testsuite/kodak/kodim12.png
Normal file
After Width: | Height: | Size: 519 KiB |
BIN
data/testsuite/kodak/kodim13.png
Normal file
After Width: | Height: | Size: 803 KiB |
BIN
data/testsuite/kodak/kodim14.png
Normal file
After Width: | Height: | Size: 676 KiB |
BIN
data/testsuite/kodak/kodim15.png
Normal file
After Width: | Height: | Size: 598 KiB |
BIN
data/testsuite/kodak/kodim16.png
Normal file
After Width: | Height: | Size: 522 KiB |
BIN
data/testsuite/kodak/kodim17.png
Normal file
After Width: | Height: | Size: 588 KiB |
BIN
data/testsuite/kodak/kodim18.png
Normal file
After Width: | Height: | Size: 763 KiB |
BIN
data/testsuite/kodak/kodim19.png
Normal file
After Width: | Height: | Size: 656 KiB |
BIN
data/testsuite/kodak/kodim20.png
Normal file
After Width: | Height: | Size: 481 KiB |
BIN
data/testsuite/kodak/kodim21.png
Normal file
After Width: | Height: | Size: 622 KiB |
BIN
data/testsuite/kodak/kodim22.png
Normal file
After Width: | Height: | Size: 686 KiB |
BIN
data/testsuite/kodak/kodim23.png
Normal file
After Width: | Height: | Size: 544 KiB |
BIN
data/testsuite/kodak/kodim24.png
Normal file
After Width: | Height: | Size: 690 KiB |
BIN
data/testsuite/lightmap/cottage.dds
Executable file
BIN
data/testsuite/lightmap/specruin.dds
Executable file
BIN
data/testsuite/lightmap/tower.dds
Executable file
BIN
data/testsuite/lugaru/lugaru-blood.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
data/testsuite/lugaru/lugaru-bush.png
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
data/testsuite/lugaru/lugaru-cursor.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
data/testsuite/lugaru/lugaru-hawk.png
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
data/testsuite/quake3/q3-blocks15cgeomtrn.tga
Normal file
After Width: | Height: | Size: 256 KiB |
BIN
data/testsuite/quake3/q3-blocks17bloody.tga
Normal file
After Width: | Height: | Size: 256 KiB |
BIN
data/testsuite/quake3/q3-dark_tin2.tga
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
data/testsuite/quake3/q3-fan.tga
Normal file
After Width: | Height: | Size: 256 KiB |
BIN
data/testsuite/quake3/q3-fan_grate.tga
Normal file
After Width: | Height: | Size: 256 KiB |
BIN
data/testsuite/quake3/q3-metal2_2.tga
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
data/testsuite/quake3/q3-panel_glo.tga
Normal file
After Width: | Height: | Size: 64 KiB |