Compare commits

..

121 Commits
master ... 2.0

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

3
.github/FUNDING.yml vendored
View File

@ -1,3 +0,0 @@
# These are supported funding model platforms
github: castano

View File

@ -1,33 +0,0 @@
name: build
on: [push, pull_request]
jobs:
vs2017:
runs-on: windows-2019
steps:
- uses: actions/checkout@v2
- uses: microsoft/setup-msbuild@v1.0.0
- name: Build Debug/x64
run: msbuild .\project\vc2017\nvtt.sln /property:Configuration=Debug /property:Platform=x64
- name: Build Debug/Win32
run: msbuild .\project\vc2017\nvtt.sln /property:Configuration=Debug /property:Platform=Win32
- name: Build Release/x64
run: msbuild .\project\vc2017\nvtt.sln /property:Configuration=Release /property:Platform=x64
- name: Build Release/Win32
run: msbuild .\project\vc2017\nvtt.sln /property:Configuration=Release /property:Platform=Win32
unix:
strategy:
matrix:
os: [ubuntu, macos]
name: ${{matrix.os}}
runs-on: ${{matrix.os}}-latest
steps:
- uses: actions/checkout@v2
- name: make
run: |
./configure --debug
make
./configure --release
make

17
.gitignore vendored
View File

@ -1,17 +0,0 @@
**/bin/
**/obj/
**/Debug/
**/Release/
**/Debug.x64/
**/Release.x64/
**/Debug.Win32/
**/Release.Win32/
**/Debug-CUDA/
**/Release-CUDA/
*.vcxproj.user
*.opensdf
*.sdf
*.suo
build
.vs
project/nvtt.sublime-workspace

View File

@ -1,63 +1,30 @@
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}")
# Compiler check (needs -std:c++11 flag) IF(WIN32)
include(CheckCXXCompilerFlag) SET(GNUWIN32 "${NV_SOURCE_DIR}/gnuwin32")
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) SET(CMAKE_INCLUDE_PATH "${GNUWIN32}/include")
if(COMPILER_SUPPORTS_CXX11) SET(CMAKE_LIBRARY_PATH "${GNUWIN32}/lib")
set(CMAKE_CXX_STANDARD 11) ENDIF(WIN32)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
else()
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
INCLUDE(${NV_CMAKE_DIR}/OptimalOptions.cmake) INCLUDE(${NV_CMAKE_DIR}/OptimalOptions.cmake)
MESSAGE(STATUS "Setting optimal options")
MESSAGE(STATUS " Processor: ${NV_SYSTEM_PROCESSOR}")
MESSAGE(STATUS " Compiler Flags: ${CMAKE_CXX_FLAGS}")
IF(CMAKE_BUILD_TYPE MATCHES "debug") IF(NVTT_SHARED)
SET(CMAKE_DEBUG_POSTFIX "_d" CACHE STRING "Postfix for debug build libraries.") SET(NVCORE_SHARED TRUE)
ADD_DEFINITIONS(-D_DEBUG=1) SET(NVMATH_SHARED TRUE)
ENDIF() SET(NVIMAGE_SHARED TRUE)
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 "2")
SET(CPACK_PACKAGE_VERSION "2.1.2")
SET(CPACK_PACKAGE_CONTACT "Ignacio Castaño <castano@gmail.com>")
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\\\\vc2017\\\\nvcompress\\\\nvidia.ico")
ENDIF(WIN32) ENDIF(WIN32)
INCLUDE(CPack)

View File

