本技术涉及图形处理,特别是涉及一种图形调用指令的处理方法、装置、设备及存储介质。
背景技术:
1、目前,可以使用计算机编程(javascript)语言开发移动终端的跨平台的三维应用程序。在开发三维应用程序时,可以通过向移动终端的图形处理器(graphics processingunit,gpu)中的上下文处理器发送图形调用指令,来调用开放图形库中的图形进行上屏渲染。
2、相关技术中,由于图形调用指令是由javascript语言生成的,但图形调用指令调用的是c++语言的应用程序接口。因此,gpu中的上下文处理器执行图形调用指令时,需要将javascript语言内的变量及方法,和c++内对应的对象及对应的方法进行关联,从而消耗了大量的时间,由此造成图形调用指令的吞吐速度较慢。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够图形调用指令的吞吐速度的图形调用指令的处理方法、装置、设备、存储介质及程序产品。
2、第一方面,本技术提供了一种图形调用指令的处理方法,应用于终端设备。所述方法包括:
3、获取第一程序语言的线程生成的第一图形调用指令,所述第一图形调用指令用于调用第二程序语言的接口函数对图形库中的图形进行上屏渲染,所述第一程序语言与所述第二程序语言不同;
4、根据指令模版,将所述第一图形调用指令转化为第二图形调用指令,所述第二图形调用指令中包括签名信息,所述签名信息与所述第一图形调用指令调用的第二程序语言的接口函数对应;
5、在缓冲队列中保存所述第二图形调用指令;
6、响应于上屏指示信息,执行所述缓冲队列中保存的第二图形调用指令,以将所述缓冲队列中保存的第二图形调用指令在所述图形库中对应的图形进行上屏渲染。
7、在其中一个实施例中,所述终端设备中包括图形处理器,所述图形处理器中包括多个上下文处理单元;
8、所述响应于上屏指示信息,执行所述缓冲队列中保存的第二图形调用指令,以将所述缓冲队列中保存的第二图形调用指令在所述图形库中对应的图形进行上屏渲染,包括:
9、响应于所述上屏指示信息,将所述缓冲队列中保存的第二图形调用指令发送给所述第一程序语言的线程对应的上下文处理单元;
10、控制所述第一程序语言的线程对应的上下文处理单元,执行所述缓冲队列中保存的第二图形调用指令,以将所述缓冲队列中保存的第二图形调用指令在所述图形库中对应的图形进行上屏渲染。
11、在其中一个实施例中,所述控制所述第一程序语言的线程对应的上下文处理单元,执行所述缓冲队列中保存的第二图形调用指令,包括:
12、查询所述图形处理器中的多个上下文处理单元的处理状态;
13、若所述图形处理器中的多个上下文处理单元均不处于上屏处理状态,则控制所述第一程序语言的线程对应的上下文处理单元,执行所述缓冲队列中保存的第二图形调用指令。
14、在其中一个实施例中,在所述响应于所述上屏指示信息,将所述缓冲队列中保存的第二图形调用指令发送给所述第一程序语言的线程对应的上下文处理单元之后,所述方法还包括:
15、清空所述缓冲队列中保存的第二图形调用指令。
16、在其中一个实施例中,在所述响应于上屏指示信息,执行所述缓冲队列中保存的第二图形调用指令之前,所述方法还包括:
17、根据所述缓冲队列中保存的第二图形调用指令的签名信息或所述缓冲队列中保存的第二图形调用指令的数量,触发上屏指示信息。
18、在其中一个实施例中,所述根据所述缓冲队列中保存的第二图形调用指令的签名信息或所述缓冲队列中保存的第二图形调用指令的数量,触发上屏指示信息,包括:
19、若所述缓冲队列中的第二图形调用指令的签名信息对应目标类型的接口函数,或者,所述缓冲队列中保存的第二图形调用指令的数量超过阈值,则触发所述上屏指示信息。
20、第二方面,本技术还提供了一种图形调用指令的处理装置。所述装置包括:
21、获取模块,用于获取第一程序语言的线程生成的第一图形调用指令,所述第一图形调用指令用于调用第二程序语言的接口函数对图形库中的图形进行上屏渲染,所述第一程序语言与所述第二程序语言不同;
22、转化模块,用于根据指令模版,将所述第一图形调用指令转化为第二图形调用指令,所述第二图形调用指令中包括签名信息,所述签名信息与所述第一图形调用指令调用的第二程序语言的接口函数对应;
23、保存模块,用于在缓冲队列中保存所述第二图形调用指令;
24、执行模块,用于响应于上屏指示信息,执行所述缓冲队列中保存的第二图形调用指令,以将所述缓冲队列中保存的第二图形调用指令在所述图形库中对应的图形进行上屏渲染。
25、在其中一个实施例中,所述图形调用指令的处理装置中包括图形处理器,所述图形处理器中包括多个上下文处理单元;
26、所述执行模块,具体用于响应于所述上屏指示信息,将所述缓冲队列中保存的第二图形调用指令发送给所述第一程序语言的线程对应的上下文处理单元;控制所述第一程序语言的线程对应的上下文处理单元,执行所述缓冲队列中保存的第二图形调用指令,以将所述缓冲队列中保存的第二图形调用指令在所述图形库中对应的图形进行上屏渲染。
27、在其中一个实施例中,所述执行模块,具体用于查询所述图形处理器中的多个上下文处理单元的处理状态;若所述图形处理器中的多个上下文处理单元均不处于上屏处理状态,则控制所述第一程序语言的线程对应的上下文处理单元,执行所述缓冲队列中保存的第二图形调用指令。
28、在其中一个实施例中,所述执行模块,还用于清空所述缓冲队列中保存的第二图形调用指令。
29、在其中一个实施例中,所述保存模块,还用于根据所述缓冲队列中保存的第二图形调用指令的签名信息或所述缓冲队列中保存的第二图形调用指令的数量,触发上屏指示信息。
30、在其中一个实施例中,所述保存模块,具体用于若所述缓冲队列中的第二图形调用指令的签名信息对应目标类型的接口函数,或者,所述缓冲队列中保存的第二图形调用指令的数量超过阈值,则触发所述上屏指示信息。
31、第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行上述图形调用指令的处理方法。
32、第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行上述图形调用指令的处理方法。
33、第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行上述图形调用指令的处理方法。
34、上述图形调用指令的处理方法、装置、设备、存储介质及程序产品,首先获取第一程序语言的线程生成的第一图形调用指令,所述第一图形调用指令用于调用第二程序语言的接口函数对图形库中的图形进行上屏渲染,所述第一程序语言与所述第二程序语言不同。其次,根据指令模版,将所述第一图形调用指令转化为第二图形调用指令,所述第二图形调用指令中包括签名信息,所述签名信息与所述第一图形调用指令调用的第二程序语言的接口函数对应。再次,在缓冲队列中保存所述第二图形调用指令。最后,响应于上屏指示信息,执行所述缓冲队列中保存的第二图形调用指令,以将所述缓冲队列中保存的第二图形调用指令在所述图形库中对应的图形进行上屏渲染。通过该方法,由于将第一程序语言的线程生成的第一图形调用指令转换为第二图像调用指令,并且该第二图像调用指令中包括与调用的第二程序语言的接口函数对应的签名信息,从而使得在执行第二图像调用指令时,可以直接基于签名信息进行指令映射,无需再关联第一程序语言和第二程序语言之间的方法和变量,加快了图像调用指令的执行速度,进而提高了图像调用指令的吞吐速度。