当前位置: 首页 > news >正文

EGL函数翻译--eglChooseConfig

EGL函数翻译–eglChooseConfig

函数名

EGLBoolean eglChooseConfig(	EGLDisplay display,EGLint const* attrib_list,EGLConfig* configs,EGLint config_size,EGLint* num_config);

参数描述

参数display: EGLDisplay的显示连接。
参数attrib_list: 指定"frame Buffer(帧缓冲)"配置所匹配的属性列表。
参数configs: 输出满足参数“attrib_list(属性列表)”的“farme buffer(帧缓冲)”配置数组。
参数config_size:指定要返回帧缓冲配置数字的大小。
参数num_config:输出满足“属性列表”的帧缓冲配置数组的数量。

详细描述

eglChooseConfig()函数输入由用户指定的“属性列表”和想要的EGLConfig“配置数量”返回与“属性列表”匹配的“帧缓冲”的EGLConfig配置数组。返回的 EGLConfig 对象可被用于所有需要“帧缓冲”配置的EGL函数。
如果参数“configs”不为NULL,则参数“configs”指向的数组中数量最多“config_size”个。实际"configs"指向的数组中EGLConfig对象数量为“num_config”个。EGLConfig 为一个 void* 类型的指针,参数configs 是一个指向指针的指针。
如果参数“configs”为NULL,则参数“config”中不会有任何值,但与属性列表匹配的EGLConfig 数量会返回到参数“num_config”中。在这种情况下,一般忽略参数“config_size”,可以先通过参数“configs”为空,获取匹配参数“attrib_list”属性列表的EGLConfig 数组的数量,然后分配一个匹配数量的EGLConfig数组,其它参数不变情况传给一个新的eglChooseConfig()函数。
属性列表(attrib_list)中所有属性,包括boolean属性,后面紧跟相应的所需值。该列表以EGL_NONE结束。如果属性列表中没有指定某属性,则使用默认值(则某属性为被认为是隐式指定的)。例如属性"EGL_DEPTH_SIZE"值未指定,则默认值是零;对于某些属性其默认值为“EGL_DONT_CARE”,这意味着该属性的任何值都可以,因此不会检查该属性。
如果与给定属性列表匹配的“帧缓冲”配置对象(EGLConfig)大于1个,则根据“最佳”匹配标准排序EGLConfig对象列表;每个属性的匹配条件和确切的排序顺序如下:
对于位掩码属性EGL_CONFORMANT、EGL_RENDERABLE_TYPE和EGL_SURFACE_TYPE,匹配时仅考虑掩码的非零位。指定的位掩码属性值中为零的任何位都可以是零,也可以是结果配置的属性值中的一。
属性列表(attrib_list)中可能的属性、属性描述和对应属性值如下:

