Вложение GLKView в UIViewController - PullRequest
7 голосов
/ 18 марта 2012

Я пытаюсь использовать GLKView в UIViewController, мой код выглядит так

CustomViewController.h

#import <UIKit/UIKit.h>
#import <GLKit/GLKit.h>

@interface CustomViewController : UIViewController
{
    NSString * name;
}

@property NSString * name;

CustomViewController.m

#import "CustomViewController.h"

@interface CustomViewController ()

@end

@implementation CustomViewController
@synthesize name;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    EAGLContext * context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
    CGRect mainScreen = [[UIScreen mainScreen] bounds];
    GLKView * viewGL = [[GLKView alloc] initWithFrame:CGRectMake(mainScreen.size.width / 2, mainScreen.size.height / 2, 50, 50)];
    viewGL.context = context;
    [self.view addSubview:viewGL];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

Как определить метод рисования / рендеринга GLKView? и где я могу инициализировать OpenGL? Есть предложения?

1 Ответ

9 голосов
/ 18 марта 2012

Инициализируйте OpenGL в вашем viewDidLoad, как вы делаете сейчас.

Обратите внимание на регистрацию вашего контроллера представления в качестве делегата GLKView .Метод делегата glkView:(GLKView *)view drawInRect: будет вызываться всякий раз, когда требуется перерисовка.

Это руководство может помочь.

...