LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam)) return true; switch (msg) { case WM_SIZE: if (g_pd3dDevice != NULL && wParam != SIZE_MINIMIZED) { ImGui_ImplDX11_InvalidateDeviceObjects(); CleanupRenderTarget(); g_pSwapChain->ResizeBuffers(0, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam), DXGI_FORMAT_UNKNOWN, 0); CreateRenderTarget(); ImGui_ImplDX11_CreateDeviceObjects(); } return 0; case WM_SYSCOMMAND: if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu return 0; break; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, msg, wParam, lParam); }
void Pyx::Graphics::Gui::ImGuiImpl::CreateResources() { if (!m_isResourcesCreated) { ImGuiIO& io = ImGui::GetIO(); ImFontConfig font_cfg; font_cfg.FontDataOwnedByAtlas = false; font_cfg.MergeMode = false; font_cfg.MergeGlyphCenterV = true; io.Fonts->AddFontFromMemoryTTF(Roboto_TTF_Data, RobotoFont_TTF_DataSize, 18.0f, &font_cfg); font_cfg.MergeMode = true; font_cfg.PixelSnapH = true; font_cfg.MergeGlyphCenterV = true; static const ImWchar icons_ranges_md[] = { ICON_MIN_MD, ICON_MAX_MD, 0 }; io.Fonts->AddFontFromMemoryTTF(Material_TTF_Data, MaterialFont_TTF_DataSize, 18.0f, &font_cfg, icons_ranges_md); auto* pRenderer = GraphicsContext::GetInstance().GetMainRenderer(); if (pRenderer) { switch (pRenderer->GetRendererType()) { case RendererType::D3D9: { m_isResourcesCreated = ImGui_ImplDX9_CreateDeviceObjects(); break; } case RendererType::D3D11: { m_isResourcesCreated = ImGui_ImplDX11_CreateDeviceObjects(); break; } default: return; } } } }