属性:EGL_ALPHA_MASK_SIZE
描述:值为非负整数,以位为单位,指示所需的alpha掩码缓冲区大小。默认值为零。属性:EGL_ALPHA_SIZE
描述:值为非负整数,指定颜色缓冲区中alpha通道的大小;值为零,则选alpha通道位数最小的颜色缓冲区,否则选择具有至少指定大小的
alpha通道的颜色缓冲区;默认值为零。属性:EGL_BIND_TO_TEXTURE_RGB
描述:值只能为EGL_DONT_CARE,EGL_TRUE,EGL_FALSE三者之一。如果值为 EGL_TRUE,则只支持将“帧缓区”中“颜色缓冲区”绑定到 
OpenGL ES的RGB纹理上。目前只支持“pBuffer”类型的帧缓冲区。默认值为EGL_DONT_CARE。属性:EGL_BIND_TO_TEXTURE_RGBA
描述:值只能为EGL_DONT_CARE,EGL_TRUE,EGL_FALSE三者之一。如果值为 EGL_TRUE,则只支持将“帧缓区”中“颜色缓冲区”绑定到
OpenGL ES的RGBA纹理上。目前只支持“pBuffer”类型的帧缓冲区。默认值为EGL_DONT_CARE。属性:EGL_BLUE_SIZE
描述:值为非负整数,指定颜色缓冲中蓝色分量的位数(RGBA颜色模型,B 所占位数)。如果该值为零,则首选蓝色分量最小的颜色缓冲区,否则
选择具有至少指定大小的蓝色分量的颜色缓冲区;默认值为零。属性:EGL_BUFFER_SIZE
描述:值为非负整数,以位为单位指定颜色缓冲区的大小;优先选择至少具有指定大小的最小颜色缓冲区。默认值为零。颜色缓冲区大小是
EGL_RED_SIZE、EGL_GREEN_SIZE、EGL_BLUE_SIZE、EGL_ALPHA_SIZE的总和,并且不包括可能存在于像素格式中的任何填充位。通常
优先选择的是为这些颜色分量单独指定所需的大小。属性:EGL_COLOR_BUFFER_TYPE
描述:值为EGL_RGB_BUFFER 或 EGL_LUMINANCE_BUFFER之一;
值为EGL_RGB_BUFFER,则颜色缓冲为RGB颜色缓冲,在这种情况下则属性EGL_RED_SIZE、EGL_GREEN_SIZE、EGL_BLUE_SIZE必须为非零,
且EGL_LUMINAACE_SIZE必须为零。
值为EGL_LUMINANCE_BUFFER,则颜色缓冲区为亮度颜色缓冲,在这种情况下则属性EGL_RED_SIZE、EGL_GREEN_SIZE、EGL_BLUE_SIZE
必须为零,且EGL_LUMINAACE_SIZE必须为非零。
对于RGB颜色缓冲区或者亮度颜色缓冲区,属性EGL_ALPHA_SIZE的值没有限制,可为零或非零属性:EGL_CONFIG_CAVEAT:
描述:值只能为:EGL_DONT_CARE、EGL_NONE、EGL_SLOW_CONFIG或 EGL_NON_CONFORMANT_CONFIG 之一。默认为EGL_DONT_CARE
如果值为EGL_DONA_CARE,不用关心此属性的配置。
如果值为EGL_NONE,则会为此属性匹配不带警告的配置
如果值为EGL_SLOW_CONFIG
如果值为EGL_CONFORMANT_CONFIG,则匹配不支持OpenGL ES 上下文的配置。
如果EGL版本大于等于1.3,则EGL_CONFORMANT_CONFIG以过时,因为可以在每个客户端API的基础上通过EGL_CONFORMANT属性指定
相同的信息,而不仅仅是针对OpenGL ES。属性:EGL_CONFORMANT
描述:帧缓冲区配置支持哪种类型的客户端API上下文。默认值为零。(大多数时候不用关心此配置)
值为:EGL_OPENGL_BIT,配置支持创建OpenGL 上下文。
值为:EGL_OPENGL_ES_BIT,配置支持创建OpenGL ES 1.0或1.1 上下文。
值为:EGL_OPENGL_ES2_BIT,配置支持创建OpenGL ES 2.0的上下文。
值为:EGL_OPENVG_BIT,配置支持创建OPenVG 的上下文。
比如,如果值为EGL_OPENGL_ES_BIT,只有支持创建符合OpenGL ES 1.0或1.1上下文的帧缓冲配置才会被匹配。属性:EGL_DEPTH_SIZE
描述:值为非负整数,指定深度缓冲区大小;优先选择至少具有指定大小的最小深度缓冲区。
如果值为零,优先选择不具有深度缓冲区的帧缓冲区配置。 默认值为零。属性:EGL_GREEN_SIZE
描述:值为非负整数,指定颜色缓冲中绿色分量的位数(RGBA颜色模型,G 所占位数)。如果该值为零,则首选绿色分量最小的颜色缓冲区,否则
选择具有至少指定大小的蓝色分量的颜色缓冲区;默认值为零。属性:EGL_LEVEL(暂未翻译)
属性:EGL_LUMINANCE_SIZE(暂未翻译)
属性:EGL_MATCH_NATIVE_PIXMAP(暂未翻译)
属性:EGL_NATIVE_RENDERABLE(暂未翻译)属性:EGL_MAX_SWAP_INTERVAL
描述:值为整数,该整数指示可以传递给eglSwapInterval()函数的最大值,默认值为EGL_DONT_CARE。属性:EGL_MIN_SWAP_INTERVAL
描述:值为整数,该整数指示可以传递给eglSwapInterval()函数的最小值,默认值为EGL_DONT_CARE。属性:EGL_RED_SIZE
描述:值为非负整数,指定颜色缓冲中红色分量的位数(RGBA颜色模型,R 所占位数)。如果该值为零,则首选红色分量最小的颜色缓冲区,否则
选择具有至少指定大小的红色分量的颜色缓冲区;默认值为零。属性:EGL_SAMPLE_BUFFERS(暂未翻译)属性:EGL_SAMPLES
描述:多重采样最小样本数。属性:EGL_STENCIL_SIZE
描述:值为非负整数,以位为单位,指定模板缓冲区大小。优先选择至少具有指定大小的最小模板缓冲区配置。默认值为0。
注意:模板缓冲区仅支持OpenGL 或 OpenGL ES API属性:EGL_RENDERABLE_TYPE
描述:值为位掩码,指示帧缓冲区配置必现支持使用eglCreateContext()创建哪些类型的客户端上下文API。
掩码位 与属性EGL_CONFORMENT的掩码位相同。默认值为:EGL_OPENGL_ES_BIT。属性:EGL_SURFACE_TYPE
描述:帧缓冲区配置 支持的EGL表面类型,值为掩码位。掩码位包括:
EGL_MULTISAMPLE_RESOLVE_BOX_BIT:
EGL_PBUFFER_BIT:帧缓冲区配置 支持创建PBuffer(Pixel Buffer) surfaces
EGL_PIXMAP_BIT:帧缓冲区配置支持创建pixmap Buffer surfaces
EGL_SWAP_BEHAVIOR_PRESERVED_BIT:
EGL_VG_ALPHA_FORMAT_PRE_BIT:
EGL_VG_COLORSPACE_LINEAR_BIT:
EGL_WINDOW_BIT:帧缓冲区配置支持创建window surfaces( 默认值)属性:EGL_TRANSPARENT_TYPE(暂未翻译)
属性:EGL_TRANSPARENT_RED_VALUE(暂未翻译)
属性:EGL_TRANSPARENT_GREEN_VALUE(暂未翻译)
属性:EGL_TRANSPARENT_GREEN_VALUE(暂未翻译)

错误码

返回值:GL_FALSE 函数调用失败。GL_TRUE 返回可用的配置,和可用配置数量
eglGetError()值
EGL_BAD_DISPLAY :参数display 不是一个有效的EGLDisplay 对象
EGL_BAD_ATTRIBUTE :参数attrib_list中数据有错误
EGL_NOT_INITIALIZED :参数display 没有被初始化
EGL_BAD_PARAMETER :参数num_config是个空指针

实例

选择一个渲染API使用OpenGL ES 3、颜色缓冲区为RGBA:8888的PBuffer

实例代码
 EGLDislay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);if(display == EGL_NO_DISPLAY){std::cout<<"eglGetDisplay failed" << std::endl;return;}EGLInt major;EGLIint minor;EGLBoolean init=  eglInitialize(display,&major,&minor);  if(!init)				//返回失败												{std::cout<<"eglInitializeFailed" << std::endl;	int errCode = eglGetError();if(errCode == EGL_BAD_DISPLAY){	}else if(errCode == EGL_NOT_INITIALIZED){}return;} EGLint cfgAttrList[] = {EGL_SURFACE_TYPE,EGL_PBUFFER_BIT,			//surface 类型 PBuffer,EGL_RENDERABLE_TYPE, EGL_OPENGL_ES3_BIT,EGL_COLOR_BUFFER_TYPE,EGL_RGB_BUFFER,EGL_BIND_TO_TEXTURE_RGBA,EGL_TRUE,	//为true,支持将Surface 的颜色缓冲区 绑定到OpenGL ES RGBA纹理的帧缓冲区配置EGL_RED_SIZE,8,EGL_GREEN_SIZE,8,EGL_BLUE_SIZE,8,EGL_ALPHA_SIZE,8,EGL_NONE,EGL_NONE		}EGLConfig config;EGLint numberCfgs = 0;
if (!eglChooseConfig(dPtr->mDisplay, cfgAttrList, &config, 1, &numberCfgs)){std::cout << " eglChooseConfig failed" <<std::endl;return;}
英文连接

链接: https://registry.khronos.org/EGL/sdk/docs/man/

声明

由于英语水平有限,可能有些翻译或者理解不是特别到位,有错误之处,希望大家指出,本人及时矫正。此函数只翻译了一些常用的属性,有些属性由于本人也没怎么使用过,固暂未翻译。

