TImage flackert beim Malen
-
Wenn ich in meinem TImage auf dem Canvas herummale, flackert das TImage-Feld ab und zu (sprich: der graue Form-Hintergrund schimmert kurz durch). Ist das normal so? Oder lässt sich das irgendwie verhindern?
...oder liegt es gar an meiner low-budget-geiz-grafik-karte...
-
Es gibt da in den BCB-Versionen >3 eine bool-Eigenschaft von TForm namens DoubleBuffering oder DoubleBuffered. Setze diese auf true.
-
Gibts auch bei BCB 4 noch ned, Fritzi, aber im Forum wurde das sog. DoubleBuffering auch shcon besprochen.... ->Suchfunktion!
-junix
-
...oder liegt es gar an meiner low-budget-geiz-grafik-karte...
hehe
ne, besitimmt nicht.
Ach so, DoubleBuffering ist ne Methode fläckern zu minimieren. Man zeichnet erst alles und dann füllt man das Bild.
Dann gibt es noch die PageSwapping- Methode. Du hast zwei Bilder und tauschst diese nach dem Erstellen gegeneinander aus. Ist noch schneller.
-
Original erstellt von AndreasW:
Ist noch schneller.???
Meiner Meinung nach ist das dasselbe, nur unter anderem Namen.
-
vielen Dank allerseits für die Hilfe, das mit der "double buffered"-Property werde ich gleich mal ausprobieren.
Zum Thema "double buffering" <--> "page flipping / swapping" fällt mir ein: double buffering ist normalerweise dann, wenn man um Flackern zu vermeiden erst mal in einen nicht-sichtbaren Speicherbereich rendert, und anschliessend diesen Speicherbereich in den sichtbaren Bildspeicher "blittet" oder alternativ den Zeiger auf den sichtbaren Bildspeicherbereich auf den neu gerenderten Speicherbereich "umlenkt" (=page flipping). Page flipping findet aber erst dann statt, wenn der Bildschirm für jeden Frame abwechselnd verschiedene Speicherbereiche darstellt. Dadurch verbietet sich das page flipping in "gefensterten" Modi, wogegen double buffering mit anschliessendem Blitten in den Clientbereich machbar ist. Habe ich vielleicht etwas konfus ausgedrückt.
Jedenfalls habe ich die Begriffe page flipping, double- und triple-buffering v.a. im Zusammenhang mit DirectX/-Draw bisher so verstanden.
Bin mal gespannt, wie's jetzt in meinem TImage aussieht...
-
Gibt es für Page Swapping bereits eine Methode im Borland Builder 6 oder hat jemand eine Quelle wo man etwas Quellcode herbekommt?
-
Nachtrag:
Das alles ist jetzt sehr stark SOFTWARE basierend. Wie kann man Grafikkartenbeschleunigung mit einbinden, also etwas mehr HARDWARE basierend?
Stichwörter: DirectDraw, (oder: DirectX)
-
Im \examples-Verzeichnis der BCB-Installation gibt es auch DDraw-Beispiele.