Hallo Hagen!
Vielen Dank für Deine konstruktiven Hinweise! Zu meiner Ehrenrettung muss ich jedoch sagen, dass ich so ab und an gedacht ... und vor allen Dingen die virtuelle Stoppuhr gedrückt habe.
Ich habe in meiner Klasse mehrere Funktionen zum Blenden. Welche ich nutze richtet sich danach in welchem Format der Blending-Faktor ursprünglich anfällt. Die Umrechnung in den Bereich 0..255 und dann mit Integerzahlen rechnen dauert effektiv länger! Das hab ich getestet.
Für die Default Füllfarbe (mit Alphakanal) führe ich Vorberechnungen durch und ersetze dann auch die Division mit 255 durch SHR 8. Das bringt Schwung in den Laden!
Ist mir schon klar, dass 24Bit irgendwo zwischen den Stühlen stehen. Ich habe lange mit der G32 Bibliothek von Alex Desimov gearbeitet. Aber für meine Zwecke sind das meistens 25% verschenkter Speicher. Stattdessen hab ich den Alpha-Kanal ausgelagert und eine Masken-Klassen daraus gebastelt, die ich bei Bedarf über die Bitmap legen kann.
Jetzt hab ich aber noch ein paar Fragen und Anmerkung zu Deiner Liste 1 - 6:
Zitat:
3.) ein Register wird wieder in den Stack gespeichert
Gibt es eine Möglichkeit, den Inhalt eines Registers (eax) direkt in die FPU und umgekehrt zu transferieren?
Zitat:
4.) fwait kann raus, unter neueren CPU's > 286 eh sinnlos.
5.) Stack wird geupdated, POP bewirkt einen Speicherzugriff + ein Inkrement von ESP. besser also eine Stackvariable mit MOV EAX,[ESP] benutzen
Den Code hab ich aus der Fkt Round geklaut. Vorher hab ich über meine lokale Variable Temp gearbeitet. Das war noch langsamer.
Viele Grüsse + nochmals danke
OLLI