Renamed SwapChain11's textures and views.

TRAC #21930 Renamed SwapChain11's textures and views to better represent if they are for the back buffer or offscreen texture. Signed-off-by: Shannon Woods Signed-off-by: Daniel Koch git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1537 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent c52be63d
...@@ -23,12 +23,12 @@ SwapChain11::SwapChain11(Renderer11 *renderer, HWND window, HANDLE shareHandle, ...@@ -23,12 +23,12 @@ SwapChain11::SwapChain11(Renderer11 *renderer, HWND window, HANDLE shareHandle,
: mRenderer(renderer), SwapChain(window, shareHandle, backBufferFormat, depthBufferFormat) : mRenderer(renderer), SwapChain(window, shareHandle, backBufferFormat, depthBufferFormat)
{ {
mSwapChain = NULL; mSwapChain = NULL;
mBackBuffer = NULL; mBackBufferTexture = NULL;
mBackBufferView = NULL; mBackBufferRTView = NULL;
mRenderTargetView = NULL;
mDepthStencil = NULL;
mDepthStencilView = NULL;
mOffscreenTexture = NULL; mOffscreenTexture = NULL;
mOffscreenRTView = NULL;
mDepthStencilTexture = NULL;
mDepthStencilDSView = NULL;
mWidth = -1; mWidth = -1;
mHeight = -1; mHeight = -1;
} }
...@@ -46,40 +46,40 @@ void SwapChain11::release() ...@@ -46,40 +46,40 @@ void SwapChain11::release()
mSwapChain = NULL; mSwapChain = NULL;
} }
if (mBackBuffer) if (mBackBufferTexture)
{ {
mBackBuffer->Release(); mBackBufferTexture->Release();
mBackBuffer = NULL; mBackBufferTexture = NULL;
} }
if (mBackBufferView) if (mBackBufferRTView)
{ {
mBackBufferView->Release(); mBackBufferRTView->Release();
mBackBufferView = NULL; mBackBufferRTView = NULL;
} }
if (mRenderTargetView) if (mOffscreenTexture)
{ {
mRenderTargetView->Release(); mOffscreenTexture->Release();
mRenderTargetView = NULL; mOffscreenTexture = NULL;
} }
if (mDepthStencil) if (mOffscreenRTView)
{ {
mDepthStencil->Release(); mOffscreenRTView->Release();
mDepthStencil = NULL; mOffscreenRTView = NULL;
} }
if (mDepthStencilView) if (mDepthStencilTexture)
{ {
mDepthStencilView->Release(); mDepthStencilTexture->Release();
mDepthStencilView = NULL; mDepthStencilTexture = NULL;
} }
if (mOffscreenTexture) if (mDepthStencilDSView)
{ {
mOffscreenTexture->Release(); mDepthStencilDSView->Release();
mOffscreenTexture = NULL; mDepthStencilDSView = NULL;
} }
if (mWindow) if (mWindow)
...@@ -103,22 +103,16 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap ...@@ -103,22 +103,16 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap
mSwapChain = NULL; mSwapChain = NULL;
} }
if (mBackBuffer) if (mBackBufferTexture)
{ {
mBackBuffer->Release(); mBackBufferTexture->Release();
mBackBuffer = NULL; mBackBufferTexture = NULL;
} }
if (mBackBufferView) if (mBackBufferRTView)
{ {
mBackBufferView->Release(); mBackBufferRTView->Release();
mBackBufferView = NULL; mBackBufferRTView = NULL;
}
if (mRenderTargetView) // TODO: Preserve the render target content
{
mRenderTargetView->Release();
mRenderTargetView = NULL;
} }
if (mOffscreenTexture) if (mOffscreenTexture)
...@@ -127,16 +121,22 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap ...@@ -127,16 +121,22 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap
mOffscreenTexture = NULL; mOffscreenTexture = NULL;
} }
if (mDepthStencil) if (mOffscreenRTView) // TODO: Preserve the render target content
{
mOffscreenRTView->Release();
mOffscreenRTView = NULL;
}
if (mDepthStencilTexture)
{ {
mDepthStencil->Release(); mDepthStencilTexture->Release();
mDepthStencil = NULL; mDepthStencilTexture = NULL;
} }
if (mDepthStencilView) if (mDepthStencilDSView)
{ {
mDepthStencilView->Release(); mDepthStencilDSView->Release();
mDepthStencilView = NULL; mDepthStencilDSView = NULL;
} }
HANDLE *pShareHandle = NULL; HANDLE *pShareHandle = NULL;
...@@ -175,7 +175,7 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap ...@@ -175,7 +175,7 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap
} }
} }
result = device->CreateRenderTargetView(mOffscreenTexture, NULL, &mRenderTargetView); result = device->CreateRenderTargetView(mOffscreenTexture, NULL, &mOffscreenRTView);
ASSERT(SUCCEEDED(result)); ASSERT(SUCCEEDED(result));
if (mWindow) if (mWindow)
...@@ -215,10 +215,10 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap ...@@ -215,10 +215,10 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap
} }
} }
result = mSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&mBackBuffer); result = mSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&mBackBufferTexture);
ASSERT(SUCCEEDED(result)); ASSERT(SUCCEEDED(result));
result = device->CreateRenderTargetView(mBackBuffer, NULL, &mBackBufferView); result = device->CreateRenderTargetView(mBackBufferTexture, NULL, &mBackBufferRTView);
ASSERT(SUCCEEDED(result)); ASSERT(SUCCEEDED(result));
} }
...@@ -237,7 +237,7 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap ...@@ -237,7 +237,7 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap
depthStencilDesc.CPUAccessFlags = 0; depthStencilDesc.CPUAccessFlags = 0;
depthStencilDesc.MiscFlags = 0; depthStencilDesc.MiscFlags = 0;
result = device->CreateTexture2D(&depthStencilDesc, NULL, &mDepthStencil); result = device->CreateTexture2D(&depthStencilDesc, NULL, &mDepthStencilTexture);
if (FAILED(result)) if (FAILED(result))
{ {
...@@ -254,7 +254,7 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap ...@@ -254,7 +254,7 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap
} }
} }
result = device->CreateDepthStencilView(mDepthStencil, NULL, &mDepthStencilView); result = device->CreateDepthStencilView(mDepthStencilTexture, NULL, &mDepthStencilDSView);
ASSERT(SUCCEEDED(result)); ASSERT(SUCCEEDED(result));
} }
...@@ -284,24 +284,24 @@ EGLint SwapChain11::swapRect(EGLint x, EGLint y, EGLint width, EGLint height) ...@@ -284,24 +284,24 @@ EGLint SwapChain11::swapRect(EGLint x, EGLint y, EGLint width, EGLint height)
// caller must Release() the returned view // caller must Release() the returned view
ID3D11RenderTargetView *SwapChain11::getRenderTarget() ID3D11RenderTargetView *SwapChain11::getRenderTarget()
{ {
if (mRenderTargetView) if (mOffscreenRTView)
{ {
mRenderTargetView->AddRef(); mOffscreenRTView->AddRef();
} }
return mRenderTargetView; return mOffscreenRTView;
} }
// Increments refcount on view. // Increments refcount on view.
// caller must Release() the returned view // caller must Release() the returned view
ID3D11DepthStencilView *SwapChain11::getDepthStencil() ID3D11DepthStencilView *SwapChain11::getDepthStencil()
{ {
if (mDepthStencilView) if (mDepthStencilDSView)
{ {
mDepthStencilView->AddRef(); mDepthStencilDSView->AddRef();
} }
return mDepthStencilView; return mDepthStencilDSView;
} }
// Increments refcount on texture. // Increments refcount on texture.
......
...@@ -47,12 +47,15 @@ class SwapChain11 : public SwapChain ...@@ -47,12 +47,15 @@ class SwapChain11 : public SwapChain
EGLint mWidth; EGLint mWidth;
IDXGISwapChain *mSwapChain; IDXGISwapChain *mSwapChain;
ID3D11Texture2D *mBackBuffer;
ID3D11RenderTargetView *mBackBufferView; ID3D11Texture2D *mBackBufferTexture;
ID3D11RenderTargetView *mRenderTargetView; ID3D11RenderTargetView *mBackBufferRTView;
ID3D11Texture2D *mDepthStencil;
ID3D11DepthStencilView *mDepthStencilView;
ID3D11Texture2D *mOffscreenTexture; ID3D11Texture2D *mOffscreenTexture;
ID3D11RenderTargetView *mOffscreenRTView;
ID3D11Texture2D *mDepthStencilTexture;
ID3D11DepthStencilView *mDepthStencilDSView;
}; };
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment