System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于异构混合渲染的自由缩放优化方法技术_技高网

一种基于异构混合渲染的自由缩放优化方法技术

技术编号:40707635 阅读:2 留言:0更新日期:2024-03-22 11:08
本发明专利技术公开了一种基于异构混合渲染的自由缩放优化方法,在桌面系统中拉伸应用窗口时,根据原窗口大小与最新窗口大小的大小关系确定安卓应用兼容服务内对安卓应用窗口大小调整及渲染的方式,对于窗口增大的调整通过在安卓应用兼容服务渲染和上屏的操作之间增加安卓应用的渲染内容与桌面窗口渲染内容的合成及绘制操作,从而消除了由桌面系统与安卓兼容环境间渲染差异所导致的窗口增大过程中窗口内显示出的黑色区域,使得安卓应用窗口的视觉效果始终与桌面系统内窗口的边框大小保持一致,类似桌面系统的原生应用,有效提高用户体验。

【技术实现步骤摘要】

本专利技术属于计算机软件开发,具体涉及一种基于异构混合渲染的自由缩放优化方法


技术介绍

1、现有应用通常是面向安卓系统开发的,为满足大多数应用场景的使用需求应用通常被设定为以全屏方式显示,其界面一般固定大小且不支持尺寸调整。然而,当在桌面平台上使用这类应用时,用户往往需要调整应用显示界面的大小。现有技术中,通常在桌面平台上采用安卓兼容环境运行安卓应用,现有的安卓兼容环境实现方案如xdroid,xdroid包括xdroidui和xdroidserver,xdroidui为安卓应用显示单元,xdroidserver为安卓应用兼容服务。这种情况下,安卓应用通常以桌面应用窗口显示,当用户调整该桌面应用窗口大小时其中的安卓应用也同时被缩放,但是由于桌面平台与安卓兼容环境的渲染速度不同会导致桌面应用窗口大小的变化与其中的安卓应用实际窗口大小的变化不同步,尤其是在桌面应用窗口放大时这种现象会更加明显,此时桌面应用窗口的增大速度大于安卓应用实际窗口的增大速度,会产生桌面应用窗口对应的矩形与安卓应用实际窗口对应的矩形之间大小不同的区域显示为黑色或者其他颜色,降低用户体验。


技术实现思路

1、有鉴于此,本专利技术提供了一种基于异构混合渲染的自由缩放优化方法,实现了安卓兼容环境内安卓应用类似桌面系统原生应用的拉伸操作。

2、本专利技术提供的一种基于异构混合渲染的自由缩放优化方法,包括以下步骤:

3、步骤1、在安卓兼容环境内启动目标安卓应用,安卓应用显示单元生成与目标安卓应用对应的目标桌面窗口,记录目标桌面窗口的窗口id及窗口大小分别为目标桌面窗口id及桌面窗口实际大小;

4、步骤2、当桌面窗口的大小发生改变时,桌面系统向安卓应用显示单元及窗口管理器发送窗口调整消息,窗口调整消息包括桌面窗口的窗口id及其最新窗口大小;

5、步骤3、窗口管理器接收到窗口调整消息后进入等待状态,安卓应用显示单元接收到窗口调整消息后,根据窗口id确定目标桌面窗口,若最新窗口大小不大于目标桌面窗口的桌面窗口实际大小,则执行步骤4;否则,执行步骤6;

6、步骤4、安卓应用显示单元将包含窗口id及标题栏宽度的标题栏宽度修改消息发送至窗口管理器,标题栏宽度根据最新窗口大小设定;安卓应用显示单元将包含窗口id及最新窗口大小的桌面窗口改变消息发送至安卓应用兼容服务;

7、步骤5、窗口管理器接收到标题栏宽度修改消息后,设定目标桌面窗口对应的标题栏;安卓应用兼容服务接收到桌面窗口改变消息后,根据窗口id完成对应安卓窗口的渲染及上屏,结束本流程;

8、步骤6、安卓应用显示单元将包含窗口id及最新窗口大小的桌面窗口增大消息发送至安卓应用兼容服务;

9、步骤7、安卓应用兼容服务执行安卓窗口的渲染刷新操作,并将桌面窗口增大消息中的窗口id作为第一窗口id,获取安卓应用当前窗口大小记为安卓窗口实际大小;

10、步骤8、安卓应用兼容服务按照第一窗口id及安卓窗口实际大小完成一帧数据的渲染后、在对该渲染数据执行上屏操作前,若该渲染数据属于第一窗口id对应的窗口且为surfaceview类窗口则安卓应用兼容服务进入监听状态,若该渲染数据属于第一窗口id对应的窗口且为非surfaceview类窗口则将安卓应用兼容服务中渲染数据的地址映射到安卓应用显示单元,该映射地址为第一映射地址;再向安卓应用显示单元发送渲染完毕消息,渲染完毕消息中包含第一窗口id、安卓窗口实际大小及第一映射地址;

11、步骤9、当安卓应用显示单元接收到渲染完毕消息后向窗口管理器发送包含第一窗口id及安卓窗口实际大小的标题栏宽度修改消息,若渲染完毕消息中指定窗口为surfaceview类窗口则获取桌面窗口实际大小与安卓窗口实际大小所对应矩形间差异区域的渲染数据,将该渲染数据绘制到目标桌面窗口内,再向安卓应用兼容服务发送完成上屏消息;若渲染完毕消息中指定窗口为非surfaceview类窗口则获取目标桌面窗口所对应渲染矩形的缓冲区,再将第一映射地址中的渲染数据复制到该缓冲区,将缓冲区中的数据绘制到目标桌面窗口中;

