![]() |
Double Buffered imitieren [gelöst]
Hi!
Vorneweg, es geht um ein Spiel und möchte eigene Buttons möglichst schnell anzeigen lassen. Ich mache mir mit der Graphics32-Library ein Offscreenbitmap. Es beinhaltet alle Buttons, Hintergründe und sonstige Spielereien. Dieses zeichne ich auf die Form. Wenn z.B durch Hovern das Bitmap geändert werden muss, zeichne ich es neu. Das geht recht schnell. Das eigentlich Problem ist das Zeichnen. Mit DoubleBufferd: Es ist auf etwas älteren System recht träge. Ohne DoubleBufferd: Auf allen System sehr schnell. Es flackert trotz Offscreenbitmap extrem. Ich habe zeichen das Bitmap mittels DrawTo (ist eine TBitmap32-Methode) oder BitBlt. (Macht keinen Unterschied, DrawTo macht haargenau das selbe.) Kann ich den DoubleBuffered Effekt selber nachbauen, so das ich es auf ein Gleichgewicht optimieren kann? Ich möchte nicht erst das Projekt mit OpenGL oder so machen. P.S.: Was mir aufgefallen ist: Bei kleinen Bitmaps funktioniert das Offscreenbitmap. Aber bei meinem 640x480 großem flackerts immernoch. edit: Och Mist. Jetzt hab ich den ganzen Tag rumprobiert und jetzt finde ich den Fehler selber: Statt dem
Delphi-Quellcode:
das nutzen:
Self.Invalide
Delphi-Quellcode:
(Danke an turboPASCALs GPU-Temp-Messer! :zwinker: )
r := Self.ClientRect;
windows.InvalidateRect(Self.Handle, @r, FALSE); |
Re: Double Buffered imitieren [gelöst]
Bitte. :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 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