Du könntest eventuell eine eigene Combine-Routine schreiben, die nur den Alpha-Channel verändert, und dann die ganz normalen Zeichenroutinen verwenden → siehe GR32_Blend.pas. Wird aber wahrscheinlich etwas „dirty“, da die Combine-Routinen in einem fixen Array gespeichert sind, das so aussieht:
Delphi-Quellcode:
type
TCombineMode = (cmBlend, cmMerge);
{…}
var
{…}
{ Function Variables }
CombineReg: TCombineReg;
CombineMem: TCombineMem;
BlendReg: TBlendReg;
BlendMem: TBlendMem;
{…}
MergeReg: TBlendReg;
MergeMem: TBlendMem;
{…}
const
BLEND_MEM: array[TCombineMode] of ^TBlendMem = ((@@BlendMem),(@@MergeMem));
{…}
Ehrlich gesagt blicke ich gerade selbst nicht durch, was genau der Unterschied zwischen den Blend-, Combine- und Merge-Funktionen ist.
Jedenfalls existieren sie alle in verschiedenen Varianten und werden dynamisch zugewiesen, je nach verfügbaren CPU-Features.
Eventuell könntest du dort rumpfuschen, und die Funktionszeiger auf eine eigene Funktion umbiegen.
Nur so ne Idee...