发明名称 |
安卓系统上基于GPU实现的Canvas元素渲染方法及装置 |
摘要 |
本发明提供了一种在安卓系统上基于GPU硬件实现的Html5 Canvas元素渲染方法,包括:在检测到针对Html5网页中的Canvas元素的渲染操作指令且完成初始化创建操作后,通过Skia GPU函数库将针对2D Canvas绘图API的调用指令转换为针对OpenGL ES API的调用指令;将在所述初始化操作时创建的EGL Context设置为渲染操作所在线程的当前上下文;使用所述GPU在所述初始化操作时创建的离屏本地窗口中渲染所述Canvas元素;以及利用所述GPU的贴图操作功能,将渲染后的Canvas元素从所述离屏本地窗口复制到设备的当前活动窗口上。利用该方法,通过利用安卓操作系统提供的本地窗口渲染机制和OpenGL ES API,使用GPU来完成Canvas元素的绘制和混合,从而实现利用GPU硬件加速来提高Canvas渲染性能。 |
申请公布号 |
CN103336816B |
申请公布日期 |
2017.02.08 |
申请号 |
CN201310266070.7 |
申请日期 |
2013.06.28 |
申请人 |
广州市动景计算机科技有限公司 |
发明人 |
梁捷;易旭昕 |
分类号 |
G06F17/30(2006.01)I;G06F9/445(2006.01)I |
主分类号 |
G06F17/30(2006.01)I |
代理机构 |
|
代理人 |
|
主权项 |
一种在安卓系统上基于GPU硬件实现的Html5 Canvas元素渲染方法,包括:在检测到针对Html5网页中的Canvas元素的渲染操作指令且完成初始化创建操作后,通过Skia GPU函数库将针对2D Canvas绘图API的调用指令转换为针对OpenGL ES API的调用指令;将在所述初始化操作时创建的EGL Context设置为渲染操作所在线程的当前上下文;根据所述Canvas元素的属性信息,使用所述GPU在所述初始化操作时创建的离屏本地窗口中渲染所述Canvas元素;以及利用所述GPU的贴图操作功能,将渲染后的Canvas元素从所述离屏本地窗口复制到设备的当前活动窗口上,所述初始化创建操作包括:基于所述Canvas元素的属性信息,为所述Canvas元素创建离屏本地窗口;以及基于所述离屏本地窗口,创建EGL Window Surface和EGL Context;其中,通过Skia GPU函数库将针对2D Canvas绘图API的调用指令转换为针对OpenGL ES API的调用指令包括:将在所述离屏本地窗口中创建的EGL Windows Surface包装成SkGpuDevice;创建基于SkGpuDevice的SkCanvas;以及利用所述SkCanvas将针对2D Canvas绘图API的调用指令转换为针对OpenGL ES API的调用指令。 |
地址 |
510665 广东省广州市天河区科韵路16号自编2栋301房 |