我需要弄清楚如何将D3D纹理和曲面的数据恢复到系统内存.做这些事情的最快方法是什么?
另外,如果我只需要一个subrect,那么如何只读回那部分而不必将整个内容读回系统内存?
总之,我正在寻找如何将以下内容复制到系统内存的简明描述:
这是Direct3D 9,但关于D3D的新版本的答案也将受到赞赏.
如何使用HSLS像素着色器有效地计算图像中所有像素的总和?我对Pixel Shader 2.0很感兴趣,我可以调用它作为WPF着色器效果.
我似乎找不到通过我的应用程序的前缓冲区数据从我获取的表面数据创建纹理的方法
这是我非常肯定正在运行的代码(Direct X 9,C++)
// capture screen
IDirect3DSurface9* pSurface;
g_pd3dDevice->CreateOffscreenPlainSurface(640, 480,
D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, &pSurface, NULL);
g_pd3dDevice->GetFrontBufferData(0, pSurface);
Run Code Online (Sandbox Code Playgroud)
现在我已经有了我的frontBufferData,我想用它创建一个IDirect3DTexture9对象.
这个函数/ D3DXCreateTextureFromFileInMemory /似乎是最合乎逻辑的,但似乎没有做到这一点.
我很确定有办法做到这一点,我很难以确定如何做到这一点.任何帮助将非常欢迎!
谢谢!