OpenGL ES 入门API大全

简介: 本文章正确使用姿势:command/Ctrl + f  进行搜索对应的功能代码,找到它的详细解释。 (以下内容如有偏差,欢迎进行指正)一.CAEAGLLayer 的使用: CAEAGLLayer官方解释如图CAEAGLLayer,我来简单翻译一下:CAEAGLLayer 是继承于CALayer 的,可以用它在iOS 和tvOS 的设备上使用。

本文章正确使用姿势:command/Ctrl + f  进行搜索对应的功能代码,找到它的详细解释。 (以下内容如有偏差,欢迎进行指正)

一.CAEAGLLayer 的使用:

img_e0df24f7cf138326baef3c026acf1891.png
CAEAGLLayer


官方解释如图CAEAGLLayer,我来简单翻译一下:

CAEAGLLayer 是继承于CALayer 的,可以用它在iOS 和tvOS 的设备上使用。如果你打算用OpenGL 进行绘画的话,那么可以使用这个类作为背景的layer,可以通过重写layerClass 方法进行初始化。代码如下:

self.myEagLayer = (CAEAGLLayer *)self.layer;

+ (Class)layerClass {

        return [CAEAGLLayer class];

}

//zs20180312 其实这句话 是通过重写layerClass 方法,重新定义self.layer 的类型 self.myEagLayer只是指向self.layer 的指针。

为了更好的展现最好进行如下的设置:

1.将其不透明度(opaque)设置成true。

2. CAEAGLLayer 的bounds 设置成当前整个展示图层的大小。

3.CAEAGLLayer 不能旋转,不能偏移。

4.可以在CAEAGLLayer上设置非openGL 的视图,需要注意的是绘制透明的2D 的内容的时候,必须保证OpenGL的内容是不透明的。

5.尽量变换CAEAGLLayer上的内容,而不是变换CAEAGLLayer。

1.1 opaque

      opaque:不透明的

  self.myEagLayer.opaque = YES;

//CAEAGLLayer默认是透明的,必须将它设置为不透明才能其可见

1.2 drawableProperties

img_4ce57edea02db9419066d2d929dfa0db.png
drawableProperties


皇家翻译:通过这个字典的值来设置绘制的特点。需要注意的一点是这个属性必须在EAGLContext的方法renderbufferStorage:fromDrawable:前设置才能生效。如果要更改这个属性值,还需要再次调用下renderbufferStorage:fromDrawable:的方法才能生效。

//设置描绘属性,在这里设置不维持渲染内容以及颜色格式为 RGBA8。

self.myEagLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:

[NSNumbernumberWithBool:NO], kEAGLDrawablePropertyRetainedBacking,

kEAGLColorFormatRGBA8,  kEAGLDrawablePropertyColorFormat, nil];

详细解释:

/*  kEAGLDrawablePropertyRetainedBacking 表示绘图表面显示后,是否保留其内容,一般设置为false; 不保留绘完就释放了。

它是一个key值,通过一个NSNumber包装bool值.

kEAGLDrawablePropertyColorFormat:绘制对象内部的颜色缓存区格式

kEAGLColorFormatRGBA8:32位RGBA的颜色, 4*8=32;

kEAGLColorFormatRGB565:16位RGB的颜色

kEAGLColorFormatSRGBA8:SRGB, */

简单的绘制,CAEAGLLayer的这几属性设置完就够用了。


二.EAGLContext的使用

目录
相关文章
|
5月前
|
Java API
java 操作es api
java 操作es api
47 0
|
2月前
|
API 开发工具 开发者
抖音商品详情API入门:为开发者和商家打造增长工具箱
抖音商品详情API入门:为开发者和商家打造增长工具箱
53 0
|
7月前
|
JavaScript 前端开发 API
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(六)
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(六)
70 0
|
2月前
|
SQL API 开发工具
【C/C++ API设计】C/C++ API与动态库设计:从入门到精通
【C/C++ API设计】C/C++ API与动态库设计:从入门到精通
85 0
|
2月前
|
JSON JavaScript 前端开发
使用API接口获取商品数据:从入门到实践
随着电子商务的飞速发展,许多电商平台提供了API接口,允许开发者获取商品数据,以创建各种创新的应用。本文将详细介绍如何使用API接口获取商品数据,并通过代码示例进行演示。
|
3月前
|
前端开发 JavaScript API
前端秘法番外篇----学完Web API,前端才能算真正的入门
前端秘法番外篇----学完Web API,前端才能算真正的入门
|
7月前
|
JSON JavaScript 前端开发
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(四)完结撒花✿✿ヽ(°▽°)ノ✿
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(四)完结撒花✿✿ヽ(°▽°)ノ✿
535 0
|
7月前
|
JavaScript 前端开发 API
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(三)
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(三)
516 1
|
7月前
|
JavaScript 前端开发 API
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(二)
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(二)
470 0
|
7月前
|
JavaScript 前端开发 算法
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(七)放大镜实战
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(七)放大镜实战
58 0