QNX下多窗口叠加融合方案

目的:QNX下EGL多窗口叠加融合方案

环境:

系统:QNX
环境:8155/8295

问题:

EGL有时候在同一个进程中因为引入不同的功能,在不同的线程中进行窗口的绘制和融合,QNX下的融合方案,实测使用正常。

步骤:

1.屏幕分三个区域进行绘制时,相互融合方案一

在这里插入图片描述
1.1 如上图所示,EGL绘制了A、B、C中绘制了三个窗口。采取的方案是同一个进程中开启三个线程,每个线程创建一个窗口,然后分别在各自的区域进行绘制。A、B的窗口大小是A、B的区域,C窗口大小是整个屏幕,负责整个屏幕底色的刷新。

1.2 销毁窗口时未避免crash及窗口滞留问题,需要每个窗口创建各自的egl_context,然后退出时需要保证A和B窗口销毁,context回收以后,再进行C窗口的资源回收,最终C中调用egl_terminal进行所有资源的清理。实测可以让三个窗口都各自正常渲染。

1.3 为保证三个窗口能相互不受干涉的各自渲染。需要把A、B窗口设置zorder为1, C窗口zorder设置为0,这样C在最底层。同时需要把A、B、C的透明属性都设置为SCREEN_TRANSPARENCY_NONE。pipeline设置为同一个,即可实现互不干涉的渲染了。

2.屏幕分三个区域进行绘制时,相互融合方案二

在这里插入图片描述
1.1 如上图所示,EGL绘制了A、B、C中绘制了三个窗口。采取的方案是同一个进程中开启两个线程,一个线程创建一个全屏窗口,主渲染C区域,另一个线程创建全屏窗口,主渲染A、B区域。

1.2 销毁窗口时未避免crash及窗口滞留问题,需要每个窗口创建各自的egl_context,然后退出时需要保证AB的窗口销毁,context回收以后,再进行C的窗口的资源回收,最终C中调用egl_terminal进行所有资源的清理。实测可以让三个窗口都各自正常渲染。

1.3 为保证两个窗口能相互不受干涉的各自渲染。需要把AB窗口设置zorder为1, C窗口zorder设置为0,这样C在底层。此时AB的窗口会覆盖住C窗口,然后将AB的窗口的透明属性设置为SCREEN_TRANSPARENCY_SOURCE_OVER。此时AB的窗口仍然会覆盖住C窗口,原因是C的区域还没办法透出来。此时在AB窗口渲染之前或者资源初始化完成以后,将全屏的底色设置为 glClearColor(0.0f, 0.0f, 0.0f, 0.0f);。C窗口的可绘制区域就会透出来了。此时A、B、C区域渲染显示都正常。

1.4 需要注意的是AB的窗口在渲染时,渲染A区域时把viewport设置为A区域,渲染B区域的时候需要把viewport设置为B区域,其他区域不做渲染。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/182920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端开发_HTML

简介 CSS用于美化内容 HTML用于摆放内容 可以理解为HTML是基础&#xff0c;CSS是工具 HTML定义 HTML 超文本标记语言——HyperText Markup Language 超文本——链接 标记——标签&#xff0c;即带尖括号的文本 标签语法 双标签 开始标签&#xff1a; <xxx> 即尖…

点击元素以外的事件监听

在项目中&#xff0c;我们经常会遇到需要监听目标元素以外的区域被点击或鼠标移入移出等需求。 例如下面我们有一个表格里面嵌套表单的组件 我希望点击n行的时候&#xff0c;n行的元素变成表单元素进行输入或者选择&#xff0c; 当我点击其他其他区域n行又会恢复成数据展示…

WordPress插件大全-免费的WordPress插件汇总

随着互联网的不断发展&#xff0c;网站建设变得日益普及。对于大多数人而言&#xff0c;WordPress是一个熟悉且易于使用的网站建设平台。然而&#xff0c;有时候我们可能会觉得WordPress的功能还不够满足我们的需求&#xff0c;这时候&#xff0c;插件就成了解决问题的得力工具…

IMU传感器用于智能假肢

截肢会给截肢者们带来生活上的不方便和极大痛苦&#xff0c;因此假肢的优化一直被关注着。近期&#xff0c;一项关于新型智能膝关节的研究&#xff0c;让假肢能更好地模拟自然膝关节&#xff0c;给截肢者们带来了希望。 此款假肢内置IMU传感器&#xff0c;减少了截肢者所需的肌…

箭头函数与普通函数:谁更胜一筹?

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Spark local模式的安装部署

安装与配置Spark开发环境。 相关知识 Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架&#xff0c;Spark拥有Hadoop MapReduce所具有的优点&#xff1b;但…

vuepress-----6、时间更新

# 6、时间更新 基于Git提交时间修改文字时间格式 moment # 最后更新时间 # 时间格式修改 下载库文件 yarn add momentconst moment require(moment); moment.locale(zh-cn)module.exports {themeConfig: {lastUpdated: 更新时间,},plugins: [[vuepress/last-updated,{trans…

BUUCTF [GXYCTF2019]BabyUpload 1详解(.htaccess配置文件特性)

