diff --git a/src/nvtt/squish/alpha.cpp b/src/nvtt/squish/alpha.cpp index 4242bb8..2d199a4 100644 --- a/src/nvtt/squish/alpha.cpp +++ b/src/nvtt/squish/alpha.cpp @@ -26,7 +26,7 @@ #include "alpha.h" #include -namespace squish { +namespace nvsquish { static int FloatToInt( float a, int limit ) { @@ -323,4 +323,4 @@ void DecompressAlphaDxt5( u8* rgba, void const* block ) rgba[4*i + 3] = codes[indices[i]]; } -} // namespace squish +} // namespace nvsquish diff --git a/src/nvtt/squish/alpha.h b/src/nvtt/squish/alpha.h index 2fb3baf..3b4ce02 100644 --- a/src/nvtt/squish/alpha.h +++ b/src/nvtt/squish/alpha.h @@ -28,7 +28,7 @@ #include "squish.h" -namespace squish { +namespace nvsquish { void CompressAlphaDxt3( u8 const* rgba, void* block ); void CompressAlphaDxt5( u8 const* rgba, void* block ); @@ -36,6 +36,6 @@ void CompressAlphaDxt5( u8 const* rgba, void* block ); void DecompressAlphaDxt3( u8* rgba, void const* block ); void DecompressAlphaDxt5( u8* rgba, void const* block ); -} // namespace squish +} // namespace nvsquish #endif // ndef SQUISH_ALPHA_H diff --git a/src/nvtt/squish/clusterfit.h b/src/nvtt/squish/clusterfit.h index e115cd3..d4ee851 100644 --- a/src/nvtt/squish/clusterfit.h +++ b/src/nvtt/squish/clusterfit.h @@ -78,6 +78,6 @@ private: int m_order[16]; }; -} // namespace squish +} // namespace nvsquish #endif // ndef SQUISH_CLUSTERFIT_H diff --git a/src/nvtt/squish/colourblock.cpp b/src/nvtt/squish/colourblock.cpp index 37e4b02..6bcb68c 100644 --- a/src/nvtt/squish/colourblock.cpp +++ b/src/nvtt/squish/colourblock.cpp @@ -53,7 +53,7 @@ static int FloatTo565( Vec3::Arg colour ) return ( r << 11 ) | ( g << 5 ) | b; } -static void WriteColourBlock( int a, int b, u8* indices, void* block ) +void WriteColourBlock( int a, int b, u8* indices, void* block ) { // get the block as bytes u8* bytes = ( u8* )block; diff --git a/src/nvtt/squish/colourblock.h b/src/nvtt/squish/colourblock.h index bb0c3b0..8ab0ace 100644 --- a/src/nvtt/squish/colourblock.h +++ b/src/nvtt/squish/colourblock.h @@ -31,6 +31,7 @@ namespace nvsquish { +void WriteColourBlock(int a, int b, u8* indices, void* block); void WriteColourBlock3( Vec3::Arg start, Vec3::Arg end, u8 const* indices, void* block ); void WriteColourBlock4( Vec3::Arg start, Vec3::Arg end, u8 const* indices, void* block ); //void WriteColourBlock3( Vec3::Arg start, Vec3::Arg end, uint indices, void* block ); diff --git a/src/nvtt/squish/rangefit.cpp b/src/nvtt/squish/rangefit.cpp index 93c0a69..cda6e44 100644 --- a/src/nvtt/squish/rangefit.cpp +++ b/src/nvtt/squish/rangefit.cpp @@ -28,11 +28,12 @@ #include "colourblock.h" #include -namespace squish { +namespace nvsquish { -RangeFit::RangeFit( ColourSet const* colours, int flags ) - : ColourFit( colours, flags ) +RangeFit::RangeFit( ColourSet const* colours, int flags ) { + SetColourSet(colours, flags); + // initialise the metric bool perceptual = ( ( m_flags & kColourMetricPerceptual ) != 0 ); if( perceptual ) @@ -49,7 +50,7 @@ RangeFit::RangeFit( ColourSet const* colours, int flags ) float const* weights = m_colours->GetWeights(); // get the covariance matrix - Sym3x3 covariance = ComputeWeightedCovariance( count, values, weights ); + Sym3x3 covariance = ComputeWeightedCovariance( count, values, weights, Vec3(1,1,1) ); // compute the principle component Vec3 principle = ComputePrincipleComponent( covariance ); @@ -199,4 +200,4 @@ void RangeFit::Compress4( void* block ) } } -} // namespace squish +} // namespace nvsquish diff --git a/src/nvtt/squish/rangefit.h b/src/nvtt/squish/rangefit.h index 7952019..6756b64 100644 --- a/src/nvtt/squish/rangefit.h +++ b/src/nvtt/squish/rangefit.h @@ -30,7 +30,7 @@ #include "colourfit.h" #include "maths.h" -namespace squish { +namespace nvsquish { class ColourSet; @@ -49,6 +49,6 @@ private: float m_besterror; }; -} // squish +} // namespace nvsquish #endif // ndef SQUISH_RANGEFIT_H diff --git a/src/nvtt/squish/singlechannelfit.cpp b/src/nvtt/squish/singlechannelfit.cpp index 2abc9a2..de88ac7 100644 --- a/src/nvtt/squish/singlechannelfit.cpp +++ b/src/nvtt/squish/singlechannelfit.cpp @@ -29,11 +29,12 @@ #include "colourblock.h" #include -namespace squish { +namespace nvsquish { -SingleChannelFit::SingleChannelFit( ColourSet const* colours, int const flags ) - : ColourFit( colours, flags ) +SingleChannelFit::SingleChannelFit( ColourSet const* colours, int const flags ) { + SetColourSet(colours, flags); + // cache some values int const count = m_colours->GetCount(); Vec3 const* values = m_colours->GetPoints(); @@ -42,7 +43,7 @@ SingleChannelFit::SingleChannelFit( ColourSet const* colours, int const flags ) m_g_min = 63; m_g_max = 0; - for(uint i = 0; i < count; i++) { + for(int i = 0; i < count; i++) { int grey = int(values[i].Y() * 255.0f); // @@ rounding? grey = std::min(grey, 255); // clamp to [0, 1) @@ -141,4 +142,4 @@ void SingleChannelFit::Compress4( void* block ) } -} // namespace squish +} // namespace nvsquish diff --git a/src/nvtt/squish/singlechannelfit.h b/src/nvtt/squish/singlechannelfit.h index 40de0a2..357ae8c 100644 --- a/src/nvtt/squish/singlechannelfit.h +++ b/src/nvtt/squish/singlechannelfit.h @@ -31,7 +31,7 @@ #include "maths.h" #include "colourfit.h" -namespace squish { +namespace nvsquish { class SingleChannelFit : public ColourFit { @@ -48,6 +48,6 @@ private: int m_g_max; }; -} // namespace squish +} // namespace nvsquish #endif // ndef SQUISH_SINGLECHANNELFIT_H diff --git a/src/nvtt/squish/singlecolourfit.cpp b/src/nvtt/squish/singlecolourfit.cpp index 4e1bb9c..3be544d 100644 --- a/src/nvtt/squish/singlecolourfit.cpp +++ b/src/nvtt/squish/singlecolourfit.cpp @@ -27,7 +27,7 @@ #include "colourset.h" #include "colourblock.h" -namespace squish { +namespace nvsquish { struct SourceBlock { @@ -59,8 +59,9 @@ static int FloatToInt( float a, int limit ) } SingleColourFit::SingleColourFit( ColourSet const* colours, int flags ) - : ColourFit( colours, flags ) { + SetColourSet(colours, flags); + // grab the single colour Vec3 const* values = m_colours->GetPoints(); m_colour[0] = ( u8 )FloatToInt( 255.0f*values->X(), 255 ); @@ -169,4 +170,4 @@ void SingleColourFit::ComputeEndPoints( int count, SingleColourLookup const* con } } -} // namespace squish +} // namespace nvsquish diff --git a/src/nvtt/squish/singlecolourfit.h b/src/nvtt/squish/singlecolourfit.h index 3c4a1a3..eb75335 100644 --- a/src/nvtt/squish/singlecolourfit.h +++ b/src/nvtt/squish/singlecolourfit.h @@ -29,7 +29,7 @@ #include #include "colourfit.h" -namespace squish { +namespace nvsquish { class ColourSet; struct SingleColourLookup; @@ -53,6 +53,6 @@ private: int m_besterror; }; -} // namespace squish +} // namespace nvsquish #endif // ndef SQUISH_SINGLECOLOURFIT_H diff --git a/src/nvtt/squish/squish.cpp b/src/nvtt/squish/squish.cpp index 393ebf4..035d48a 100644 --- a/src/nvtt/squish/squish.cpp +++ b/src/nvtt/squish/squish.cpp @@ -32,7 +32,7 @@ #include "alpha.h" #include "singlecolourfit.h" -namespace squish { +namespace nvsquish { static int FixFlags( int flags ) { @@ -85,7 +85,8 @@ void Compress( u8 const* rgba, void* block, int flags ) else { // default to a cluster fit - ClusterFit fit( &colours, flags ); + ClusterFit fit; + fit.SetColourSet(&colours, flags); fit.Compress( colourBlock ); } @@ -222,4 +223,4 @@ void DecompressImage( u8* rgba, int width, int height, void const* blocks, int f } } -} // namespace squish +} // namespace nvsquish