Difference between revisions of "APITestPage"
From FriendlyELEC WiKi
(updated by API) |
(updated by API) |
||
Line 2: | Line 2: | ||
FriendlyELEC为RK3399平台移植的 Qt 5.10.0 支持以下显示设备插件:KMS、EGLFS和XCB,这三种插件均支持GPU硬件加速的OpenGL ES 2.0,只是调用方式不同,描述如下:<br> | FriendlyELEC为RK3399平台移植的 Qt 5.10.0 支持以下显示设备插件:KMS、EGLFS和XCB,这三种插件均支持GPU硬件加速的OpenGL ES 2.0,只是调用方式不同,描述如下:<br> | ||
− | |||
* KMS – 使用Linux内核的DRM显示接口来渲染界面<br> | * KMS – 使用Linux内核的DRM显示接口来渲染界面<br> | ||
* EGLFS – 使用OpenGL ES接口来渲染界面<br> | * EGLFS – 使用OpenGL ES接口来渲染界面<br> | ||
Line 38: | Line 37: | ||
| <b>Yes</b> | | <b>Yes</b> | ||
|} | |} | ||
− | + | 建议使用 KMS或XCB 插件。<br> | |
− | 建议使用 KMS或XCB 插件。 | + | |
− | + | ||
− | + | ||
为了方便用户测试,FriendlyCore平台提供了4个脚本文件用于设置Qt环境变量,分别为: | 为了方便用户测试,FriendlyCore平台提供了4个脚本文件用于设置Qt环境变量,分别为: | ||
::{| class="wikitable" | ::{| class="wikitable" | ||
|- | |- | ||
− | |脚本文件名||作用 | + | |脚本文件名||作用 |
|- | |- | ||
|/usr/bin/setqt5env-kms||设置kms插件所需要的环境变量 | |/usr/bin/setqt5env-kms||设置kms插件所需要的环境变量 | ||
Line 53: | Line 49: | ||
|/usr/bin/setqt5env-xcb||设置xcb插件所需要的环境变量 | |/usr/bin/setqt5env-xcb||设置xcb插件所需要的环境变量 | ||
|- | |- | ||
− | |/usr/bin/setqt5env-nogui|| | + | |/usr/bin/setqt5env-nogui||仅供无界面的Qt程序使用 |
|} | |} | ||
− | + | setqt5env-* 脚本的使用方法: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
. setqt5env-kms | . setqt5env-kms | ||
Line 61: | Line 57: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
(注: .与字母s之间有个空格) | (注: .与字母s之间有个空格) | ||
− | |||
====Qt开发环境搭建==== | ====Qt开发环境搭建==== |
Revision as of 06:08, 25 July 2018
1 开发Qt程序
FriendlyELEC为RK3399平台移植的 Qt 5.10.0 支持以下显示设备插件:KMS、EGLFS和XCB,这三种插件均支持GPU硬件加速的OpenGL ES 2.0,只是调用方式不同,描述如下:
- KMS – 使用Linux内核的DRM显示接口来渲染界面
- EGLFS – 使用OpenGL ES接口来渲染界面
- XCB – 在X11服务器上运行,并集成到X11窗口环境
三种插件所支持的Qt特性会有所不同,请根据你的需求来选择:
插件名称 | OpenGL ES | QtWebEngine | QtMultimedia | 视频硬解播放 | 双屏异显 |
KMS | Yes | No | Yes | No | Yes |
EGLFS | Yes | No | Yes | No | No |
XCB | Yes | Yes | Yes | Yes | Yes |
建议使用 KMS或XCB 插件。
为了方便用户测试,FriendlyCore平台提供了4个脚本文件用于设置Qt环境变量,分别为:
脚本文件名 作用 /usr/bin/setqt5env-kms 设置kms插件所需要的环境变量 /usr/bin/setqt5env-eglfs 设置eglfs插件所需要的环境变量 /usr/bin/setqt5env-xcb 设置xcb插件所需要的环境变量 /usr/bin/setqt5env-nogui 仅供无界面的Qt程序使用
setqt5env-* 脚本的使用方法:
. setqt5env-kms
./apps
(注: .与字母s之间有个空格)
1.1 Qt开发环境搭建
需要为RK3399开发Qt应用,建议使用 Ubuntu 18.04 64位系统作为交叉编译平台,也可以使用 Docker 环境:
- Docker环境可以参考: http://github.com/friendlyarm/friendlyelec-ubuntu18-docker
- 本地交叉编译环境搭建请参考: How to Build and Install Qt Application for FriendlyELEC Boards/zh
1.2 Qt示例
FriendlyCore系统内置了几个Qt5示例,方便测试Qt5的几个模块特性:
- Qt QML示例:CinematicExperience
CinematicExperience是一个用Qt QML实现的专辑列表界面。
例子演示了Qt QML中的界面动态转换、粒子模拟和着色器特效,所以这个示例非常能体现硬件性能与软件优化的差异,在RK3399平台上非常流畅。
CinematicExperience的运行命令:
运行截图:
- Qt WebEngine示例:网页浏览器
Qt WebEngine使用了Chromium作为渲染引挚,对HTML5支持完美。
这里示例展示的网页浏览器是 Qt5 自带的Demo,运行命令:
运行截图:
注:Qt WebEngine在FriendlyCore平台上需要使用Xcb插件来运行。
- Qt 双屏异显示例
- Qt Multimedia: 硬解播放器
- Qt WebGL示例: nmapper
- Qt VNC示例: 智能家居控制界面
- Qt X11