Thema: Delphi Scanline lahm??

Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Scanline lahm??

  Alt 9. Okt 2005, 01:49
Die Cut-Funktion könntest du mit MMX sogar komplett weglassen. Hier mal ein ASM-Beispiel (Achtung! Delphi kennt die MMX-Mnemonics meine ich erst ab D7):
Voraussetzung: Farbe in 32Bit
Delphi-Quellcode:
function Darken(Color: LongInt; Value: Byte): LongInt;
// EAX=Color; EDX=Value
asm
        // MMX-Register befüllen
        MOVD MM1, EAX
        PUNPCKLBW MM1, MM0
        MOVD MM2, EDX
        PSHUFW MM2, MM2, 0
        // Wert von Value von allen RGB abziehen, wenn 0 erreicht 0 belassen
        PSUBUSB MM1, MM2
        // Ergebnis zurückschreiben
        PACKUSWB MM1, MM0
        MOVD EAX, MM1
        // FPU zurücksetzen
        EMMS
end;
Wenn du aufhellen möchtest, dann einfach in Zeile 10 statt PSUBUSB PADDUSB verwenden.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat