Hi,
Meine Applikation möchte einfach keinen Strich zeichnen. Ich habe heute den ganzen Tag versucht, zumindest den Fehler einzugrenzen. Folgendes Problem konnte ich ausmachen:
Zuerst lade ich die Shader, kompiliere und linke sie zu einem Shader-Programm, und setze das zu benutzende Shader-Programm wieder auf 0:
Beim Rendering binde ich mein Shader-Programm wieder:Code:// Shader-Programme laden, kompilieren und linken - Program Handle speichern // ... glUseProgram(0);
Frage ich nach dem erneuten Binden des Shader-Programmes die OpenGL Error Codes ab, dann bekomme ich einen GL_INVALID_OPERATION. Ich bin mir sicher dass der zweite Call von glUseProgram() den Fehler verursacht (vorher wird kein Fehler-Code zurückgegeben). Weiters bin ich mir sicher, dass ich das Kompilieren und Linken der Shader-Codes richtig überprüfe. Zwischen den beiden glUseProgram() Calls sind lediglich folgende OpenGL Calls:Code:glUseProgram(_programHandle); // MVP Uniform übergeben //... // VAO binden //...
OpenGL doc zu glUseProgram():Code:glClearColor(1.0f, 1.0f, 1.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Wobei ich (1) und (3) eigentlich ausschließen würde. Was könnte also mein Problem sein? Bitte um Hilfe! Danke :-)(1) GL_INVALID_OPERATION is generated if program is not a program object
(2) GL_INVALID_OPERATION is generated if program could not be made part of current state.
(3) GL_INVALID_OPERATION is generated if glUseProgram is executed between the execution of glBegin and the corresponding execution of glEnd.



Reply With Quote





Bookmarks