@ -1,29 +1,27 @@
NVIDIA Texture Tools version 2.1.2 NVIDIA Texture Tools version 2.0.9
* Use ICBC as the main BC1 compressor. * Fix invalid assert when reading paletted TGA images. Fixes issue 125.
* Various fixes. * 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.1 NVIDIA Texture Tools version 2.0.8
* Various fixes. * Fix float to fixed image conversion. Patch provided by Alex Pfaffe. Fixes issue 121.
* ColorBlock::isSingleColor compares only RGB channels. Fixes issue 115.
NVIDIA Texture Tools version 2.1.0 * Fix cmake build in msvc. Fixes issue 111.
* Too many changes to list here. * Better estimate principal component. Fixes issue 120.
* CTX1 CUDA compressor.
* DXT1n CUDA compressor.
* Support alpha premultiplication by Charles Nicholson. See issue 30.
* 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-2020 Ignacio Castaño 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,83 +0,0 @@
# NVTT is discontinued
After more than 14 years maintaining and updating this library on my spare time, I've decided to officially discontinue it and focus my energy on other projects.
When I released NVTT there was very little public information about compression for GPU texture formats. Existing codecs were closed-source, encumbered by patents, and not particularly efficient or high quality. A lot has changed since then. NVTT doesn't support the latest formats anymore, some of its codecs are outdated, and it's source code has aged. Today most IHVs maintain their own open source codecs and several companies develop high quality commercial products around texture compression.
If you are looking for alternative texture compression tools and processing algorithms I recommend you check these out:
## Open Source Encoders
* I still maintain [A High Quality SIMD BC1 Encoder](https://github.com/castano/icbc).
* [rgbcx](https://github.com/richgel999/bc7enc/blob/master/rgbcx.h) is another high-performance (but scalar) BC1-5 encoder.
* [stb_dxt](https://github.com/nothings/stb/blob/master/stb_dxt.h) is a single header library that provides low quality, but fast BC1-5 encoders.
* [Binomial](https://www.binomial.info/) is an image and texture compression company that develops [Basis a universal texture codec](https://github.com/BinomialLLC/basis_universal) and also has [other open source codecs](https://github.com/BinomialLLC).
* [Intel ISPC Texture Compressor](https://github.com/GameTechDev/ISPCTextureCompressor) is a set of set of open source SIMD texture encoders that are very fast, but low quality.
* [AMD Compressonator](https://gpuopen.com/compressonator/) offers various open source encoders that also run on the GPU.
* [Betsy](https://github.com/darksylinc/betsy/) is a compressor for various GPU formats using compute shaders.
* For ETC encoders see Google's [Etc2Comp](https://github.com/google/etc2comp), Bartosz Taudul's [etcpak](https://github.com/wolfpld/etcpak) and Rich Geldreich's [rg-etc1](https://github.com/richgel999/rg-etc1).
* [ARM ASTC Encoder](https://github.com/ARM-software/astc-encoder) is an excellent ASTC encoder.
* This is [a good overview of the state of texture encoders in 2020](https://aras-p.info/blog/2020/12/08/Texture-Compression-in-2020/).
## Image Processing and IO
* [stb_image_resize](https://github.com/nothings/stb/blob/master/stb_image_resize.h) provides polyphase image resize filters that are similar to what NVTT supports.
* [Dario Manesku's cube map filtering tool](https://github.com/dariomanesku/cmft) seems like a good alternative for the cube map filtering functions in NVTT.
* [CubeMapGen](https://gpuopen.com/archived/cubemapgen/) is another source of information for cubemap filtering algorithms, but is now unsupported as well.
* Deano Calver supports [three tiny libraries](https://deanoc.com/2019/09/tiny) that provide support for DDS and KTX file formats, and pixel format conversion.
* [stb_image](https://github.com/nothings/stb/blob/master/stb_image.h) and [stb_image_write](https://github.com/nothings/stb/blob/master/stb_image_write.h) are two handy single header libraries to read and write images in various formats.
* https://github.com/syoyo/tinyexr
* https://lodev.org/lodepng/
* [texturec](https://bkaradzic.github.io/bgfx/tools.html#texture-compiler-texturec) is a handy command line tool similar to `nvcompress`, built on top of [bimg](https://github.com/bkaradzic/bimg).
* The venerable [ImageMagick](https://imagemagick.org/) still provides many valuable tools and utilities.
## Commercial Libraries
* [Oodle Texture](http://www.radgametools.com/oodletexture.htm) is a suite of commercial RDO texture codecs.
* [NVIDIA Texture Tools exporter](https://developer.nvidia.com/nvidia-texture-tools-exporter) is based on a private fork of this project and offers additional GPU accelerated codecs, but it's not open source.
-------------------------------
# NVIDIA Texture Tools [![Actions Status](https://github.com/castano/nvidia-texture-tools/workflows/build/badge.svg)](https://github.com/castano/nvidia-texture-tools/actions) ![MIT](https://img.shields.io/badge/license-MIT-blue.svg) [![GitHub](https://img.shields.io/badge/repo-github-green.svg)](https://github.com/castano/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)
Use the provided Visual Studio 2017 solution `project/vc2017/thekla.sln`.
### 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/nvtt/nvtt.h](https://github.com/castano/nvidia-texture-tools/blob/master/src/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/nvtt/tools/compress.cpp](https://github.com/castano/nvidia-texture-tools/blob/master/src/nvtt/tools/compress.cpp)
Detailed documentation of the API can be found at:
https://github.com/castano/nvidia-texture-tools/wiki/ApiDocumentation

View File

@ -1 +1 @@
2.1.2 2.0.8

7
buildpkg Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
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/,' *

View File

@ -0,0 +1,28 @@
# Assume i586 by default.
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)
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")
# 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`
ELSE(UNIX)
IF(WIN32)
SET (NV_SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITECTURE}")
ENDIF(WIN32)
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)

129
cmake/FindCg.cmake Normal file
View File

@ -0,0 +1,129 @@
#
# Try to find NVIDIA's Cg compiler, runtime libraries, and include path.
# 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_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)
CMAKE_FIND_FRAMEWORKS(Cg)
IF (Cg_FRAMEWORKS)
FOREACH(dir ${Cg_FRAMEWORKS})
SET(CG_FRAMEWORK_INCLUDES ${CG_FRAMEWORK_INCLUDES}
${dir}/Headers ${dir}/PrivateHeaders)
ENDFOREACH(dir)
# Find the include dir
FIND_PATH(CG_INCLUDE_PATH cg.h
${CG_FRAMEWORK_INCLUDES}
)
# Since we are using Cg framework, we must link to it.
# Note, we use weak linking, so that it works even when Cg is not available.
SET(CG_LIBRARY "-weak_framework Cg" CACHE STRING "Cg library")
SET(CG_GL_LIBRARY "-weak_framework Cg" CACHE STRING "Cg GL library")
ENDIF (Cg_FRAMEWORKS)
FIND_PROGRAM(CG_COMPILER cgc
/usr/bin
/usr/local/bin
DOC "The Cg compiler"
)
ELSE (APPLE)
IF (WIN32)
FIND_PROGRAM( CG_COMPILER cgc
$ENV{CG_BIN_PATH}
$ENV{PROGRAMFILES}/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)
ELSE (CG_COMPILER)
SET (CG_COMPILER_DIR .)
SET (CG_COMPILER_SUPER_DIR ..)
ENDIF (CG_COMPILER)
FIND_PATH( CG_INCLUDE_PATH Cg/cg.h
$ENV{CG_INC_PATH}
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/include
$ENV{PROGRAMFILES}/Cg
${PROJECT_SOURCE_DIR}/../Cg
${CG_COMPILER_SUPER_DIR}/include
${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"
)
ELSE (WIN32)
FIND_PROGRAM( CG_COMPILER cgc
/usr/bin
/usr/local/bin
DOC "The Cg Compiler"
)
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
/usr/include
/usr/local/include
${CG_COMPILER_SUPER_DIR}/include
DOC "The directory where Cg/cg.h resides"
)
FIND_LIBRARY( CG_LIBRARY Cg
PATHS
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/lib
${CG_COMPILER_SUPER_DIR}/lib64
${CG_COMPILER_SUPER_DIR}/lib
DOC "The Cg runtime library"
)
SET(CG_LIBRARY ${CG_LIBRARY} -lpthread)
FIND_LIBRARY( CG_GL_LIBRARY CgGL
PATHS
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/lib
${CG_COMPILER_SUPER_DIR}/lib64
${CG_COMPILER_SUPER_DIR}/lib
DOC "The Cg runtime library"
)
ENDIF (WIN32)
ENDIF (APPLE)
IF (CG_INCLUDE_PATH)
SET( CG_FOUND 1 CACHE STRING "Set to 1 if CG is found, 0 otherwise")
ELSE (CG_INCLUDE_PATH)
SET( CG_FOUND 0 CACHE STRING "Set to 1 if CG is found, 0 otherwise")
ENDIF (CG_INCLUDE_PATH)
MARK_AS_ADVANCED( CG_FOUND )

38
cmake/FindDirectX.cmake Normal file
View File

@ -0,0 +1,38 @@
IF (WIN32)
FIND_PATH(DX9_INCLUDE_PATH d3d9.h
PATHS
"$ENV{DXSDK_DIR}/Include"
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Include"
DOC "The directory where D3D9.h resides")
FIND_PATH(DX10_INCLUDE_PATH D3D10.h
PATHS
"$ENV{DXSDK_DIR}/Include"
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Include"
DOC "The directory where D3D10.h resides")
FIND_LIBRARY(D3D10_LIBRARY d3d10.lib
PATHS
"$ENV{DXSDK_DIR}/Lib/x86"
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Lib/x86"
DOC "The directory where d3d10.lib resides")
FIND_LIBRARY(D3DX10_LIBRARY d3dx10.lib
PATHS
"$ENV{DXSDK_DIR}/Lib/x86"
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Lib/x86"
DOC "The directory where d3dx10.lib resides")
SET(DX10_LIBRARIES ${D3D10_LIBRARY} ${D3DX10_LIBRARY})
ENDIF (WIN32)
IF (DX10_INCLUDE_PATH)
SET( DX10_FOUND 1 CACHE STRING "Set to 1 if CG is found, 0 otherwise")
ELSE (DX10_INCLUDE_PATH)
SET( DX10_FOUND 0 CACHE STRING "Set to 1 if CG is found, 0 otherwise")
ENDIF (DX10_INCLUDE_PATH)
MARK_AS_ADVANCED( DX10_FOUND )

47
cmake/FindGLEW.cmake Normal file
View File

@ -0,0 +1,47 @@
#
# Try to find GLEW library and include path.
# Once done this will define
#
# GLEW_FOUND
# GLEW_INCLUDE_PATH
# GLEW_LIBRARY
#
IF (WIN32)
FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h
$ENV{PROGRAMFILES}/GLEW/include
${PROJECT_SOURCE_DIR}/src/nvgl/glew/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")
ELSE (WIN32)
FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h
/usr/include
/usr/local/include
/sw/include
/opt/local/include
DOC "The directory where GL/glew.h resides")
FIND_LIBRARY( GLEW_LIBRARY
NAMES GLEW glew
PATHS
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/lib
/sw/lib
/opt/local/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 )

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
)

67
cmake/FindMaya.cmake Normal file
View File

@ -0,0 +1,67 @@
IF (WIN32)
# Maya plugins can only be compiled with msvc
IF (MSVC)
FIND_PATH(MAYA_INCLUDE_PATH maya/MTypes.h
PATHS
"$ENV{PROGRAMFILES}/Autodesk/Maya8.5/include"
"$ENV{MAYA_LOCATION}/include"
DOC "The directory where MTypes.h resides")
# Find maya version!
FIND_LIBRARY(MAYA_FOUNDATION_LIBRARY Foundation
PATHS
"$ENV{PROGRAMFILES}/Autodesk/Maya8.5/lib"
"$ENV{MAYA_LOCATION}/lib"
DOC "The directory where Foundation.lib resides")
FIND_LIBRARY(MAYA_OPENMAYA_LIBRARY OpenMaya
PATHS
"$ENV{PROGRAMFILES}/Autodesk/Maya8.5/lib"
"$ENV{MAYA_LOCATION}/lib"
DOC "The directory where OpenMaya.lib resides")
FIND_LIBRARY(MAYA_OPENMAYAANIM_LIBRARY OpenMayaAnim
PATHS
"$ENV{PROGRAMFILES}/Autodesk/Maya8.5/lib"
"$ENV{MAYA_LOCATION}/lib"
DOC "The directory where OpenMayaAnim.lib resides")
SET(MAYA_LIBRARIES
${MAYA_FOUNDATION_LIBRARY}
${MAYA_OPENMAYA_LIBRARY}
${MAYA_OPENMAYAANIM_LIBRARY})
SET(MAYA_EXTENSION ".mll")
ENDIF (MSVC)
ELSE (WIN32)
# On linux, check gcc version.
# OSX and Linux
FIND_PATH(MAYA_INCLUDE_PATH maya/MTypes.h
PATHS
/usr/autodesk/maya/include
$ENV{MAYA_LOCATION}/include
DOC "The directory where MTypes.h resides")
# TODO
ENDIF (WIN32)
IF (MAYA_INCLUDE_PATH)
SET( MAYA_FOUND 1 CACHE STRING "Set to 1 if Maya is found, 0 otherwise")
ELSE (MAYA_INCLUDE_PATH)
SET( MAYA_FOUND 0 CACHE STRING "Set to 1 if Maya is found, 0 otherwise")
ENDIF (MAYA_INCLUDE_PATH)
MARK_AS_ADVANCED( MAYA_FOUND )

75
cmake/FindOpenEXR.cmake Normal file
View File

@ -0,0 +1,75 @@
#
# Try to find OpenEXR's libraries, and include path.
# Once done this will define:
#
# OPENEXR_FOUND = OpenEXR found.
# OPENEXR_INCLUDE_PATHS = OpenEXR include directories.
# OPENEXR_LIBRARIES = libraries that are needed to use OpenEXR.
#
INCLUDE(FindZLIB)
IF(ZLIB_FOUND)
SET(LIBRARY_PATHS
/usr/lib
/usr/local/lib
/sw/lib
/opt/local/lib
$ENV{PROGRAM_FILES}/OpenEXR/lib/static)
FIND_PATH(OPENEXR_INCLUDE_PATH ImfRgbaFile.h
PATH_SUFFIXES OpenEXR
/usr/include
/usr/local/include
/sw/include
/opt/local/include)
FIND_LIBRARY(OPENEXR_HALF_LIBRARY
NAMES Half
PATHS ${LIBRARY_PATHS})
FIND_LIBRARY(OPENEXR_IEX_LIBRARY
NAMES Iex
PATHS ${LIBRARY_PATHS})
FIND_LIBRARY(OPENEXR_IMATH_LIBRARY
NAMES Imath
PATHS ${LIBRARY_PATHS})
FIND_LIBRARY(OPENEXR_ILMIMF_LIBRARY
NAMES IlmImf
PATHS ${LIBRARY_PATHS})
FIND_LIBRARY(OPENEXR_ILMTHREAD_LIBRARY
NAMES IlmThread
PATHS ${LIBRARY_PATHS})
ENDIF(ZLIB_FOUND)
#MESSAGE(STATUS ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_HALF_LIBRARY} ${OPENEXR_ILMTHREAD_LIBRARY} ${ZLIB_LIBRARY})
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} ${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)
IF(NOT OPENEXR_FIND_QUIETLY)
MESSAGE(STATUS "Found OpenEXR: ${OPENEXR_ILMIMF_LIBRARY}")
ENDIF(NOT OPENEXR_FIND_QUIETLY)
ELSE(OPENEXR_FOUND)
IF(OPENEXR_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find OpenEXR library")
ENDIF(OPENEXR_FIND_REQUIRED)
ENDIF(OPENEXR_FOUND)
MARK_AS_ADVANCED(
OPENEXR_INCLUDE_PATHS
OPENEXR_LIBRARIES
OPENEXR_ILMIMF_LIBRARY
OPENEXR_IMATH_LIBRARY
OPENEXR_IEX_LIBRARY
OPENEXR_HALF_LIBRARY)

View File

@ -1,11 +1,35 @@
INCLUDE(${NV_CMAKE_DIR}/DetermineProcessor.cmake)
# Set optimal options for gcc: # Set optimal options for gcc:
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") IF(CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") IF(NV_SYSTEM_PROCESSOR STREQUAL "i586")
ENDIF() SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i586")
ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "i586")
IF(NV_SYSTEM_PROCESSOR STREQUAL "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} -march=pentium4")
ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "i686")
IF(NV_SYSTEM_PROCESSOR STREQUAL "x86_64")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=athlon64")
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=athlon64 -msse3")
ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "x86_64")
IF(NV_SYSTEM_PROCESSOR STREQUAL "powerpc")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=powerpc -maltivec -mabi=altivec -mpowerpc-gfxopt")
# ibook G4:
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=7450 -mtune=7450 -maltivec -mabi=altivec -mpowerpc-gfxopt")
ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "powerpc")
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
IF(MSVC) IF(MSVC)
# @@ Some of these might only be available in VC8.
# Code generation flags. # Code generation flags.
# SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /arch:SSE2 /fp:fast") # SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /arch:SSE2 /fp:fast")
# SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2 /fp:fast") # SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2 /fp:fast")

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

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