我正在学习 OpenGLES,我正在尝试将 GLKViewer 放在 UIViewController 中。
我知道我可以通过使用 GLViewController 来解决主要问题,但我正在尝试学习如何做到这一点。
我发现了这个问题,Nesting GLKView into UIViewController and Nested GLKView and GLKViewController但即使我认为我正在执行所有正确的步骤,我也必须遗漏一些东西,因为当我运行我的项目时,我没有到达 drawInRect 打印线。
在情节提要中,我将 ViewController 指向 glkview 组件的代表。
我试图使代码尽可能简单,任何帮助都将不胜感激:
我的控制器.h
#import <Foundation/Foundation.h>
#import <GLKit/GLKit.h>
@interface MyGLController : UIViewController <GLKViewDelegate>
{
GLuint vertexBufferID;
}
@property (weak, nonatomic) IBOutlet GLKView *glview;
@property (strong, nonatomic) GLKBaseEffect *baseEffect;
@end
MyGLController.m
#import "MyGLController.h"
@implementation MyGLController
//@synthesize baseEffect;
-(void) viewDidLoad{
[super viewDidLoad];
self.glview.context = [[EAGLContext alloc] initWithAPI:
kEAGLRenderingAPIOpenGLES2];
[EAGLContext setCurrentContext:self.glview.context];
printf("View Loaded");
}
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
printf("DrawInRect");
}
@end
* 更新 *
据我所知,glkview 已按照建议正确连接,并添加了 josh-knapp 并调用了 setNeedsDisplay。
万一我遗漏了什么,我已经在此处上传了该项目的副本:https ://github.com/jcrogel/OpenGLDebug.git
我在这方面完全是菜鸟,所以我为任何愚蠢的疏忽道歉:)