/
astro_ramirez
/
astro_engine
Обзор
Документация
Войти
/
astro_ramirez
/
astro_engine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
r_render.cc
61 строка
2 KB
astro_ramirez
бновлён движок
19 ноя 2024, 16:20
19 ноя 2024, 16:20
49c627d
Код
Авторство
О чём код?
#include "r_render.h" HRESULT Render::InitDirectX(HWND hWnd) { DXGI_SWAP_CHAIN_DESC1 sd; ZeroMemory(&sd, sizeof(sd)); sd.Width = W; sd.Height = H; sd.Format = DXGI_FORMAT_R8G8B8A8_UNORM; sd.SampleDesc.Count = 1; sd.SampleDesc.Quality = 0; sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; sd.BufferCount = 1; sd.Scaling = DXGI_SCALING_NONE; sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; sd.Flags = 0; UINT createDeviceFlags = 0; D3D_FEATURE_LEVEL featureLevels[] = {D3D_FEATURE_LEVEL_11_1, D3D_FEATURE_LEVEL_11_0}; HRESULT hr = D3D11CreateDeviceAndSwapChain( nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, createDeviceFlags, featureLevels, ARRAYSIZE(featureLevels), D3D11_SDK_VERSION, &sd, &Render::SwapChain, &Render::Device, nullptr, &Render::ImmediateContext ); if(SUCCEEDED(hr)) { ID3D11Texture2D* BackBuffer; hr = Render::SwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&BackBuffer); if(SUCCEEDED(hr)) { hr = Render::Device->CreateRenderTargetView(BackBuffer, nullptr, &Render::RenderTargetView); BackBuffer->Release(); } } return hr; } void Render::CleanDirectX(void) { if(Render::RenderTargetView) Render::RenderTargetView->Release(); if(Render::ImmediateContext) Render::ImmediateContext->Release(); if(Render::Device) Render::Device->Release(); if(Render::SwapChain) Render::SwapChain->Release(); } void Render::Render(void) { Render::ImmediateContext->OMSetRenderTargets(1, &Render::RenderTargetView, nullptr); Render::ImmediateContext->ClearRenderTargetView(Render::RenderTargetView, D3DCOLOR_XRGB(0, 0, 255)); Render::SwapChain->Present(1, 0); }