12、步骤10、窗口管理器接收到标题栏宽度修改消息,按照安卓窗口实际大小设置标题栏宽度;安卓应用兼容服务接收到完成上屏消息后,对安卓窗口对应的渲染数据执行上屏操作;

13、步骤11、若安卓窗口实际大小与最新窗口大小不同,则由安卓应用兼容服务增大安卓窗口实际大小后执行步骤8;否则完成桌面窗口大小的调整结束本流程。

14、进一步地,所述步骤7中所述安卓应用兼容服务执行安卓窗口的渲染刷新操作的方式为:按照刷新频率执行安卓窗口的渲染刷新操作。

15、进一步地,所述步骤8中所述将安卓应用兼容服务中渲染数据的地址映射到安卓应用显示单元的方式为:通过内存映射机制实现。

16、进一步地,所述步骤8中所述向安卓应用显示单元发送渲染完毕消息的方式为:通过内核信号量实现。

17、进一步地,所述步骤9中所述获取桌面窗口实际大小与安卓窗口实际大小所对应矩形间差异区域的渲染数据,在linux系统中的实现方式为:

18、s91.1、打开drm设备;

19、s91.2、使用drmmodegetresources函数获取显示资源;

20、s91.3、使用drmmodegetcrtc获取当前控制器的信息;

21、s91.4、创建用于存储待获取的屏幕区域数据的帧缓冲区,通过gem接口分配内存;

22、s91.5、使用mmap命令将帧缓冲区映射到用户空间;

23、s91.6、从映射后的帧缓冲内存中复制指定区域的像素数据。

24、进一步地,所述s91.4中所述帧缓冲区的创建方式为:使用drmmodeaddfb或drmmodeaddfb2创建。

25、进一步地,所述步骤9中所述获取桌面窗口实际大小与安卓窗口实际大小所对应矩形间差异区域的渲染数据,在windows系统中的实现方式为:

26、s92.1、调用createdevice创建d3d设备;

27、s92.2、调用createoffscreenplainsurface创建与屏幕相关的surface;

28、s92.3、调用getfrontbufferdata获取屏幕渲染数据;

29、s92.4、调用lockrect/unlockrect锁定surface对应缓冲区,再访问内存并读取指定区域的像素数据。

30、有益效果

31、本专利技术在桌面系统中拉伸应用窗口时,根据原窗口大小与最新窗口大小的大小关系确定安卓应用兼容服务内对安卓应用窗口大小调整及渲染的方式,对于窗口增大的调整通过在安卓应用兼容服务渲染和上屏的操作之间增加安卓应用的渲染内容与桌面窗口渲染内容的合成及绘制操作,从而消除了由桌面系统与安卓兼容环境间渲染差异所导致的窗口增大过程中窗口内显示出的黑色区域,使得安本文档来自技高网...

【技术保护点】

1.一种基于异构混合渲染的自由缩放优化方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的自由缩放优化方法,其特征在于,所述步骤7中所述安卓应用兼容服务执行安卓窗口的渲染刷新操作的方式为:按照刷新频率执行安卓窗口的渲染刷新操作。

3.根据权利要求1所述的自由缩放优化方法,其特征在于,所述步骤8中所述将安卓应用兼容服务中渲染数据的地址映射到安卓应用显示单元的方式为:通过内存映射机制实现。

4.根据权利要求1所述的自由缩放优化方法,其特征在于,所述步骤8中所述向安卓应用显示单元发送渲染完毕消息的方式为:通过内核信号量实现。

5.根据权利要求1所述的自由缩放优化方法,其特征在于,所述步骤9中所述获取桌面窗口实际大小与安卓窗口实际大小所对应矩形间差异区域的渲染数据,在Linux系统中的实现方式为:

6.根据权利要求5所述的自由缩放优化方法,其特征在于,所述S91.4中所述帧缓冲区的创建方式为:使用drmModeAddFB或drmModeAddFB2创建。

7.根据权利要求1所述的自由缩放优化方法,其特征在于,所述步骤9中所述获取桌面窗口实际大小与安卓窗口实际大小所对应矩形间差异区域的渲染数据,在Windows系统中的实现方式为:

...

【技术特征摘要】

1.一种基于异构混合渲染的自由缩放优化方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的自由缩放优化方法,其特征在于,所述步骤7中所述安卓应用兼容服务执行安卓窗口的渲染刷新操作的方式为:按照刷新频率执行安卓窗口的渲染刷新操作。

3.根据权利要求1所述的自由缩放优化方法,其特征在于,所述步骤8中所述将安卓应用兼容服务中渲染数据的地址映射到安卓应用显示单元的方式为:通过内存映射机制实现。

4.根据权利要求1所述的自由缩放优化方法,其特征在于,所述步骤8中所述向安卓应用显示单元发送渲染完毕消息的方式为:通过内核信号...

【专利技术属性】
技术研发人员:温研晏华
申请(专利权)人:北京麟卓信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1