121 Commits
2.1.1 ... 2.0

Author SHA1 Message Date
c722267b9b Link against pthreads library on systems that do not include it automatically. Fixes issue 149. 2010-11-30 20:30:11 +00:00
f33bcfafad Remove malloc overrides. Fixes issue 138. 2010-10-28 04:25:23 +00:00
2d9805123c Fix aliasing bug. Fixes issue 139. 2010-10-21 18:54:46 +00:00
e70de27d12 Fix seek bug. Fixes issue 144. 2010-10-21 18:47:27 +00:00
874b087b43 Current CUDA runtime generates cpp code by default. Fix extension. Fixes issue 133. 2010-09-20 18:18:02 +00:00
25673a0c42 Use posh type definitions. 2010-09-20 17:55:36 +00:00
66a8237215 Fix alignment assumption. Fixes issue 132. 2010-09-07 18:28:53 +00:00
2ea2b40c72 Fix mirror sampling fixes issue 135. 2010-09-07 18:08:27 +00:00
e2ac16f100 Align rows to 8 bits only. 2010-09-07 18:07:53 +00:00
9ce42ecfa4 Add vc9 project. 2010-08-26 17:31:27 +00:00
2e0300fbb6 Revert changes. 2010-08-26 17:24:01 +00:00
98cf9f360a Update vc9 projects. Fix optimization settings. 2010-08-26 17:15:01 +00:00
dcdeead859 Fix DXT1a single color compressor. Compare alpha against 0 instead of 128. Fixes issue 134. 2010-08-26 16:41:24 +00:00
2996120fe2 Add old change left on old pc. 2010-06-09 07:41:50 +00:00
20b73458a5 Add thread validation to the .NET compressor object.
Plus for safeties sake use BeginThreadAffinity()...
2010-06-05 15:26:34 +00:00
89206909a4 Fix the calling convention used by the C# wrapper. I should probably have tested with the debug version before...!
Add a ChangeLog entry.
2010-06-03 21:44:29 +00:00
fd7c51068f Fix typos and merge changes from trunk. 2010-06-01 19:23:12 +00:00
0b2e6d633d Add support for luminance flag. Fixes issue 126. 2010-06-01 19:04:58 +00:00
acc7dee80f Fix assert when reading paletted TGA images. Fixes issue 125. 2010-06-01 17:51:57 +00:00
fbed8d31a5 Small fix for the call signature of a callback in the .NET wrapper. 2010-05-30 17:51:05 +00:00
b24e3bbcf2 Repair C wrapper.
Fix + Improve C# / .NET wrapper.
Add an XNA content processor, this will allow texture tools to be used as part of an XNA project.
2010-05-30 15:47:27 +00:00
3c559666b0 Fix polyphase filter. 2010-05-27 19:29:14 +00:00
447c8fd8db Upate resources file. 2010-05-15 09:09:20 +00:00
3fafa5f0a6 Add -alpha option. Get things ready for 2.0.8 revision. 2010-05-14 17:58:59 +00:00
20606def7c Fix fixed to float image conversion. Patch provided by Alex Pfaffe. Fixes issue 121. 2010-05-09 06:58:47 +00:00
68ff9ffd76 Update changelog. 2010-04-19 23:22:22 +00:00
265dbf33c3 Better estimate of principle component in CUDA. Fixes issue 120. 2010-04-19 19:40:38 +00:00
a728e4a768 Better estimation of principle component. Fixes issue 120. 2010-04-19 18:40:24 +00:00
50cfd0b662 Fix FindOpenEXR cmake script. Fixes issue 97. 2010-03-18 00:21:13 +00:00
19e00c701d Update changelog. 2010-03-18 00:13:05 +00:00
17ca9ab4ca Fix cmake build in msvc. Fixes issue 111. 2010-03-18 00:12:20 +00:00
24cde600ca Fix issue 115. 2010-03-10 08:08:44 +00:00
d0315d6408 Fix issue 112. 2010-03-02 01:29:48 +00:00
8af199a819 Update weighted cluster fit to use latest version from trunk 2009-11-06 01:28:25 +00:00
4d4286a3e4 Add post build commands to 64 bit target too. 2009-11-05 00:30:32 +00:00
38bf3f52c3 Update changelog. 2009-11-04 20:34:43 +00:00
2392b1da5e Undo changes. 2009-11-04 08:55:24 +00:00
ffe94b76fb Update version in dds fingerprint. 2009-11-04 08:33:36 +00:00
155ef81d99 Update version. 2009-11-04 08:31:52 +00:00
9ff6952793 Update changelog. 2009-11-04 08:31:38 +00:00
93625c7de8 Do not fail when the process is already using CUDA.
Attempt to use the selected cuda device.
More strict device selection.
2009-11-04 06:16:03 +00:00
6e9feef6f4 Enable weighted cluster fit compressor by default. 2009-10-21 07:50:24 +00:00
b1b3ccbd6f Set default alpha mode to none. 2009-10-14 00:07:06 +00:00
27cab64175 Fix error in Snow Leopard. 2009-10-12 00:44:50 +00:00
0293f73121 Fix comment. 2009-08-26 01:27:23 +00:00
64db4c2379 Fix assertion. Fixes issue 99. 2009-07-03 00:07:10 +00:00
43ba8d50d4 Eliminate unused variables. 2009-06-14 08:24:57 +00:00
5be5a6b922 Update changelog.
Formatting fixes.
2009-06-14 08:23:56 +00:00
7629e396b8 Add SIMD implementation of power method. Fixes issue 94. 2009-06-14 08:18:23 +00:00
341c393dde Set threads package required. Hopefully fixes issue 97. 2009-06-13 14:29:28 +00:00
cbbefe953f Update changelog. 2009-06-13 14:16:22 +00:00
cfb7d7e4ed Return correct error codes. Fix issue 92. 2009-06-13 14:15:55 +00:00
5eef915c0b Fix issue 92. Return correct error codes. 2009-06-13 14:00:59 +00:00
a5fdca595a Use memory allocator. 2009-06-13 13:54:36 +00:00
b5e5d4b0a2 Fix error. 2009-06-13 13:54:20 +00:00
82f99ea9d2 Fix non-thread-safe code. 2009-06-13 13:54:04 +00:00
dc8fe745c0 Fix msvc warning. 2009-03-19 18:50:17 +00:00
3322367311 Update single color compression tables. Fixes issue 85. 2009-03-19 10:02:53 +00:00
963d2969b8 Fix pixel format conversion code. Fixes issue 87. 2009-03-19 09:02:23 +00:00
6d9e6881d3 Shutdown CUDA properly. Fixes issue 83. 2009-03-18 05:52:14 +00:00
4f58a1bf8b Merge changes from trunk. 2009-03-18 04:04:09 +00:00
30eb24149e Fix typo. Fixes issue 81. 2009-02-03 08:00:59 +00:00
794e4e90c6 Fix generation of blended sobel filter. Fixes issue 77. 2009-01-28 00:31:00 +00:00
c5d618807f Update changelog. 2009-01-17 03:28:21 +00:00
bdb9502ac6 Include correct header file. 2009-01-17 03:27:49 +00:00
00af7f75bc Update changelog. 2009-01-17 03:25:55 +00:00
92f76113e5 Merge changes from trunk. Fix bugs and warnings under gcc 4.3.2. 2009-01-17 03:25:44 +00:00
bd7013a37b Detect CUDA 2.1 properly. 2009-01-17 03:21:24 +00:00
1ec9f130e2 Print message indicating whether CUDA is enabled or not. 2009-01-17 03:21:08 +00:00
5910d3f4bf Add -fPIC option for GCC, and cleanup a bit. 2009-01-10 01:28:52 +00:00
d292859745 Remove testing code. 2009-01-05 18:21:50 +00:00
58d6c8d243 Update changelog. 2009-01-04 07:34:00 +00:00
4c197ab48c Include correct CUDA runtime headers. 2009-01-04 07:32:41 +00:00
7165dab99f Update version number. 2008-12-16 20:29:31 +00:00
d827cee863 Fix version checking. 2008-12-16 20:27:18 +00:00
d787b30379 Select fastest CUDA device. Merged from trunk. 2008-12-01 07:56:00 +00:00
cc4741ed03 Set host compilation mode explicitely.` 2008-11-14 19:48:46 +00:00
559bf61f4a Link all libraries dynamically, when nvtt is linked dynamically. 2008-11-14 01:49:09 +00:00
dbfb36b812 Fix CUDA Library detection on Linux. 2008-11-14 01:16:27 +00:00
8314ac076f Update changelog. 2008-10-27 09:50:41 +00:00
d58fd00fd9 Fix cmake file. Add NVTT_SHARED=1 definition to export DLL symbols. 2008-10-27 09:34:56 +00:00
117c892141 Add library.* to project. 2008-10-27 09:19:31 +00:00
cd112e2133 Merge fixes from trunk. Prevent CUDA dll mismatches. 2008-10-27 09:17:09 +00:00
b013aa64b9 Add Library to the build. 2008-10-27 09:16:33 +00:00
112bf2c5c3 Fix error in CUDA single color compressor. 2008-10-27 07:49:32 +00:00
7a85fdc59a Merge fixes from trunk. 2008-10-22 05:32:56 +00:00
f167b79cfd Merge fixes from trunk. 2008-10-22 05:32:35 +00:00
73288eb24b Merge fixes from trunk. 2008-10-22 05:31:53 +00:00
3f13eb89f1 Merge fixes from trunk. 2008-10-22 05:31:28 +00:00
ad43f6e5f2 Increment revision number. 2008-10-22 05:17:55 +00:00
da506404ad Compile nvtt as a shared library. 2008-10-15 18:39:28 +00:00
d253e4bf4f Implement sinc filter... 2008-10-05 09:58:21 +00:00
c59e4db15a Implement general scale filter, including upsampling 2008-09-27 07:32:11 +00:00
d38e970221 Set binary flag 2008-09-27 05:40:51 +00:00
bdebc937be Fix infinite loop in indexMirror. Fixes issue 65. 2008-09-24 00:37:38 +00:00
d938e2d753 Update changelog.
Update version.
2008-06-12 01:20:46 +00:00
5fbeb8d34b Fixed error in CompressRGB, as reported by jonsoh in issue 49.
Added support for RGBA pixel format dithering. Fixes issue 50 and issue 51.
Add PixelFormat.h to vc8 project.
2008-06-12 01:16:52 +00:00
f95d09d1e9 Update version numbers. 2008-06-09 19:13:01 +00:00
0b17e3095a Update 2.0 project file.
Fix backported cuda kernel.
2008-06-09 19:05:49 +00:00
6e1a87129f Integrate bug fixes from trunk. 2008-06-09 08:27:00 +00:00
e8bb3f2886 Merge Noel's fix to the 2.0 branch. 2008-05-19 18:30:08 +00:00
f7bbd4b4d7 Merge improved DXT3 compressor from trunk. Fix issue 38. 2008-04-26 08:05:21 +00:00
7bb46a4df7 Fix changelog. 2008-04-17 09:05:20 +00:00
7f6c257e9f Add -m32/-m64 compiler flag when compiling cu files.
Add /ltcg to prevent msvc warnings.
2008-04-17 08:26:34 +00:00
3f1472b193 Add Plane.* to vc8 project. 2008-04-17 08:17:00 +00:00
056aedea97 Fix error in DXT3 cuda compressor. 2008-04-17 08:16:10 +00:00
dda3b661dd Update version number of DDS files. 2008-04-17 08:15:23 +00:00
214ca6c65c Update changelog. 2008-04-17 07:17:20 +00:00
08ca2fbe16 Set correct swizzle code for 3Dc files. 2008-04-17 07:14:27 +00:00
de042e828a Add plane class. 2008-04-17 07:06:00 +00:00
64cbd74ef0 Merge trunk fixes. 2008-04-17 07:04:20 +00:00
3d1b9324e1 Add single color compressor for DXT1a. 2008-03-27 05:07:40 +00:00
07df6e7539 Merge trunk fixes to 2.0 branch. Get things ready for 2.0.2 release. 2008-03-27 04:44:29 +00:00
46334cb96a Merge Viktor Linder patch into 2.0 and trunk.
Fixes RGB modes with less than 32 bpp.
2008-03-11 21:22:54 +00:00
67dc3a9739 Copy header files to correct path. 2008-03-07 00:00:49 +00:00
b5e8428f9c Merge trunk fixes. Update changelog. 2008-03-05 23:28:52 +00:00
21fb83c081 Merge fixes from trunk. 2008-03-05 19:44:00 +00:00
4c3549cb66 Merge copy ctor bug reported by Richard Sim.
Update ChangeLog.
2008-03-05 19:17:06 +00:00
3dae7f9b70 Add missing changes. 2008-02-28 22:34:18 +00:00
ebe47a0f78 Merge fixes from trunk.
- better error CUDA checking.
 - eliminate compiler warnings.
 - fix end of lines.
2008-02-28 22:29:37 +00:00
21859216bc I should be using branches instead of tags. 2008-02-28 07:49:13 +00:00
693 changed files with 31838 additions and 160308 deletions

View File

@ -1,28 +1,14 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0) CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0)
PROJECT(NV) PROJECT(NV)
ENABLE_TESTING() ENABLE_TESTING()
SET(NV_CMAKE_DIR "${NV_SOURCE_DIR}/cmake") SET(NV_CMAKE_DIR "${NV_SOURCE_DIR}/cmake")
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${NV_CMAKE_DIR}") 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)
set (CMAKE_CXX_STANDARD 11)
IF(WIN32) IF(WIN32)
# gnuwin32 paths: SET(GNUWIN32 "${NV_SOURCE_DIR}/gnuwin32")
SET(GNUWIN32_PATH "${NV_SOURCE_DIR}/extern/gnuwin32") SET(CMAKE_INCLUDE_PATH "${GNUWIN32}/include")
SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "${GNUWIN32_PATH}/include") SET(CMAKE_LIBRARY_PATH "${GNUWIN32}/lib")
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) ENDIF(WIN32)
INCLUDE(${NV_CMAKE_DIR}/OptimalOptions.cmake) INCLUDE(${NV_CMAKE_DIR}/OptimalOptions.cmake)
@ -30,53 +16,15 @@ MESSAGE(STATUS "Setting optimal options")
MESSAGE(STATUS " Processor: ${NV_SYSTEM_PROCESSOR}") MESSAGE(STATUS " Processor: ${NV_SYSTEM_PROCESSOR}")
MESSAGE(STATUS " Compiler Flags: ${CMAKE_CXX_FLAGS}") 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.")
ADD_DEFINITIONS(-D_DEBUG=1)
ENDIF()
IF(NVTT_SHARED) IF(NVTT_SHARED)
SET(NVCORE_SHARED TRUE) SET(NVCORE_SHARED TRUE)
SET(NVMATH_SHARED TRUE) SET(NVMATH_SHARED TRUE)
SET(NVIMAGE_SHARED TRUE) SET(NVIMAGE_SHARED TRUE)
ENDIF(NVTT_SHARED) ENDIF(NVTT_SHARED)
ADD_SUBDIRECTORY(extern)
ADD_SUBDIRECTORY(src) 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) IF(WIN32)
SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_VENDOR}\\\\NVIDIA Texture Tools 2.1") ADD_SUBDIRECTORY(gnuwin32)
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) ENDIF(WIN32)
INCLUDE(CPack)

View File

@ -1,25 +1,27 @@
NVIDIA Texture Tools version 2.1.1 NVIDIA Texture Tools version 2.0.9
* Various fixes. * Fix invalid assert when reading paletted TGA images. Fixes issue 125.
* Add support for luminance flag. Fixes issue 126.
* Fix the C wrapper and provide methods involving callbacks.
* Improve C# / .NET Wrapper
* Add an XNA Game Studio 3.1 Content Processor to make it easy to utilize NVIDIA Texture Tools in XNA applications.
* Fix single color DXT1a compressor. Fixes issue 134.
* Fix mirror sampling. Fixes issue 135.
* Fix seek bug. Fixes issue 144.
* Fix aliasing bug. Fixes issue 139.
NVIDIA Texture Tools version 2.1.0 NVIDIA Texture Tools version 2.0.8
* Too many changes to list here. * Fix float to fixed image conversion. Patch provided by Alex Pfaffe. Fixes issue 121.
* CTX1 CUDA compressor. * ColorBlock::isSingleColor compares only RGB channels. Fixes issue 115.
* DXT1n CUDA compressor. * Fix cmake build in msvc. Fixes issue 111.
* Support alpha premultiplication by Charles Nicholson. See issue 30. * Better estimate principal component. Fixes issue 120.
* Improved decompressor tool submitted by Amorilia. See issue 41.
* Add support for YCoCg color transform. Fixes issue 18.
* Add support for linear and swizzle transforms. Fixes issue 4.
* 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 NVIDIA Texture Tools version 2.0.7
* Output correct exit codes. Fixes issue 92. * Output correct exit codes. Fixes issue 92.
* Fix thread-safety errors. Fixes issue 90. * Fix thread-safety errors. Fixes issue 90.
* Add SIMD power method. Fixes issue 94. * Add SIMD power method. Fixes issue 94.
* Fix compilation error in Snow Leopard reported by Huahang Liu.
* Interact better with applications that already use CUDA.
* Faster CPU compression.
NVIDIA Texture Tools version 2.0.6 NVIDIA Texture Tools version 2.0.6
* Fix dll version checking. * Fix dll version checking.

View File

@ -1,7 +1,6 @@
NVIDIA Texture Tools is licensed under the MIT license. NVIDIA Texture Tools 2.0 is licensed under the MIT license.
Copyright (c) 2009-2016 Ignacio Castano Copyright (c) 2007 NVIDIA Corporation
Copyright (c) 2007-2009 NVIDIA Corporation
Permission is hereby granted, free of charge, to any person Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation obtaining a copy of this software and associated documentation

View File

@ -0,0 +1,167 @@
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
NVIDIA Texture Tools
README.txt
Version 2.0
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
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.

View File

@ -1,46 +0,0 @@
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

View File

@ -1 +1 @@
2.1.1 2.0.8

View File

@ -2,12 +2,6 @@
tar zcvf nvidia-texture-tools-`cat VERSION`.tar.gz \ tar zcvf nvidia-texture-tools-`cat VERSION`.tar.gz \
--exclude '.*' --exclude debian --exclude '*~' --exclude buildpkg \ --exclude '.*' --exclude debian --exclude '*~' --exclude buildpkg \
--exclude 'build-*' --exclude data --exclude tags --exclude Makefile \ --exclude build --exclude data --exclude tags --exclude Makefile \
--exclude 'doc' --exclude 'nvidia-texture-tools-*.tar.gz' \ --exclude 'nvidia-texture-tools-*.tar.gz' \
--exclude 'extern/skylight' --exclude 'extern/FreeImage' \ --transform 's,^,nvidia-texture-tools/,' *
--exclude 'extern/atitc' --exclude 'extern/glew' \
--exclude 'extern/gnuwin32' \
--exclude '*.user' -s ',^,nvidia-texture-tools/,' *
# --exclude '*.user' --transform 's,^,nvidia-texture-tools/,' *
# --exclude '*.user' *

View File

@ -5,68 +5,24 @@ SET(NV_SYSTEM_PROCESSOR "i586")
IF(UNIX) IF(UNIX)
FIND_PROGRAM(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin ) FIND_PROGRAM(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin )
IF(CMAKE_UNAME) 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) 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 # 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}")
STRING(REGEX REPLACE "/" "_" NV_SYSTEM_PROCESSOR "${NV_SYSTEM_PROCESSOR}") STRING(REGEX REPLACE "/" "_" NV_SYSTEM_PROCESSOR "${NV_SYSTEM_PROCESSOR}")
ENDIF(CMAKE_UNAME) ENDIF(CMAKE_UNAME)
#~ # Get extended processor information from /proc/cpuinfo # Get extended processor information with:
#~ IF(EXISTS "/proc/cpuinfo") # `cat /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) ELSE(UNIX)
IF(WIN32) IF(WIN32)
# It's not OK to trust $ENV{PROCESSOR_ARCHITECTURE}: its value depends on the type of executable being run, SET (NV_SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITECTURE}")
# 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(WIN32)
ENDIF(UNIX) ENDIF(UNIX)

