本发明涉及软件开发,尤其涉及一种基于qt的分屏显示方法、装置、计算机设备及介质。
背景技术:
1、现有基于安卓系统的多屏技术大多分为两类,一类是一个apk实现多个屏幕的显示,但是最终只能触摸一个显示窗口,对于多个屏幕同时触控实现较为困难,另一类是多个apk分别实现各自对应的屏幕显示,但是,受限于安卓的activity的窗口显示机制,受限较多,比如有屏幕的限制以及活动窗口的限制等等,目前主要多是独立apk实现多屏显示居多。
2、在安卓系统中,一般通过原始java获取默认的display设备,通过display设备的数量可以在其上创建不同的surfaceview,最终在不同的surfaceview上通过安卓的控件来绘制不同的ui和画面,包括显示视频等,系统内部会通过surfaceflinger服务来进行图层混合将当前多个surfaceview的图层进行混合多屏显示。
3、但是,上述的开发调试效率低,主要是由于通过开发之后编译,再安装,若出现异常,则需要进行反复,工程量比较大。
4、因此,如何提高实现分屏显示的开发效率是目前亟待解决的技术问题。
技术实现思路
1、鉴于上述问题,本发明提供了一种克服上述问题或者至少部分地解决上述问题的基于qt的分屏显示方法、装置、计算机设备及介质。
2、第一方面,本发明提供了一种基于qt的分屏显示方法,应用于android设备中,包括:
3、通过java接口获取多个待分屏显示的显示窗口编号;
4、通过ndk接口将所述显示窗口编号引用至c++代码中;
5、基于每个显示窗口编号,分别开设异步渲染线程;
6、在qt开发环境下,基于每个异步渲染线程,通过c++代码调用qml语言进行画面渲染,以使得每个待分屏显示的显示窗口独立显示待显示内容。
7、优选地,在qt开发环境下,基于每个异步渲染线程,通过c++代码调用qml语言进行画面渲染,以使得每个待分屏显示的显示窗口独立显示待显示内容之后,还包括:
8、监听每个待分屏显示的显示窗口是否有用户的触控事件;
9、若是,对所述触控事件进行定位;
10、基于所述定位,响应所述触控事件。
11、优选地,在qt开发环境下,基于每个异步渲染线程,通过c++代码调用qml语言进行画面渲染,以使得每个待分屏显示的显示窗口独立显示待显示内容,包括:
12、在qt开发环境下,基于每个异步渲染线程,通过c++代码调用qml语言对每帧待显示图像进行刷新,得到每帧目标图像;
13、将每帧目标图像发送至相应的待分屏显示的显示窗口显示,以使得每个待分屏显示的显示窗口独立显示待显示内容。
14、优选地,在在qt开发环境下,基于每个异步渲染线程,通过c++代码调用qml语言对每帧待显示图像进行刷新,得到每帧目标图像之前,还包括:
15、在qt开发环境下,基于每个异步渲染线程,对每帧待显示图像通过opengl函数进行纹理转换,得到每帧转换图像。
16、优选地,在qt开发环境下,基于每个异步渲染线程,对每帧图像通过opengl函数进行纹理转换,得到每帧转换图像之后,还包括:
17、对每帧转换图像进行几何处理,得到每帧处理图像。
18、优选地,所述对每帧转换图像进行几何处理,得到每帧处理图像,包括:
19、对每帧转换图像进行如下任意一种或多种处理,得到每帧处理图像:
20、画面变形、颜色滤波以及颜色混合。
21、第二方面,本发明还提供了一种基于qt的分屏显示装置,应用于android设备中,包括:
22、获取模块,用于通过java接口获取多个待分屏显示的显示窗口编号;
23、引用模块,用于通过ndk接口将所述显示窗口编号引用至c++代码中;
24、开设模块,用于基于每个显示窗口编号,分别开设异步渲染线程;
25、渲染模块,用于在qt开发环境下,基于每个异步渲染线程,通过c++代码调用qml语言进行画面渲染,以使得每个待分屏显示的显示窗口独立显示待显示内容。
26、第三方面,本发明还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面中所述的方法步骤。
27、第四方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中所述的方法步骤。
28、本发明实施例中的一个或多个技术方案,至少具有如下技术效果或优点:
29、本发明提供了一种基于qt的分屏显示方法,应用于android设备中,包括:通过java接口获取多个待分屏显示的显示窗口编号;通过ndk(android 原生开发套件)接口将显示窗口编号引用至c++代码中;基于每个显示窗口编号,分别开设异步渲染线程;在qt开发环境下,基于每个异步渲染线程,通过c++代码调用qml语言进行画面渲染,以使得每个待分屏显示的显示窗口独立显示待显示内容,由于在qt开发环境下,通过c++代码调用qml语言进行画面渲染,借助跨平台特性,以及调用高效脚本语言进行画面渲染,可以在pc端直接加载看到运行效果,从而省去编译以及安装等耗时环节,直接输出,进而提高了实现分屏显示的开发效率。
1.一种基于qt的分屏显示方法,应用于android设备中,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,在qt开发环境下,基于每个异步渲染线程,通过c++代码调用qml语言进行画面渲染,以使得每个待分屏显示的显示窗口独立显示待显示内容之后,还包括:
3.如权利要求1所述的方法,其特征在于,在qt开发环境下,基于每个异步渲染线程,通过c++代码调用qml语言进行画面渲染,以使得每个待分屏显示的显示窗口独立显示待显示内容,包括:
4.如权利要求3所述的方法,其特征在于,在在qt开发环境下,基于每个异步渲染线程,通过c++代码调用qml语言对每帧待显示图像进行刷新,得到每帧目标图像之前,还包括:
5.如权利要求4所述的方法,其特征在于,在qt开发环境下,基于每个异步渲染线程,对每帧图像通过opengl函数进行纹理转换,得到每帧转换图像之后,还包括:
6.如权利要求5所述的方法,其特征在于,所述对每帧转换图像进行几何处理,得到每帧处理图像,包括:
7.一种基于qt的分屏显示装置,应用于android设备中,其特征在于,包括:
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~6中任一权利要求所述的方法步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~6中任一权利要求所述的方法步骤。