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

Function GetMinMaxColorsWithAlpha

trinity/Tr2DxtCompressor.cpp:119–172  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

117}
118
119void GetMinMaxColorsWithAlpha( const uint8_t* colorBlock, uint8_t* minColor, uint8_t* maxColor )
120{
121 int i;
122 uint8_t inset[4];
123 minColor[0] = minColor[1] = minColor[2] = minColor[3] = 255;
124 maxColor[0] = maxColor[1] = maxColor[2] = maxColor[3] = 0;
125 for( i = 0; i < 16; i++ )
126 {
127 if( colorBlock[i * 4 + 0] < minColor[0] )
128 {
129 minColor[0] = colorBlock[i * 4 + 0];
130 }
131 if( colorBlock[i * 4 + 1] < minColor[1] )
132 {
133 minColor[1] = colorBlock[i * 4 + 1];
134 }
135 if( colorBlock[i * 4 + 2] < minColor[2] )
136 {
137 minColor[2] = colorBlock[i * 4 + 2];
138 }
139 if( colorBlock[i * 4 + 3] < minColor[3] )
140 {
141 minColor[3] = colorBlock[i * 4 + 3];
142 }
143 if( colorBlock[i * 4 + 0] > maxColor[0] )
144 {
145 maxColor[0] = colorBlock[i * 4 + 0];
146 }
147 if( colorBlock[i * 4 + 1] > maxColor[1] )
148 {
149 maxColor[1] = colorBlock[i * 4 + 1];
150 }
151 if( colorBlock[i * 4 + 2] > maxColor[2] )
152 {
153 maxColor[2] = colorBlock[i * 4 + 2];
154 }
155 if( colorBlock[i * 4 + 3] > maxColor[3] )
156 {
157 maxColor[3] = colorBlock[i * 4 + 3];
158 }
159 }
160 inset[0] = ( maxColor[0] - minColor[0] ) >> INSET_COLOR_SHIFT;
161 inset[1] = ( maxColor[1] - minColor[1] ) >> INSET_COLOR_SHIFT;
162 inset[2] = ( maxColor[2] - minColor[2] ) >> INSET_COLOR_SHIFT;
163 inset[3] = ( maxColor[3] - minColor[3] ) >> INSET_COLOR_SHIFT;
164 minColor[0] = ( minColor[0] + inset[0] <= 255 ) ? minColor[0] + inset[0] : 255;
165 minColor[1] = ( minColor[1] + inset[1] <= 255 ) ? minColor[1] + inset[1] : 255;
166 minColor[2] = ( minColor[2] + inset[2] <= 255 ) ? minColor[2] + inset[2] : 255;
167 minColor[3] = ( minColor[3] + inset[3] <= 255 ) ? minColor[3] + inset[3] : 255;
168 maxColor[0] = ( maxColor[0] >= inset[0] ) ? maxColor[0] - inset[0] : 0;
169 maxColor[1] = ( maxColor[1] >= inset[1] ) ? maxColor[1] - inset[1] : 0;
170 maxColor[2] = ( maxColor[2] >= inset[2] ) ? maxColor[2] - inset[2] : 0;
171 maxColor[3] = ( maxColor[3] >= inset[3] ) ? maxColor[3] - inset[3] : 0;
172}
173
174word ColorTo565( const uint8_t* color )
175{

Callers 2

CompressImageDXT5Function · 0.85
CompressNormalMapDXT5Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected