//-------------------------------------------------------------------------------------- // Create Direct3D device and swap chain //-------------------------------------------------------------------------------------- bool Engine::D3DSetup() { HRESULT hr = S_OK; RECT rc; GetClientRect( myWindowHandler, &rc ); UINT width = rc.right - rc.left; UINT height = rc.bottom - rc.top; UINT createDeviceFlags = 0; #ifdef _DEBUG createDeviceFlags |= D3D10_CREATE_DEVICE_DEBUG; #endif hr = D3DDeviceSetup(width, height, createDeviceFlags); if( FAILED( hr ) ) return false; hr = D3DViewPortSetup(width, height); if( FAILED( hr ) ) return false; if ( InitZBuffer() == false) { return false; } // if ( D3DStencilBufferSetup() == false) // { // return false; // } return true; }
bool Prism::DirectX::D3DSetup() { if (D3DSwapChainSetup() == false) { DIRECTX_LOG("Failed to Setup DirectX SwapChain"); return false; } if (D3DBackbufferSetup(mySetupInfo.myScreenWidth, mySetupInfo.myScreenHeight) == false) { DIRECTX_LOG("Failed to Setup Backbuffer"); return false; } if (D3DViewPortSetup(mySetupInfo.myScreenWidth, mySetupInfo.myScreenHeight) == false) { DIRECTX_LOG("Failed to Setup DirectX ViewPort"); return false; } if (D3DEnabledStencilStateSetup() == false) { DIRECTX_LOG("Failed to Setup EnabledStencilBuffer"); return false; } if (D3DDisabledStencilStateSetup() == false) { DIRECTX_LOG("Failed to Setup DisabledStencilBuffer"); return false; } if (D3DWireframeRasterizerStateSetup() == false) { DIRECTX_LOG("Failed to Setup WireframeRasterizerState"); return false; } if (D3DSolidRasterizerStateSetup() == false) { DIRECTX_LOG("Failed to Setup SolidRasterizerState"); return false; } if (D3DNoCullingRasterizerStateSetup() == false) { DIRECTX_LOG("Failed to Setup SolidRasterizerState"); return false; } DisableWireframe(); EnableZBuffer(); DIRECTX_LOG("DirectX Setup Successful"); return true; }
void Prism::DirectX::OnResize(const int aWidth, const int aHeight) { myContext->OMSetRenderTargets(0, NULL, NULL); myBackbufferRenderTarget->Release(); myBackbufferShaderResource->Release(); myBackbufferTexture->Release(); myContext->Flush(); HRESULT result = mySwapChain->ResizeBuffers(1, aWidth, aHeight, DXGI_FORMAT_R8G8B8A8_UNORM, 0); if (result != S_OK) { DIRECTX_LOG("Failed to Resize SwapChain Buffers"); DL_MESSAGE_BOX("Failed to Resize SwapChain Buffers", "DirectX: SwapChain", MB_ICONWARNING); } D3DBackbufferSetup(aWidth, aHeight); D3DViewPortSetup(aWidth, aHeight); }