如何在 UIView 中绘制 opengl es
Posted
技术标签:
【中文标题】如何在 UIView 中绘制 opengl es【英文标题】:how to draw opengl es in a UIView 【发布时间】:2012-06-25 16:55:27 【问题描述】:我想在自定义的 UIView 中绘制我的 opengl es 动画,我该怎么做。我发现我需要重写 drawRect 方法。在下面。
#import "myView.h"
@implementation myView
- (id)initWithFrame:(CGRect)frame
self = [super initWithFrame:frame];
if (self)
// Initialization code
return self;
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
// Drawing code
*/
@end
我已经使用界面生成器绘制了一个视图,我如何链接到该视图并绘制(调用)我的 opengl 动画类。任何人都可以请写一点具体。我是初学者。谢谢。
【问题讨论】:
【参考方案1】:正如另一位海报所说,您不要使用 drawRect 在视图中实现 OpenGL。您将 OpenGL 层附加到视图。
EAGLView 是一种方式。如果您愿意将您的应用程序限制在 ios 5 或更高版本,您可能需要查看 GLKit。这为你做了很多设置。
不过要小心。 OpenGL 绝不是、塑造或形成初学者的 API。它庞大、复杂且难以使用。有一个巨大的学习曲线。我已经编程了大约 30 年,当我第一次开始学习它时,它简直让我头晕目眩。
【讨论】:
【参考方案2】:您拥有的一种可能性是让您的视图管理CAEAGLLayer
(相对于普通的CALayer
)。然后CAEAGLLayer
将呈现您的 GL 绘图代码。
我建议您查看 Apple 在一些 SDK 示例中提供的 EAGLView
类,而不是尝试将自己的子类化为 UIView
。查看this sample from Apple,了解如何定义EAGLView
以及如何使用它。
【讨论】:
以上是关于如何在 UIView 中绘制 opengl es的主要内容,如果未能解决你的问题,请参考以下文章
OPENGL ES 2.0 知识串讲 ——OPENGL ES 详解II(传入绘制信息)