[发明专利]一种全屏游戏状态下的弹幕显示方法与系统有效
申请号: | 201510964324.1 | 申请日: | 2015-12-18 |
公开(公告)号: | CN105597321B | 公开(公告)日: | 2020-07-10 |
发明(设计)人: | 杨亮;田东辉 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | A63F13/60 | 分类号: | A63F13/60;G06T13/20 |
代理公司: | 武汉东喻专利代理事务所(普通合伙) 42224 | 代理人: | 向彬 |
地址: | 430074 湖北省武汉市武汉东湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 全屏 游戏 状态 弹幕 显示 方法 系统 | ||
1.一种全屏游戏状态下的弹幕显示方法,其特征在于,所述方法包括如下步骤:
接收用户所发送的弹幕文本;
将接收到的弹幕文本通过图形接口绘制到一张位图中;
在游戏中创建一个用于绘制弹幕的纹理;
根据所述游戏所使用的渲染引擎,选用对应的游戏绘制函数在所述纹理中绘制上述位图。
2.如权利要求1所述的全屏游戏状态下的弹幕显示方法,其特征在于,在根据所述游戏所使用的渲染引擎,选用对应的游戏绘制函数在所述纹理中绘制上述位图之前,还包括判断所述游戏所使用的渲染引擎,具体为:
预先对各种渲染引擎的动态链接库进行API函数挂钩,如果游戏进程中存在opengl.dll,则分别挂钩OpenGL的游戏绘制函数SwapBuffers、wglSwapBuffers、wglSwapLayerdBuffers为SwapBuffersHook、wglSwapBuffersHook、wglSwapLayerdBuffersHook;如果游戏进程中存在ddraw.dll,则挂钩DirectDraw的游戏绘制函数Blt为BltHook;如果游戏进程中存在d3d8.dll,则挂钩Direct3D8的游戏绘制函数Present为D3D8Present;如果游戏进程中存在d3d9.dll,则挂钩Direct3D9的游戏绘制函数Present为D3D9Present;如果游戏进程中存在d3d10.dll或者d3d11.dll,则挂钩交换链接口IDXGISwapChain的游戏绘制函数DXGISwapPresent为DXGISwapPresentHook;
判断游戏的调用堆栈中进入了哪一种游戏绘制函数,如果游戏的调用堆栈中进入了SwapBuffersHook、wglSwapBuffersHook、wglSwapLayerdBuffersHook,则该游戏使用的是OpenGL渲染引擎;如果该游戏进入了BltHook,则该游戏使用的是DirectDraw渲染引擎;如果该游戏进入了D3D8Present,则该游戏使用的是Direct3D8渲染引擎;如果该游戏进入了D3D9Present,则该游戏使用的是Direct3D9渲染引擎;如果该游戏进入了DXGISwapPresentHook,则该游戏使用的是Direct3D10或者Direct3D11。
3.如权利要求1或2所述的全屏游戏状态下的弹幕显示方法,其特征在于,所述根据所述游戏所使用的渲染引擎,选用对应的游戏绘制函数在所述纹理中绘制上述位图,具体为:
如果所述渲染引擎为Direct3D8,则加载d3dx8d.dll;
通过d3dx8d.dll的导出函数D3DXCreateSprite创建ID3DXSprite接口;
挂钩d3dx8d的游戏绘制函数Present,并在被挂钩的游戏绘制函数Present中,通过ID3DXSprite的Draw方法在所述纹理中绘制上述位图;
如果所述渲染引擎为Direct3D9,则加载d3dx9_43.dll;
通过d3dx9_43.dll的导出函数D3DXCreateSprite创建ID3DXSprite接口;
挂钩d3dx9的游戏绘制函数Present,并在被挂钩的游戏绘制函数Present中,通过ID3DXSprite的Draw方法在所述纹理中绘制上述位图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510964324.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据处理的方法和装置
- 下一篇:挥击分析装置、挥击分析方法以及记录媒介