mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-11-04 01:34:32 +00:00 
			
		
		
		
	Examples: Win32+DX9/DX10/DX11/DX12, SDL2+DX11/OpenGL2/OpenGL3/SDLRenderer/Vulkan, SDL3+OpenGL/SDLGPU/SDLRenderer/Vulkan: made example DPI aware by default. (master + docking: partial support for multi-dpi by scaling fonts + viewports but not style)
We don't bother with WIN32_LEAN_AND_MEAN. # Conflicts: # examples/example_glfw_opengl3/main.cpp # examples/example_sdl2_directx11/main.cpp # examples/example_sdl2_opengl2/main.cpp # examples/example_sdl2_opengl3/main.cpp # examples/example_sdl2_vulkan/main.cpp # examples/example_sdl3_opengl3/main.cpp # examples/example_sdl3_sdlgpu3/main.cpp # examples/example_sdl3_vulkan/main.cpp # examples/example_win32_directx10/main.cpp # examples/example_win32_directx11/main.cpp # examples/example_win32_directx12/main.cpp # examples/example_win32_directx9/main.cpp
This commit is contained in:
		@@ -28,11 +28,14 @@ LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
 | 
			
		||||
// Main code
 | 
			
		||||
int main(int, char**)
 | 
			
		||||
{
 | 
			
		||||
    // Make process DPI aware and obtain main monitor scale
 | 
			
		||||
    ImGui_ImplWin32_EnableDpiAwareness();
 | 
			
		||||
    float main_scale = ImGui_ImplWin32_GetDpiScaleForMonitor(::MonitorFromPoint(POINT{ 0, 0 }, MONITOR_DEFAULTTOPRIMARY));
 | 
			
		||||
 | 
			
		||||
    // Create application window
 | 
			
		||||
    //ImGui_ImplWin32_EnableDpiAwareness();
 | 
			
		||||
    WNDCLASSEXW wc = { sizeof(wc), CS_CLASSDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, L"ImGui Example", nullptr };
 | 
			
		||||
    ::RegisterClassExW(&wc);
 | 
			
		||||
    HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui DirectX9 Example", WS_OVERLAPPEDWINDOW, 100, 100, 1280, 800, nullptr, nullptr, wc.hInstance, nullptr);
 | 
			
		||||
    HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui DirectX9 Example", WS_OVERLAPPEDWINDOW, 100, 100, (int)(1280 * main_scale), (int)(800 * main_scale), nullptr, nullptr, wc.hInstance, nullptr);
 | 
			
		||||
 | 
			
		||||
    // Initialize Direct3D
 | 
			
		||||
    if (!CreateDeviceD3D(hwnd))
 | 
			
		||||
@@ -57,6 +60,11 @@ int main(int, char**)
 | 
			
		||||
    ImGui::StyleColorsDark();
 | 
			
		||||
    //ImGui::StyleColorsLight();
 | 
			
		||||
 | 
			
		||||
    // Setup scaling
 | 
			
		||||
    ImGuiStyle& style = ImGui::GetStyle();
 | 
			
		||||
    style.ScaleAllSizes(main_scale);        // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
 | 
			
		||||
    style.FontScaleDpi = main_scale;        // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
 | 
			
		||||
 | 
			
		||||
    // Setup Platform/Renderer backends
 | 
			
		||||
    ImGui_ImplWin32_Init(hwnd);
 | 
			
		||||
    ImGui_ImplDX9_Init(g_pd3dDevice);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user