Einzelnen Beitrag anzeigen

BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
495 Beiträge
 
Delphi 12 Athens
 
#1

OpenGL trotz DoubleBuffer direkt...

  Alt 15. Nov 2014, 00:08
Hallo zusammen,

ich weiß nicht wie es anders ausdrücken soll, daher der verwirrende Titel.

Also: Ich habe hier ein Objekt geschrieben, welches mir via OpenGL Grafik ausgibt. Ich nutze dazu die dglOpenGL-Unit. Bei dem Programm handelt es sich um eine Art CAD-System, welches 3D-Grafiken darstellt. Wenn ich nun mit der Maus über die Grafik fahre, dann möchte ich die Objekte in der Nähe des Mauszeigers markieren, wenn der Mauszeiger sich wieder entfernt die Markierung wieder entfernen. Das Funktioniert alles sehr gut, allerdings zeichne ich Momentan immer alles neu. Das ist bei mehreren hunderttausend Linien recht aufwändig. Auch möchte ich z.B. einen temporären Markierungsrahmen mit der Maus zeichnen können. Wenn ich nun an den Standard-Canvas von Delphi zurückdenke, dann habe ich solche Sachen eigentlich immer mit XOR gemacht (erstes Zeichnen darstellen, zweites Zeichnen wieder löschen). Dazu müsste ich aber direkt den Ausgabepuffer beschreiben. Normalerweise rendere ich ja in den Hintergrundpuffer und tausche dann mit "SwapBuffers" den Anzeige- und den Hintergrundpuffer aus. Mir fehlt da Momentan noch ein guter Ansatz wie man das Ganze in OpenGL lösen könnte. Am liebsten hätte ich gerne ein ähnliches Verhalten wie z.B. in Sketchup. Mit klicken ein Teil markieren. Mit der Maus einen Rahmen ziehen und mehrere Teile markieren usw...

Hat irgendwer eine Idee? Ich nehme auch gerne irgendwelche Hinweise auf Litertur etc. entgegen. Leider sind 99.9% der OpenGL-Beschreibungen auf Spieleprogrammierung und deren Eigenheiten ausgelegt.

Für alle Tipps schon mal Danke!

Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat