Ich möchte, ähnlich wie viele 3D-Editoren, einen OpenGL-Viewport irgendwo im Fenster erstellen und editieren, und der Rest des Fensters enthält Windows-Controls. Wie mache ich das? Bisher habe ich es geschafft, ein Fenster zu erstellen, das opengl für alle Bereiche darstellt.OpenOff Viewport in das nicht das ganze Fenster einnimmt?
Antwort
Obwohl es besser ist, die OpenGL-Fenster außer über OpenGL zu vermeiden Rendering, sind die Kontrollen untergeordnete Fenster in ihrem eigenen Recht, so sollte es kein Problem einfach zu Teil des übergeordneten Fensters (glViewPort Rendering sein kann mit Hilfe Das). Windows wird dafür sorgen, dass die Steuerelemente "über" dem übergeordneten Fenster gezeichnet werden. Alternativ können Sie ein eigenes untergeordnetes Fenster erstellen und den OpenGL-Kontext an das untergeordnete Fenster anhängen. Dann können Sie das gesamte untergeordnete Fenster rendern.
Wissen Sie, welcher Ansatz von den meisten Editoren verwendet wird? – Pilpel
Ich weiß, dass Blendr vollständig in OpenGL ohne Windows-Steuerelemente rendert. Ansonsten, nein. (Meiner Meinung nach scheint die zweite Alternative ordentlicher zu sein, aber die erste wird immer etwas effizienter, da zusätzliche Fenster nicht vollständig frei sind.) – Buster
Ich weiß, dass UnrealEngine ein einziges Fenster hat, auf dem alle Steuerelemente angezeigt werden. Ich denke also, dass die meisten großen 3D-Engines/Redakteure eine einzelne D3D- oder OpenGL-Oberfläche verwenden und ihre eigenen Widgets darauf rendern. Nichtsdestotrotz sollte es keinen Fehler geben, einen Editor zu erstellen, der traditionelle Steuerelemente verwendet, und einige OpenGL-Unterfenster zu mischen. –
- 1. Bildschirm Viewport mit $ (Fenster) .height()
- 2. Detect Arrow Key - KeyDown für das ganze Fenster
- 3. Teilen Sie das Fenster vertikal in XAML
- 4. Wie funktioniert das Ganze?
- 5. scrollTo nicht das Fenster scrollen
- 6. vim: "erweitern" Fenster in das nächste Fenster
- 7. Android BottomSheetDialogFragment, das nicht ganze Breite
- 8. jsoup select verwendet nicht das ganze html?
- 9. SVG Bilddatei zeigt nicht das ganze Bild
- 10. Wie aktiviert man das Scrollen bei absolut positioniertem Div, das nicht zum Viewport passt?
- 11. PHP Finde das ganze Wort
- 12. Wie setze ich das Viewport-Meta für das iPhone, das die Drehung richtig behandelt?
- 13. Wie das Linearlayout in Scrollview machen das ganze Gebiet
- 14. Das Hintergrundfarbenattribut funktioniert nicht, nachdem das Fenster verkleinert wurde.
- 15. array_filter das ganze Array ausfiltern
- 16. Das kleinste Fenster finden
- 17. Durchsuchen Sie das ganze Projekt
- 18. Viewport funktioniert nicht
- 19. Need for Three.js-Canvas, das die gesamte Breite eines jQuery-modalen Fensters einnimmt
- 20. Warum wird das Canvas-Fenster nicht angezeigt?
- 21. Matplotlib plt.show() -Methode Pop nicht das Fenster
- 22. ShowDialog() macht das Fenster nicht modal
- 23. byobu nicht Autoresizing und das Fenster füllen
- 24. Link im Popup-Fenster schließt das Fenster nicht?
- 25. Finde das ganze Feld in Lucene
- 26. Bootstrap-Hintergrundbild füllt das Web-Fenster nicht
- 27. Adobe Flex/AIR: Scrollen einer Sub-Komponente, nicht das ganze Fenster
- 28. html Element mit Höhenattribut 100% decken nicht das ganze Fenster ab
- 29. QScrollArea nicht auf das Fenster skalieren
- 30. glReadPixels für ganze Fenster (OpenGL)
Sie haben es geschafft, ein OpenGL-Fenster in Windows-API zu erstellen, und das ist nicht die einfachste Sache der Welt, also nahm ich an, dass die Frage nicht "Wie rufe ich glViewPort" war, da das viel einfacher ist. Richtig? – Buster
Das war nicht meine Frage. (Sie haben es bereits beantwortet: p) – Pilpel