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

Function InsetNormalsBBoxDXT5

trinity/Tr2DxtCompressor.cpp:485–511  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

483}
484
485void InsetNormalsBBoxDXT5( uint8_t* minNormal, uint8_t* maxNormal )
486{
487 int inset[4];
488 int mini[4];
489 int maxi[4];
490
491 inset[0] = ( maxNormal[0] - minNormal[0] ) - ( ( 1 << ( INSET_ALPHA_SHIFT - 1 ) ) - 1 );
492 inset[1] = ( maxNormal[1] - minNormal[1] ) - ( ( 1 << ( INSET_COLOR_SHIFT - 1 ) ) - 1 );
493
494 mini[0] = ( ( minNormal[0] << INSET_ALPHA_SHIFT ) + inset[0] ) >> INSET_ALPHA_SHIFT;
495 mini[1] = ( ( minNormal[1] << INSET_COLOR_SHIFT ) + inset[1] ) >> INSET_COLOR_SHIFT;
496
497 maxi[0] = ( ( maxNormal[0] << INSET_ALPHA_SHIFT ) - inset[0] ) >> INSET_ALPHA_SHIFT;
498 maxi[1] = ( ( maxNormal[1] << INSET_COLOR_SHIFT ) - inset[1] ) >> INSET_COLOR_SHIFT;
499
500 mini[0] = ( mini[0] >= 0 ) ? mini[0] : 0;
501 mini[1] = ( mini[1] >= 0 ) ? mini[1] : 0;
502
503 maxi[0] = ( maxi[0] <= 255 ) ? maxi[0] : 255;
504 maxi[1] = ( maxi[1] <= 255 ) ? maxi[1] : 255;
505
506 minNormal[0] = mini[0];
507 minNormal[1] = ( mini[1] & C565_6_MASK ) | ( mini[1] >> 6 );
508
509 maxNormal[0] = maxi[0];
510 maxNormal[1] = ( maxi[1] & C565_6_MASK ) | ( maxi[1] >> 6 );
511}
512
513void InsetNormalsBBox3Dc( uint8_t* minNormal, uint8_t* maxNormal )
514{

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected