1.1 【应用开发】应用开发简介

news2024/9/24 7:19:27

写在前面

Screen图形子系统基于客户端/服务器模型,其中应用程序是请求图形服务的客户端(Screen)。它包括一个合成窗口系统作为这些服务之一,这意味着所有应用程序渲染都是在离屏缓冲区上执行的,然后可以在稍后用于更新显示。

一,Screen架构

Screen支持硬件加速的应用程序渲染和硬件加速的合成。Screen还设计为支持执行软件渲染的应用程序。

Screen有一个插件架构。它加载特定于硬件的模块以获得对资源(如显示控制器、2D和3D加速器(GPU)和输入设备)的访问权限。

二,ScreenAPI

Screen API主要通过不同的组件提供对图形功能的访问。这些组件每个都为应用程序提供特定的功能。

除了event之外,所有Screen API组件都必须与上下文相关联。所有Screen应用程序的第一步是创建Screen上下文。例如:

screen_context_t screen_ctx;
screen_create_context(&screen_ctx, SCREEN_APPLICATION_CONTEXT);

此上下文在应用程序和Screen之间建立连接。没有此连接,应用程序无法与Screen通信以访问任何功能。

2.1Buffer 缓冲区

缓冲区是存储像素数据的内存区域。尽管可以在上下文的范围内创建缓冲区,但除非将其附加到窗口、流或位图,否则Screen无法使用它。

多个缓冲区可以与窗口或流关联,但只有一个缓冲区可以与位图关联。

2.2 Context 上下文

上下文为窗口环境中的图形操作提供设置。

除event外,所有其他API对象都是在上下文的范围内创建的,对这些对象的访问总是相对于与该对象关联的上下文进行的。你可以识别和访问对象(例如,窗口、组、显示器、位图)以设置或更改它们的属性和特性。

设备、显示器和窗口依赖于与事件、组和位图直接相关的上下文。

2.3 Device 设备

设备指的是输入设备。此输入设备(例如,键盘、鼠标、游戏杆、游戏手柄和多点触控)可以与特定显示器关联。

2.4 Display 显示器

显示器指的是向用户呈现图像的物理设备,如触摸屏或物理Screen。使用特定于显示器的API组件,你可以访问显示属性。这些属性包括诸如供应商、显示技术和视频模式之类的信息。

2.5 Event 事件

事件包括窗口创建、设置属性、键盘事件和触摸事件等操作。Screen API管理每个上下文的一个事件队列。但是,可以创建与上下文无任何关联的事件。

2.6 Group 组

组用于在你的应用程序中组织和管理多个窗口。组在属于同一组的窗口的属性之间建立继承关系;因此,对窗口组的某些属性进行更改会影响属于该组的所有窗口。父窗口创建一个组,以便子窗口可以加入。子窗口继承其父级的属性,但也具有可以独立于其父级设置和检索的属性。

2.7 Pixmap位图

位图是离屏渲染目标。其内容只有通过将其复制到窗口缓冲区才能可见。这可以通过使用本机blit Screen API函数来完成,也可以通过将位图用作OpenGL ES纹理来完成。

2.8 Session会话

输入会话允许应用程序控制如何将原始事件处理为更高级别的事件。会话允许您的应用程序捕获特定于某个区域、设备或Screen事件类型的事件;它提供了比仅通过窗口实现的对输入事件分派的更多控制。

2.9 Stream流

流允许组件生成和处理图形内容。使用流,不必将图形内容与显示器关联。内容可以被除Screen外的其他组件使用。但是,这些组件仍然可以使用Screen来显示内容。

2.10 Window 窗口

窗口代表绘图表面,其内容针对显示器而定位。有多种类型的窗口(应用程序窗口、子窗口和嵌入式窗口)以适应内容的显示组织。

三,Screen应用程序示例

QNX提供了一些native应用程序示例来演示如何Screen API。下面是使用QNX Screen API的示例应用程序,这些示例应用程序被打包在你的host上的每个特定目标目录下,路径是$QNX_TARGET。

这些示例应用程序包括:

  1. /usr/bin/gles1-vsync:此应用程序使用软件渲染来绘制齿轮。
  2. /usr/bin/gles2-gears:此应用程序显示的齿轮使用OpenGL ES 2.X作为渲染API。
  3. /usr/bin/vg-tiger:此应用程序使用OpenVG作为渲染API。

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

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

相关文章

SpringBoot+Redis 10分钟搞定海量重复提交问题

前言 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理。如何…

BFC — 张天禹

