directx 11中getBuffer()和CreateRenderTargetView有什么区别?

时间:2012-10-04 09:18:15

标签: graphics directx directx-11 rendertarget

我是DirectX11的新手并且正在学习它。 (我来自openGL背景)。

我很困惑,并试图了解以下API调用的确切作用以及它们之间的区别:

ID3D11Texture2D* pBackBuffer = NULL;
hr = g_pSwapChain->GetBuffer( 0, __uuidof( ID3D11Texture2D ), ( LPVOID* )&pBackBuffer );

hr = g_pd3dDevice->CreateRenderTargetView( pBackBuffer, NULL, &g_pRenderTargetView );
pBackBuffer->Release();

GetBuffer到底做了什么?那么我们如何使用pBackBuffer中的CreateRenderTargetView?此外,有人可以解释或指向一个链接,解释什么是渲染目标视图msdn doc对我来说没有多大意义。

1 个答案:

答案 0 :(得分:1)

我记得,GetBuffer()返回指向设备使用的内部后备缓冲区的指针。 然后从那里创建一个RenderTarget,您可以将其绑定为"Real backbuffer"目标。

将其视为:     pBackbuffer = glBindFramebuffer(GL_FRAMEBUFFER, 0);

这就是我记得它的方式。 (前段时间我用dx11做过这个)

编辑* 而rendertargetviewframebuffer。它是一种可以绑定以便读取和写入的纹理。