Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(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>
<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>
 
|}
 
|}
<br>
+
建议使用 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||针仅命令行无界面的Qt程序使用
+
|/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 环境:

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