MCPcopy Create free account
hub / github.com/carbonengine/trinity / GetMinMaxColors

Function GetMinMaxColors

trinity/Tr2DxtCompressor.cpp:75–117  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

73}
74
75void GetMinMaxColors( const uint8_t* colorBlock, uint8_t* minColor, uint8_t* maxColor )
76{
77 int i;
78 uint8_t inset[3];
79 minColor[0] = minColor[1] = minColor[2] = 255;
80 maxColor[0] = maxColor[1] = maxColor[2] = 0;
81 for( i = 0; i < 16; i++ )
82 {
83 if( colorBlock[i * 4 + 0] < minColor[0] )
84 {
85 minColor[0] = colorBlock[i * 4 + 0];
86 }
87 if( colorBlock[i * 4 + 1] < minColor[1] )
88 {
89 minColor[1] = colorBlock[i * 4 + 1];
90 }
91 if( colorBlock[i * 4 + 2] < minColor[2] )
92 {
93 minColor[2] = colorBlock[i * 4 + 2];
94 }
95 if( colorBlock[i * 4 + 0] > maxColor[0] )
96 {
97 maxColor[0] = colorBlock[i * 4 + 0];
98 }
99 if( colorBlock[i * 4 + 1] > maxColor[1] )
100 {
101 maxColor[1] = colorBlock[i * 4 + 1];
102 }
103 if( colorBlock[i * 4 + 2] > maxColor[2] )
104 {
105 maxColor[2] = colorBlock[i * 4 + 2];
106 }
107 }
108 inset[0] = ( maxColor[0] - minColor[0] ) >> INSET_COLOR_SHIFT;
109 inset[1] = ( maxColor[1] - minColor[1] ) >> INSET_COLOR_SHIFT;
110 inset[2] = ( maxColor[2] - minColor[2] ) >> INSET_COLOR_SHIFT;
111 minColor[0] = ( minColor[0] + inset[0] <= 255 ) ? minColor[0] + inset[0] : 255;
112 minColor[1] = ( minColor[1] + inset[1] <= 255 ) ? minColor[1] + inset[1] : 255;
113 minColor[2] = ( minColor[2] + inset[2] <= 255 ) ? minColor[2] + inset[2] : 255;
114 maxColor[0] = ( maxColor[0] >= inset[0] ) ? maxColor[0] - inset[0] : 0;
115 maxColor[1] = ( maxColor[1] >= inset[1] ) ? maxColor[1] - inset[1] : 0;
116 maxColor[2] = ( maxColor[2] >= inset[2] ) ? maxColor[2] - inset[2] : 0;
117}
118
119void GetMinMaxColorsWithAlpha( const uint8_t* colorBlock, uint8_t* minColor, uint8_t* maxColor )
120{

Callers 1

CompressImageDXT1Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected