本发明涉及一种装修设计软件的渲染方法,尤其是涉及一种应用于浏览器的渲染方法、装置、电子设备及存储介质。
背景技术:
1、随着超文本标记语言html以及网络脚本javascr i pt技术的发展,浏览器中的内容变得更加丰富和有趣,目前,浏览器已然能够进行一些三维系统的展示和建模,在此过程中,浏览器的每帧绘制,javascr i pt(简称js)运行,三维绘制都在一个线程中排队执行,由此,导致了在三维渲染过程中的效率有待提高。
2、装修领域涉及大量的工程图纸和设计图纸,在面向客户的app场景下,不少工程图纸和设计图纸需要在终端的浏览器上进行展示和修改,由此就因为如上所述的原因而导致图片刷新和呈现慢,严重影响客户的体验效果,因此需要有针对性的解决装修设计领域的这一问题。
技术实现思路
1、有鉴于此,本发明的主要目的在于提供一种应用于浏览器的渲染方法、装置、电子设备及存储介质,以期至少部分地解决上述技术问题。
2、为了实现上述目的,作为本发明的第一个方面,提出了一种应用于浏览器的渲染方法,所述渲染方法采用包括第一线程和第二线程的多线程设计,包括如下步骤:
3、在作为主线程的第一线程上创建canvas画布,将canvas画布的离屏画板发送至第二线程;
4、所述第一线程获取绘制指令,并发送所述绘制指令至所述第二线程;
5、所述第二线程响应于绘制指令,在所述canvas画布的离屏画板上进行绘制。
6、通过本发明提供的方法,可以将刷新以及渲染分别分配至不同的线程,提升了渲染效率。
7、一种可能的方式是,所述第一线程以及所述第二线程中设置有共享内存;
8、所述第一线程获取绘制指令,并发送绘制指令至所述第二线程的步骤中,
9、所述第一线程利用所述共享内存将所述绘制指令发送至所述第二线程。
10、一种可能的方式是,所述共享内存设置有第一数据通道,所述第一数据通道用于为第一线程提供写入接口以及第二线程读取接口;
11、所述第一线程利用所述共享内存将所述绘制指令发送至所述第二线程的步骤包括:
12、所述第一线程将所述绘制指令写入共享内存,并转化为绘制指令对应的josn数据,所述第二线程读取所述共享内存读取所述绘制指令对应的josn数据;
13、或者,所述第一线程将所述绘制指令写入共享内存,并转化为绘制指令对应的二进制数据,所述第二线程读取所述共享内存读取所述绘制指令对应的二进制数据。
14、一种可能的方式是,所述第一数据通道通过第一wasm子模块生成,所述第一wasm子模块经由第一线程写入以及第二线程读取对应的c++语言代码经编译生成。
15、一种可能的方式是,所述第二线程响应于绘制指令,在所述canvas画布的离屏画板上进行绘制的步骤具体包括:
16、所述第二线程响应于所述绘制指令,调用三维引擎,在所述canvas画布的离屏画板上进行绘制。
17、一种可能的方式是,所述三维引擎基于c++语言生成,第二wasm模块经由三维引擎的c++语言代码经编译生成,
18、所述第二线程响应于所述绘制指令,调用三维引擎,所述canvas画布的离屏画板上进行绘制的步骤具体包括:
19、所述第二线程响应于所述绘制指令,利用所述第二wasm模块在canvas画布的离屏画板上进行绘制。
20、一种可能的方式是,所述方法还包括:所述第二线程将绘制完成信息发送至第一线程,所述绘制完成信息在所述第二线程响应于绘制指令,在所述canvas画布的离屏画板上进行绘制的步骤之后完成。
21、一种可能的方式是,所述第一线程以及所述第二线程中设置有共享内存;所述共享内存设置有第二数据通道,所述第二数据通道用于为第二线程提供写入接口以及为第一线程提供读取接口;
22、所述绘制完成信息通过所述第二数据通道传输。
23、一种可能的方式是,所述第二数据通道通过第三wasm子模块生成,所述第三wasm子模经由写入第二线程以及读取第一线程对应的c++语言代码经编译生成。
24、作为本发明的第二方面,还提出了一种应用于浏览器的渲染装置,包括:
25、第一模块,用于第一线程创建canvas画布,将canvas画布的离屏画板发送至第二线程;
26、第二模块,用于获取绘制指令,并发送绘制指令至所述第二线程;
27、第三模块:用于所述第二线程响应于绘制指令,在所述canvas画布的离屏画板上进行绘制。
28、作为本发明的第三方面,还提出了一种电子设备,包括:
29、存储器,用于存储可在处理器上执行的计算机程序;
30、处理器,用于执行所述存储器上存储的计算机程序,以实现如上所述的应用于浏览器的渲染方法。
31、作为本发明的第四方面,还提出了一种计算机可读介质,所述计算机可读介质存储有处理器可执行的非易失程序代码,所述程序代码用于执行如上所述的应用于浏览器的渲染方法。
32、本发明第二方面至第四方面的有益效果与第一方面相一致,在此不再赘述。
33、本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
1.一种应用于浏览器的渲染方法,其特征在于,所述渲染方法采用包括第一线程和第二线程的多线程设计,包括如下步骤:
2.根据权利要求1所述的渲染方法,其特征在于,所述第一线程以及所述第二线程中设置有共享内存;
3.根据权利要求2所述的渲染方法,其特征在于,所述共享内存设置有第一数据通道,所述第一数据通道用于为第一线程提供写入接口以及第二线程读取接口;
4.根据权利要求3所述的渲染方法,其特征在于,所述第一数据通道通过第一wasm子模块生成,所述第一wasm子模块经由第一线程写入以及第二线程读取对应的c++语言代码经编译生成;和/或
5.根据权利要求4所述的渲染方法,其特征在于,所述三维引擎基于c++语言生成,第二wasm模块经由三维引擎的c++语言代码经编译生成,
6.根据权利要求1-5中任一项所述的渲染方法,其特征在于,所述渲染方法还包括:所述第二线程将绘制完成信息发送至第一线程,所述绘制完成信息在所述第二线程响应于绘制指令,在所述canvas画布的离屏画板上进行绘制的步骤之后完成。
7.根据权利要求6所述的渲染方法,其特征在于,所述第一线程以及所述第二线程中设置有共享内存;所述共享内存设置有第二数据通道,所述第二数据通道用于为第二线程提供写入接口以及为第一线程提供读取接口;作为优选,所述第二数据通道通过第三wasm子模块生成,所述第三wasm子模经由写入第二线程以及读取第一线程对应的c++语言代码经编译生成;
8.一种应用于浏览器的渲染装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种存储介质,其特征在于,所述存储介质上存储有处理器可执行或编译后可执行的非易失程序代码,所述程序代码用于执行如权利要求1-7中任一项所述的应用于浏览器的渲染方法。
