Open cnlohr opened 1 month ago
I got this far, and it doesn't actually blend... not sure why. Anyone else, any ideas?
}
void CNFGBlitImage( uint32_t * data, int x, int y, int w, int h )
{
static int pbw, pbh;
static HBITMAP pbb;
if( !pbb || pbw != w || pbh !=h )
{
if( pbb ) DeleteObject( pbb );
pbb = CreateBitmap( w, h, 1, 32, 0 );
pbh = h;
pbw = w;
}
int i;
for( i = 0; i < w*h; i++ )
{
data[i] = rand() | 0x01000000; //(data[i] & 0xffffff ) | ((rand()&0xff)<<24);
}
SetBitmapBits(pbb,w*h*4,data);
SelectObject( CNFGlsHDCBlit, pbb );
#ifdef GDI32NOUSEALPHA
BitBlt(CNFGlsHDC, x, y, w, h, CNFGlsHDCBlit, 0, 0, SRCCOPY);
#else
// If you use this, you will also need to link to -lmsimg32
static const BLENDFUNCTION BlendFunc = { .BlendOp = AC_SRC_OVER, .BlendFlags = 0, .SourceConstantAlpha = 255, .AlphaFormat = AC_SRC_ALPHA };
AlphaBlend( CNFGlsHDC, x, y, w, h, CNFGlsHDCBlit, 0, 0, w, h, BlendFunc );
#endif
}
Just a feature that would be cool!