예제 #1
0
파일: Engine.cpp 프로젝트: Cousken/3DEngine
//--------------------------------------------------------------------------------------
// 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;
}
예제 #2
0
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;
}
예제 #3
0
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);
}