Android EGL入门
EGL
指定显示连接,默认连接为EGL_DEFAULT_DISPLAY
EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
打开连接之后,需要初始化EGL
major 指定EGL实现返回的主版本号,可能为NULL
minor 指定EGL实现返回的次版本号,可能为NULL
EGLint major, minor;if (!eglInitialize(display, &major, &minor)){return EGL_FALSE;}
初始化了EGL之后,就可以确定可用渲染表面的类型和配置
使用方法:
eglGetConfigs(EGLDisplay display, EGLConfig *configs,EGLint maxReturnCOnfigs,EGLint *numConfigs)
查询EGLConfig属性
eglGetConfigAttrib(EGLDisplay display, EGLConfig config, EGLint attribute, EGLint *value)
EGL选择配置:
configAttribs 指定configs匹配的属性列表
config 指定匹配列表
指定配置的大小
numConfigs 指定返回的配置大小
const EGLint configAttribs[] = {EGL_RENDERABLE_TYPE, EGL_WINDOW_BIT,EGL_RED_SIZE, 8,EGL_GREEN_SIZE, 8,EGL_BLUE_SIZE, 8,EGL_DEPTH_SIZE, 24,EGL_NONE};EGLConfig config;EGLint numConfigs;if (!eglChooseConfig(display, configAttribs, &config, 1, &numConfigs)){return EGL_FALSE;}
创建屏幕上的渲染区域:EGL窗口
config 指定配置
window 指定原生窗口
attribList 指定窗口列表,可能为NULL
EGLSurface window = eglCreateWindowSurface(display, config, nativeWindow, attribList );if (window == EGL_NO_SURFACE){return EGL_FALSE;}
创建一个渲染上下文
config 指定配置
contextAttribs 指定创建山西该文使用的属性列表;只有一个可接受的属性–EGL_CONTEXT_CLIENT_VERSION
const EGLint contextAttribs[] = {EGL_CONTEXT_CLIENT_VERSION, 3,EGL_NONE};
EGLContext context = eglCreateContext(display, config, EGL_NO_CONTEXT, contextAttribs);if (context == EGL_NO_CONTEXT){return EGL_FALSE;}
EGL_NO_CONTEXT:没有共享,不允许多个EGL上下文共享特定类型的数据
指定某个EGLContext为当前上下文
if (!eglMakeCurrent(display, window, window, context)){return EGL_FALSE;}
简单整合
#include "EGL/egl.h"static EGLBoolean initWindow(ANativeWindow* nativeWindow){const EGLint configAttribs[] = {EGL_RENDERABLE_TYPE, EGL_WINDOW_BIT,EGL_RED_SIZE, 8,EGL_GREEN_SIZE, 8,EGL_BLUE_SIZE, 8,EGL_DEPTH_SIZE, 24,EGL_NONE};const EGLint contextAttribs[] = {EGL_CONTEXT_CLIENT_VERSION, 3,EGL_NONE};EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);if (display == EGL_NO_DISPLAY){return EGL_FALSE;}EGLint major, minor;if (!eglInitialize(display, &major, &minor)){return EGL_FALSE;}EGLConfig config;EGLint numConfigs;if (!eglChooseConfig(display, configAttribs, &config, 1, &numConfigs)){return EGL_FALSE;}EGLSurface window = eglCreateWindowSurface(display, config, nativeWindow, NULL);if (window == EGL_NO_SURFACE){return EGL_FALSE;}EGLContext context = eglCreateContext(display, config, EGL_NO_CONTEXT, contextAttribs);if (context == EGL_NO_CONTEXT){return EGL_FALSE;}if (!eglMakeCurrent(display, window, window, context)){return EGL_FALSE;}return EGL_TRUE;
}
参考于《OpenGL es3.0编程指南》
Android EGL入门相关推荐
- 《Android 开发入门与实战(第二版)》——6.6节配置改变
本节书摘来自异步社区<Android 开发入门与实战(第二版)>一书中的第6章,第6.6节配置改变,作者eoe移动开发者社区 组编 , 姚尚朗 , 靳岩,更多章节内容可以访问云栖社区&qu ...
- Android Volley入门到精通:初识Volley的基本用法
1. Volley简介 我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据.Android系统中主要提供了两种方式来进行H ...
- android+studio入门指南+pdf,android+studio使用指南v0.1.pdf
androidstudio使用指南v0.1 <Android Studio入门指南>作者:毕小朋 博客:/wirelessqa Android Studio入门指南v0.1 作者:毕小朋 ...
- Android编译系统入门(二)
Android.mk的使用方法 在上一篇Android编译系统入门(一)中我们只要介绍了Android系统使用make命令默认编译的依赖树是droid,而droid是一个伪目标,它有两个先决条件dro ...
- 《Delphi XE6 android 编程入门教程》推荐
近5.6年已经没有看见关于delphi的新技术的书出来了(看来在国内delphi的使用量确实很低了), 高勇同学最近出了一本<Delphi XE6 android 编程入门教程>,上周刚拿 ...
- android 编辑9图片,Android基础入门教程——1.6 .9(九妹)图片怎么玩
Android基础入门教程--1.6 .9(九妹)图片怎么玩 Android基础入门教程 1.本节引言: 可能有的一些疑问: 1.什么是.9图片? 答:图片后缀名前有.9的图片,如pic1.9.png ...
- android开发入门_Android开发入门
android开发入门 Android is an open source, Linux-based mobile operating system. Android was developed by ...
- android 菜鸟面单打印_1.0 Android基础入门教程
本教程于2015年7月开始撰写,耗时半年,总共148节,涵盖了Android基础入门的大部分知识,由于当时能力局限,虽已竭尽全力,但对于一些问题的分析难免有所纰漏,敬请读者海涵!IT技术更新换代很快, ...
- Hello, Android 快速入门
Hello, Android Android 开发与 Xamarin 简介 在这两节指南中,我们将 (使用 Xamarin Studio或 Visual Studio)建立我们的第一个 Xamarin ...
- Android 渗透测试学习手册 第一章 Android 安全入门
第一章 Android 安全入门 作者:Aditya Gupta 译者:飞龙 协议:CC BY-NC-SA 4.0 Android 是当今最流行的智能手机操作系统之一. 随着人气的增加,它存在很多安全 ...
最新文章
- linux connect自动重连,Linux系统中使用sshfs挂载远程主机的目录到本地系
- Scala带返回值函数声明示例
- 非专业转行python的几点建议
- Java生鲜电商平台-深入理解微服务SpringCloud各个组件的关联与架构
- nginx mysql 查询系统_nginx/mysql查看内存占用
- java 反射泛型方法_java基础之反射和泛型以及注解
- android 保存联系人,保存android联系后获取联系人ID
- Java高并发编程详解系列-JVM类加载器
- java未知对象调用其某个方法_引用一个类的属性或调用其方法,必须以这个类的对象为前缀。...
- 如何设置STM8单片机选项字
- apache开源项目--nutch
- 2016年4月计算机网络原理,2015年4月04741计算机网络原理试题及答案
- Win11 恢复设置Win10任务栏、快速启动栏及右键菜单(Win11 22000.100版本测试通过)
- windows无法启动计算机上,windows无法启动解决方法汇总
- 洛谷P3717探测器解题报告
- java中重命名文件夹名,【Java】对文件或文件夹进行重命名
- PyTorch中 detach() 、detach_()和 data 的区别
- java 数字排列组合
- 微分方程(Differential Equation)
- Silvaco学习笔记(九)毕设相关