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

Function InsetYCoCgBBox

trinity/Tr2DxtCompressor.cpp:312–345  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

310}
311
312void InsetYCoCgBBox( uint8_t* minColor, uint8_t* maxColor )
313{
314 int inset[4];
315 int mini[4];
316 int maxi[4];
317
318 inset[0] = ( maxColor[0] - minColor[0] ) - ( ( 1 << ( INSET_COLOR_SHIFT - 1 ) ) - 1 );
319 inset[1] = ( maxColor[1] - minColor[1] ) - ( ( 1 << ( INSET_COLOR_SHIFT - 1 ) ) - 1 );
320 inset[3] = ( maxColor[3] - minColor[3] ) - ( ( 1 << ( INSET_ALPHA_SHIFT - 1 ) ) - 1 );
321
322 mini[0] = ( ( minColor[0] << INSET_COLOR_SHIFT ) + inset[0] ) >> INSET_COLOR_SHIFT;
323 mini[1] = ( ( minColor[1] << INSET_COLOR_SHIFT ) + inset[1] ) >> INSET_COLOR_SHIFT;
324 mini[3] = ( ( minColor[3] << INSET_ALPHA_SHIFT ) + inset[3] ) >> INSET_ALPHA_SHIFT;
325
326 maxi[0] = ( ( maxColor[0] << INSET_COLOR_SHIFT ) - inset[0] ) >> INSET_COLOR_SHIFT;
327 maxi[1] = ( ( maxColor[1] << INSET_COLOR_SHIFT ) - inset[1] ) >> INSET_COLOR_SHIFT;
328 maxi[3] = ( ( maxColor[3] << INSET_ALPHA_SHIFT ) - inset[3] ) >> INSET_ALPHA_SHIFT;
329
330 mini[0] = ( mini[0] >= 0 ) ? mini[0] : 0;
331 mini[1] = ( mini[1] >= 0 ) ? mini[1] : 0;
332 mini[3] = ( mini[3] >= 0 ) ? mini[3] : 0;
333
334 maxi[0] = ( maxi[0] <= 255 ) ? maxi[0] : 255;
335 maxi[1] = ( maxi[1] <= 255 ) ? maxi[1] : 255;
336 maxi[3] = ( maxi[3] <= 255 ) ? maxi[3] : 255;
337
338 minColor[0] = ( mini[0] & C565_5_MASK ) | ( mini[0] >> 5 );
339 minColor[1] = ( mini[1] & C565_6_MASK ) | ( mini[1] >> 6 );
340 minColor[3] = mini[3];
341
342 maxColor[0] = ( maxi[0] & C565_5_MASK ) | ( maxi[0] >> 5 );
343 maxColor[1] = ( maxi[1] & C565_6_MASK ) | ( maxi[1] >> 6 );
344 maxColor[3] = maxi[3];
345}
346
347void SelectYCoCgDiagonal( const uint8_t* colorBlock, uint8_t* minColor, uint8_t* maxColor )
348{

Callers 1

CompressYCoCgDXT5Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected