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*)
{
ImGui_ImplDX9_ViewportData* vd = (ImGui_ImplDX9_ViewportData*)viewport->RendererUserData;
HRESULT hr = 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);
vd->SwapChain->Present(nullptr, nullptr, vd->d3dpp.hDeviceWindow, nullptr, 0);
}
static void ImGui_ImplDX9_InitPlatformInterface()

View file

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

View file

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