142
cmake/FindCUDA.cmake Normal file
View File

@ -0,0 +1,142 @@
#
# 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 (CFILE ${CUFILE} NAME_WE)
SET (CFILE ${CMAKE_CURRENT_BINARY_DIR}/${CFILE}.gen.cpp)
GET_CUFILE_DEPENDENCIES(CUDEPS ${CUFILE})
#MESSAGE("${CUDEPS}")
ADD_CUSTOM_COMMAND (
OUTPUT ${CFILE}
COMMAND ${CUDA_COMPILER}
ARGS -cuda ${cuda_includes} ${CUDA_OPTIONS} -o ${CFILE} ${CUFILE}
MAIN_DEPENDENCY ${CUFILE}
DEPENDS ${CUDEPS})
#MACRO_ADD_FILE_DEPENDENCIES(${CUFILE} ${CFILE})
SET (${outfiles} ${${outfiles}} ${CFILE})
ENDFOREACH (CUFILE)
SET_SOURCE_FILES_PROPERTIES(${outfiles} PROPERTIES GENERATED 1)
ENDMACRO (WRAP_CUDA)

View File

@ -3,13 +3,14 @@
# Once done this will define # Once done this will define
# #
# CG_FOUND =system has NVIDIA Cg and it can be used. # CG_FOUND =system has NVIDIA Cg and it can be used.
# CG_INCLUDE_DIR = directory where cg.h resides # CG_INCLUDE_PATH = directory where cg.h resides
# CG_LIBRARY = full path to libCg.so (Cg.DLL on win32) # CG_LIBRARY = full path to libCg.so (Cg.DLL on win32)
# CG_GL_LIBRARY = full path to libCgGL.so (CgGL.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) # CG_COMPILER = full path to cgc (cgc.exe on win32)
# #
# On OSX default to using the framework version of Cg. # On OSX default to using the framework version of Cg.
IF (APPLE) IF (APPLE)
INCLUDE(${CMAKE_ROOT}/Modules/CMakeFindFrameworks.cmake) INCLUDE(${CMAKE_ROOT}/Modules/CMakeFindFrameworks.cmake)
SET(CG_FRAMEWORK_INCLUDES) SET(CG_FRAMEWORK_INCLUDES)
@ -21,7 +22,7 @@ IF (APPLE)
ENDFOREACH(dir) ENDFOREACH(dir)
# Find the include dir # Find the include dir
FIND_PATH(CG_INCLUDE_DIR cg.h FIND_PATH(CG_INCLUDE_PATH cg.h
${CG_FRAMEWORK_INCLUDES} ${CG_FRAMEWORK_INCLUDES}
) )
@ -37,25 +38,13 @@ IF (APPLE)
) )
ELSE (APPLE) ELSE (APPLE)
IF (WIN32) IF (WIN32)
FIND_PROGRAM( CG_COMPILER cgc
# When compiling 64-bit programs, the binaries and libs are in bin.x64 and lib.x64 directories, $ENV{CG_BIN_PATH}
# 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{PROGRAMFILES}/NVIDIA\ Corporation/Cg/bin
$ENV{PFx86}/NVIDIA\ Corporation/Cg/bin
$ENV{PROGRAMFILES}/Cg $ENV{PROGRAMFILES}/Cg
${PROJECT_SOURCE_DIR}/../Cg ${PROJECT_SOURCE_DIR}/../Cg
DOC "The Cg Compiler" DOC "The Cg Compiler"
) )
IF (CG_COMPILER) IF (CG_COMPILER)
GET_FILENAME_COMPONENT(CG_COMPILER_DIR ${CG_COMPILER} PATH) GET_FILENAME_COMPONENT(CG_COMPILER_DIR ${CG_COMPILER} PATH)
GET_FILENAME_COMPONENT(CG_COMPILER_SUPER_DIR ${CG_COMPILER_DIR} PATH) GET_FILENAME_COMPONENT(CG_COMPILER_SUPER_DIR ${CG_COMPILER_DIR} PATH)
@ -63,7 +52,7 @@ ELSE (APPLE)
SET (CG_COMPILER_DIR .) SET (CG_COMPILER_DIR .)
SET (CG_COMPILER_SUPER_DIR ..) SET (CG_COMPILER_SUPER_DIR ..)
ENDIF (CG_COMPILER) ENDIF (CG_COMPILER)
FIND_PATH( CG_INCLUDE_DIR Cg/cg.h FIND_PATH( CG_INCLUDE_PATH Cg/cg.h
$ENV{CG_INC_PATH} $ENV{CG_INC_PATH}
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/include $ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/include
$ENV{PROGRAMFILES}/Cg $ENV{PROGRAMFILES}/Cg
@ -72,59 +61,27 @@ ELSE (APPLE)
${CG_COMPILER_DIR} ${CG_COMPILER_DIR}
DOC "The directory where Cg/cg.h resides" DOC "The directory where Cg/cg.h resides"
) )
FIND_LIBRARY( CG_LIBRARY
IF (NV_SYSTEM_PROCESSOR STREQUAL "x86_64") NAMES Cg
FIND_LIBRARY( CG_LIBRARY PATHS
NAMES Cg $ENV{CG_LIB_PATH}
PATHS $ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib
$ENV{CG_LIB64_PATH} $ENV{PROGRAMFILES}/Cg
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib.x64 ${PROJECT_SOURCE_DIR}/../Cg
$ENV{PFx86}/NVIDIA\ Corporation/Cg/lib.x64 ${CG_COMPILER_SUPER_DIR}/lib
$ENV{PROGRAMFILES}/Cg ${CG_COMPILER_DIR}
$ENV{PFx86}/Cg DOC "The Cg runtime library"
${PROJECT_SOURCE_DIR}/../Cg )
${CG_COMPILER_SUPER_DIR}/lib.x64 FIND_LIBRARY( CG_GL_LIBRARY
${CG_COMPILER_DIR} NAMES CgGL
DOC "The Cg runtime library (64-bit)" PATHS
) $ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib
FIND_LIBRARY( CG_GL_LIBRARY $ENV{PROGRAMFILES}/Cg
NAMES CgGL ${PROJECT_SOURCE_DIR}/../Cg
PATHS ${CG_COMPILER_SUPER_DIR}/lib
$ENV{CG_LIB64_PATH} ${CG_COMPILER_DIR}
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib.x64 DOC "The Cg runtime library"
$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) ELSE (WIN32)
FIND_PROGRAM( CG_COMPILER cgc FIND_PROGRAM( CG_COMPILER cgc
/usr/bin /usr/bin
@ -133,7 +90,7 @@ ELSE (APPLE)
) )
GET_FILENAME_COMPONENT(CG_COMPILER_DIR "${CG_COMPILER}" PATH) GET_FILENAME_COMPONENT(CG_COMPILER_DIR "${CG_COMPILER}" PATH)
GET_FILENAME_COMPONENT(CG_COMPILER_SUPER_DIR "${CG_COMPILER_DIR}" PATH) GET_FILENAME_COMPONENT(CG_COMPILER_SUPER_DIR "${CG_COMPILER_DIR}" PATH)
FIND_PATH( CG_INCLUDE_DIR Cg/cg.h FIND_PATH( CG_INCLUDE_PATH Cg/cg.h
/usr/include /usr/include
/usr/local/include /usr/local/include
${CG_COMPILER_SUPER_DIR}/include ${CG_COMPILER_SUPER_DIR}/include
@ -163,10 +120,10 @@ ELSE (APPLE)
ENDIF (WIN32) ENDIF (WIN32)
ENDIF (APPLE) ENDIF (APPLE)
IF (CG_INCLUDE_DIR) IF (CG_INCLUDE_PATH)
SET( CG_FOUND 1 CACHE STRING "Set to 1 if CG is found, 0 otherwise") SET( CG_FOUND 1 CACHE STRING "Set to 1 if CG is found, 0 otherwise")
ELSE (CG_INCLUDE_DIR) ELSE (CG_INCLUDE_PATH)
SET( CG_FOUND 0 CACHE STRING "Set to 1 if CG is found, 0 otherwise") SET( CG_FOUND 0 CACHE STRING "Set to 1 if CG is found, 0 otherwise")
ENDIF (CG_INCLUDE_DIR) ENDIF (CG_INCLUDE_PATH)
MARK_AS_ADVANCED( CG_FOUND ) MARK_AS_ADVANCED( CG_FOUND )

View File

@ -1,53 +0,0 @@
#
# Try to find the FreeImage library and include path.
# Once done this will define
#
# FREEIMAGE_FOUND
# FREEIMAGE_INCLUDE_PATH
# FREEIMAGE_LIBRARY
#
IF (WIN32)
FIND_PATH( FREEIMAGE_INCLUDE_PATH FreeImage.h
${FREEIMAGE_ROOT_DIR}/include
${FREEIMAGE_ROOT_DIR}
DOC "The directory where FreeImage.h resides")
FIND_LIBRARY( FREEIMAGE_LIBRARY
NAMES FreeImage freeimage
PATHS
${FREEIMAGE_ROOT_DIR}/lib
${FREEIMAGE_ROOT_DIR}
DOC "The FreeImage library")
ELSE (WIN32)
FIND_PATH( FREEIMAGE_INCLUDE_PATH FreeImage.h
/usr/include
/usr/local/include
/sw/include
/opt/local/include
DOC "The directory where FreeImage.h resides")
FIND_LIBRARY( FREEIMAGE_LIBRARY
NAMES FreeImage freeimage
PATHS
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/lib
/sw/lib
/opt/local/lib
DOC "The FreeImage library")
ENDIF (WIN32)
SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARY})
IF (FREEIMAGE_INCLUDE_PATH AND FREEIMAGE_LIBRARY)
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 FreeImage is found, FALSE otherwise")
ENDIF (FREEIMAGE_INCLUDE_PATH AND FREEIMAGE_LIBRARY)
MARK_AS_ADVANCED(
FREEIMAGE_FOUND
FREEIMAGE_LIBRARY
FREEIMAGE_LIBRARIES
FREEIMAGE_INCLUDE_PATH)

View File

@ -10,28 +10,24 @@
IF (WIN32) IF (WIN32)
FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h
$ENV{PROGRAMFILES}/GLEW/include $ENV{PROGRAMFILES}/GLEW/include
${GLEW_ROOT_DIR}/include ${PROJECT_SOURCE_DIR}/src/nvgl/glew/include
DOC "The directory where GL/glew.h resides") DOC "The directory where GL/glew.h resides")
FIND_LIBRARY( GLEW_LIBRARY
FIND_LIBRARY( GLEW_LIBRARY NAMES glew GLEW glew32 glew32s
NAMES glew GLEW glew32 glew32s PATHS
PATHS $ENV{PROGRAMFILES}/GLEW/lib
$ENV{PROGRAMFILES}/GLEW/lib ${PROJECT_SOURCE_DIR}/src/nvgl/glew/bin
${PROJECT_SOURCE_DIR}/src/nvgl/glew/bin ${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib
${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib DOC "The GLEW library")
DOC "The GLEW library")
ELSE (WIN32) ELSE (WIN32)
FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h
/usr/include /usr/include
/usr/local/include /usr/local/include
/sw/include /sw/include
/opt/local/include /opt/local/include
${GLEW_ROOT_DIR}/include
DOC "The directory where GL/glew.h resides") DOC "The directory where GL/glew.h resides")
# Prefer the static library.
FIND_LIBRARY( GLEW_LIBRARY FIND_LIBRARY( GLEW_LIBRARY
NAMES libGLEW.a GLEW NAMES GLEW glew
PATHS PATHS
/usr/lib64 /usr/lib64
/usr/lib /usr/lib
@ -39,12 +35,13 @@ ELSE (WIN32)
/usr/local/lib /usr/local/lib
/sw/lib /sw/lib
/opt/local/lib /opt/local/lib
${GLEW_ROOT_DIR}/lib
DOC "The GLEW library") DOC "The GLEW library")
ENDIF (WIN32) ENDIF (WIN32)
SET(GLEW_FOUND "NO") IF (GLEW_INCLUDE_PATH)
IF (GLEW_INCLUDE_PATH AND GLEW_LIBRARY) SET( GLEW_FOUND 1 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise")
SET(GLEW_LIBRARIES ${GLEW_LIBRARY}) ELSE (GLEW_INCLUDE_PATH)
SET(GLEW_FOUND "YES") SET( GLEW_FOUND 0 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise")
ENDIF (GLEW_INCLUDE_PATH AND GLEW_LIBRARY) ENDIF (GLEW_INCLUDE_PATH)
MARK_AS_ADVANCED( GLEW_FOUND )

127
cmake/FindGLUT.cmake Normal file
View File

@ -0,0 +1,127 @@
# - 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
)

View File

@ -9,10 +9,9 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "i586") ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "i586")
IF(NV_SYSTEM_PROCESSOR STREQUAL "i686") IF(NV_SYSTEM_PROCESSOR STREQUAL "i686")
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i686") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i686")
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpmath=sse -mtune=i686 -msse3") #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpmath=sse -mtune=i686 -msse3")
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=pentium4") #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=pentium4")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=prescott")
ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "i686") ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "i686")
IF(NV_SYSTEM_PROCESSOR STREQUAL "x86_64") IF(NV_SYSTEM_PROCESSOR STREQUAL "x86_64")
@ -21,30 +20,12 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "x86_64") ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "x86_64")
IF(NV_SYSTEM_PROCESSOR STREQUAL "powerpc") IF(NV_SYSTEM_PROCESSOR STREQUAL "powerpc")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=powerpc -faltivec -maltivec -mabi=altivec -mpowerpc-gfxopt") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=powerpc -maltivec -mabi=altivec -mpowerpc-gfxopt")
# ibook G4: # ibook G4:
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=7450 -mtune=7450 -faltivec -maltivec -mabi=altivec -mpowerpc-gfxopt") #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=7450 -mtune=7450 -maltivec -mabi=altivec -mpowerpc-gfxopt")
# G5
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=G5 -faltivec -maltivec -mabi=altivec -mpowerpc-gfxopt")
ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "powerpc") ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "powerpc")
# IF(DARWIN)
# 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) ENDIF(CMAKE_COMPILER_IS_GNUCXX)
IF(MSVC) IF(MSVC)

