*
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
#pragma once
|
||||
#include "render/RendererDX10.h"
|
||||
#include <d3d10.h>
|
||||
#include <D3DX10.h>
|
||||
namespace Video
|
||||
{
|
||||
HRESULT RendererDX10::Open(RenderParams params)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
g_params = params;
|
||||
|
||||
DXGI_SWAP_CHAIN_DESC sd;
|
||||
ZeroMemory(&sd, sizeof(sd));
|
||||
|
||||
//fill swap chain description parameters
|
||||
sd.BufferCount = 1;
|
||||
sd.BufferDesc.Width = g_params.ScreenWidth;
|
||||
sd.BufferDesc.Height = g_params.ScreenHeight;
|
||||
sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
sd.BufferDesc.RefreshRate.Numerator = 60;
|
||||
sd.BufferDesc.RefreshRate.Denominator = 1;
|
||||
sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
|
||||
sd.OutputWindow = (HWND)params.WindowHandle;
|
||||
sd.Windowed = TRUE;
|
||||
sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
|
||||
sd.SampleDesc.Count = 1;
|
||||
sd.SampleDesc.Quality = 0;
|
||||
|
||||
D3D10_DRIVER_TYPE drivers[]=
|
||||
{
|
||||
D3D10_DRIVER_TYPE_HARDWARE,
|
||||
D3D10_DRIVER_TYPE_WARP
|
||||
};
|
||||
int numDrivers = sizeof(drivers) / sizeof(drivers[0]);
|
||||
|
||||
for(int i = 0; i< numDrivers; i++)
|
||||
{
|
||||
g_driverType = drivers[i];
|
||||
hr = D3D10CreateDeviceAndSwapChain(NULL,g_driverType,NULL,D3D10_CREATE_DEVICE_DEBUG, D3D10_SDK_VERSION, &sd, &g_pSwapChain, &g_pDevice);
|
||||
|
||||
if(SUCCEEDED(hr))
|
||||
break;
|
||||
}
|
||||
|
||||
if(FAILED(hr))
|
||||
return hr;
|
||||
|
||||
ID3D10Texture2D* pBuffer;
|
||||
hr = g_pSwapChain->GetBuffer(0, __uuidof(ID3D10Texture2D), (void**)&pBuffer);
|
||||
if(FAILED(hr))
|
||||
return hr;
|
||||
|
||||
hr = g_pDevice->CreateRenderTargetView(pBuffer, NULL, &g_pBackBuffer);
|
||||
if(FAILED(hr))
|
||||
return hr;
|
||||
|
||||
g_pDevice->OMSetRenderTargets(0, &g_pBackBuffer, NULL);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
void RendererDX10::Close()
|
||||
{
|
||||
if(g_pDevice)
|
||||
{
|
||||
float clearColor[4] = {1.0f, 1.0f,0.0f,1.0f};
|
||||
g_pDevice->ClearRenderTargetView(g_pBackBuffer, clearColor);
|
||||
|
||||
g_pSwapChain->Present(0,0);
|
||||
}
|
||||
}
|
||||
|
||||
void RendererDX10::ClearBuffers(int flags, int rtColor, float zValue, float stencilValue)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
*/
|
||||
Reference in New Issue
Block a user