Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zitat von »"Moe"«
Der Compiler verhält sich unterschiedlich im Release und Debug Modus. Im Debug-Modus werden alle Variablen automatisch initialisiert und haben teilweise andere Datentypen als im Releasemodus (bool wird z.B. zu einem integer im Debugmodus).
Zitat von »"dot"«
Zitat von »"Moe"«
Der Compiler verhält sich unterschiedlich im Release und Debug Modus. Im Debug-Modus werden alle Variablen automatisch initialisiert und haben teilweise andere Datentypen als im Releasemodus (bool wird z.B. zu einem integer im Debugmodus).
Sry aber das is Blödsinn
Zitat von »"Moe"«
Bei VS2k5 ist es definitiv so. Das mit den Datentypen merkt man auf sehr unangenehme Weise mit glUniform, das im Debug Modus mit bool funktioniert, nicht jedoch im Releasemodus (okay, in OGL 3.x habe ich es noch nicht getestet).
Zitat von »"dot"«
Der Compiler kann nicht einfach im Release Mode die Datentypen von Objekten ändern.
Zitat von »"Moe"«
Das Problem könnte aber daran liegen, dass OpenGL eigentlich eine C Bibliothek ist und kein bool kennt. Es kann also auch an den unterschiedlichen Optimierungen in Debug und Release liegen, dass die Kompatibilität hier zerbricht...
C-/C++-Quelltext |
|
1 2 3 |
const bool constant = false; GLint location = glGetUniformLocation(prog, "inbool"); glUniform1iv(location, 1, (int *) &constant); |
Quellcode |
|
1 |
uniform bool inbool; |
Zitat von »"Moe"«
Jetzt im Nachhinein würde ich sagen, dass es nicht ging wegen dem Type-cast über Zeiger, aber dann hätte es in beiden Fällen nicht gehen dürfen...
Zitat von »"Moe"«
Das const wegcasten ist ja nicht so dramatisch, insbesondere, weil es ja nur gelesen wird.
Zitat von »"Moe"«
Was ich aber noch immer nicht verstehe, ist, dass es in Debug Modus funktioniert hat, der Releasemodus den Wert aber immer auf 0 (bzw. false) gesetzt hat - hier hätten ja eigentlich Zufallswerte, bzw. true, drinstehen müssen.
Werbeanzeige