AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi schnelle Zeichen Routinen. Zur Zeit Canvas.Draw
Thema durchsuchen
Ansicht
Themen-Optionen

schnelle Zeichen Routinen. Zur Zeit Canvas.Draw

Ein Thema von Jackie1983 · begonnen am 14. Okt 2007 · letzter Beitrag vom 16. Okt 2007
 
Muetze1
(Gast)

n/a Beiträge
 
#13

Re: schnelle Zeichen Routinen. Zur Zeit Canvas.Draw

  Alt 16. Okt 2007, 12:50
Zitat von Lossy eX:
GDI: Die Geschwindigkeit ist unterschiedlich. Das kommt ganz darauf an ob die Grafikkarte mit zur Beschleunigung genutzt wird oder nicht. Wenn du ein TBitmap erstellst dann solltest du in jedem Falle den HandleType auf bmDDB stellen. Dadurch weißt du der GDI mit vorhandene Hardware benutzen zu dürfen. Wenn der auf bmDIB steht dann läuft alles auf der CPU ab. Ein frisch geladenes Bit steht auf bmDIB.
Wieso sollte DIB über die CPU ablaufen? Die Grafikkartentreiber können die GDI Befehle durch eigene, beschleunigte Funktionen ersetzen. Wenn den neuen Implementierungen was nicht passt, rufen sie die langsamen Originalroutinen auf. die Standard GDI von Windows macht eigentlich alles in Software und erst die Treiber sorgen für Geschwindigkeit. Warum aber ein DIB nicht beschleunigt werden sollte, ist mir ein Rätsel. Ein DDB bedeutet nichts weiter, als dass es ein Palette (falls benötigt) im aktuellen Context gestellt wird. Spätestens ab den nicht Paletten-basierenden Farbtiefen von 15 Bit und aufwärts ist keine mehr nötig und man hat die Pixelinformationen. Dabei rechnet der Treiber diese Informationen genauso schnell in das im Grafikkartenspeicher genutzte System um um es dann direkt zu verwenden. Bei den DDBs hast du nur mehr Probleme, u.a. bei paletten-basierenden Auflösungen etc und vor allem durch die entsprechende Anpassung der Farbpalette. Male auf einem 256 Farben Screen mit einer selbstgemischten Farbe auf einem DDB - die Farbe wird immer dem farblich nächsten Eintrag angepasst und entspricht nicht mehr deiner Mischung. Das RealizePalette() System klappt in der VCL eh nicht ganz richtig und macht hier nur mehr Probleme.

Meine App arbeitet in der gesamten Firma auf den unterschiedlichsten Rechnern und Betriebssystem und genauso Auflösungen und unterschiedlichen Farbtiefen immer ohne flackern oder Verzögerungen. Selbst ein PII muckt nicht rum...

Zitat von Lossy eX:
PPS: Wenn du auf die Scanlines zugreifen möchtest darfst du bmDDB nicht verwenden. Da dadurch die Scanlines nicht verfügbar sind. Du kannst es aber auch kurzzeitig umstellen.
Wobei dabei wieder die gesetzten (z.B. RGB Werte) der aktuellen Palette des Devices angepasst werden und somit die Farben verändert werden.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz