Forum: Algorithmen, Datenstrukturen und Klassendesign
by manfred42,
1. Dez 2014
Ein Versuch in Vorbereitung einer MMX-Versionprocedure Draw32BitToBitmapPreMMX(const BitOben: TBitmap; BitUnten: TBitmap);
const
Magic: UInt16 = $8081;
var
W, x, y: Integer;
Stride, ORes: Integer;
RowO, RowU,
RGBA_Oben, RGBA_Unten: ^TRGBQuad;
begin
RowU := BitUnten.ScanLine;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by manfred42,
30. Nov 2014
Nach flüchtigem Verfolgen der Diskussion meine ich:
Es geht hier, wie schon anklang, um Alphablending.
Da gab es doch 2005 das Thema
Alphablending mit MMX / SSE Befehle
Aber zur jetzigen Diskussion
Wenn man anstatt 255 durch 256 per Shift dividiert,
dann geht das nur bei nichnegativem Nenner.
Für den Datentyp Int32 kann man den Trick mit der
Forum: Algorithmen, Datenstrukturen und Klassendesign
by manfred42,
28. Nov 2014
Danke für den Ratschlag (um diese Uhrzeit)!
Ich hatte mit 2 kleineren Bitmaps experimentiert und werde
dem Ratschlag folgen.
Jetzt habe die letzte (Pointer)-Version der Prozedur probiert.
Sie läuft sehr flott und schreit förmlich nach dem Einsatz von
MMX-Code.
An einer Thread-Version will ich mich später versuchen. Ich
habe da schon eine Idee. Bei Threads bin ich aber nicht sehr...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by manfred42,
27. Nov 2014
Hallo, ich bin hier neu hinzugestoßen und versuche mich am Beschleunigen.
Zuförderst ein paar Fragen zu den Details:
● Ist der Nenner in der Formel 255 oder 256? Bei 255 sind einige Klimmzüge nötig
● Ist Round vonnöten, oder dient es nur zur Float-Integer-Konvertierung?
● Von welcher WEB-Site kann ich 2 repräsentative 32-bittige Bitmaps absaugen?
Da ich schon einmal mit...