OpenGL之画三角形以及常用API详解。
来源:互联网 发布:网络商标到期 编辑:程序博客网 时间:2024/05/16 01:23
#import <UIKit/UIKit.h>
#import <OpenGLES/ES2/gl.h>
#import <OpenGLES/ES2/glext.h>
@interface HZTriangularView : UIView{
EAGLContext *_context;
CAEAGLLayer *_eaglLayer;
GLuint _renderbuffers;
GLuint _framebuffers ;
}
// 所有的OpenGL渲染都是在这个 CAEAGLLayer类型图层进行渲染的。所以这一个必须设置。否则运行不起来。
+(Class)layerClass{
return [CAEAGLLayerclass];
}
第二步:
// 创建上下文。
- (void)initContext{
_context = [[EAGLContextalloc]initWithAPI:kEAGLRenderingAPIOpenGLES2];
if (!_context) {
NSLog(@"Failed to initialize OpenGLES 2.0 context");
exit(1);
}
if (![EAGLContextsetCurrentContext:_context]) {
NSLog(@"Failed to set current OpenGL context");
exit(1);
}
}
// 转化图层。
- (void)initLayer{
_eaglLayer = (CAEAGLLayer *)self.layer;
_eaglLayer.opaque =YES;
}
// 创建渲染缓冲区。并为其绑定缓冲对象。
- (void)initRenderBuffer{
glGenRenderbuffers(1, &_renderbuffers);
glBindRenderbuffer(GL_RENDERBUFFER,_renderbuffers);
[_context renderbufferStorage:GL_RENDERBUFFERfromDrawable:_eaglLayer];
}
// 创建帧缓冲区,并为其绑定缓冲对象。
- (void)initFrameBuffer{
glGenFramebuffers(1, &_framebuffers);
glBindFramebuffer(GL_FRAMEBUFFER,_framebuffers);
// 把渲染缓冲区绑定到帧缓冲区上。并用颜色进行渲染。
glFramebufferRenderbuffer(GL_FRAMEBUFFER,GL_COLOR_ATTACHMENT0,GL_RENDERBUFFER,_renderbuffers);
}
// 渲染
-(void)render{
glClearColor(162.0/255.0,72.0/255.0,52.0/255.0,1.0);
glClear(GL_COLOR_BUFFER_BIT);
[_context presentRenderbuffer:GL_RENDERBUFFER];
}
-(instancetype)initWithFrame:(CGRect)frame{
if (self = [superinitWithFrame:frame]) {
[self initLayer];
[self initContext];
[self initRenderBuffer];
[self initFrameBuffer];
[self render];
}
return self;
}
// 这是一个代表顶点的结构体 Position:(x,y,z) Color:(R,G,B,A)
typedef struct{
float Position[3];
float Color[4];
}Vertex;
// 这就是顶点结构体的 3个顶点和颜色。
const Vertex vertices[]={
{{0.5,-0.5},{1.0,0.0,0.0,1.0}},
{{0.5,0.5},{0.0,1.0,0.0,1.0}},
{{-0.5,0.5},{0.0,0.0,1.0,1.0}}
};
// 这就是三角型相连的三个点。
const GLubyte Indices[] = {
0,1,2
};
- OpenGL之画三角形以及常用API详解。
- 学习OpenGL入门第一步之画三角形详解
- OpenGL学习之API详解
- 【OpenGL游戏开发之二】OpenGL常用API
- Zookeeper之常用API详解
- OpenGL常用API
- OPenGL ES常用API:
- OpenGL ES常用API
- OpenGL ES常用API
- OpenGL常用API
- OpenGL ES常用API
- OpenGL常用API
- OpenGL ES常用API
- OpenGL 常用 API
- android opengl 画三角形
- OpenGL画三角形
- opengl 画三角形 程序
- OpenGL画三角形
- css中的阴影效果
- linux命令格式与目录处理命令ls
- apache配置【转载】
- 梯度下降总结
- Java内存管理原理及内存区域详解
- OpenGL之画三角形以及常用API详解。
- Vue 计算属性
- springIoC实例
- apache2 设置页面禁止iframe/禁止访问目录
- Windows+Linux双系统引导
- 解决Erroer:unified memory profiling failed.问题
- Week1-3Language Diversity and Ethnologue
- python解析 MS-Celeb-1M 数据库
- SpringBoot第二讲 利用Spring Data JPA实现数据库的访问(一)