文章目录 学习链接BFC1. 什么是BFCW3C 上对 BFC 的定义MDN 上对 BFC 的描述更加通俗的描述 2. 开启了BFC能解决什么问题3. 如何开启BFC 演示演示1子元素margin塌陷问题使用BFC解决问题完美解决塌陷问题 演示2被浮动元素覆盖问题使用BFC解决问题例1例2例3例4延申(左右…

LeetCode 2415. 反转二叉树的奇数层:深度优先搜索(DFS)

【LetMeFly】2415.反转二叉树的奇数层:深度优先搜索(DFS) 力扣题目链接:https://leetcode.cn/problems/reverse-odd-levels-of-binary-tree/ 给你一棵 完美 二叉树的根节点 root ,请你反转这棵树中每个 奇数 层的节点值。 例如&#xff0c…

leetcode面试经典二分系列刷题心得

闲来无事巩固算法基础,发现自己的二分几乎从来没系统刷过题,基础很是薄弱。 二分法不愧称为新人杀手,刷起来很是吃力,感觉明明学了几套二分模板,但是却不知道如何去运用,很多读者在初次尝试刷二分题时候&a…

“你基础不太行啊”

一、创建对象的五种方式 直接new关键字反序列化clone反射class.newInstance反射class.getConstructor 1.1、直接new关键字 1.2、Clone (需要实现Cloneable接口) 1.3、反射class.newInstance 1.4、反射class.getConstructor 1.5、反序列化 二、与equals…

bottom-up-attention-vqa-master 成功复现!!!

代码地址 1、create_dictionary.py 建立词典和使用预训练的glove向量 (1)create_dictionary() 遍历每个question文件取出所关注的question部分,qs 遍历qs,对每个问题的文本内容进行分词,并将分词结果添加到字典中&…

小红书商品详情API:电商助力

一、引言 随着互联网的普及和电商行业的快速发展,消费者对于商品信息的获取方式也在不断变化。小红书作为一款以内容分享为主的社交电商平台,吸引了大量用户。为了满足用户对商品信息的快速获取需求,小红书提供了商品详情API接口。本文将探讨…

离散型概率密度函数的分布列⇔分布函数

目录 一、super误区 1.分布函数的定义 二、分布列⇒分布函数 二、分布列⇐分布函数 一、super误区 我在读定义的时候陷入了一个误区,与大家分享一下。 1.分布函数的定义 由于是离散型的概率密度函数,我把他抽象到数轴上理解: 如下分布…

线程的介绍

首先我们来了解一下线程是什么: 首先我们介绍一下程序是什么?程序就是我们编写的代码就叫程序,当我们程序运行的时候则称为进程,在我们现实生活中哪些用到了进程,就比如说我们qq,微信,百度网盘…

兼容性测试:确保系统在各种环境中正常运行

随着数字化时代的到来,软件应用在不同的设备、操作系统和浏览器上运行的需求变得日益重要。为了确保用户体验的一致性和系统的稳定性,兼容性测试变得至关重要。本文将介绍如何使用兼容性测试,以保证软件在各种环境中无缝运行。 1. 确定目标平…

ssl证书问题导致本地启动前端服务报500

报错如下:注意查看报错信息 问题:系统原是http,后台调整为https后,ssl证书有点问题, vue项目本地服务,使用代理,webpack默认,证书强校验,导致请求无法发出,后…

Linear classifiers——线性分类器

1.(Generalized) Linear classifiers——广义线性分类器 1.1 模型 假如有两类数据,类别标签为y 1和y -1 我们可以使用一个线性函数将其分类,二维形式 通常x增加一个恒等于1的维度,可以将b合并进w,于是更一般的形式为 ,就相当于…

centos离线安装mosquitto

1.x86_64架构centos7操作系统mosquitto包 本次真正要安装的机器是x86_64架构的AMD Ryzen 3 ,操作系统是centos7 先找一台能联网的centos7机器 添加 EPEL 软件库 yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm下载rpm包 …

C++使用UDP

C使用UDP 对C使用UDP做了简单封装&#xff0c;可直接运行 头文件udp.h #pragma once #include <Winsock.h> #pragma comment(lib,"WS2_32.lib")#define LOCAL_IP_ADDR INADDR_ANY //当前应用程序接收的IP地址 #define LOCAL_PORT 9527 …

PixPin带有截图/贴图/长截图/文字识别/标注的截图工具,很好用

官网地址&#xff1a;PixPin 截图/贴图/长截图/文字识别/标注 | PixPin 截图/贴图/长截图/文字识别/标注 确实挺好用的&#xff0c;推荐一下

UE4 实用材质图形

渐变圆 光晕效果&#xff1a; 十字光晕&#xff1a;

1840_emacs org-mode babel的语言支持

Grey 全部学习内容汇总&#xff1a; GitHub - GreyZhang/g_org: my learning trip for org-mode 1840_emacs org-mode babel的语言支持 主题由来介绍 Babel是org-mode中支持文学式编程以及可重现研究的一个核心模块&#xff0c;之前看过这个插件的优点是功能完善且支持的语…

本地运行大语言模型并可视化(Ollama+big-AGI方案)

目前有两种方案支持本地部署&#xff0c;两种方案都是基于llamacpp。其中 Ollama 目前只支持 Mac&#xff0c;LM Studio目前支持 Mac 和 Windows。 LM Studio&#xff1a;https://lmstudio.ai/ Ollama&#xff1a;https://ollama.ai/download 本文以 Ollama 为例 step1 首先下…

在datagridview列显示下拉操作

DataGridViewComboBoxExColumn 设定好类型 需要设置的地方是&#xff1a; 绑定数据的操作&#xff1a; 因为此处绑定数据实际为数据 参数 显示的操作&#xff0c;不影响datasource的数据绑定 下一步 数据绑定&#xff1a; DGVCOrderZhuangtai.ValueType typeof(EOrderZhuan…

条件概率密度

设二维随机变量的概率密度为&#xff0c;关于的边缘概率密度为。若对于固定的&#xff0c;有&#xff0c;则称为在条件下的的条件概率密度&#xff0c;记为&#xff1a;