ich habe die letzte Zeit damit verbracht unsere App auf Android zu portieren. Einen OpenGL-Renderer habe ich unter Windows schon geschrieben, wobei ich nur die Initialisierung etwas abändern musste um das ganze mit Android kompatibel zu machen.
Nun bin ich allerdings auf folgendes Problem gestoßen, welches für mich einfach keinen Sinn ergibt:
Ich habe 2 Makros, um die OpenGL-aufrufe auf Fehler zu überprüfen:
Code: Alles auswählen
#define GL_CHECK(x) \
x; glGetError();
#define EGL_CHECK(x) \
x; eglGetError();
Wenn ich die Makros folgendermaßen abändere:
Code: Alles auswählen
#define GL_CHECK(x) x;
#define EGL_CHECK(x) x;
Lasse ich den Aufruf zu glGetError() drin, so tut nur der Clear-Aufruf etwas, aber gerendert wird nichts.
Weiterhin ist komisch, dass mir, wenn die Logging-Funktionen noch drin sind natürlich, merkwürdige Werte für die Errors ausgegeben werden.
Es handelt sich dabei um 2 glGenBuffers-Aufrufe:
Code: Alles auswählen
GL_CHECK(glGenBuffers(1, &VertexBufferID))
GL_CHECK(glGenBuffers(1, &IndexBufferID))
Dazwischen gibt es aber noch andere Funktionen, die auch Fehler liefern, die in der Dokumentation stehen, aber diese beiden Aufrufe zählen immer aufwärts mit ihren Fehlern!
Hat jemand soetwas schonmal gesehen und weiß vielleicht was da los ist? Ich bin für jede Hilfe dankbar :)