1.一种纹理共享方法,其特征在于,所述方法包括:
在解码进程中,创建Direct3D9第一共享纹理并获取所述第一共享纹理的句柄,所述第一共享纹理包括所述解码进程解码的图像信息;将所述第一共享纹理的句柄传递给主控进程;
在所述主控进程中,创建OpenGL ES纹理结构并获取所述纹理结构的共享纹理句柄,以及基于所述纹理结构的共享纹理句柄创建Direct3D9第二共享纹理;根据所述第一共享纹理的句柄将所述第一共享纹理拷贝到所述第二共享纹理;通过所述OpenGL ES根据所述纹理结构的共享纹理句柄获取所述第二共享纹理,从而获取所述第一共享纹理;
其中,在所述主控进程中,创建OpenGL ES纹理结构并获取所述纹理结构的共享纹理句柄包括:创建OpenGL ES显示结构EGLDisplay;
创建OpenGL ES配置结构EGLConfig;
创建OpenGL ES纹理结构EGLSurface;
获取纹理结构EGLSurface的共享纹理句柄;
其中,基于所述纹理结构的共享纹理句柄创建Direct3D9第二共享纹理包括:创建IDirect3D9Ex接口,通过调用Direct3DCreate9Ex创建一个IDirect3D9Ex的接口;
创建IDirect3DDevice9Ex接口,基于IDirect3D9Ex接口,调用该接口的CreateDeviceEx方法,创建一个IDirect3DDevice9Ex的接口;
创建第二共享纹理,通过调用创建的IDirect3DDevice9Ex的CreateTexture方法,创建第二共享纹理IDirect3DTexture9。
2.如权利要求1所述的方法,其特征在于,所述在所述主控进程中,通过所述OpenGL ES根据所述纹理结构的共享纹理句柄获取所述第二共享纹理,从而获取所述第一共享纹理之前,所述方法还包括:判断是否已完成根据所述第一共享纹理的句柄将所述第一共享纹理拷贝到所述第二共享纹理,若是,则执行通过所述OpenGL ES根据所述纹理结构的共享纹理句柄获取所述第二共享纹理,从而获取所述第一共享纹理的步骤。
3.如权利要求1所述的方法,其特征在于,所述在解码进程中,将所述第一共享纹理的句柄传递给主控进程,包括:向所述主控进程发送绘制消息,所述绘制消息包括所述第一共享纹理的句柄。
4.如权利要求1‑3任一项所述的方法,其特征在于,所述主控进程与所述解码进程通过RPC进行连接。
5.一种纹理共享装置,其特征在于,所述装置包括:
第一初始化单元,用于在解码进程中,创建Direct3D9第一共享纹理并获取所述第一共享纹理的句柄,所述第一共享纹理包括所述解码进程解码的图像信息;
第二初始化单元,用于在主控进程中,创建OpenGL ES纹理结构并获取所述纹理结构的共享纹理句柄,以及基于所述纹理结构的共享纹理句柄创建Direct3D9第二共享纹理;
其中,在所述主控进程中,创建OpenGL ES纹理结构并获取所述纹理结构的共享纹理句柄包括:创建OpenGL ES显示结构EGLDisplay;
创建OpenGL ES配置结构EGLConfig;
创建OpenGL ES纹理结构EGLSurface;
获取纹理结构EGLSurface的共享纹理句柄;
其中,基于所述纹理结构的共享纹理句柄创建Direct3D9第二共享纹理包括:创建IDirect3D9Ex接口,通过调用Direct3DCreate9Ex创建一个IDirect3D9Ex的接口;
创建IDirect3DDevice9Ex接口,基于IDirect3D9Ex接口,调用该接口的CreateDeviceEx方法,创建一个IDirect3DDevice9Ex的接口;
创建第二共享纹理,通过调用创建的IDirect3DDevice9Ex的CreateTexture方法,创建第二共享纹理IDirect3DTexture9;
传递单元,用于通过所述解码进程将所述第一共享纹理的句柄传递给所述主控进程;
拷贝单元,用于通过所述主控进程根据所述第一共享纹理的句柄将所述第一共享纹理拷贝到所述第二共享纹理;
获取单元,用于在所述主控进程中,通过所述OpenGL ES根据所述纹理结构的共享纹理句柄获取所述第二共享纹理,从而获取所述第一共享纹理。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:显存同步单元,用于判断所述主控进程是否已完成根据所述第一共享纹理的句柄将所述第一共享纹理拷贝到所述第二共享纹理,若是,则执行所述获取单元的步骤。
7.如权利要求5所述的装置,其特征在于,所述传递单元具体用于:通过所述解码进程向所述主控进程发送绘制消息,所述绘制消息包括所述第一共享纹理的句柄。
8.如权利要求5‑7任一项所述的装置,其特征在于,所述主控进程与所述解码进程通过RPC进行连接。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:在解码进程中,创建Direct3D9第一共享纹理并获取所述第一共享纹理的句柄,所述第一共享纹理包括所述解码进程解码的图像信息;将所述第一共享纹理的句柄传递给主控进程;
在所述主控进程中,创建OpenGL ES纹理结构并获取所述纹理结构的共享纹理句柄,以及基于所述纹理结构的共享纹理句柄创建Direct3D9第二共享纹理;根据所述第一共享纹理的句柄将所述第一共享纹理拷贝到所述第二共享纹理;通过所述OpenGL ES根据所述纹理结构的共享纹理句柄获取所述第二共享纹理,从而获取所述第一共享纹理;
其中,在所述主控进程中,创建OpenGL ES纹理结构并获取所述纹理结构的共享纹理句柄包括:创建OpenGL ES显示结构EGLDisplay;
创建OpenGL ES配置结构EGLConfig;
创建OpenGL ES纹理结构EGLSurface;
获取纹理结构EGLSurface的共享纹理句柄;
其中,基于所述纹理结构的共享纹理句柄创建Direct3D9第二共享纹理包括:创建IDirect3D9Ex接口,通过调用Direct3DCreate9Ex创建一个IDirect3D9Ex的接口;
创建IDirect3DDevice9Ex接口,基于IDirect3D9Ex接口,调用该接口的CreateDeviceEx方法,创建一个IDirect3DDevice9Ex的接口;
创建第二共享纹理,通过调用创建的IDirect3DDevice9Ex的CreateTexture方法,创建第二共享纹理IDirect3DTexture9。
10.一种计算机设备,包括处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:在解码进程中,创建Direct3D9第一共享纹理并获取所述第一共享纹理的句柄,所述第一共享纹理包括所述解码进程解码的图像信息;将所述第一共享纹理的句柄传递给主控进程;
在所述主控进程中,创建OpenGL ES纹理结构并获取所述纹理结构的共享纹理句柄,以及基于所述纹理结构的共享纹理句柄创建Direct3D9第二共享纹理;根据所述第一共享纹理的句柄将所述第一共享纹理拷贝到所述第二共享纹理;通过所述OpenGL ES根据所述纹理结构的共享纹理句柄获取所述第二共享纹理,从而获取所述第一共享纹理;
其中,在所述主控进程中,创建OpenGL ES纹理结构并获取所述纹理结构的共享纹理句柄包括:创建OpenGL ES显示结构EGLDisplay;
创建OpenGL ES配置结构EGLConfig;
创建OpenGL ES纹理结构EGLSurface;
获取纹理结构EGLSurface的共享纹理句柄;
其中,基于所述纹理结构的共享纹理句柄创建Direct3D9第二共享纹理包括:创建IDirect3D9Ex接口,通过调用Direct3DCreate9Ex创建一个IDirect3D9Ex的接口;
创建IDirect3DDevice9Ex接口,基于IDirect3D9Ex接口,调用该接口的CreateDeviceEx方法,创建一个IDirect3DDevice9Ex的接口;
创建第二共享纹理,通过调用创建的IDirect3DDevice9Ex的CreateTexture方法,创建第二共享纹理IDirect3DTexture9。