2012-03-18 2 views
7

내가있는 UIViewController에서 GLKView를 사용하려고 해요로, 내 코드는이중첩 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은 어디에서 초기화 할 수 있습니까? 어떤 제안?

답변

9

현재 수행중인 것처럼 viewDidLoad에서 OpenGL을 초기화하십시오.

보기 컨트롤러를 GLKView's delegate으로 등록하십시오. 대리자의 glkView:(GLKView *)view drawInRect: 메서드는 다시 그리기가 필요할 때마다 호출됩니다.

This tutorial may help.

+0

나는 또한이 대표는 또한 http://developer.apple.com/library ([GLKViewController]를 사용하여보고 할 수 있습니다 – JohnnyAce

+0

어떻게 작동하는지 확인해야합니다, 튜토리얼에 살펴 보겠습니다 /ios/#DOCUMENTATION/GLkit/Reference/GLKViewController_ClassRef/Reference/Reference.html) UIViewController 대신. 렌더링 루프를 구현하므로 GLKView를 주기적으로 여러 번 업데이트 할 수 있습니다. –