CN104951260A - 在嵌入式Linux平台下基于Qt的混合界面的实现方法 - Google Patents

在嵌入式Linux平台下基于Qt的混合界面的实现方法 Download PDF

Info

Publication number
CN104951260A
CN104951260A CN201410125542.1A CN201410125542A CN104951260A CN 104951260 A CN104951260 A CN 104951260A CN 201410125542 A CN201410125542 A CN 201410125542A CN 104951260 A CN104951260 A CN 104951260A
Authority
CN
China
Prior art keywords
frame buffer
display
interface
frame
implementation method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410125542.1A
Other languages
English (en)
Other versions
CN104951260B (zh
Inventor
顾国璋
季冬夏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yunnan North OLiGHTEK Opto-Electronic Technology Co., Ltd.
Original Assignee
Austria Vision Electronic Technology (hainan) Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Austria Vision Electronic Technology (hainan) Co Ltd filed Critical Austria Vision Electronic Technology (hainan) Co Ltd
Priority to CN201410125542.1A priority Critical patent/CN104951260B/zh
Publication of CN104951260A publication Critical patent/CN104951260A/zh
Application granted granted Critical
Publication of CN104951260B publication Critical patent/CN104951260B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种在嵌入式Linux平台下基于Qt的混合界面的实现方法,所述方法包括以下步骤:通过设定QWS_DISPLAY来指定Qt程序界面显示的帧缓存,所述帧缓存包括第一帧缓存和第二帧缓存;将2D元素输出至第一帧缓存;将3D元素输出至第二帧缓存;同步刷新第一帧缓存和第二帧缓存的显示。本发明提供的在嵌入式Linux平台下基于Qt的混合界面的实现方法能够利用多帧缓冲,造成视觉印象叠加的效果。

Description

在嵌入式Linux平台下基于Qt的混合界面的实现方法
技术领域
本发明涉及一种界面实现方法,尤其涉及一种在嵌入式Linux平台下基于Qt的混合界面的实现方法。
背景技术
嵌入式LINUX是以LINUX为基础的嵌入式操作系统,它被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。
QT是一个跨平台的应用程序框架。通过使用QT,可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统中,而无需重复编写源代码。QT/EMBEDDED LINUX是为嵌入式LINUX优化过的QT版本,可以运行在LINUX的任何硬件上运行——包括INTEL X86、MIPS、ARM、STRONG-ARM、MOTOROLA/FREESCALE68000,以及POWERPC体系。
QT/EMBEDDED LINUX直接在LINUX的帧缓存中绘图。由于QT框架的约束,通常情况下,开发的界面程序只可实现2D界面。在嵌入式LINUX平台下基于QT实现3D特效,是极为有意义的。
发明内容
针对现有技术存在的问题,本发明的目的是提供一种能够实现3D界面的混合界面的实现方法。
本发明的技术方案包括:一种在嵌入式Linux平台下基于Qt的混合界面的实现方法,所述方法包括以下步骤:a.通过设定QWS_DISPLAY来指定Qt程序界面显示的帧缓存,所述帧缓存包括第一帧缓存和第二帧缓存;b.将2D元素输出至第一帧缓存;c.将3D元素输出至第二帧缓存;d.同步刷新第一帧缓存和第二帧缓存的显示。
优选地,第一帧缓存的大小为X*Y像素。
优选地,第二帧缓存的大小为2X*Y像素。
优选地,当将第二帧缓冲置于顶层,覆在第一帧缓冲之上时,显示界面为纯3D界面;当去除第一帧缓冲中的应用程序窗体透明属性,并且禁用显示芯片默认透明色填充窗体时,显示界面为纯2D界面。
优选地,步骤d包括:第一帧缓存由qws实时绘制,第二帧缓存由第三方程序绘制,且同步显示。
优选地,第二帧缓存为水平显示或竖直显示方式。
优选地,第一帧缓存和第二帧缓存均为实现线性数据存储的连续内存空间。
本发明提供的在嵌入式Linux平台下基于Qt的混合界面的实现方法能够利用多帧缓冲,造成视觉印象叠加的效果。
附图说明
图1是本发明一种优选实施方式的在嵌入式Linux平台下基于Qt的混合界面的实现方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和有点更加清楚,下面将结合附图对本发明实施例的技术方案作进一步说明。
如图1所示,本发明一种优选实施方式的在嵌入式Linux平台下基于Qt的混合界面的实现方法包括以下步骤:
在步骤110,通过设定QWS_DISPLAY来指定Qt程序界面显示的帧缓存,所述帧缓存包括第一帧缓存和第二帧缓存。
在嵌入式Linux系统中,需要指定第一个启动的Qt/Embedded Linux开发应用程序为QWS方式启动。在此之前,通过设定QWS_DISPLAY来指定Qt程序界面显示的帧缓存。其中,本领域技术人员可以知悉,Qt是一个跨平台C++图形用户界面应用程序框架,它提供给应用程序开发者建立图形用户界面所需的所有功能。QWS的全称是Qt windows system,是QT的窗口系统,体系结构类似X Windows,QWS为C/S结构。QWS_DISPLAY是Qt中的环境变量,qws启动时,会去检测QWS_DISPLAY这个环境变量。
在步骤120,将2D元素输出至第一帧缓存。在步骤130,将3D元素输出至第二帧缓存。
用Qt开发整体界面框架将所有2D元素指定显示输出至第一帧缓存,将3D元素输出至第二帧缓存。
在一个实施例中,通过ioctl控制将第一帧缓存覆在第二帧缓存之上,同时利用帧缓存的透明特性,实现2D&3D图像共存的特效,而且能够实现3D界面、2D界面之间的平滑切换。Ioctl是Qt中控制I/O设备的函数,用于获得设备信息和向设备发送控制参数。
具体地,在一个实施例中,可以采用例如控制层级关系的语句:ioctl(fd,TCC_LCD_FB_IOCTL_SET_OVP,3),向设备fd发送TCC_LCD_FB_IOCTL_SET_OVP命令,设置层级关系为3,即可以实现第一帧缓存在上、第二帧缓存在下,具体参数由硬件决定。帧缓存的透明特性由硬件决定。
第一帧缓存用于显示2D元素,大小为X*Y;第二帧缓存用于显示3D元素,大小为2X*Y。优选地,第一帧缓存和第二帧缓存都是连续内存空间,线性数据存储。
在步骤140,同步刷新第一帧缓存和第二帧缓存的显示。
为呈现3D影像,需为左眼的视野和右眼的视野配置相同分辨率X*Y的彩色屏幕,即,需要使用2X*Y大小的帧缓冲。指定QWS显示分辨率为X*Y,用于显示2D元素及整体界面框架。将其输出至第一帧缓冲,并且覆于第二帧缓冲之上。基于Qt实现的2D界面框架,除2D元素部分之外的其余部分,均添加透明属性。
通过framebuffer的base地址来控制刷新第一帧缓冲与第二帧缓冲的左右眼显示。第一帧缓冲为2D显示,第二帧缓冲为3D显示,两层帧缓冲同步刷新。优选地,第二帧缓冲的3D显示方式可分为水平、竖直两种。若切换水平/竖直显示模式,需重新计算缓冲帧首地址,以确保当前帧的正确显示。framebuffer是linux中的通用程序,用于一个视频输出设备从包含完整的帧数据的一个内存缓冲区中来驱动一个视频显示设备。
帧缓冲的首地址就是framebuffer的base地址。显示之前数据初始化时base地址由硬件决定。当需要切换显示模式时才需重新计算base地址。“同步刷新”即,第一帧缓存和第二帧缓存内的内容可以由不同程序管理,在一个优选实施例中,第一帧缓存由qws实时绘制,第二帧缓存由单独程序控制,且同步显示。
为了支持2D与3D混合界面、3D界面和2D界面之间的平滑切换,需配合显示控制芯片调节帧缓冲层级关系来实现,具体如下:
2D与3D混合界面通过显示控制芯片调节第二帧缓冲置于顶层,覆于第一帧缓冲之上,即可转换为纯3D界面。
2D与3D混合界面去除第一帧缓冲中应用程序窗体的透明属性,且禁用显示芯片默认透明色填充窗体,即可转换为纯2D界面。2D界面与3D界面之间,还可用过显示控制芯片调节帧缓冲层级,来实现相互切换。
上述实施例仅供说明本发明之用,而并非是对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同技术方案也应属于本发明的范畴,本发明的专利保护范围应由各权利要求限定。

Claims (7)

1.一种在嵌入式Linux平台下基于Qt的混合界面的实现方法,其特征在于,所述方法包括以下步骤:
a.通过设定QWS_DISPLAY来指定Qt程序界面显示的帧缓存,所述帧缓存包括第一帧缓存和第二帧缓存;
b.将2D元素输出至第一帧缓存;
c.将3D元素输出至第二帧缓存;
d.同步刷新第一帧缓存和第二帧缓存的显示。
2.根据权利要求1所述的方法,其特征在于,第一帧缓存的大小为X*Y像素。
3.根据权利要求1所述的方法,其特征在于,第二帧缓存的大小为2X*Y像素。
4.根据权利要求1所述的方法,其特征在于,当将第二帧缓冲置于顶层,覆在第一帧缓冲之上时,显示界面为纯3D界面;当去除第一帧缓冲中的应用程序窗体透明属性,并且禁用显示芯片默认透明色填充窗体时,显示界面为纯2D界面。
5.根据权利要求1所述的方法,其特征在于,步骤d包括:第一帧缓存由qws实时绘制,第二帧缓存由第三方程序绘制,且同步显示。
6.根据权利要求1所述的方法,其特征在于,第二帧缓存为水平显示或竖直显示方式。
7.根据权利要求1所述的方法,其特征在于,第一帧缓存和第二帧缓存均为实现线性数据存储的连续内存空间。
CN201410125542.1A 2014-03-31 2014-03-31 在嵌入式Linux平台下基于Qt的混合界面的实现方法 Active CN104951260B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410125542.1A CN104951260B (zh) 2014-03-31 2014-03-31 在嵌入式Linux平台下基于Qt的混合界面的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410125542.1A CN104951260B (zh) 2014-03-31 2014-03-31 在嵌入式Linux平台下基于Qt的混合界面的实现方法

Publications (2)

Publication Number Publication Date
CN104951260A true CN104951260A (zh) 2015-09-30
CN104951260B CN104951260B (zh) 2017-10-31

Family

ID=54165939

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410125542.1A Active CN104951260B (zh) 2014-03-31 2014-03-31 在嵌入式Linux平台下基于Qt的混合界面的实现方法

Country Status (1)

Country Link
CN (1) CN104951260B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107067453A (zh) * 2017-03-10 2017-08-18 珠海研果科技有限公司 一种基于Linux系统的MiniGUI绘制与GPU绘制同时显示的方法
CN109729286A (zh) * 2019-01-28 2019-05-07 北京晶品特装科技有限责任公司 一种视频中叠加实现动态图形的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1441940A (zh) * 2000-07-24 2003-09-10 索尼计算机娱乐公司 并行z缓冲器体系结构与透明度
US20030227460A1 (en) * 2002-06-11 2003-12-11 Schinnerer James A. System and method for sychronizing video data streams
CN101101505A (zh) * 2006-07-07 2008-01-09 华为技术有限公司 一种实现三维增强现实的方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1441940A (zh) * 2000-07-24 2003-09-10 索尼计算机娱乐公司 并行z缓冲器体系结构与透明度
US20030227460A1 (en) * 2002-06-11 2003-12-11 Schinnerer James A. System and method for sychronizing video data streams
CN101101505A (zh) * 2006-07-07 2008-01-09 华为技术有限公司 一种实现三维增强现实的方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107067453A (zh) * 2017-03-10 2017-08-18 珠海研果科技有限公司 一种基于Linux系统的MiniGUI绘制与GPU绘制同时显示的方法
CN109729286A (zh) * 2019-01-28 2019-05-07 北京晶品特装科技有限责任公司 一种视频中叠加实现动态图形的方法

Also Published As

Publication number Publication date
CN104951260B (zh) 2017-10-31

Similar Documents

Publication Publication Date Title
TWI608462B (zh) 用於可摺疊式顯示器的成像技術
CN113225427B (zh) 一种图像显示的方法及终端设备
CN105739934B (zh) 多屏拼接显示处理方法和设备
CN110989878B (zh) 小程序中的动画展示方法、装置、电子设备及存储介质
CN106062705A (zh) 跨平台渲染引擎
US10649711B2 (en) Method of switching display of a terminal and a terminal
TWI698834B (zh) 用於圖形處理之方法及裝置
CN111107127A (zh) 适用于远程桌面应用程序的个体应用程序窗口的流式传输
CN107624194A (zh) 用于操作显示器的定时控制器的设备和方法
CN103400565B (zh) 一种基于gdi的界面分块刷新方法
US10068549B2 (en) Cursor handling in a variable refresh rate environment
CN117635486A (zh) 图像处理方法、装置、设备及存储介质
CN104951260A (zh) 在嵌入式Linux平台下基于Qt的混合界面的实现方法
KR20120053548A (ko) 디스플레이 구동 회로, 그것의 동작 방법, 및 그것을 포함하는 사용자 장치
CN102186097A (zh) 一种3d图像显示方法、装置及设备
CN112130948A (zh) 显示控制方法及装置、计算机可读介质及电子设备
CN111010600A (zh) 一种基于分布式云拼接的平铺融合开窗方法和显示屏
CN107016976A (zh) 显示控制方法及装置和显示屏系统
CN104142758B (zh) 一种嵌入式窗口管理方法及装置
CN106354449A (zh) 一种文档在线演示方法及客户端
CN109104628B (zh) 安卓电视的焦点前景生成方法、存储介质、设备及系统
CN103543978A (zh) 一种视频缩放方法及其系统
CN106875884A (zh) 一种绘制单色屏幕的方法和装置及一种电子设备
CN103092578A (zh) 嵌入式Linux平台下的显示方法
CN105472106A (zh) 背景的显示方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20170725

Address after: 650000 No. 5, infrared Road, Kunming economic and Technological Development Zone, Yunnan

Applicant after: Yunnan North OLiGHTEK Opto-Electronic Technology Co., Ltd.

Address before: 571924 Haikou high tech Industrial Demonstration Zone, Hainan, Hainan

Applicant before: Austria Vision Electronic Technology (Hainan) Co., Ltd.

GR01 Patent grant
GR01 Patent grant