FPS = 60 (Dither)
FPS drops significantly when rendering Alpha Blended Text
Any Ideas?
Code as below.
Called to draw surface with Alpha Blend
// Alpha mode
DXDraw::RGBMASK mask = DXDraw::GetInstance()->GetRGBmask();
DWORD r, g, b, color;
// Render a alpha blended
for( int y = rc.top; y < rc.bottom; y++ )
{
for( int x = 0; x < rc.right; x++ )
{
color = pDestStart[ x ];
MergeColor( pimpl->backgroundColor, color );
pDestStart[ x ] = color;
}
pDestStart += pitch;
}
Merge Color Code
// Add the color 1 with the second and divide the result by 2
#define MergeColor( clr1, clr2 )\
r = ( ( clr1 & mask.rMask ) + ( clr2 & mask.rMask ) ) >> 1;\
g = ( ( clr1 & mask.gMask ) + ( clr2 & mask.gMask ) ) >> 1;\
b = ( ( clr1 & mask.bMask ) + ( clr2 & mask.bMask ) ) >> 1;\
color = ( r & mask.rMask ) | ( g & mask.gMask ) | ( b & mask.bMask );