Open GL States vergleichen

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Jonathan
Establishment
Beiträge: 2394
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Open GL States vergleichen

Beitrag von Jonathan »

Ich dachte mir neulich beim OpenGL debuggen, dass es eigentlich auch seine Vorteile haben könnte, dass OpenGl eine Statemachine ist. Im Prinzip würde ich gerne 2 States von OpenGL miteinander vergleichen, d.h. irgendwie an bestimmten Stellen im Code ein Snapshot erstellen, und dann gucken können, was sich seit dem letzten Snapshot alles verändert hat. Damit könnte man dann schön sehen, was man alles nicht zurückgesetzt hat und so, das sollte eigentlich hilfreich sein.

Kennt jemand eine Möglichkeit, soetwas zu machen?
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Ingrater
Establishment
Beiträge: 103
Registriert: 18.04.2007, 21:52

Re: Open GL States vergleichen

Beitrag von Ingrater »

Du kannst mit glGetInteger float etc, die für dich wichtigen States auslesen und dann vergleichen. Was anderes fällt mir da atm ned ein.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Open GL States vergleichen

Beitrag von kimmi »

Kennst du GLInterceptor (http://www.opengl.org/sdk/tools/GLIntercept/ ) ? Damit kannst du dir die OpenGL-Calls in ein XML- oder einfaches Plain-File loggen. Oder du integrierst so etwas in dein Programm / Spiel / Engine : die OpenGL-Calls als Groups zusammenfassen und die zu verschiedenen Zeitpunkten gegeneinander diffen. Also jeden OpenGL-Ruf als State abbilden ( zum Beispiel in einer Klasse TextureState für Textur-Operationen ), States in einem StateSet gruppieren und dann den Diff selber machen. Das erfordert allerdings etwas Arbeit.

Gruß Kimmi
Antworten