我是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
到底是做什么的?那么我们如何在CreateRenderTargetView
中使用pBackBuffer
呢?另外,有人可以解释或指出我一个链接来解释什么是渲染目标视图?msdn 文档对我来说没有多大意义。
我记得,GetBuffer()
返回指向设备使用的内部后台缓冲区的指针。然后从那里创建一个可以绑定为"Real backbuffer"
目标的RenderTarget
。
可以把它想象成: pBackbuffer = glBindFramebuffer(GL_FRAMEBUFFER, 0);
我就是这样记得的。(前段时间我用DX11做了这个)
编辑*而rendertargetview
,就是framebuffer
。它是一种纹理,您可以绑定以读取和写入。