Не удалось выполнить рендеринг в программировании DirectX. ⇐ C++
Не удалось выполнить рендеринг в программировании DirectX.
Для справки: я студент, который только начал изучать программирование игр с использованием C++ и D3DX. Итак, когда я работал с объектно-ориентированной структурой в своем коде, я столкнулся с некоторой проблемой, связанной с рендерингом текстуры в моем домашнем задании.
Как показано ниже:
//Source.cpp #include "MainMenu.h" интервал основной() { Окно* wnd = новое окно(); D3DX* DirectX = новый D3DX(); DirectInput* dInput = новый DirectInput(); stack gsm; винд->createWnd(); DirectX->createD3DX(wnd); dInput->createDInput(wnd); gsm.push(новое ГлавноеМеню()); gsm.top()->init(directX); while (wnd->wndIsRunning()) { gsm.top()->getInput(dInput); gsm.top()->обновление(dInput); gsm.top()->render(directX, dInput); } dInput->cleanupDInput(); DirectX->cleanupD3DX(); внд->cleanupWnd(); вернуть 0; } //GameState.cpp #include "GameState.h" void GameState::getInput(ввод DirectInput*) { ввод->getDInput(); } void GameState::render(D3DX* DirectX, ввод DirectInput*) { DirectX->getDevice()->Очистить(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0); DirectX->getDevice()->BeginScene(); DirectX->getBrush()->Начать(D3DXSPRITE_ALPHABLEND); D3DXVECTOR3 mousePos = input->getMousePosition(); //cout Draw(directX->getCursorTexture(), NULL, NULL, &mousePos, D3DCOLOR_XRGB(255, 255, 255)); DirectX->getBrush()->End(); } //D3DX.cpp #include "D3DX.h" bool D3DX::createD3DX(Окно* wnd) { IDirect3D9* Direct3D9 = Direct3DCreate9(D3D_SDK_VERSION); D3DPRESENT_PARAMETERS d3dPP; ZeroMemory(&d3dPP, sizeof(d3dPP)); d3dPP.Windowed = isWindow; d3dPP.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dPP.BackBufferFormat = D3DFMT_X8R8G8B8; d3dPP.BackBufferCount = 1; d3dPP.BackBufferWidth = wnd->getWidth(); d3dPP.BackBufferHeight = wnd->getHeight(); d3dPP.hDeviceWindow = wnd->getHandle(); hr = Direct3D9->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, wnd->getHandle(), D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dPP, &d3dDevice); если (FAILED(hr)) { cout
Для справки: я студент, который только начал изучать программирование игр с использованием C++ и D3DX. Итак, когда я работал с объектно-ориентированной структурой в своем коде, я столкнулся с некоторой проблемой, связанной с рендерингом текстуры в моем домашнем задании.
Как показано ниже:
//Source.cpp #include "MainMenu.h" интервал основной() { Окно* wnd = новое окно(); D3DX* DirectX = новый D3DX(); DirectInput* dInput = новый DirectInput(); stack gsm; винд->createWnd(); DirectX->createD3DX(wnd); dInput->createDInput(wnd); gsm.push(новое ГлавноеМеню()); gsm.top()->init(directX); while (wnd->wndIsRunning()) { gsm.top()->getInput(dInput); gsm.top()->обновление(dInput); gsm.top()->render(directX, dInput); } dInput->cleanupDInput(); DirectX->cleanupD3DX(); внд->cleanupWnd(); вернуть 0; } //GameState.cpp #include "GameState.h" void GameState::getInput(ввод DirectInput*) { ввод->getDInput(); } void GameState::render(D3DX* DirectX, ввод DirectInput*) { DirectX->getDevice()->Очистить(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0); DirectX->getDevice()->BeginScene(); DirectX->getBrush()->Начать(D3DXSPRITE_ALPHABLEND); D3DXVECTOR3 mousePos = input->getMousePosition(); //cout Draw(directX->getCursorTexture(), NULL, NULL, &mousePos, D3DCOLOR_XRGB(255, 255, 255)); DirectX->getBrush()->End(); } //D3DX.cpp #include "D3DX.h" bool D3DX::createD3DX(Окно* wnd) { IDirect3D9* Direct3D9 = Direct3DCreate9(D3D_SDK_VERSION); D3DPRESENT_PARAMETERS d3dPP; ZeroMemory(&d3dPP, sizeof(d3dPP)); d3dPP.Windowed = isWindow; d3dPP.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dPP.BackBufferFormat = D3DFMT_X8R8G8B8; d3dPP.BackBufferCount = 1; d3dPP.BackBufferWidth = wnd->getWidth(); d3dPP.BackBufferHeight = wnd->getHeight(); d3dPP.hDeviceWindow = wnd->getHandle(); hr = Direct3D9->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, wnd->getHandle(), D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dPP, &d3dDevice); если (FAILED(hr)) { cout
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение