Forum: Multimedia
by Namenloser,
30. Mär 2017
Okay, also ich habe mir deinen Code jetzt noch mal näher angeschaut und verstehe glaube ich, was du da machst. Aber du ignorierst komplett den Alphakanal, also das GL_SRC_ALPHA. Deine Implementierung entspricht glBlendFunc(GL_ONE, GL_ONE) statt glBlendFunc(GL_SRC_ALPHA, GL_ONE). Daher wird wahrscheinlich der Unterschied kommen.
Forum: Multimedia
by Namenloser,
30. Mär 2017
Naja, also ich sage mal ganz banal:
function Blend(const src, dst: Cardinal): Cardinal;
var
src_rgba: TRGBQuad absolute src;
dst_rgba: TRGBQuad absolute dst;
res_rgba: TRGBQuad absolute Result;
begin
res_rgba.a := Min(src.a*src.a div 255 + dst.a, 255);