题目环境&#xff1a;查看题目源码 SetHandler application/x-httpd-php 通过源码可以看出这道文件上传题目主要还是考察.htaccess配置文件的特性 倘若不先上传.htaccess配置文件&#xff0c;那么后台服务器就无法解析php代码 这个是需要注意的 .htaccess配置文件特性 概述来说…

【面试】css预处理器之sass(scss)

目录 为什么引入css预处理器 可读性 嵌套&#xff1a;关系明朗 选择器 属性 伪类‘’ 变量&#xff1a;语义明确 默认变量&#xff1a;美元符号 $ 变量名:值 !default 全局变量&#xff1a;:global { $global-x: } 变量插值&#xff1a;#{} map键值对&#xff1a;$…

轻量封装WebGPU渲染系统示例<39>- emissive和arm纹理支持(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/DynamicShaderBuilding2.ts 当前示例运行效果: 此示例基于此渲染系统实现&#xff0c;当前示例TypeScript源码如下&#xff1a; export class DynamicShaderBuildi…

python操作Mysql学习

文章目录 版权声明准备&#xff1a;MYSQL数据库数据库简介数据库分类数据库管理系统SQL语句关系型数据库中核心元素MySQL环境搭建Mysql数据类型数据完整性和约束MYSql基本操作登录和退出数据库命令数据库基本操作命令数据表基本操作命令数据表结构修改命令表数据操作命令Mysql查…

PCIe学习必读——《PCI Express System Architecture》

PCI Express (peripheral component interconnect express) 简称 PCIe&#xff0c;是一种高速串行计算机扩展总线标准。是一种全双工总线&#xff0c;使用高速串行传送方式&#xff0c;能够支持更高的频率&#xff0c;连接的设备不再像 PCI 总线那样共享总线带宽。PCIe目前发布…

数据结构-二叉树(2)

3.4堆的应用 3.4.1 堆排序 堆排序即利用堆的思想来进行排序&#xff0c;总共分为两个步骤&#xff1a; 1. 建堆 1.升序&#xff1a;建大堆&#xff1b; 2.降序&#xff1a;建小堆。 2. 利用堆删除思想来进行排序 这种写法有两个缺点&#xff1a; 1、先有一个堆的数据结构 …

微信小程序 老年人心血管健康知识科普系统

本系统的功能有管理员&#xff1a;个人中心&#xff0c;用户管理&#xff0c;热点信息管理&#xff0c;疾病管理&#xff0c;疾病类型管理&#xff0c;治疗管理&#xff0c;治疗类型管理&#xff0c;护理管理&#xff0c;护理类型管理&#xff0c;科普管理&#xff0c;科普类型…

如何利用轮廓系数(Silhouette Coefficient)来判断模糊c均值聚类FCM的聚类簇数量

文章目录 前言一、轮廓系数的计算方法二、具体流程 前言 轮廓系数&#xff08;Silhouette Coefficient&#xff09;是一种评价聚类效果的指标&#xff0c;它可以用于判断模糊C均值聚类的聚类簇数量。 一、轮廓系数的计算方法 对于每个数据点i&#xff0c;计算它属于每个聚类…

lightdb-ignore_row_on_dupkey_index

LightDB 支持 ignore_row_on_dupkey_index hint LightDB 从23.4 开始支持oracle的 ignore_row_on_dupkey_index hint&#xff0c; 这个hint是用来忽略唯一键冲突的。类似与mysql的 insert ignore。 语法如下&#xff1a; 在LightDB中ignore_row_on_dupkey_index的效果等同于o…

深入了解HMAC加密技术:原理、应用与实践

一、引言 在网络安全领域&#xff0c;消息认证码&#xff08;MAC&#xff09;是一种重要的技术手段。Hash-based Message Authentication Code&#xff08;HMAC&#xff09;作为其中的一种&#xff0c;凭借其简单、高效、安全的特性&#xff0c;广泛应用于各种网络通信场景。本…

k8s中批量处理Pod应用的Job和CronJob控制器介绍

目录 一.Job控制器 1.简介 2.Jobs较完整解释 3.示例演示 4.注意&#xff1a;如上例的话&#xff0c;执行“kubectl delete -f myJob.yaml”就可以将job删掉 二.CronJob&#xff08;简写为cj&#xff09; 1.简介 2.CronJob较完整解释 3.案例演示 4.如上例的话&#xf…

工艺系统所管理数字化实践

摘要 本文介绍了上海核工程设计研究院在数字化转型方面的实践&#xff0c;包括业务数字化和管理数字化两个方面。业务数字化方面&#xff0c;该院通过开发小工具改进工作流程。管理数字化方面&#xff0c;该院采用零代码平台集中管理管道力学信息相关模型和数据&#xff0c;并…

JeeSpringCloud uploadFile.jsp 文件上传漏洞复现

0x01 产品简介 JeeSpringCloud是一款免费开源的JAVA互联网云快速开发平台&#xff0c;微服务分布式代码生成的敏捷开发系统架构&#xff0c;项目代码简洁、注释丰富、上手容易、还同时集中分布式、分布式事务、微服务,同时包含许多基础模块和监控、服务模块&#xff0c;JeeSpri…