diff --git a/BPTCEncoder/include/BC7Compressor.h b/BPTCEncoder/include/BC7Compressor.h index 630d6c5..3ad9dae 100755 --- a/BPTCEncoder/include/BC7Compressor.h +++ b/BPTCEncoder/include/BC7Compressor.h @@ -103,19 +103,19 @@ namespace BC7C // Compress the image given as RGBA data to BC7 format. Width and Height are the dimensions of // the image in pixels. void CompressImageBC7( - const unsigned char *inBuf, - unsigned char *outBuf, - unsigned int width, - unsigned int height - ); - - void CompressImageBC7Stats( - const unsigned char *inBuf, - unsigned char *outBuf, - unsigned int width, - unsigned int height, - BlockStatManager &statManager - ); + const unsigned char *inBuf, + unsigned char *outBuf, + unsigned int width, + unsigned int height + ); + + void CompressImageBC7Stats( + const unsigned char *inBuf, + unsigned char *outBuf, + unsigned int width, + unsigned int height, + BlockStatManager &statManager + ); #ifdef HAS_SSE_41 // Compress the image given as RGBA data to BC7 format using an algorithm optimized for SIMD diff --git a/BPTCEncoder/src/BC7CompressionMode.h b/BPTCEncoder/src/BC7CompressionMode.h index a6e9530..808faeb 100755 --- a/BPTCEncoder/src/BC7CompressionMode.h +++ b/BPTCEncoder/src/BC7CompressionMode.h @@ -70,6 +70,7 @@ // Forward Declarations class BitStream; +struct VisitedState; const int kMaxEndpoints = 3; static const int kPBits[4][2] = { @@ -187,9 +188,9 @@ private: } else { return ( - ((maskSeed >> (24 + m_Attributes->colorChannelPrecision - 1) & 0xFF) | + ((maskSeed >> (24 + m_Attributes->colorChannelPrecision - 1) & 0xFF) | (maskSeed >> (16 + m_Attributes->colorChannelPrecision - 1) & 0xFF00) | - (maskSeed >> (8 + m_Attributes->colorChannelPrecision - 1) & 0xFF0000)) & + (maskSeed >> (8 + m_Attributes->colorChannelPrecision - 1) & 0xFF0000)) & (0x00FFFFFF) ); } @@ -213,13 +214,12 @@ private: } } - double OptimizeEndpointsForCluster(const RGBACluster &cluster, RGBAVector &p1, RGBAVector &p2, int *bestIndices, int &bestPbitCombo) const; - - struct VisitedState { - RGBAVector p1; - RGBAVector p2; - int pBitCombo; - }; + double OptimizeEndpointsForCluster( + const RGBACluster &cluster, + RGBAVector &p1, RGBAVector &p2, + int *bestIndices, + int &bestPbitCombo + ) const; void PickBestNeighboringEndpoints( const RGBACluster &cluster, diff --git a/BPTCEncoder/src/BC7Compressor.cpp b/BPTCEncoder/src/BC7Compressor.cpp index b96d5cc..b03c875 100755 --- a/BPTCEncoder/src/BC7Compressor.cpp +++ b/BPTCEncoder/src/BC7Compressor.cpp @@ -517,7 +517,19 @@ static void ChangePointForDirWithPbitChange(RGBAVector &v, int dir, int oldPbit, } } -void BC7CompressionMode::PickBestNeighboringEndpoints(const RGBACluster &cluster, const RGBAVector &p1, const RGBAVector &p2, const int curPbitCombo, RGBAVector &np1, RGBAVector &np2, int &nPbitCombo, const VisitedState *visitedStates, int nVisited, float stepSz) const { +struct VisitedState { + RGBAVector p1; + RGBAVector p2; + int pBitCombo; +}; + +void BC7CompressionMode::PickBestNeighboringEndpoints( + const RGBACluster &cluster, + const RGBAVector &p1, const RGBAVector &p2, const int curPbitCombo, + RGBAVector &np1, RGBAVector &np2, int &nPbitCombo, + const VisitedState *visitedStates, int nVisited, + float stepSz +) const { // !SPEED! There might be a way to make this faster since we're working // with floating point values that are powers of two. We should be able