相关文章:

EGL函数翻译--eglChooseConfig

EGL函数翻译–eglChooseConfig 函数名 EGLBoolean eglChooseConfig( EGLDisplay display,EGLint const* attrib_list,EGLConfig* configs,EGLint config_size,EGLint* num_config);参数描述 参数display: EGLDisplay的显示连接。 参数attrib_list: 指定"frame Buffer(帧…...

详细介绍如何使用Ipopt非线性求解器求解带约束的最优化问题

本文中将详细介绍如何使用Ipopt非线性求解器求解带约束的最优化问题&#xff0c;结合给出的带约束的最优化问题示例&#xff0c;给出相应的完整的C程序&#xff0c;并给出详细的解释和注释&#xff0c;以及编译规则等 一、Ipopt库的安装和测试 本部分内容在之前的文章《Ubuntu2…...

跳跃游戏Ⅱ-----题解报告

题目&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 与Ⅰ不同的是&#xff0c;这次要求找出最小的跳跃次数。思路也很简单&#xff0c;在每一次跳跃之后都更新最远的跳跃距离。 举个列子&#xff1a; 输入&#xff1a;2,3,1,1,4 第一次…...

JVM 基础篇:类加载器

一.了解JVM 1.1什么是JVM JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟计算机功能来实现的&#xff0c;JVM屏蔽了与具体操作系统平台相关的信息&#xff0c;Java程序只需…...

文本批量处理,高效便捷的管理利器!

您是否曾经为了批量处理文本数据而烦恼&#xff1f;冗长的文本文件&#xff0c;繁琐的处理步骤&#xff0c;让您的工作变得异常困难。现在&#xff0c;我们向您推荐一款文本批量处理工具&#xff0c;它能够快速、准确地处理大量文本数据&#xff0c;让您的管理工作更加高效便捷…...

百度松果20231022作业

越狱 盒子与球 斯特林第二类数&#xff08;用dp求&#xff09;*盒子的阶乘 int dp[11][11]; //n>k int A(int x){int res1;fer(i,2,x1)res*i;return res; } signed main(){IOS;dp[2][1]dp[2][2]dp[1][1]1;fer(i,3,11){dp[i][1]1;fer(j,2,i){dp[i][j]j*dp[i-1][j]dp[i-1][j-…...

cropper+jq(图片裁剪上传)

<link rel"stylesheet" href"../../cropper/cropper.css"> <script type"text/javascript" src"../../cropper/cropper.js"></script> 没有引入jquery的原因 引入jquery <script src"../jquery-1.10.2.js…...

运行 `npm install` 时的常见问题与解决方案

运行 npm install 时的常见问题与解决方案 问题一&#xff1a;网络连接问题 描述&#xff1a; 运行 npm install 时&#xff0c;可能会遇到网络连接问题&#xff0c;导致无法正常下载依赖包。 报错示例&#xff1a; npm ERR! network connection timed outnpm ERR! connect…...

【2023年11月第四版教材】软考高项极限冲刺篇笔记(1)

1 你要接受一些观点 1、不明白的不要去试图理解了,死记硬背 2、要快速过知识点,卡住是不行的,慢也是没有任何作用的。 3、将厚厚的知识,变为薄薄的重点。标红必背 4、成熟度等级,很多知识领域都有,就是评价在一个领域达到的级别。 5、记得搜一下当年的高频科技词汇 6、选…...

http post协议发送本地压缩数据到服务器

1.客户端程序 import requests import os # 指定服务器的URL url "http://192.168.1.9:8000/upload"# 压缩包文件路径 folder_name "upload" file_name "test.7z" headers {Folder-Name: folder_name,File-Name: file_name } # 发送POST请求…...

系列十三、Redis的哨兵机制

一、概述 Sentinel&#xff08;哨兵&#xff09;是Redis的高可用解决方案&#xff0c;由一个或者多个Sentinel实例组成集群&#xff0c;可以监视任意多个主服务器&#xff0c;以及这些服务器下属的所有从服务器&#xff0c;并在被监视的主服务器下线或者宕机时&#xff0c;自动…...

设置Unity URP管线中的渲染开关

