GLKit und Objective C



  • Hey,

    hoffe hier nicht komplett Themenfremd zu sein, aber vielleicht kennt sich ja doch der ein oder andere damit aus.

    Ich habe angefangen unter IOS, Objective C mit GLKit (als Wrapper für OpenGL ES) zu entwickeln. Als einfaches Beispiel möchte ich ein Dreieck auf den Bildschirm zeichnen. Hier scheitere ich bereits. Auf dem Bildschirm sehe ich zwar die generiere Hintergrundfarbe, aber von einem Dreieck ist nichts zu sehen.
    Kann jemand erkennen was hier noch fehlt?

    Besten Dank.

    Grüße
    GLKit

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
    
        if (!self.context) 
        {
            NSLog(@"Failed to create ES context");
        }
    
        self.preferredFramesPerSecond = 33;
    
        [EAGLContext setCurrentContext:self.context];
    
        // Init view
        GLKView *view = (GLKView *)self.view;
        view.context = self.context;
    
        //view.enableSetNeedsDisplay = FALSE;
    
    }
    
    - (void) update
    {
        //NSLog(@"F: update");
    }
    
    - (void) glkView:(GLKView *)view drawInRect:(CGRect)rect
    {
        glClearColor(0.7, 1.0, 0.7, 1.0);
        glClear(GL_COLOR_BUFFER_BIT);    
    
        GLshort vertices[] = 
        {
            0   ,  250,
            250 , 250,
            0   , 0
        };
    
        CGFloat w = self.view.bounds.size.width;
        CGFloat h = self.view.bounds.size.height;
    
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity(); 
        glOrthof(0, w, h, 0, 0, 1);
    
        glMatrixMode(GL_MODELVIEW);
        glEnableClientState(GL_VERTEX_ARRAY);
        glDisable(GL_DEPTH_TEST); 
    
        glVertexPointer(2, GL_SHORT, 0, vertices); 
        glColor4f(0.5,0.5,0.5,1);
        glDrawArrays(GL_TRIANGLES, 0, 3);
    
    }
    


  • Problem ist gefunden:

    Wenn man

    initWithAPI:kEAGLRenderingAPIOpenGLES2
    

    durch

    initWithAPI:kEAGLRenderingAPIOpenGLES1
    

    ersetzt, dann sieht man auch ein Dreieck.

    Grüße
    GLKit


Anmelden zum Antworten