DirectX 9 backend, part 2

it compiles
This commit is contained in:
tildearrow 2024-05-12 17:23:57 -05:00
parent 39daeed27a
commit 056545d899
3 changed files with 7 additions and 16 deletions

View file

@ -506,9 +506,7 @@ static void ImGui_ImplDX9_RenderWindow(ImGuiViewport* viewport, void*)
static void ImGui_ImplDX9_SwapBuffers(ImGuiViewport* viewport, void*) static void ImGui_ImplDX9_SwapBuffers(ImGuiViewport* viewport, void*)
{ {
ImGui_ImplDX9_ViewportData* vd = (ImGui_ImplDX9_ViewportData*)viewport->RendererUserData; ImGui_ImplDX9_ViewportData* vd = (ImGui_ImplDX9_ViewportData*)viewport->RendererUserData;
HRESULT hr = vd->SwapChain->Present(nullptr, nullptr, vd->d3dpp.hDeviceWindow, nullptr, 0); vd->SwapChain->Present(nullptr, nullptr, vd->d3dpp.hDeviceWindow, nullptr, 0);
// Let main application handle D3DERR_DEVICELOST by resetting the device.
IM_ASSERT(hr == D3D_OK || hr == D3DERR_DEVICELOST);
} }
static void ImGui_ImplDX9_InitPlatformInterface() static void ImGui_ImplDX9_InitPlatformInterface()

View file

@ -74,7 +74,7 @@ void FurnaceGUIRenderDX9::setBlendMode(FurnaceGUIBlendMode mode) {
void FurnaceGUIRenderDX9::resized(const SDL_Event& ev) { void FurnaceGUIRenderDX9::resized(const SDL_Event& ev) {
logI("DX9: resizing buffers"); logI("DX9: resizing buffers");
ImGui_ImplDX9_InvalidateDeviceObjects(); ImGui_ImplDX9_InvalidateDeviceObjects();
HRESULT result=g_pd3dDevice->Reset(&priv->present); HRESULT result=device->Reset(&priv->present);
if (result==D3DERR_INVALIDCALL) { if (result==D3DERR_INVALIDCALL) {
logE("OH NO"); logE("OH NO");
} }
@ -82,14 +82,7 @@ void FurnaceGUIRenderDX9::resized(const SDL_Event& ev) {
} }
void FurnaceGUIRenderDX9::clear(ImVec4 color) { void FurnaceGUIRenderDX9::clear(ImVec4 color) {
float floatColor[4]={ device->Clear(0,NULL,D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,ImGui::ColorConvertFloat4ToU32(color),0,0);
color.x*color.w,
color.y*color.w,
color.z*color.w,
color.w,
};
device->Clear(0,NULL,D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,ImGui::ColorConvertFloat4ToU32(floatColor),0,0);
} }
void FurnaceGUIRenderDX9::present() { void FurnaceGUIRenderDX9::present() {
@ -97,7 +90,8 @@ void FurnaceGUIRenderDX9::present() {
} }
bool FurnaceGUIRenderDX9::newFrame() { bool FurnaceGUIRenderDX9::newFrame() {
return ImGui_ImplDX9_NewFrame(); ImGui_ImplDX9_NewFrame();
return true;
} }
bool FurnaceGUIRenderDX9::canVSync() { bool FurnaceGUIRenderDX9::canVSync() {
@ -185,7 +179,7 @@ bool FurnaceGUIRenderDX9::init(SDL_Window* win, int swapInt) {
priv=new FurnaceGUIRenderDX9Private; priv=new FurnaceGUIRenderDX9Private;
memset(priv->present,0,sizeof(D3DPRESENT_PARAMETERS); memset(&priv->present,0,sizeof(D3DPRESENT_PARAMETERS));
priv->present.Windowed=TRUE; priv->present.Windowed=TRUE;
priv->present.SwapEffect=D3DSWAPEFFECT_DISCARD; priv->present.SwapEffect=D3DSWAPEFFECT_DISCARD;
priv->present.BackBufferFormat=D3DFMT_UNKNOWN; priv->present.BackBufferFormat=D3DFMT_UNKNOWN;
@ -211,7 +205,7 @@ bool FurnaceGUIRenderDX9::init(SDL_Window* win, int swapInt) {
void FurnaceGUIRenderDX9::initGUI(SDL_Window* win) { void FurnaceGUIRenderDX9::initGUI(SDL_Window* win) {
ImGui_ImplSDL2_InitForD3D(win); ImGui_ImplSDL2_InitForD3D(win);
ImGui_ImplDX9_Init(device,context); ImGui_ImplDX9_Init(device);
} }
bool FurnaceGUIRenderDX9::quit() { bool FurnaceGUIRenderDX9::quit() {

View file

@ -26,7 +26,6 @@ struct FurnaceGUIRenderDX9Private {
}; };
#else #else
typedef void IDirect3D9; typedef void IDirect3D9;
typedef void IDirect3DDevice9;
typedef void FurnaceGUIRenderDX9Private; typedef void FurnaceGUIRenderDX9Private;
#endif #endif