在上一节中&#xff0c;我们添加了外轮廓线&#xff0c;但这个外轮廓线在所有使用该Shader的网格上是始终存在的。 如果我们想做一个开关&#xff0c;决定是否打开外轮廓线时&#xff0c;我们可以使用一个新的Uniform bool值&#xff0c;然后判断bool是否为true来开启外轮廓线…...

神器抓包工具 HTTP Analyzer v7.5 的下载,安装,使用,破解说明以及可能遇到的问题

文章目录 1、HTTP Analyzer 工具能干什么&#xff1f;2、HTTP Analyzer 如何下载&#xff1f;3、如何安装&#xff1f;4、如何使用&#xff1f;5、如何破解&#xff1f;6、Http AnalyzerStd V7可能遇到的问题 1、HTTP Analyzer 工具能干什么&#xff1f; A1&#xff1a;HTTP A…...

虚幻引擎:代理

一、代理类型 1.单薄代理 特点&#xff1a;允许有返回值&#xff0c;允许有参数&#xff0c;只可以一对一的传递消息就算绑定多个&#xff0c;但是总会被最后一个覆盖 2.多播代理 特点&#xff1a;不允许有返回值&#xff0c;允许有参数允许一对多传递消息 3.动态代理 …...

Openssl数据安全传输平台004:Socket C-API封装为C++类 / 服务端及客户端代码框架和实现

文章目录 0. 代码仓库1. 客户端C API2. 客户端C API的封装分析2.1 sckClient_init()和sckClient_destroy()2.2 sckClient_connect2.3 sckClient_closeconn()2.4 sckClient_send()2.5 sckClient_rev()2.6 sck_FreeMem 3. 客户端C API4. 服务端C API5. 服务端C6. 客户端和服务端代…...

网络协议--Traceroute程序

8.1 引言 由Van Jacobson编写的Traceroute程序是一个能更深入探索TCP/IP协议的方便可用的工具。尽管不能保证从源端发往目的端的两份连续的IP数据报具有相同的路由&#xff0c;但是大多数情况下是这样的。Traceroute程序可以让我们看到IP数据报从一台主机传到另一台主机所经过…...

Centos磁盘问题小纪

场景说明 放个windows的图片镇楼&#xff0c;在给一个centos的来说明问题&#xff0c;咋了&#xff0c;好好的系统&#xff0c;啥也不能干了 来先上一波命令分析下问题 查看挂载 mount 重新挂载数据 mount -o remount, rw / 查看磁盘 df -h 查看分区挂载详情 rw读写权限 mount …...

计算机网络第三章习题

1.假定1km长的CSMA/CD网络的数据率为1Gb/s。设信号在网络上的传播 速率为200000km/s。求能够使用此协议的最短帧长. 问题刨析: 逻辑链: 最短帧长数据传输率x争用期2τ(2倍端到端所需要的时间) 题目已经给出数据率为1Gb/s,所以我们要知道争用期2τ是多少. 端到端所需要的时间信…...

Layui弹出层关闭后页面自动刷新的用法以及建议

首先在HTML中定义一个查询按钮 <div class"layui-inline"><button class"layui-btn" id"searchBtn" lay-submit lay-filter"data-search-btn" > <i class"layui-icon layui-icon-search">查询</i&…...

PHP 在线考试管理系统mysql数据库web结构layUI布局apache计算机软件工程网页wamp

一、源码特点 PHP 在线考试管理系统是一套完善的web设计系统 layUI技术布局 &#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 PHP 在线考试系统1 代码 https://download.csdn.net/download/qq_41…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...

《Docker》架构

文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器&#xff0c;docker&#xff0c;镜像&#xff0c;k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...

区块链技术概述

区块链技术是一种去中心化、分布式账本技术&#xff0c;通过密码学、共识机制和智能合约等核心组件&#xff0c;实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点&#xff1a;数据存储在网络中的多个节点&#xff08;计算机&#xff09;&#xff0c;而非…...

高考志愿填报管理系统---开发介绍

高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发&#xff0c;采用现代化的Web技术&#xff0c;为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## &#x1f4cb; 系统概述 ### &#x1f3af; 系统定…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)

cd /home 进入home盘 安装虚拟环境&#xff1a; 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境&#xff1a; virtualenv myenv 3、激活虚拟环境&#xff08;激活环境可以在当前环境下安装包&#xff09; source myenv/bin/activate 此时&#xff0c;终端…...