本发明涉及图形处理,特别涉及基于windows的不规则界面开发方法、装置及相关介质。
背景技术:
1、在qt框架中,windows界面开发经常需要创建不规则形状的界面,如圆形、多边形或多弧度图形。常见的创建不规则形状界面的方法包括使用位图、掩码遮罩图、渲染带透明通道的png图片,但这些方法共同的缺点是存在明显的锯齿效应以及窗口缩放时产生模糊。尽管这些方法提供了制作不规则界面的灵活性,但都未能有效解决锯齿和缩放模糊的问题。
技术实现思路
1、本发明实施例提供了基于windows的不规则界面开发方法、装置及相关介质,旨在解决现有技术中不规则界面的开发未能有效解决锯齿和缩放模糊的问题。
2、第一方面,本发明实施例提供一种基于windows的不规则界面开发方法,包括:
3、获取矢量图,并初始化窗口;
4、基于所述窗口构造渲染器对象,并利用所述渲染器对象加载所述矢量图到内存中;
5、构建缓存哈希表,将所述缓存哈希表的缓存级别设置为多个,并根据所述窗口的不同尺寸计算出所述缓存级别对应的尺寸大小;
6、检测当前窗口是否需要进行渲染,若无需渲染,则结束整个渲染流程;若需要渲染,则获取所述当前窗口的尺寸大小所属的当前缓存级别,并查询所述缓存哈希表中是否包含所述当前缓存级别对应的缓存位图对象;其中,所述检测当前窗口是否需要进行渲染为一次渲染循环;
7、若包含所述当前缓存级别对应的缓存位图对象,则获取所述缓存位图对象并渲染到所述当前窗口上,再进入下一次渲染循环;若不包含所述当前缓存级别对应的缓存位图对象,则通过离屏渲染线程创建所述当前缓存级别对应的缓存位图对象,将创建的所述缓存位图对象加入到所述缓存哈希表,并获取创建的所述缓存位图对象以渲染到所述当前窗口上,再进入下一次渲染循环;
8、当渲染循环结束时,则结束整个渲染流程,并输出渲染结果。
9、第二方面,本发明实施例提供一种基于windows的不规则界面开发装置,包括:
10、数据初始单元,用于获取矢量图,并初始化窗口;
11、数据加载单元,用于基于所述窗口构造渲染器对象,并利用所述渲染器对象加载所述矢量图到内存中;
12、数据构建单元,用于构建缓存哈希表,将所述缓存哈希表的缓存级别设置为多个,并根据所述窗口的不同尺寸计算出所述缓存级别对应的尺寸大小;
13、第一判断单元,用于检测当前窗口是否需要进行渲染,若无需渲染,则结束整个渲染流程;若需要渲染,则获取所述当前窗口的尺寸大小所属的当前缓存级别,并查询所述缓存哈希表中是否包含所述当前缓存级别对应的缓存位图对象;其中,所述检测当前窗口是否需要进行渲染为一次渲染循环;
14、第二判断单元,用于若包含所述当前缓存级别对应的缓存位图对象,则获取所述缓存位图对象并渲染到所述当前窗口上,再进入下一次渲染循环;若不包含所述当前缓存级别对应的缓存位图对象,则通过离屏渲染线程创建所述当前缓存级别对应的缓存位图对象,将创建的所述缓存位图对象加入到所述缓存哈希表,并获取创建的所述缓存位图对象以渲染到所述当前窗口上,再进入下一次渲染循环;
15、数据输出单元,用于当渲染循环结束时,则结束整个渲染流程,并输出渲染结果。
16、第三方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述第一方面的基于windows的不规则界面开发方法。
17、第四方面,本发明实施例提供了一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述第一方面的基于windows的不规则界面开发方法。
18、本发明实施例提供基于windows的不规则界面开发方法、装置及相关介质,该方法包括获取矢量图,并初始化窗口;利用渲染器对象加载矢量图到内存中;构建缓存哈希表;检测当前窗口是否需要进行渲染,若需要渲染,则获取当前窗口的尺寸大小所属的当前缓存级别,并查询缓存哈希表中是否包含当前缓存级别对应的缓存位图对象;若包含当前缓存级别对应的缓存位图对象,则获取缓存位图对象并渲染到当前窗口上;若不包含当前缓存级别对应的缓存位图对象,则通过离屏渲染线程创建当前缓存级别对应的缓存位图对象;当渲染循环结束时,则结束整个渲染流程,并输出渲染结果。本发明采用矢量图绘制抗锯齿不规则图片,同时采用多级缓存技术使缩放窗口流畅。
19、本发明实施例还提供一种基于windows的不规则界面开发装置、计算机设备和存储介质,同样具有上述有益效果。
1.一种基于windows的不规则界面开发方法,其特征在于,包括:
2.根据权利要求1所述的基于windows的不规则界面开发方法,其特征在于,所述获取矢量图,并初始化窗口,包括:
3.根据权利要求1所述的基于windows的不规则界面开发方法,其特征在于,所述基于所述窗口构造渲染器对象,并利用所述渲染器对象加载所述矢量图到内存中,包括:
4.根据权利要求1所述的基于windows的不规则界面开发方法,其特征在于,所述构建缓存哈希表,将所述缓存哈希表的缓存级别设置为多个,并根据所述窗口的不同尺寸计算出所述缓存级别对应的尺寸大小,包括:
5.根据权利要求1所述的基于windows的不规则界面开发方法,其特征在于,所述获取所述缓存位图对象并渲染到所述当前窗口上,包括:
6.根据权利要求5所述的基于windows的不规则界面开发方法,其特征在于,所述基于所述qpainter对象分别启用抗锯齿功能和平滑像素图变换功能,包括:
7.根据权利要求1所述的基于windows的不规则界面开发方法,其特征在于,所述通过离屏渲染线程创建所述当前缓存级别对应的缓存位图对象,将创建的所述缓存位图对象加入到所述缓存哈希表,包括:
8.一种基于windows的不规则界面开发装置,其特征在于,包括:
9.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述的基于windows的不规则界面开发方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的基于windows的不规则界面开发方法。