如何将frontBuffer数据复制到纹理DirectX 9

如何将frontBuffer数据复制到纹理DirectX 9,第1张

概述如何将frontBuffer数据复制纹理DirectX 9

我似乎无法find从我的应用程序的前台缓冲区数据获取的曲面数据创build纹理的方法

这是我很确定的代码工作(Direct X 9,C ++)

// capture screen IDirect3DSurface9* pSurface; g_pd3dDevice->CreateOffscreenPlainSurface(640,480,D3DFMT_A8R8G8B8,D3DPOol_SCRATCH,&pSurface,NulL); g_pd3dDevice->GetFrontBufferData(0,pSurface);

现在我已经有了我的frontBufferData,我想用它创build一个IDirect3DTexture9对象。

这个函数/ D3dxcreateTextureFrom@R_301_6852@InMemory /似乎是最合乎逻辑的,但似乎没有办法。

渲染windows截图捕获位图为DirectX纹理

glPopMatrix()在“setup_harDWare_state”中喊出“不受支持的纹理格式”

Alpha /纹理问题在OpenGL包装

删除opengl中的纹理

居民的纹理?

我很确定有一种方法可以做到这一点,艰难,我不确定如何。 任何帮助将非常欢迎!

谢谢!

如何打开一个文件菜单,然后在Python中打开该外部.exe文件后点击其子菜单中的一个?

最好使用GetrendertargetData()而不是GetFrontBufferData() ,因为前者更快。 就这样说,这不是真正的问题。 您希望将您从前缓冲区获得的数据或您当前在屏幕上观察的内容存储到纹理中。

首先, IDirect3DTexture9和IDirect3DSurface9实际上是兄弟姐妹,但是即使在他们的类层次结构的某个时刻,它们也会聚合到IDirect3DResource9 (这是逻辑的,因为它们是资源)。 他们两个都干净利落的是,他们实现了通用的功能,特别是LockRect()的可能性,并手动将数据从表面(粗略地说,只有一个mipmap级别的表面(一束像素))复制到纹理可能由多个mipmap级别组成)因此,您的目标是纹理对象的level0表面。

考虑到这一点,由于所有的CreateOffscreenPlainSurface()被认为是独立的,所以我们找不到这个表面可能是其子的父纹理(作为纹理的特定mipmap)。 长话短说,如果我们不LockRect他们和手动复制数据,我们可以使用StretchRect() 。

虽然它的名字可能不会泄露它的目的之一,但它会帮助我们在这里。 记住我们在纹理和曲面之间的对比,表面是他们的小兄弟。 那么,如果你正确地定义了一个纹理(与表面相同),你实际上正在获得自动化的miplevels,你可以手动的定义它们中有多少个。 但实质上,这些层次中的每一个都是一个表面。 而从IDirect3DSurface9到IDirect3DTexture9的“转换”只是填充适当的miplevel表面(在这种情况下应该是level0,因为它基本上是一个截图)。

因此,将其转化为粗糙的代码给了我们:

IDirect3DTexture9* texture; // needs to be created,of course IDirect3DSurface9* dest = NulL; // to be our level0 surface of the texture texture->GetSurfaceLevel(0,&dest); g_pD3DDevice->StretchRect(pSurface,NulL,dest,D3DTEXF_liNEAR);

在那里,你去,一个IDirect3DTexture9去。 先生,您要不要薯条? 请注意我在这里工作,在相当长的一段时间里我还没有碰到DX9(因为DX10而下降了)。 希望能帮助到你。

总结

以上是内存溢出为你收集整理的如何将frontBuffer数据复制到纹理DirectX 9全部内容,希望文章能够帮你解决如何将frontBuffer数据复制到纹理DirectX 9所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1290523.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存