81 lines
1.8 KiB
C++
81 lines
1.8 KiB
C++
/*
|
|
#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)
|
|
{
|
|
|
|
|
|
}
|
|
}
|
|
*/
|