25
configure vendored
View File

@ -18,7 +18,7 @@ fi
help=false help=false
build="debug" # release build="Debug" # release
prefix=/usr/local prefix=/usr/local
# Parse the args # Parse the args
@ -26,8 +26,9 @@ for i in "$@"
do do
case $i in case $i in
--help ) help=true ;; --help ) help=true ;;
--debug ) build="debug" ;; --debug ) build="Debug" ;;
--release ) build="release" ;; --release ) build="Release" ;;
--prefix=* ) prefix="${i#--prefix=}" ;;
--prefix=* ) prefix="${i#--prefix=}" ;; --prefix=* ) prefix="${i#--prefix=}" ;;
* ) echo "Unrecognised argument $i" ;; * ) echo "Unrecognised argument $i" ;;
esac esac
@ -50,9 +51,9 @@ fi
echo "-- Configuring nvidia-texture-tools "`cat VERSION` echo "-- Configuring nvidia-texture-tools "`cat VERSION`
mkdir -p ./build-$build mkdir -p ./build
cd ./build-$build cd ./build
$CMAKE .. -DNVTT_SHARED=0 -DCMAKE_BUILD_TYPE=$build -DCMAKE_INSTALL_PREFIX=$prefix -G "Unix Makefiles" || exit 1 $CMAKE .. -DNVTT_SHARED=1 -DCMAKE_BUILD_TYPE=$build -DCMAKE_INSTALL_PREFIX=$prefix -G "Unix Makefiles" || exit 1
cd .. cd ..
echo "" echo ""
@ -61,15 +62,11 @@ echo ""
cat > Makefile << EOF cat > Makefile << EOF
all: all:
@+make --no-print-directory -C build-$build/ @make --no-print-directory -C build/
install: install:
@+make install --no-print-directory -C build-$build/ @make install --no-print-directory -C build/
package:
@+make package --no-print-directory -C build-$build/
test:
@+make test --no-print-directory -C build-$build/
clean: clean:
@+make clean --no-print-directory -C build-$build/ @make clean --no-print-directory -C build/
distclean: distclean:
@rm -Rf build-$build/ @rm -Rf build/
EOF EOF

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

View File

@ -1,95 +0,0 @@
#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;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 654 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 541 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 444 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 415 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 621 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 407 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 574 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 719 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 604 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 491 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 622 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 767 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 604 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 770 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 569 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 580 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 606 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 598 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 522 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 588 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 763 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 656 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 481 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 622 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 686 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 690 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Some files were not shown because too many files have changed in this diff Show More