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的使用

目录
相关文章
|
2月前
|
开发框架 .NET API
RESTful API 设计与实现:C# 开发者的一分钟入门
【10月更文挑战第5天】本文从零开始,介绍了如何使用 C# 和 ASP.NET Core 设计并实现一个简单的 RESTful API。首先解释了 RESTful API 的概念及其核心原则,然后详细说明了设计 RESTful API 的关键步骤,包括资源识别、URI 设计、HTTP 方法选择、状态码使用和错误处理。最后,通过一个用户管理 API 的示例,演示了如何创建项目、定义模型、实现控制器及运行测试,帮助读者掌握 RESTful API 的开发技巧。
81 7
|
4月前
|
前端开发 JavaScript 安全
入门Vue+.NET 8 Web Api记录(一)
入门Vue+.NET 8 Web Api记录(一)
169 4
|
1月前
|
数据可视化 API 索引
ES常见Index API操作最佳实践!
【10月更文挑战第21天】
100 1
ES常见Index API操作最佳实践!
|
6月前
|
JavaScript API 开发者
GraphQL API开发入门:比RESTful更高效的数据查询方式
**GraphQL API开发入门摘要** GraphQL是一种更高效的数据查询方式,解决RESTful API的过度或不足获取数据问题。它允许客户端按需获取数据,减少网络传输,支持一次请求获取多资源。强类型和自描述特性方便了开发。文章通过一个简单的Node.js示例,展示如何使用`apollo-server-express`搭建GraphQL服务器,包括定义Schema、实现Resolver和创建服务器。通过测试,显示了GraphQL如何提供精确数据和优化查询效率。对于复杂数据需求,GraphQL是现代API设计的有效选择。
83 0
|
2月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
4月前
|
开发者
告别繁琐代码,JSF标签库带你走进高效开发的新时代!
【8月更文挑战第31天】JSF(JavaServer Faces)标准标签库为页面开发提供了大量组件标签,如`<h:inputText>`、`<h:dataTable>`等,简化代码、提升效率并确保稳定性。本文通过示例展示如何使用这些标签实现常见功能,如创建登录表单和展示数据列表,帮助开发者更高效地进行Web应用开发。
49 0
|
4月前
|
前端开发 API 开发者
【React状态管理新思路】Context API入门:从零开始摆脱props钻孔的优雅之道,全面解析与实战案例分享!
【8月更文挑战第31天】React 的 Context API 有效解决了多级组件间状态传递的 "props 钻孔" 问题,使代码更简洁、易维护。本文通过电子商务网站登录状态管理案例,详细介绍了 Context API 的使用方法,包括创建、提供及消费 Context,以及处理多个 Context 的场景,适合各水平开发者学习与应用,提高开发效率和代码质量。
47 0
|
4月前
|
API 开发工具
langchain 入门指南(一)- 准备 API KEY
langchain 入门指南(一)- 准备 API KEY
287 0
|
6月前
|
Linux API 数据安全/隐私保护
一文搞懂:【零基础】易盛9.0API入门二:登陆
一文搞懂:【零基础】易盛9.0API入门二:登陆
100 1
|
6月前
|
存储 Java API
JavaSE——常用API(3/3)-ArrayList入门、ArratList使用、ArrayList综合案例
JavaSE——常用API(3/3)-ArrayList入门、ArratList使用、ArrayList综合案例
56 0