In Offscreen-Renderbuffer in OpenGL ES (iPhone) zeichnen

Ich versuche, einen Offscreen-Renderpuffer in OpenGL ES auf dem iPhone zu erstellen. Ich habe den Puffer folgendermaßen erstellt:

        glGenFramebuffersOES(1, &offscreenFramebuffer);
    glBindFramebufferOES(GL_FRAMEBUFFER_OES, offscreenFramebuffer);

    glGenRenderbuffersOES(1, &offscreenRenderbuffer);
    glBindRenderbufferOES(GL_RENDERBUFFER_OES, offscreenRenderbuffer);
    glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, offscreenRenderbuffer);

Aber ich bin verwirrt, wie der Speicher gerendert wird. In der Dokumentation von Apple heißt es, dass die Methode EAGLContext renderBufferStorage: fromDrawable: verwendet werden soll, dies scheint jedoch nur für einen Renderpuffer zu funktionieren (den Hauptpuffer, der angezeigt wird). Wenn ich die normale OpenGL-Funktion glRenderBufferStorageOES verwende, kann ich sie scheinbar nicht zur Anzeige bringen. Hier ist der Code:

        // this is in the initialization section:
    glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_RGB8_OES, backingWidth, backingHeight);

    // and this is when I'm trying to draw to it and display it:
    glBindFramebufferOES(GL_FRAMEBUFFER_OES, offscreenFramebuffer);
    GLfloat vc[] = {
        0.0f, 0.0f, 0.0f,
        10.0f, 10.0f, 10.0f,
        0.0f, 0.0f, 0.0f,
        -10.0f, -10.0f, -10.0f,         
    };

    glLoadIdentity();
    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(3, GL_FLOAT, 0, vc);
    glDrawArrays(GL_LINES, 0, 4);
    glDisableClientState(GL_VERTEX_ARRAY);

    glBindRenderbufferOES(GL_RENDERBUFFER_OES, offscreenRenderbuffer);
    [context presentRenderbuffer:GL_RENDERBUFFER_OES];

Auf diese Weise wird nichts auf dem Bildschirm angezeigt. Wenn ich jedoch die Verweise auf "offscreen ... Buffer" auf die mit der renderBufferStorage-Methode erstellten Puffer ausschalte, funktioniert dies einwandfrei.

Irgendwelche Vorschläge?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage