ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
262
262
EMPFEHLEN
-
20.05.10 18:50 #1
Hallo,
ich arbeite an einer Anwendung mit einer 2D-Oberfläche für das Plazieren von Objekten. Ich benutze hierfür das Graphics Objekt des Forms.
Nun hatte ich das Problem, dass das Zeichnen jedes Frames direkt auf dem sichtbaren Graphics Objekt geschieht, wodurch ein Flackern entsteht.
Die Lösung ist natürlich Doublebuffering. Laut MSDN Library wäre die beste Lösung, die Double buffered Eigenschaft des Forms auf true zu setzen. Keine Veränderung, man kann imernoch beim Zeichnen zugucken. Auch das Codebeispiel auf MSDN brachte keinen Erfolg:
Code :1 2 3 4 5 6 7
public: void EnableDoubleBuffering() { // Set the value of the double-buffering style bits to true. this->SetStyle( static_cast<ControlStyles>(ControlStyles::DoubleBuffer | ControlStyles::UserPaint | ControlStyles::AllPaintingInWmPaint), true ); this->UpdateStyles(); }
Deshalb benutze ich jetzt das Graphics-Objekt einer unsichtbaren Bitmap um im Hintergrund zu zeichnen, um dann den fertigen Frame an das Graphics-Objekt des Forms zu übergeben. Leider hat dieses manuelle Double-Buffering zur Folge, dass die Frame-Rate sehr niedrig ist. In der Praxis also die Oberfläche beim Verschieben ruckelt.
Um die Performance zu verbessern werde ich wohl einen anderen Ansatz wählen müssen. Die Frage ist nur, welchen?
Meine Ideen:
1. Versuchen, das eingebaute double buffering des Graphics-Objekts doch irgendwie zum laufen zu bringen. Die Frage ist, wie, und wenns klappt, ob das dann viel hilft.
2. Da ich vermute, dass man hier nur weiterkommt, wenn man die Grafik Sachen von der GPU statt der CPU ausführen lässt, könnte man DirectX oder eher OpenGL probieren. Hier weiß ich aber keinen Ansatz, wie ich den praktischen WYSIWYG-Editor von VC++ weiter benutzen kann. Wenns nicht anders geht, ists nicht so schlimm, aber ich würde gerne darauf verzichten, auf wxWidgets o.ä. umzusteigen.
Hat jemand ne Idee?
André
Ähnliche Themen
-
[JAVA] Double Buffering
Von Thomas Darimont im Forum JavaAntworten: 2Letzter Beitrag: 05.12.09, 20:50 -
Double Buffering mit PictureBox
Von JJB im Forum .NET Windows FormsAntworten: 0Letzter Beitrag: 16.11.05, 14:59 -
Billig Frage: Umwandlung eines Strings in Double
Von Lautsprecher im Forum JavaAntworten: 3Letzter Beitrag: 21.10.05, 16:52 -
MenuBar flackert trotz Double-Buffering
Von wSam im Forum JavaAntworten: 2Letzter Beitrag: 24.06.05, 16:20 -
pocket pc - double buffering - c#
Von bremse im Forum .NET ArchivAntworten: 2Letzter Beitrag: 30.04.05, 13:06





Zitieren
Login






