Files
LifeProject/LifeGraphics/render/RendererDX10.cpp
T

81 lines
1.8 KiB
C++
Raw Normal View History

2025-05-13 02:46:21 +03:00
/*
#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)
{
}
}
*/