diff --git a/project/vc9/Nvidia.TextureTools/Nvidia.TextureTools.csproj b/project/vc9/Nvidia.TextureTools/Nvidia.TextureTools.csproj
new file mode 100644
index 0000000..e52efae
--- /dev/null
+++ b/project/vc9/Nvidia.TextureTools/Nvidia.TextureTools.csproj
@@ -0,0 +1,52 @@
+
+
+ Debug
+ AnyCPU
+ 8.0.50727
+ 2.0
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}
+ Library
+ Properties
+ Nvidia.TextureTools
+ Nvidia.TextureTools
+
+
+ 2.0
+
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/project/vc9/Nvidia.TextureTools/Properties/AssemblyInfo.cs b/project/vc9/Nvidia.TextureTools/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..ecd652e
--- /dev/null
+++ b/project/vc9/Nvidia.TextureTools/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Nvidia.TextureTools")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("NVIDIA Corporation")]
+[assembly: AssemblyProduct("Nvidia.TextureTools")]
+[assembly: AssemblyCopyright("Copyright © NVIDIA 2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("5fa03fb3-b7a3-4ba8-90e7-545929731356")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/project/vc9/Nvidia.TextureTools/TextureTools.cs b/project/vc9/Nvidia.TextureTools/TextureTools.cs
new file mode 100644
index 0000000..74cdc9b
--- /dev/null
+++ b/project/vc9/Nvidia.TextureTools/TextureTools.cs
@@ -0,0 +1,526 @@
+using System;
+using System.Security;
+using System.Runtime.InteropServices;
+
+namespace Nvidia.TextureTools
+{
+ #region Enums
+
+ #region public enum Format
+ ///
+ /// Compression format.
+ ///
+ public enum Format
+ {
+ // No compression.
+ RGB,
+ RGBA = RGB,
+
+ // DX9 formats.
+ DXT1,
+ DXT1a,
+ DXT3,
+ DXT5,
+ DXT5n,
+
+ // DX10 formats.
+ BC1 = DXT1,
+ BC1a = DXT1a,
+ BC2 = DXT3,
+ BC3 = DXT5,
+ BC3n = DXT5n,
+ BC4,
+ BC5,
+ }
+ #endregion
+
+ #region public enum Quality
+ ///
+ /// Quality modes.
+ ///
+ public enum Quality
+ {
+ Fastest,
+ Normal,
+ Production,
+ Highest,
+ }
+ #endregion
+
+ #region public enum WrapMode
+ ///
+ /// Wrap modes.
+ ///
+ public enum WrapMode
+ {
+ Clamp,
+ Repeat,
+ Mirror,
+ }
+ #endregion
+
+ #region public enum TextureType
+ ///
+ /// Texture types.
+ ///
+ public enum TextureType
+ {
+ Texture2D,
+ TextureCube,
+ }
+ #endregion
+
+ #region public enum InputFormat
+ ///
+ /// Input formats.
+ ///
+ public enum InputFormat
+ {
+ BGRA_8UB
+ }
+ #endregion
+
+ #region public enum MipmapFilter
+ ///
+ /// Mipmap downsampling filters.
+ ///
+ public enum MipmapFilter
+ {
+ Box,
+ Triangle,
+ Kaiser
+ }
+ #endregion
+
+ #region public enum ColorTransform
+ ///
+ /// Color transformation.
+ ///
+ public enum ColorTransform
+ {
+ None,
+ Linear
+ }
+ #endregion
+
+ #region public enum RoundMode
+ ///
+ /// Extents rounding mode.
+ ///
+ public enum RoundMode
+ {
+ None,
+ ToNextPowerOfTwo,
+ ToNearestPowerOfTwo,
+ ToPreviousPowerOfTwo
+ }
+ #endregion
+
+ #region public enum AlphaMode
+ ///
+ /// Alpha mode.
+ ///
+ public enum AlphaMode
+ {
+ None,
+ Transparency,
+ Premultiplied
+ }
+ #endregion
+
+ #region public enum Error
+ ///
+ /// Error codes.
+ ///
+ public enum Error
+ {
+ InvalidInput,
+ UserInterruption,
+ UnsupportedFeature,
+ CudaError,
+ Unknown,
+ FileOpen,
+ FileWrite,
+ }
+ #endregion
+
+ #endregion
+
+ #region public class InputOptions
+ ///
+ /// Input options.
+ ///
+ public class InputOptions
+ {
+ #region Bindings
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static IntPtr nvttCreateInputOptions();
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttDestroyInputOptions(IntPtr inputOptions);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsTextureLayout(IntPtr inputOptions, TextureType type, int w, int h, int d);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttResetInputOptionsTextureLayout(IntPtr inputOptions);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static bool nvttSetInputOptionsMipmapData(IntPtr inputOptions, IntPtr data, int w, int h, int d, int face, int mipmap);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsFormat(IntPtr inputOptions, InputFormat format);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsAlphaMode(IntPtr inputOptions, AlphaMode alphaMode);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsGamma(IntPtr inputOptions, float inputGamma, float outputGamma);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsWrapMode(IntPtr inputOptions, WrapMode mode);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsMipmapFilter(IntPtr inputOptions, MipmapFilter filter);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsMipmapGeneration(IntPtr inputOptions, bool generateMipmaps, int maxLevel);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsKaiserParameters(IntPtr inputOptions, float width, float alpha, float stretch);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsNormalMap(IntPtr inputOptions, bool b);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsConvertToNormalMap(IntPtr inputOptions, bool convert);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsHeightEvaluation(IntPtr inputOptions, float redScale, float greenScale, float blueScale, float alphaScale);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsNormalFilter(IntPtr inputOptions, float small, float medium, float big, float large);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsNormalizeMipmaps(IntPtr inputOptions, bool b);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsColorTransform(IntPtr inputOptions, ColorTransform t);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsLinearTransfrom(IntPtr inputOptions, int channel, float w0, float w1, float w2, float w3);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsMaxExtents(IntPtr inputOptions, int d);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetInputOptionsRoundMode(IntPtr inputOptions, RoundMode mode);
+ #endregion
+
+ internal IntPtr options;
+
+ public InputOptions()
+ {
+ options = nvttCreateInputOptions();
+ }
+ ~InputOptions()
+ {
+ nvttDestroyInputOptions(options);
+ }
+
+ public void SetTextureLayout(TextureType type, int w, int h, int d)
+ {
+ nvttSetInputOptionsTextureLayout(options, type, w, h, d);
+ }
+ public void ResetTextureLayout()
+ {
+ nvttResetInputOptionsTextureLayout(options);
+ }
+
+ public void SetMipmapData(IntPtr data, int width, int height, int depth, int face, int mipmap)
+ {
+ nvttSetInputOptionsMipmapData(options, data, width, height, depth, face, mipmap);
+ }
+
+ public void SetFormat(InputFormat format)
+ {
+ nvttSetInputOptionsFormat(options, format);
+ }
+
+ public void SetAlphaMode(AlphaMode alphaMode)
+ {
+ nvttSetInputOptionsAlphaMode(options, alphaMode);
+ }
+
+ public void SetGamma(float inputGamma, float outputGamma)
+ {
+ nvttSetInputOptionsGamma(options, inputGamma, outputGamma);
+ }
+
+ public void SetWrapMode(WrapMode wrapMode)
+ {
+ nvttSetInputOptionsWrapMode(options, wrapMode);
+ }
+
+ public void SetMipmapFilter(MipmapFilter filter)
+ {
+ nvttSetInputOptionsMipmapFilter(options, filter);
+ }
+
+ public void SetMipmapGeneration(bool enabled)
+ {
+ nvttSetInputOptionsMipmapGeneration(options, enabled, -1);
+ }
+
+ public void SetMipmapGeneration(bool enabled, int maxLevel)
+ {
+ nvttSetInputOptionsMipmapGeneration(options, enabled, maxLevel);
+ }
+
+ public void SetKaiserParameters(float width, float alpha, float stretch)
+ {
+ nvttSetInputOptionsKaiserParameters(options, width, alpha, stretch);
+ }
+
+ public void SetNormalMap(bool b)
+ {
+ nvttSetInputOptionsNormalMap(options, b);
+ }
+
+ public void SetConvertToNormalMap(bool convert)
+ {
+ nvttSetInputOptionsConvertToNormalMap(options, convert);
+ }
+
+ public void SetHeightEvaluation(float redScale, float greenScale, float blueScale, float alphaScale)
+ {
+ nvttSetInputOptionsHeightEvaluation(options, redScale, greenScale, blueScale, alphaScale);
+ }
+
+ public void SetNormalFilter(float small, float medium, float big, float large)
+ {
+ nvttSetInputOptionsNormalFilter(options, small, medium, big, large);
+ }
+
+ public void SetNormalizeMipmaps(bool b)
+ {
+ nvttSetInputOptionsNormalizeMipmaps(options, b);
+ }
+
+ public void SetColorTransform(ColorTransform t)
+ {
+ nvttSetInputOptionsColorTransform(options, t);
+ }
+
+ public void SetLinearTransfrom(int channel, float w0, float w1, float w2, float w3)
+ {
+ nvttSetInputOptionsLinearTransfrom(options, channel, w0, w1, w2, w3);
+ }
+
+ public void SetMaxExtents(int dim)
+ {
+ nvttSetInputOptionsMaxExtents(options, dim);
+ }
+
+ public void SetRoundMode(RoundMode mode)
+ {
+ nvttSetInputOptionsRoundMode(options, mode);
+ }
+ }
+ #endregion
+
+ #region public class CompressionOptions
+ ///
+ /// Compression options.
+ ///
+ public class CompressionOptions
+ {
+ #region Bindings
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static IntPtr nvttCreateCompressionOptions();
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttDestroyCompressionOptions(IntPtr compressionOptions);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetCompressionOptionsFormat(IntPtr compressionOptions, Format format);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetCompressionOptionsQuality(IntPtr compressionOptions, Quality quality);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetCompressionOptionsColorWeights(IntPtr compressionOptions, float red, float green, float blue, float alpha);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetCompressionOptionsPixelFormat(IntPtr compressionOptions, uint bitcount, uint rmask, uint gmask, uint bmask, uint amask);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetCompressionOptionsQuantization(IntPtr compressionOptions, bool colorDithering, bool alphaDithering, bool binaryAlpha, int alphaThreshold);
+ #endregion
+
+ internal IntPtr options;
+
+ public CompressionOptions()
+ {
+ options = nvttCreateCompressionOptions();
+ }
+ ~CompressionOptions()
+ {
+ nvttDestroyCompressionOptions(options);
+ }
+
+ public void SetFormat(Format format)
+ {
+ nvttSetCompressionOptionsFormat(options, format);
+ }
+
+ public void SetQuality(Quality quality)
+ {
+ nvttSetCompressionOptionsQuality(options, quality);
+ }
+
+ public void SetColorWeights(float red, float green, float blue)
+ {
+ nvttSetCompressionOptionsColorWeights(options, red, green, blue, 1.0f);
+ }
+
+ public void SetColorWeights(float red, float green, float blue, float alpha)
+ {
+ nvttSetCompressionOptionsColorWeights(options, red, green, blue, alpha);
+ }
+
+ public void SetPixelFormat(uint bitcount, uint rmask, uint gmask, uint bmask, uint amask)
+ {
+ nvttSetCompressionOptionsPixelFormat(options, bitcount, rmask, gmask, bmask, amask);
+ }
+
+ public void SetQuantization(bool colorDithering, bool alphaDithering, bool binaryAlpha)
+ {
+ nvttSetCompressionOptionsQuantization(options, colorDithering, alphaDithering, binaryAlpha, 127);
+ }
+
+ public void SetQuantization(bool colorDithering, bool alphaDithering, bool binaryAlpha, int alphaThreshold)
+ {
+ nvttSetCompressionOptionsQuantization(options, colorDithering, alphaDithering, binaryAlpha, alphaThreshold);
+ }
+ }
+ #endregion
+
+ #region public class OutputOptions
+ ///
+ /// Output options.
+ ///
+ public class OutputOptions
+ {
+ #region Delegates
+ public delegate void ErrorHandler(Error error);
+ private delegate void WriteDataDelegate(IntPtr data, int size);
+ private delegate void ImageDelegate(int size, int width, int height, int depth, int face, int miplevel);
+ #endregion
+
+ #region Bindings
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static IntPtr nvttCreateOutputOptions();
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttDestroyOutputOptions(IntPtr outputOptions);
+
+ [DllImport("nvtt", CharSet = CharSet.Ansi), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetOutputOptionsFileName(IntPtr outputOptions, string fileName);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetOutputOptionsErrorHandler(IntPtr outputOptions, ErrorHandler errorHandler);
+
+ private void ErrorCallback(Error error)
+ {
+ if (Error != null) Error(error);
+ }
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttSetOutputOptionsOutputHeader(IntPtr outputOptions, bool b);
+
+ //[DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ //private extern static void nvttSetOutputOptionsOutputHandler(IntPtr outputOptions, WriteDataDelegate writeData, ImageDelegate image);
+
+ #endregion
+
+ internal IntPtr options;
+
+ public OutputOptions()
+ {
+ options = nvttCreateOutputOptions();
+ nvttSetOutputOptionsErrorHandler(options, new ErrorHandler(ErrorCallback));
+ }
+ ~OutputOptions()
+ {
+ nvttDestroyOutputOptions(options);
+ }
+
+ public void SetFileName(string fileName)
+ {
+ nvttSetOutputOptionsFileName(options, fileName);
+ }
+
+ public event ErrorHandler Error;
+
+ public void SetOutputHeader(bool b)
+ {
+ nvttSetOutputOptionsOutputHeader(options, b);
+ }
+
+ // @@ Add OutputHandler interface.
+ }
+ #endregion
+
+ #region public static class Compressor
+ public class Compressor
+ {
+ #region Bindings
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static IntPtr nvttCreateCompressor();
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static void nvttDestroyCompressor(IntPtr compressor);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static bool nvttCompress(IntPtr compressor, IntPtr inputOptions, IntPtr compressionOptions, IntPtr outputOptions);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private extern static int nvttEstimateSize(IntPtr compressor, IntPtr inputOptions, IntPtr compressionOptions);
+
+ [DllImport("nvtt"), SuppressUnmanagedCodeSecurity]
+ private static extern IntPtr nvttErrorString(Error error);
+
+ #endregion
+
+ internal IntPtr compressor;
+
+ public Compressor()
+ {
+ compressor = nvttCreateCompressor();
+ }
+
+ ~Compressor()
+ {
+ nvttDestroyCompressor(compressor);
+ }
+
+ public bool Compress(InputOptions input, CompressionOptions compression, OutputOptions output)
+ {
+ return nvttCompress(compressor, input.options, compression.options, output.options);
+ }
+
+ public int EstimateSize(InputOptions input, CompressionOptions compression)
+ {
+ return nvttEstimateSize(compressor, input.options, compression.options);
+ }
+
+ public static string ErrorString(Error error)
+ {
+ return Marshal.PtrToStringAnsi(nvttErrorString(error));
+ }
+
+ }
+ #endregion
+
+} // Nvidia.TextureTools namespace
diff --git a/project/vc9/NvidiaTextureToolsProcessor/NvidiaTextureProcessor.cs b/project/vc9/NvidiaTextureToolsProcessor/NvidiaTextureProcessor.cs
new file mode 100644
index 0000000..21943a7
--- /dev/null
+++ b/project/vc9/NvidiaTextureToolsProcessor/NvidiaTextureProcessor.cs
@@ -0,0 +1,482 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Content.Pipeline;
+using Microsoft.Xna.Framework.Content.Pipeline.Graphics;
+using Microsoft.Xna.Framework.Content.Pipeline.Processors;
+using Nvidia.TextureTools;
+using System.Runtime.InteropServices;
+using System.ComponentModel;
+using System.IO;
+
+
+namespace NvidiaTextureToolsProcessor
+{
+
+ [ContentProcessor(DisplayName = "NvidiaTextureProcessor")]
+ public class NvidiaTextureProcessor : ContentProcessor
+ {
+ // Note: We dont expose all of Texture Tools formats since XNA does not support the custom formats(eg ATI1 / ATI2 etc).
+ // Plus we can use some friendlier/more consistant names
+ public enum TextureOutputFormat
+ {
+ Colour,
+ Normals,
+
+ DXT1,
+ DXT1a, // With 1 bit alpha
+ DXT3,
+ DXT5,
+ DXT5n, // Compressed Normals HILO: R=1, G=y, B=0, A=x
+ }
+
+ bool convertToNormalMap = false;
+
+ bool generateMipmaps = true;
+ int maxMipLevel = -1;
+
+ float inputGamma = 2.2f;
+ float outputGamma = 2.2f;
+
+ TextureOutputFormat textureFormat = TextureOutputFormat.DXT1;
+ Quality quality = Quality.Normal;
+ WrapMode wrapMode = WrapMode.Mirror;
+ MipmapFilter mipMapFilter = MipmapFilter.Box;
+ RoundMode roundMode = RoundMode.None;
+ AlphaMode alphaMode = AlphaMode.None;
+
+ bool enableCuda = true;
+
+ [DisplayName("Convert To Normal Map")]
+ [DefaultValue(false)]
+ [Description("When true the input data is converted from colour/height data into a normal map if the output is a normal map.")]
+ [Category("Input")]
+ public bool ConvertToNormalMap
+ {
+ get { return convertToNormalMap; }
+ set { convertToNormalMap = value; }
+ }
+
+ [DisplayName("Generate Mip Maps")]
+ [DefaultValue(true)]
+ [Description("When set to true the processor will generate mip maps")]
+ [Category("Mip Mapping")]
+ public bool GenerateMipmaps
+ {
+ get { return generateMipmaps; }
+ set { generateMipmaps = value; }
+ }
+
+ [DisplayName("Max Mip Map Level")]
+ [DefaultValue(-1)]
+ [Description("Setting the max mip map level allows partial mip map chains to be generated. -1 generates all levels if mip map generation is enabled.")]
+ [Category("Mip Mapping")]
+ public int MaxMipMapLevel
+ {
+ get { return maxMipLevel; }
+ set { maxMipLevel = value; }
+ }
+
+ [DisplayName("Input Gamma")]
+ [DefaultValue(2.2f)]
+ [Description("The gamma conversion performed before mip map generation, for best results mip maps should be generated in linear colour space.")]
+ [Category("Gamma")]
+ public float InputGamma
+ {
+ get { return inputGamma; }
+ set { inputGamma = value; }
+ }
+
+ [DisplayName("Output Gamma")]
+ [DefaultValue(2.2f)]
+ [Description("The gamma conversion applied during output. In general this should be left at 2.2 for LDR images.")]
+ [Category("Gamma")]
+ public float OutputGamma
+ {
+ get { return outputGamma; }
+ set { outputGamma = value; }
+ }
+
+ [DisplayName("Texture Output Format")]
+ [DefaultValue(TextureOutputFormat.DXT1)]
+ [Description("The format which the processor generates, Color means no compression, DXT1 if useful for textures with no alpha, DXT5 for textures with alpha and DXT5n for normal maps.")]
+ [Category("Output")]
+ public TextureOutputFormat TextureFormat
+ {
+ get { return textureFormat; }
+ set { textureFormat = value; }
+ }
+
+ [DisplayName("Compression Quality")]
+ [DefaultValue(Quality.Normal)]
+ [Description("Specifies the amount of time the processor will spend trying to find the best quality compression. Highest should only be used for testing as it uses a brute force approach.")]
+ [Category("Output")]
+ public Quality Quality
+ {
+ get { return quality; }
+ set { quality = value; }
+ }
+
+ [DisplayName("Wrap Mode")]
+ [DefaultValue(WrapMode.Mirror)]
+ [Description("Specifying the wrap mode used for the texture can sometimes improve the quality of filtering. In general Mirror should give good results.")]
+ [Category("Input")]
+ public WrapMode WrapMode
+ {
+ get { return wrapMode; }
+ set { wrapMode = value; }
+ }
+
+ [DisplayName("Mip Map Filter")]
+ [DefaultValue(MipmapFilter.Box)]
+ [Description("Specifies which filter to use for down sampling mip maps. Box generally gives good results, Triangle will often appear blurry and Kaiser is the slowest but best quality.")]
+ [Category("Mip Mapping")]
+ public MipmapFilter MipMapFilter
+ {
+ get { return mipMapFilter; }
+ set { mipMapFilter = value; }
+ }
+
+ [DisplayName("Texture Size Rounding Mode")]
+ [DefaultValue(RoundMode.None)]
+ [Description("Setting the rounding mode allows the texture to be resized to a power of 2, often needed for less capable hardware.")]
+ [Category("Input")]
+ public RoundMode TextureRoundingMode
+ {
+ get { return roundMode; }
+ set { roundMode = value; }
+ }
+
+ [DisplayName("Alpha Mode")]
+ [DefaultValue(AlphaMode.None)]
+ [Description("Setting the alpha mode allows improved quality when generating mip maps.")]
+ [Category("Input")]
+ public AlphaMode AlphaMode
+ {
+ get { return alphaMode; }
+ set { alphaMode = value; }
+ }
+
+ [DisplayName("Enable Cuda")]
+ [DefaultValue(true)]
+ [Description("When true Cuda will be utilised if available.")]
+ [Category("Compressor")]
+ public bool EnableCuda
+ {
+ get { return enableCuda; }
+ set { enableCuda = value; }
+ }
+
+ public override TextureContent Process(TextureContent input, ContentProcessorContext context)
+ {
+ //System.Diagnostics.Debugger.Launch();
+
+ input.Validate();
+
+ try
+ {
+
+ using (CompressorOptionsBundle compressor = new CompressorOptionsBundle())
+ {
+ compressor.InputOptions.ResetTextureLayout();
+
+ TextureType textureType = FindTextureType(input);
+
+ /*
+ * Set options
+ */
+
+ compressor.InputOptions.SetTextureLayout(textureType, input.Faces[0][0].Width, input.Faces[0][0].Height, 1);
+ compressor.InputOptions.SetFormat(InputFormat.BGRA_8UB);
+ compressor.InputOptions.SetAlphaMode(AlphaMode);
+ compressor.InputOptions.SetMipmapFilter(MipMapFilter);
+ compressor.InputOptions.SetMipmapGeneration(GenerateMipmaps, MaxMipMapLevel);
+ compressor.InputOptions.SetRoundMode(TextureRoundingMode);
+ compressor.InputOptions.SetWrapMode(WrapMode);
+
+ compressor.InputOptions.SetGamma(InputGamma, OutputGamma);
+ compressor.InputOptions.SetNormalizeMipmaps(false);
+ compressor.InputOptions.SetNormalMap(false);
+ compressor.InputOptions.SetConvertToNormalMap(false);
+
+ compressor.CompressionOptions.SetQuality(Quality);
+
+ GeneralOutputHandler outputHandler;
+
+ switch (TextureFormat)
+ {
+ case TextureOutputFormat.Colour:
+ compressor.CompressionOptions.SetFormat(Format.RGBA);
+ outputHandler = new PixelOutputHandler(textureType);
+ break;
+
+ case TextureOutputFormat.Normals:
+ compressor.CompressionOptions.SetFormat(Format.RGBA);
+ outputHandler = new PixelOutputHandler(textureType);
+
+ compressor.InputOptions.SetNormalizeMipmaps(true);
+ compressor.InputOptions.SetNormalMap(true);
+ compressor.InputOptions.SetConvertToNormalMap(ConvertToNormalMap);
+ compressor.InputOptions.SetGamma(1.0f, 1.0f);
+ break;
+
+ case TextureOutputFormat.DXT1:
+ compressor.CompressionOptions.SetFormat(Format.DXT1);
+ outputHandler = new Dxt1OutputHandler(textureType);
+ break;
+
+ case TextureOutputFormat.DXT1a:
+ compressor.CompressionOptions.SetFormat(Format.DXT1a);
+ outputHandler = new Dxt1OutputHandler(textureType);
+ break;
+
+ case TextureOutputFormat.DXT3:
+ compressor.CompressionOptions.SetFormat(Format.DXT3);
+ outputHandler = new Dxt3OutputHandler(textureType);
+ break;
+
+ case TextureOutputFormat.DXT5:
+ compressor.CompressionOptions.SetFormat(Format.DXT5);
+ outputHandler = new Dxt5OutputHandler(textureType);
+ break;
+
+ case TextureOutputFormat.DXT5n:
+ //FIXME: We force fastest quality since the normal compression mode is _very_ slow.
+ compressor.CompressionOptions.SetQuality(Quality.Fastest);
+
+ compressor.CompressionOptions.SetFormat(Format.DXT5n);
+
+ compressor.InputOptions.SetNormalizeMipmaps(true);
+ compressor.InputOptions.SetNormalMap(true);
+ compressor.InputOptions.SetConvertToNormalMap(ConvertToNormalMap);
+ compressor.InputOptions.SetGamma(1.0f, 1.0f);
+
+ outputHandler = new Dxt5OutputHandler(textureType);
+ break;
+
+ default:
+ throw new NotSupportedException("Unknown texture output format: " + TextureFormat);
+ }
+
+ /*
+ * Set input data
+ */
+
+ //TODO: Use a float format when texture tools support it.
+ input.ConvertBitmapType(typeof(PixelBitmapContent));
+
+ for (int i = 0; i < input.Faces.Count; i++)
+ {
+ MipmapChain mipChain = input.Faces[i];
+
+ for (int j = 0; j < mipChain.Count; j++)
+ {
+ BitmapContent bitmap = mipChain[j];
+
+ byte[] bitmapData = bitmap.GetPixelData();
+
+ //FIXME: When we move to XNA 4 the layout of Color will change, hence we need to swizzle the input.
+ compressor.InputOptions.SetMipmapData(bitmapData, bitmap.Width, bitmap.Height, 1, i, j);
+ }
+ }
+
+ /*
+ * Setup output
+ */
+
+
+ compressor.OutputOptions.SetOutputHandler(outputHandler);
+ compressor.OutputOptions.SetOutputHeader(false);
+
+ /*
+ * Go!
+ */
+ compressor.Compressor.SetEnableCuda(EnableCuda);
+
+ compressor.Compress();
+ /*
+ * Check the output makes sense.
+ */
+
+ outputHandler.OutputTextureContent.Validate();
+
+ return outputHandler.OutputTextureContent;
+ }
+ }
+ catch (TextureToolsException ttexcept)
+ {
+ throw ConvertException(ttexcept);
+ }
+ }
+
+ private TextureType FindTextureType(TextureContent input)
+ {
+ if (input is Texture2DContent)
+ return TextureType.Texture2D;
+ else if (input is TextureCubeContent)
+ return TextureType.TextureCube;
+ else
+ throw new InvalidContentException("Invalid texture type, cube maps are not supported", input.Identity);
+ }
+
+
+ private Exception ConvertException(TextureToolsException ttexcept)
+ {
+ switch (ttexcept.ErrorCode)
+ {
+ case Error.UnsupportedFeature:
+ return new NotSupportedException("Attempt to use a unsupported feature of NVIDIA Texture Tools",ttexcept);
+
+ case Error.InvalidInput:
+ return new InvalidContentException("Invalid input to NVIDIA texture tools", ttexcept);
+
+ case Error.CudaError:
+ case Error.Unknown:
+ return new InvalidOperationException("NVIDIA Texture Tools returned the following error: " + ttexcept.Message, ttexcept);
+
+ case Error.FileOpen:
+ case Error.FileWrite:
+ return new IOException("NVIDIA Texture Tools returned the following error: " + ttexcept.Message, ttexcept);
+
+ default:
+ return new InvalidOperationException("NVIDIA Texture Tools returned an unknown error: " + ttexcept.Message, ttexcept);
+ }
+ }
+
+ private class Dxt1OutputHandler : GeneralOutputHandler
+ {
+ public Dxt1OutputHandler(TextureType textureType) : base(textureType)
+ {
+ }
+
+ protected override BitmapContent CreateBitmapContent(int width, int height)
+ {
+ return new Dxt1BitmapContent(width, height);
+ }
+ }
+
+ private class Dxt3OutputHandler : GeneralOutputHandler
+ {
+ public Dxt3OutputHandler(TextureType textureType)
+ : base(textureType)
+ {
+ }
+
+ protected override BitmapContent CreateBitmapContent(int width, int height)
+ {
+ return new Dxt3BitmapContent(width, height);
+ }
+ }
+
+ private class Dxt5OutputHandler : GeneralOutputHandler
+ {
+ public Dxt5OutputHandler(TextureType textureType)
+ : base(textureType)
+ {
+ }
+
+ protected override BitmapContent CreateBitmapContent(int width, int height)
+ {
+ return new Dxt5BitmapContent(width, height);
+ }
+ }
+
+ private class PixelOutputHandler : GeneralOutputHandler
+ where T : struct, System.IEquatable
+ {
+ public PixelOutputHandler(TextureType textureType)
+ : base(textureType)
+ {
+ }
+
+ protected override BitmapContent CreateBitmapContent(int width, int height)
+ {
+ return new PixelBitmapContent(width, height);
+ }
+ }
+
+ private abstract class GeneralOutputHandler : OutputHandlerBase
+ {
+ TextureContent outputTextureContent;
+
+ byte[] tempBitmapData;
+
+ int dataWidth = -1;
+ int dataHeight = -1;
+ int dataSize = -1;
+
+ int faceIndex = -1;
+ int mipIndex = -1;
+ int dataIndex = 0;
+
+ public TextureContent OutputTextureContent
+ {
+ get
+ {
+ CommitLevel();
+ return outputTextureContent;
+ }
+ }
+
+ protected GeneralOutputHandler(TextureType textureType)
+ {
+ switch (textureType)
+ {
+ case TextureType.Texture2D:
+ outputTextureContent = new Texture2DContent();
+ break;
+
+ case TextureType.TextureCube:
+ outputTextureContent = new TextureCubeContent();
+ break;
+
+ default:
+ throw new NotSupportedException("Unknown texture type: " + textureType);
+ }
+ }
+
+ protected override void BeginImage(int size, int width, int height, int depth, int face, int miplevel)
+ {
+ CommitLevel();
+
+ dataIndex = 0;
+ mipIndex = miplevel;
+ faceIndex = face;
+
+ dataWidth = width;
+ dataHeight = height;
+ dataSize = size;
+
+ tempBitmapData = new byte[size];
+ }
+
+ protected override void WriteData(byte[] dataBuffer, int startIndex, int count)
+ {
+ Array.Copy(dataBuffer, startIndex, tempBitmapData, dataIndex, count);
+ dataIndex += count;
+ }
+
+ protected abstract BitmapContent CreateBitmapContent(int width, int height);
+
+ private void CommitLevel()
+ {
+ if (faceIndex >= 0)
+ {
+ BitmapContent newBitmap = CreateBitmapContent(dataWidth, dataHeight);
+
+ newBitmap.SetPixelData(tempBitmapData);
+
+ outputTextureContent.Faces[faceIndex].Add(newBitmap);
+
+ dataSize = -1;
+ dataWidth = dataHeight = -1;
+ faceIndex = -1;
+ mipIndex = -1;
+ dataIndex = 0;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/project/vc9/NvidiaTextureToolsProcessor/NvidiaTextureToolsProcessor.csproj b/project/vc9/NvidiaTextureToolsProcessor/NvidiaTextureToolsProcessor.csproj
new file mode 100644
index 0000000..34b581d
--- /dev/null
+++ b/project/vc9/NvidiaTextureToolsProcessor/NvidiaTextureToolsProcessor.csproj
@@ -0,0 +1,122 @@
+
+
+ {F4446AE2-B5E1-4D17-B33C-275A6770FD50}
+ Debug
+ x86
+ Library
+ Properties
+ NvidiaTextureToolsProcessor
+ NvidiaTextureToolsProcessor
+ v3.1
+ v3.5
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ x86
+ Windows
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ x86
+ Windows
+
+
+ true
+ full
+ false
+ bin\Xbox 360\Debug
+ DEBUG;TRACE
+ prompt
+ 4
+ false
+ x86
+ Xbox 360
+
+
+ pdbonly
+ true
+ bin\Xbox 360\Release
+ TRACE
+ prompt
+ 4
+ false
+ x86
+ Xbox 360
+
+
+ true
+ full
+ false
+ bin\Zune\Debug
+ DEBUG;TRACE
+ prompt
+ 4
+ false
+ x86
+ Zune
+
+
+ pdbonly
+ true
+ bin\Zune\Release
+ TRACE
+ prompt
+ 4
+ false
+ x86
+ Zune
+
+
+
+ False
+ True
+
+
+ False
+ True
+
+
+ False
+ true
+
+
+ False
+
+
+ False
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+ TextureTools.cs
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/project/vc9/NvidiaTextureToolsProcessor/NvidiaTextureToolsProcessor.sln b/project/vc9/NvidiaTextureToolsProcessor/NvidiaTextureToolsProcessor.sln
new file mode 100644
index 0000000..cf34e41
--- /dev/null
+++ b/project/vc9/NvidiaTextureToolsProcessor/NvidiaTextureToolsProcessor.sln
@@ -0,0 +1,32 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C# Express 2008
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NvidiaTextureToolsProcessor", "NvidiaTextureToolsProcessor.csproj", "{F4446AE2-B5E1-4D17-B33C-275A6770FD50}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Debug|Xbox 360 = Debug|Xbox 360
+ Debug|Zune = Debug|Zune
+ Release|x86 = Release|x86
+ Release|Xbox 360 = Release|Xbox 360
+ Release|Zune = Release|Zune
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F4446AE2-B5E1-4D17-B33C-275A6770FD50}.Debug|x86.ActiveCfg = Debug|x86
+ {F4446AE2-B5E1-4D17-B33C-275A6770FD50}.Debug|x86.Build.0 = Debug|x86
+ {F4446AE2-B5E1-4D17-B33C-275A6770FD50}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
+ {F4446AE2-B5E1-4D17-B33C-275A6770FD50}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
+ {F4446AE2-B5E1-4D17-B33C-275A6770FD50}.Debug|Zune.ActiveCfg = Debug|Zune
+ {F4446AE2-B5E1-4D17-B33C-275A6770FD50}.Debug|Zune.Build.0 = Debug|Zune
+ {F4446AE2-B5E1-4D17-B33C-275A6770FD50}.Release|x86.ActiveCfg = Release|x86
+ {F4446AE2-B5E1-4D17-B33C-275A6770FD50}.Release|x86.Build.0 = Release|x86
+ {F4446AE2-B5E1-4D17-B33C-275A6770FD50}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
+ {F4446AE2-B5E1-4D17-B33C-275A6770FD50}.Release|Xbox 360.Build.0 = Release|Xbox 360
+ {F4446AE2-B5E1-4D17-B33C-275A6770FD50}.Release|Zune.ActiveCfg = Release|Zune
+ {F4446AE2-B5E1-4D17-B33C-275A6770FD50}.Release|Zune.Build.0 = Release|Zune
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/project/vc9/NvidiaTextureToolsProcessor/Properties/AssemblyInfo.cs b/project/vc9/NvidiaTextureToolsProcessor/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..3650ee3
--- /dev/null
+++ b/project/vc9/NvidiaTextureToolsProcessor/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("NvidiaTextureToolsProcessor")]
+[assembly: AssemblyDescription("An XNA Content Processor for use with GameStudio 3.1")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("NvidiaTextureToolsProcessor")]
+[assembly: AssemblyCopyright("Copyright © 2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("6c0942a6-4e6a-411b-9275-d2676f9720d3")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/project/vc9/nvassemble/nvassemble.rc b/project/vc9/nvassemble/nvassemble.rc
new file mode 100644
index 0000000..842ded1
Binary files /dev/null and b/project/vc9/nvassemble/nvassemble.rc differ
diff --git a/project/vc9/nvassemble/nvassemble.vcproj b/project/vc9/nvassemble/nvassemble.vcproj
new file mode 100644
index 0000000..f602ed5
--- /dev/null
+++ b/project/vc9/nvassemble/nvassemble.vcproj
@@ -0,0 +1,359 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/project/vc9/nvassemble/nvidia.ico b/project/vc9/nvassemble/nvidia.ico
new file mode 100644
index 0000000..6aa721e
Binary files /dev/null and b/project/vc9/nvassemble/nvidia.ico differ
diff --git a/project/vc9/nvassemble/resource.h b/project/vc9/nvassemble/resource.h
new file mode 100644
index 0000000..e765787
--- /dev/null
+++ b/project/vc9/nvassemble/resource.h
@@ -0,0 +1,16 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by nvcompress.rc
+//
+#define IDI_ICON1 101
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 102
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/project/vc9/nvcompress/nvcompress.rc b/project/vc9/nvcompress/nvcompress.rc
new file mode 100644
index 0000000..842ded1
Binary files /dev/null and b/project/vc9/nvcompress/nvcompress.rc differ
diff --git a/project/vc9/nvcompress/nvcompress.vcproj b/project/vc9/nvcompress/nvcompress.vcproj
new file mode 100644
index 0000000..11d03c3
--- /dev/null
+++ b/project/vc9/nvcompress/nvcompress.vcproj
@@ -0,0 +1,686 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/project/vc9/nvcompress/nvidia.ico b/project/vc9/nvcompress/nvidia.ico
new file mode 100644
index 0000000..6aa721e
Binary files /dev/null and b/project/vc9/nvcompress/nvidia.ico differ
diff --git a/project/vc9/nvcompress/resource.h b/project/vc9/nvcompress/resource.h
new file mode 100644
index 0000000..e765787
--- /dev/null
+++ b/project/vc9/nvcompress/resource.h
@@ -0,0 +1,16 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by nvcompress.rc
+//
+#define IDI_ICON1 101
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 102
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/project/vc9/nvconfig.h b/project/vc9/nvconfig.h
new file mode 100644
index 0000000..ffe00a1
--- /dev/null
+++ b/project/vc9/nvconfig.h
@@ -0,0 +1,16 @@
+#ifndef NV_CONFIG
+#define NV_CONFIG
+
+//#cmakedefine HAVE_UNISTD_H
+#define HAVE_STDARG_H
+//#cmakedefine HAVE_SIGNAL_H
+//#cmakedefine HAVE_EXECINFO_H
+#define HAVE_MALLOC_H
+
+#if !defined(_M_X64)
+#define HAVE_PNG
+#define HAVE_JPEG
+//#define HAVE_TIFF
+#endif
+
+#endif // NV_CONFIG
diff --git a/project/vc9/nvcore/nvcore.vcproj b/project/vc9/nvcore/nvcore.vcproj
new file mode 100644
index 0000000..2ebd000
--- /dev/null
+++ b/project/vc9/nvcore/nvcore.vcproj
@@ -0,0 +1,355 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/project/vc9/nvddsinfo/nvddsinfo.rc b/project/vc9/nvddsinfo/nvddsinfo.rc
new file mode 100644
index 0000000..842ded1
Binary files /dev/null and b/project/vc9/nvddsinfo/nvddsinfo.rc differ
diff --git a/project/vc9/nvddsinfo/nvddsinfo.vcproj b/project/vc9/nvddsinfo/nvddsinfo.vcproj
new file mode 100644
index 0000000..6cd093d
--- /dev/null
+++ b/project/vc9/nvddsinfo/nvddsinfo.vcproj
@@ -0,0 +1,358 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/project/vc9/nvddsinfo/nvidia.ico b/project/vc9/nvddsinfo/nvidia.ico
new file mode 100644
index 0000000..6aa721e
Binary files /dev/null and b/project/vc9/nvddsinfo/nvidia.ico differ
diff --git a/project/vc9/nvddsinfo/resource.h b/project/vc9/nvddsinfo/resource.h
new file mode 100644
index 0000000..e765787
--- /dev/null
+++ b/project/vc9/nvddsinfo/resource.h
@@ -0,0 +1,16 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by nvcompress.rc
+//
+#define IDI_ICON1 101
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 102
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/project/vc9/nvdecompress/nvdecompress.rc b/project/vc9/nvdecompress/nvdecompress.rc
new file mode 100644
index 0000000..842ded1
Binary files /dev/null and b/project/vc9/nvdecompress/nvdecompress.rc differ
diff --git a/project/vc9/nvdecompress/nvdecompress.vcproj b/project/vc9/nvdecompress/nvdecompress.vcproj
new file mode 100644
index 0000000..f398d71
--- /dev/null
+++ b/project/vc9/nvdecompress/nvdecompress.vcproj
@@ -0,0 +1,379 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/project/vc9/nvdecompress/nvidia.ico b/project/vc9/nvdecompress/nvidia.ico
new file mode 100644
index 0000000..6aa721e
Binary files /dev/null and b/project/vc9/nvdecompress/nvidia.ico differ
diff --git a/project/vc9/nvdecompress/resource.h b/project/vc9/nvdecompress/resource.h
new file mode 100644
index 0000000..e765787
--- /dev/null
+++ b/project/vc9/nvdecompress/resource.h
@@ -0,0 +1,16 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by nvcompress.rc
+//
+#define IDI_ICON1 101
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 102
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/project/vc9/nvimage/nvimage.vcproj b/project/vc9/nvimage/nvimage.vcproj
new file mode 100644
index 0000000..7cfc410
--- /dev/null
+++ b/project/vc9/nvimage/nvimage.vcproj
@@ -0,0 +1,383 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/project/vc9/nvimgdiff/nvidia.ico b/project/vc9/nvimgdiff/nvidia.ico
new file mode 100644
index 0000000..6aa721e
Binary files /dev/null and b/project/vc9/nvimgdiff/nvidia.ico differ
diff --git a/project/vc9/nvimgdiff/nvimgdiff.rc b/project/vc9/nvimgdiff/nvimgdiff.rc
new file mode 100644
index 0000000..842ded1
Binary files /dev/null and b/project/vc9/nvimgdiff/nvimgdiff.rc differ
diff --git a/project/vc9/nvimgdiff/nvimgdiff.vcproj b/project/vc9/nvimgdiff/nvimgdiff.vcproj
new file mode 100644
index 0000000..78e009f
--- /dev/null
+++ b/project/vc9/nvimgdiff/nvimgdiff.vcproj
@@ -0,0 +1,379 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/project/vc9/nvimgdiff/resource.h b/project/vc9/nvimgdiff/resource.h
new file mode 100644
index 0000000..e765787
--- /dev/null
+++ b/project/vc9/nvimgdiff/resource.h
@@ -0,0 +1,16 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by nvcompress.rc
+//
+#define IDI_ICON1 101
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 102
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/project/vc9/nvmath/nvmath.vcproj b/project/vc9/nvmath/nvmath.vcproj
new file mode 100644
index 0000000..037d11f
--- /dev/null
+++ b/project/vc9/nvmath/nvmath.vcproj
@@ -0,0 +1,319 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/project/vc9/nvtt.sln b/project/vc9/nvtt.sln
new file mode 100644
index 0000000..d08b0e9
--- /dev/null
+++ b/project/vc9/nvtt.sln
@@ -0,0 +1,321 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nvtt", "nvtt\nvtt.vcproj", "{1AEB7681-57D8-48EE-813D-5C41CC38B647}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38} = {CE017322-01FC-4851-9C8B-64E9A8E26C38}
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D} = {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}
+ {4046F392-A18B-4C66-9639-3EABFFF5D531} = {4046F392-A18B-4C66-9639-3EABFFF5D531}
+ {50C465FE-B308-42BC-894D-89484482AF06} = {50C465FE-B308-42BC-894D-89484482AF06}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nvcompress", "nvcompress\nvcompress.vcproj", "{88079E38-83AA-4E8A-B18A-66A78D1B058B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D} = {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647} = {1AEB7681-57D8-48EE-813D-5C41CC38B647}
+ {4046F392-A18B-4C66-9639-3EABFFF5D531} = {4046F392-A18B-4C66-9639-3EABFFF5D531}
+ {50C465FE-B308-42BC-894D-89484482AF06} = {50C465FE-B308-42BC-894D-89484482AF06}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nvimage", "nvimage\nvimage.vcproj", "{4046F392-A18B-4C66-9639-3EABFFF5D531}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nvcore", "nvcore\nvcore.vcproj", "{F143D180-D4C4-4037-B3DE-BE89A21C8D1D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nvmath", "nvmath\nvmath.vcproj", "{50C465FE-B308-42BC-894D-89484482AF06}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "squish", "squish\squish.vcproj", "{CE017322-01FC-4851-9C8B-64E9A8E26C38}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nvddsinfo", "nvddsinfo\nvddsinfo.vcproj", "{841B73C5-C679-4EEF-A50A-7D6106642B49}"
+ ProjectSection(ProjectDependencies) = postProject
+ {50C465FE-B308-42BC-894D-89484482AF06} = {50C465FE-B308-42BC-894D-89484482AF06}
+ {4046F392-A18B-4C66-9639-3EABFFF5D531} = {4046F392-A18B-4C66-9639-3EABFFF5D531}
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D} = {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nvdecompress", "nvdecompress\nvdecompress.vcproj", "{75A0527D-BFC9-49C3-B46B-CD1A901D5927}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D} = {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}
+ {4046F392-A18B-4C66-9639-3EABFFF5D531} = {4046F392-A18B-4C66-9639-3EABFFF5D531}
+ {50C465FE-B308-42BC-894D-89484482AF06} = {50C465FE-B308-42BC-894D-89484482AF06}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nvimgdiff", "nvimgdiff\nvimgdiff.vcproj", "{05A59E8B-EA70-4F22-89E8-E0927BA13064}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D} = {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}
+ {50C465FE-B308-42BC-894D-89484482AF06} = {50C465FE-B308-42BC-894D-89484482AF06}
+ {4046F392-A18B-4C66-9639-3EABFFF5D531} = {4046F392-A18B-4C66-9639-3EABFFF5D531}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nvassemble", "nvassemble\nvassemble.vcproj", "{3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}"
+ ProjectSection(ProjectDependencies) = postProject
+ {50C465FE-B308-42BC-894D-89484482AF06} = {50C465FE-B308-42BC-894D-89484482AF06}
+ {4046F392-A18B-4C66-9639-3EABFFF5D531} = {4046F392-A18B-4C66-9639-3EABFFF5D531}
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D} = {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nvzoom", "nvzoom\nvzoom.vcproj", "{51999D3E-EF22-4BDD-965F-4201034D3DCE}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D} = {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}
+ {4046F392-A18B-4C66-9639-3EABFFF5D531} = {4046F392-A18B-4C66-9639-3EABFFF5D531}
+ {50C465FE-B308-42BC-894D-89484482AF06} = {50C465FE-B308-42BC-894D-89484482AF06}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nvidia.TextureTools", "Nvidia.TextureTools\Nvidia.TextureTools.csproj", "{CAB55C39-8FA9-4912-98D9-E52669C8911D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug (no cuda)|Any CPU = Debug (no cuda)|Any CPU
+ Debug (no cuda)|Win32 = Debug (no cuda)|Win32
+ Debug (no cuda)|x64 = Debug (no cuda)|x64
+ Debug|Any CPU = Debug|Any CPU
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release (no cuda)|Any CPU = Release (no cuda)|Any CPU
+ Release (no cuda)|Win32 = Release (no cuda)|Win32
+ Release (no cuda)|x64 = Release (no cuda)|x64
+ Release|Any CPU = Release|Any CPU
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Debug (no cuda)|Any CPU.ActiveCfg = Debug (no cuda)|x64
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Debug (no cuda)|Win32.ActiveCfg = Debug (no cuda)|Win32
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Debug (no cuda)|Win32.Build.0 = Debug (no cuda)|Win32
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Debug (no cuda)|x64.ActiveCfg = Debug (no cuda)|x64
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Debug (no cuda)|x64.Build.0 = Debug (no cuda)|x64
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Debug|Win32.Build.0 = Debug|Win32
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Debug|x64.ActiveCfg = Debug|x64
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Debug|x64.Build.0 = Debug|x64
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Release (no cuda)|Any CPU.ActiveCfg = Release (no cuda)|x64
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Release (no cuda)|Win32.ActiveCfg = Release (no cuda)|Win32
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Release (no cuda)|Win32.Build.0 = Release (no cuda)|Win32
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Release (no cuda)|x64.ActiveCfg = Release (no cuda)|x64
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Release (no cuda)|x64.Build.0 = Release (no cuda)|x64
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Release|Any CPU.ActiveCfg = Release|x64
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Release|Win32.ActiveCfg = Release|Win32
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Release|Win32.Build.0 = Release|Win32
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Release|x64.ActiveCfg = Release|x64
+ {1AEB7681-57D8-48EE-813D-5C41CC38B647}.Release|x64.Build.0 = Release|x64
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Debug (no cuda)|Any CPU.ActiveCfg = Debug (no cuda)|x64
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Debug (no cuda)|Win32.ActiveCfg = Debug (no cuda)|Win32
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Debug (no cuda)|Win32.Build.0 = Debug (no cuda)|Win32
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Debug (no cuda)|x64.ActiveCfg = Debug (no cuda)|x64
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Debug (no cuda)|x64.Build.0 = Debug (no cuda)|x64
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Debug|Win32.Build.0 = Debug|Win32
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Debug|x64.ActiveCfg = Debug|x64
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Debug|x64.Build.0 = Debug|x64
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Release (no cuda)|Any CPU.ActiveCfg = Release (no cuda)|x64
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Release (no cuda)|Win32.ActiveCfg = Release (no cuda)|Win32
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Release (no cuda)|Win32.Build.0 = Release (no cuda)|Win32
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Release (no cuda)|x64.ActiveCfg = Release (no cuda)|x64
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Release (no cuda)|x64.Build.0 = Release (no cuda)|x64
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Release|Any CPU.ActiveCfg = Release|x64
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Release|Win32.ActiveCfg = Release|Win32
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Release|Win32.Build.0 = Release|Win32
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Release|x64.ActiveCfg = Release|x64
+ {88079E38-83AA-4E8A-B18A-66A78D1B058B}.Release|x64.Build.0 = Release|x64
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Debug (no cuda)|Any CPU.ActiveCfg = Debug|x64
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Debug (no cuda)|Win32.ActiveCfg = Debug|Win32
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Debug (no cuda)|Win32.Build.0 = Debug|Win32
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Debug (no cuda)|x64.ActiveCfg = Debug|x64
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Debug (no cuda)|x64.Build.0 = Debug|x64
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Debug|Win32.Build.0 = Debug|Win32
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Debug|x64.ActiveCfg = Debug|x64
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Debug|x64.Build.0 = Debug|x64
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Release (no cuda)|Any CPU.ActiveCfg = Release|x64
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Release (no cuda)|Win32.ActiveCfg = Release|Win32
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Release (no cuda)|Win32.Build.0 = Release|Win32
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Release (no cuda)|x64.ActiveCfg = Release|x64
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Release (no cuda)|x64.Build.0 = Release|x64
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Release|Any CPU.ActiveCfg = Release|x64
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Release|Win32.ActiveCfg = Release|Win32
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Release|Win32.Build.0 = Release|Win32
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Release|x64.ActiveCfg = Release|x64
+ {4046F392-A18B-4C66-9639-3EABFFF5D531}.Release|x64.Build.0 = Release|x64
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Debug (no cuda)|Any CPU.ActiveCfg = Debug|x64
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Debug (no cuda)|Win32.ActiveCfg = Debug|Win32
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Debug (no cuda)|Win32.Build.0 = Debug|Win32
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Debug (no cuda)|x64.ActiveCfg = Debug|x64
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Debug (no cuda)|x64.Build.0 = Debug|x64
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Debug|Win32.Build.0 = Debug|Win32
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Debug|x64.ActiveCfg = Debug|x64
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Debug|x64.Build.0 = Debug|x64
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Release (no cuda)|Any CPU.ActiveCfg = Release|x64
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Release (no cuda)|Win32.ActiveCfg = Release|Win32
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Release (no cuda)|Win32.Build.0 = Release|Win32
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Release (no cuda)|x64.ActiveCfg = Release|x64
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Release (no cuda)|x64.Build.0 = Release|x64
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Release|Any CPU.ActiveCfg = Release|x64
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Release|Win32.ActiveCfg = Release|Win32
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Release|Win32.Build.0 = Release|Win32
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Release|x64.ActiveCfg = Release|x64
+ {F143D180-D4C4-4037-B3DE-BE89A21C8D1D}.Release|x64.Build.0 = Release|x64
+ {50C465FE-B308-42BC-894D-89484482AF06}.Debug (no cuda)|Any CPU.ActiveCfg = Debug|x64
+ {50C465FE-B308-42BC-894D-89484482AF06}.Debug (no cuda)|Win32.ActiveCfg = Debug|Win32
+ {50C465FE-B308-42BC-894D-89484482AF06}.Debug (no cuda)|Win32.Build.0 = Debug|Win32
+ {50C465FE-B308-42BC-894D-89484482AF06}.Debug (no cuda)|x64.ActiveCfg = Debug|x64
+ {50C465FE-B308-42BC-894D-89484482AF06}.Debug (no cuda)|x64.Build.0 = Debug|x64
+ {50C465FE-B308-42BC-894D-89484482AF06}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {50C465FE-B308-42BC-894D-89484482AF06}.Debug|Win32.ActiveCfg = Debug|Win32
+ {50C465FE-B308-42BC-894D-89484482AF06}.Debug|Win32.Build.0 = Debug|Win32
+ {50C465FE-B308-42BC-894D-89484482AF06}.Debug|x64.ActiveCfg = Debug|x64
+ {50C465FE-B308-42BC-894D-89484482AF06}.Debug|x64.Build.0 = Debug|x64
+ {50C465FE-B308-42BC-894D-89484482AF06}.Release (no cuda)|Any CPU.ActiveCfg = Release|x64
+ {50C465FE-B308-42BC-894D-89484482AF06}.Release (no cuda)|Win32.ActiveCfg = Release|Win32
+ {50C465FE-B308-42BC-894D-89484482AF06}.Release (no cuda)|Win32.Build.0 = Release|Win32
+ {50C465FE-B308-42BC-894D-89484482AF06}.Release (no cuda)|x64.ActiveCfg = Release|x64
+ {50C465FE-B308-42BC-894D-89484482AF06}.Release (no cuda)|x64.Build.0 = Release|x64
+ {50C465FE-B308-42BC-894D-89484482AF06}.Release|Any CPU.ActiveCfg = Release|x64
+ {50C465FE-B308-42BC-894D-89484482AF06}.Release|Win32.ActiveCfg = Release|Win32
+ {50C465FE-B308-42BC-894D-89484482AF06}.Release|Win32.Build.0 = Release|Win32
+ {50C465FE-B308-42BC-894D-89484482AF06}.Release|x64.ActiveCfg = Release|x64
+ {50C465FE-B308-42BC-894D-89484482AF06}.Release|x64.Build.0 = Release|x64
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Debug (no cuda)|Any CPU.ActiveCfg = Debug|x64
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Debug (no cuda)|Win32.ActiveCfg = Debug|Win32
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Debug (no cuda)|Win32.Build.0 = Debug|Win32
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Debug (no cuda)|x64.ActiveCfg = Debug|x64
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Debug (no cuda)|x64.Build.0 = Debug|x64
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Debug|Win32.Build.0 = Debug|Win32
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Debug|x64.ActiveCfg = Debug|x64
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Debug|x64.Build.0 = Debug|x64
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Release (no cuda)|Any CPU.ActiveCfg = Release|x64
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Release (no cuda)|Win32.ActiveCfg = Release|Win32
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Release (no cuda)|Win32.Build.0 = Release|Win32
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Release (no cuda)|x64.ActiveCfg = Release|x64
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Release (no cuda)|x64.Build.0 = Release|x64
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Release|Any CPU.ActiveCfg = Release|x64
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Release|Win32.ActiveCfg = Release|Win32
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Release|Win32.Build.0 = Release|Win32
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Release|x64.ActiveCfg = Release|x64
+ {CE017322-01FC-4851-9C8B-64E9A8E26C38}.Release|x64.Build.0 = Release|x64
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Debug (no cuda)|Any CPU.ActiveCfg = Debug|x64
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Debug (no cuda)|Win32.ActiveCfg = Debug|Win32
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Debug (no cuda)|Win32.Build.0 = Debug|Win32
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Debug (no cuda)|x64.ActiveCfg = Debug|x64
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Debug (no cuda)|x64.Build.0 = Debug|x64
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Debug|Win32.ActiveCfg = Debug|Win32
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Debug|Win32.Build.0 = Debug|Win32
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Debug|x64.ActiveCfg = Debug|x64
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Debug|x64.Build.0 = Debug|x64
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Release (no cuda)|Any CPU.ActiveCfg = Release|x64
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Release (no cuda)|Win32.ActiveCfg = Release|Win32
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Release (no cuda)|Win32.Build.0 = Release|Win32
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Release (no cuda)|x64.ActiveCfg = Release|x64
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Release (no cuda)|x64.Build.0 = Release|x64
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Release|Any CPU.ActiveCfg = Release|x64
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Release|Win32.ActiveCfg = Release|Win32
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Release|Win32.Build.0 = Release|Win32
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Release|x64.ActiveCfg = Release|x64
+ {841B73C5-C679-4EEF-A50A-7D6106642B49}.Release|x64.Build.0 = Release|x64
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Debug (no cuda)|Any CPU.ActiveCfg = Debug|x64
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Debug (no cuda)|Win32.ActiveCfg = Debug|Win32
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Debug (no cuda)|Win32.Build.0 = Debug|Win32
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Debug (no cuda)|x64.ActiveCfg = Debug|x64
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Debug (no cuda)|x64.Build.0 = Debug|x64
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Debug|Win32.ActiveCfg = Debug|Win32
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Debug|Win32.Build.0 = Debug|Win32
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Debug|x64.ActiveCfg = Debug|x64
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Debug|x64.Build.0 = Debug|x64
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Release (no cuda)|Any CPU.ActiveCfg = Release|x64
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Release (no cuda)|Win32.ActiveCfg = Release|Win32
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Release (no cuda)|Win32.Build.0 = Release|Win32
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Release (no cuda)|x64.ActiveCfg = Release|x64
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Release (no cuda)|x64.Build.0 = Release|x64
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Release|Any CPU.ActiveCfg = Release|x64
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Release|Win32.ActiveCfg = Release|Win32
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Release|Win32.Build.0 = Release|Win32
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Release|x64.ActiveCfg = Release|x64
+ {75A0527D-BFC9-49C3-B46B-CD1A901D5927}.Release|x64.Build.0 = Release|x64
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Debug (no cuda)|Any CPU.ActiveCfg = Debug|x64
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Debug (no cuda)|Win32.ActiveCfg = Debug|Win32
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Debug (no cuda)|Win32.Build.0 = Debug|Win32
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Debug (no cuda)|x64.ActiveCfg = Debug|x64
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Debug (no cuda)|x64.Build.0 = Debug|x64
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Debug|Win32.ActiveCfg = Debug|Win32
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Debug|Win32.Build.0 = Debug|Win32
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Debug|x64.ActiveCfg = Debug|x64
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Debug|x64.Build.0 = Debug|x64
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Release (no cuda)|Any CPU.ActiveCfg = Release|x64
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Release (no cuda)|Win32.ActiveCfg = Release|Win32
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Release (no cuda)|Win32.Build.0 = Release|Win32
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Release (no cuda)|x64.ActiveCfg = Release|x64
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Release (no cuda)|x64.Build.0 = Release|x64
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Release|Any CPU.ActiveCfg = Release|x64
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Release|Win32.ActiveCfg = Release|Win32
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Release|Win32.Build.0 = Release|Win32
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Release|x64.ActiveCfg = Release|x64
+ {05A59E8B-EA70-4F22-89E8-E0927BA13064}.Release|x64.Build.0 = Release|x64
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Debug (no cuda)|Any CPU.ActiveCfg = Debug|x64
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Debug (no cuda)|Win32.ActiveCfg = Debug|Win32
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Debug (no cuda)|Win32.Build.0 = Debug|Win32
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Debug (no cuda)|x64.ActiveCfg = Debug|x64
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Debug (no cuda)|x64.Build.0 = Debug|x64
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Debug|Win32.Build.0 = Debug|Win32
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Debug|x64.ActiveCfg = Debug|x64
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Debug|x64.Build.0 = Debug|x64
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Release (no cuda)|Any CPU.ActiveCfg = Release|x64
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Release (no cuda)|Win32.ActiveCfg = Release|Win32
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Release (no cuda)|Win32.Build.0 = Release|Win32
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Release (no cuda)|x64.ActiveCfg = Release|x64
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Release (no cuda)|x64.Build.0 = Release|x64
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Release|Any CPU.ActiveCfg = Release|x64
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Release|Win32.ActiveCfg = Release|Win32
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Release|Win32.Build.0 = Release|Win32
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Release|x64.ActiveCfg = Release|x64
+ {3BC6D760-91E8-4FFB-BD0E-F86F367AD8EA}.Release|x64.Build.0 = Release|x64
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Debug (no cuda)|Any CPU.ActiveCfg = Debug|x64
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Debug (no cuda)|Win32.ActiveCfg = Debug|Win32
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Debug (no cuda)|Win32.Build.0 = Debug|Win32
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Debug (no cuda)|x64.ActiveCfg = Debug|x64
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Debug (no cuda)|x64.Build.0 = Debug|x64
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Debug|Win32.Build.0 = Debug|Win32
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Debug|x64.ActiveCfg = Debug|x64
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Debug|x64.Build.0 = Debug|x64
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Release (no cuda)|Any CPU.ActiveCfg = Release|x64
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Release (no cuda)|Win32.ActiveCfg = Release|Win32
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Release (no cuda)|Win32.Build.0 = Release|Win32
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Release (no cuda)|x64.ActiveCfg = Release|x64
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Release (no cuda)|x64.Build.0 = Release|x64
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Release|Any CPU.ActiveCfg = Release|x64
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Release|Win32.ActiveCfg = Release|Win32
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Release|Win32.Build.0 = Release|Win32
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Release|x64.ActiveCfg = Release|x64
+ {51999D3E-EF22-4BDD-965F-4201034D3DCE}.Release|x64.Build.0 = Release|x64
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Debug (no cuda)|Any CPU.ActiveCfg = Debug|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Debug (no cuda)|Any CPU.Build.0 = Debug|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Debug (no cuda)|Win32.ActiveCfg = Debug|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Debug (no cuda)|x64.ActiveCfg = Debug|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Release (no cuda)|Any CPU.ActiveCfg = Release|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Release (no cuda)|Any CPU.Build.0 = Release|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Release (no cuda)|Win32.ActiveCfg = Release|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Release (no cuda)|x64.ActiveCfg = Release|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Release|Win32.ActiveCfg = Release|Any CPU
+ {CAB55C39-8FA9-4912-98D9-E52669C8911D}.Release|x64.ActiveCfg = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/project/vc9/nvtt/nvtt.rc b/project/vc9/nvtt/nvtt.rc
new file mode 100644
index 0000000..6385cf0
--- /dev/null
+++ b/project/vc9/nvtt/nvtt.rc
@@ -0,0 +1,102 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 2,0,6,0
+ PRODUCTVERSION 2,0,6,0
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "NVIDIA Corporation"
+ VALUE "FileDescription", "NVIDIA Texture Tools Dynamic Link Library"
+ VALUE "FileVersion", "2, 0, 6, 0"
+ VALUE "InternalName", "nvtt"
+ VALUE "LegalCopyright", "Copyright (C) 2007"
+ VALUE "OriginalFilename", "nvtt.dll"
+ VALUE "ProductName", "NVIDIA Texture Tools Dynamic Link Library"
+ VALUE "ProductVersion", "2, 0, 6, 0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/project/vc9/nvtt/nvtt.vcproj b/project/vc9/nvtt/nvtt.vcproj
new file mode 100644
index 0000000..26f88cc
--- /dev/null
+++ b/project/vc9/nvtt/nvtt.vcproj
@@ -0,0 +1,953 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/project/vc9/nvtt/resource.h b/project/vc9/nvtt/resource.h
new file mode 100644
index 0000000..4df7169
--- /dev/null
+++ b/project/vc9/nvtt/resource.h
@@ -0,0 +1,14 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by nvtt.rc
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 101
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1001
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/project/vc9/nvzoom/nvidia.ico b/project/vc9/nvzoom/nvidia.ico
new file mode 100644
index 0000000..6aa721e
Binary files /dev/null and b/project/vc9/nvzoom/nvidia.ico differ
diff --git a/project/vc9/nvzoom/nvzoom.rc b/project/vc9/nvzoom/nvzoom.rc
new file mode 100644
index 0000000..842ded1
Binary files /dev/null and b/project/vc9/nvzoom/nvzoom.rc differ
diff --git a/project/vc9/nvzoom/nvzoom.vcproj b/project/vc9/nvzoom/nvzoom.vcproj
new file mode 100644
index 0000000..d7fb219
--- /dev/null
+++ b/project/vc9/nvzoom/nvzoom.vcproj
@@ -0,0 +1,379 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/project/vc9/nvzoom/resource.h b/project/vc9/nvzoom/resource.h
new file mode 100644
index 0000000..e765787
--- /dev/null
+++ b/project/vc9/nvzoom/resource.h
@@ -0,0 +1,16 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by nvcompress.rc
+//
+#define IDI_ICON1 101
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 102
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/project/vc9/squish/squish.vcproj b/project/vc9/squish/squish.vcproj
new file mode 100644
index 0000000..b6524ca
--- /dev/null
+++ b/project/vc9/squish/squish.vcproj
@@ -0,0 +1,487 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+