/* #pragma once #include "render/RendererDX10.h" #include #include 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) { } } */