Wenn es keine geeignete Einstellungen von BitBlt gibt, wirst du wohl oder übel eine eigene Prozedur über Scanline schreiben müssen.
Ein Beispiel für Textur + Schatten:
Delphi-Quellcode:
procedure foo(bSource, bDest: TBitmap); //Der Schatten ist die Quelle, die Textur das Ziel
var pSource, pDest: PRGBQuad;
begin
bSource.PixelFormat:=pf32bit;
bDest.PixelFormat:=pf32bit;
[...]
pDest^.rgbtRed:=pDest^.rgbtRed-(255-pSource^.rgbtRed);
pDest^.rgbtBlue:= [...]
// Wenn der Pixel in der Schatten-Bitmap weiß ist, wird an bSource nichts verändert, sonst eben dunkler
end;