Skip to content

Commit 4a6a750

Browse files
authored
Merge branch 'ocornut:master' into master
2 parents b25585d + d1cf58e commit 4a6a750

46 files changed

Lines changed: 258 additions & 270 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
VS_PATH: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\
2929
MSBUILD_PATH: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\
3030
steps:
31-
- uses: actions/checkout@v5
31+
- uses: actions/checkout@v6
3232
with:
3333
path: ${{ github.workspace }}/imgui
3434

@@ -274,7 +274,7 @@ jobs:
274274
working-directory: ${{ github.workspace }}/imgui
275275

276276
steps:
277-
- uses: actions/checkout@v5
277+
- uses: actions/checkout@v6
278278
with:
279279
path: ${{ github.workspace }}/imgui
280280

@@ -514,7 +514,7 @@ jobs:
514514
working-directory: ${{ github.workspace }}/imgui
515515

516516
steps:
517-
- uses: actions/checkout@v5
517+
- uses: actions/checkout@v6
518518
with:
519519
path: ${{ github.workspace }}/imgui
520520

@@ -596,7 +596,7 @@ jobs:
596596
name: Build - iOS
597597

598598
steps:
599-
- uses: actions/checkout@v5
599+
- uses: actions/checkout@v6
600600

601601
- name: Build example_apple_metal
602602
run: |
@@ -608,7 +608,7 @@ jobs:
608608
name: Build - Emscripten
609609

610610
steps:
611-
- uses: actions/checkout@v5
611+
- uses: actions/checkout@v6
612612

613613
- name: Install Dependencies
614614
run: |
@@ -651,7 +651,7 @@ jobs:
651651
name: Build - Android
652652

653653
steps:
654-
- uses: actions/checkout@v5
654+
- uses: actions/checkout@v6
655655

656656
- name: Build example_android_opengl3
657657
run: |
@@ -670,11 +670,11 @@ jobs:
670670
MSBUILD_PATH: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\
671671

672672
steps:
673-
- uses: actions/checkout@v5
673+
- uses: actions/checkout@v6
674674
with:
675675
path: ${{ github.workspace }}/imgui
676676

677-
- uses: actions/checkout@v5
677+
- uses: actions/checkout@v6
678678
continue-on-error: true
679679
with:
680680
fetch-depth: 1
@@ -725,11 +725,11 @@ jobs:
725725
working-directory: ${{ github.workspace }}/imgui
726726

727727
steps:
728-
- uses: actions/checkout@v5
728+
- uses: actions/checkout@v6
729729
with:
730730
path: ${{ github.workspace }}/imgui
731731

732-
- uses: actions/checkout@v5
732+
- uses: actions/checkout@v6
733733
with:
734734
fetch-depth: 1
735735
repository: ocornut/imgui_test_engine
@@ -763,11 +763,11 @@ jobs:
763763
# working-directory: ${{ github.workspace }}/imgui
764764
#
765765
# steps:
766-
# - uses: actions/checkout@v5
766+
# - uses: actions/checkout@v6
767767
# with:
768768
# path: ${{ github.workspace }}/imgui
769769
#
770-
# - uses: actions/checkout@v5
770+
# - uses: actions/checkout@v6
771771
# with:
772772
# fetch-depth: 1
773773
# repository: ocornut/imgui_test_engine

.github/workflows/static-analysis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
PVS-Studio:
1313
runs-on: ubuntu-latest
1414
steps:
15-
- uses: actions/checkout@v4
15+
- uses: actions/checkout@v6
1616
with:
1717
fetch-depth: 1
1818

backends/imgui_impl_dx10.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
// CHANGELOG
1818
// (minor and older changes stripped away, please see git history for details)
19+
// 2026-01-19: DirectX11: Added 'SamplerNearest' in ImGui_ImplDX11_RenderState. Renamed 'SamplerDefault' to 'SamplerLinear'.
1920
// 2025-09-18: Call platform_io.ClearRendererHandlers() on shutdown.
2021
// 2025-06-11: DirectX10: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas.
2122
// 2025-05-07: DirectX10: Honor draw_data->FramebufferScale to allow for custom backends and experiment using it (consistently with other renderer backends, even though in normal condition it is not set under Windows).
@@ -75,6 +76,7 @@ struct ImGui_ImplDX10_Data
7576
ID3D10Buffer* pVertexConstantBuffer;
7677
ID3D10PixelShader* pPixelShader;
7778
ID3D10SamplerState* pTexSamplerLinear;
79+
ID3D10SamplerState* pTexSamplerNearest;
7880
ID3D10RasterizerState* pRasterizerState;
7981
ID3D10BlendState* pBlendState;
8082
ID3D10DepthStencilState* pDepthStencilState;
@@ -258,7 +260,8 @@ void ImGui_ImplDX10_RenderDrawData(ImDrawData* draw_data)
258260
ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO();
259261
ImGui_ImplDX10_RenderState render_state;
260262
render_state.Device = bd->pd3dDevice;
261-
render_state.SamplerDefault = bd->pTexSamplerLinear;
263+
render_state.SamplerLinear = bd->pTexSamplerLinear;
264+
render_state.SamplerNearest = bd->pTexSamplerNearest;
262265
render_state.VertexConstantBuffer = bd->pVertexConstantBuffer;
263266
platform_io.Renderer_RenderState = &render_state;
264267

@@ -565,6 +568,8 @@ bool ImGui_ImplDX10_CreateDeviceObjects()
565568
desc.MinLOD = 0.f;
566569
desc.MaxLOD = 0.f;
567570
bd->pd3dDevice->CreateSamplerState(&desc, &bd->pTexSamplerLinear);
571+
desc.Filter = D3D10_FILTER_MIN_MAG_MIP_POINT;
572+
bd->pd3dDevice->CreateSamplerState(&desc, &bd->pTexSamplerNearest);
568573
}
569574

570575
return true;
@@ -581,6 +586,7 @@ void ImGui_ImplDX10_InvalidateDeviceObjects()
581586
if (tex->RefCount == 1)
582587
ImGui_ImplDX10_DestroyTexture(tex);
583588
if (bd->pTexSamplerLinear) { bd->pTexSamplerLinear->Release(); bd->pTexSamplerLinear = nullptr; }
589+
if (bd->pTexSamplerNearest) { bd->pTexSamplerNearest->Release(); bd->pTexSamplerNearest = nullptr; }
584590
if (bd->pIB) { bd->pIB->Release(); bd->pIB = nullptr; }
585591
if (bd->pVB) { bd->pVB->Release(); bd->pVB = nullptr; }
586592
if (bd->pBlendState) { bd->pBlendState->Release(); bd->pBlendState = nullptr; }

backends/imgui_impl_dx10.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ IMGUI_IMPL_API void ImGui_ImplDX10_UpdateTexture(ImTextureData* tex);
4141
struct ImGui_ImplDX10_RenderState
4242
{
4343
ID3D10Device* Device;
44-
ID3D10SamplerState* SamplerDefault;
44+
ID3D10SamplerState* SamplerLinear;
45+
ID3D10SamplerState* SamplerNearest;
4546
ID3D10Buffer* VertexConstantBuffer;
4647
};
4748

backends/imgui_impl_dx11.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
// CHANGELOG
1919
// (minor and older changes stripped away, please see git history for details)
20+
// 2026-01-19: DirectX11: Added 'SamplerNearest' in ImGui_ImplDX11_RenderState. Renamed 'SamplerDefault' to 'SamplerLinear'.
2021
// 2025-09-18: Call platform_io.ClearRendererHandlers() on shutdown.
2122
// 2025-06-11: DirectX11: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas.
2223
// 2025-05-07: DirectX11: Honor draw_data->FramebufferScale to allow for custom backends and experiment using it (consistently with other renderer backends, even though in normal condition it is not set under Windows).
@@ -78,6 +79,7 @@ struct ImGui_ImplDX11_Data
7879
ID3D11Buffer* pVertexConstantBuffer;
7980
ID3D11PixelShader* pPixelShader;
8081
ID3D11SamplerState* pTexSamplerLinear;
82+
ID3D11SamplerState* pTexSamplerNearest;
8183
ID3D11RasterizerState* pRasterizerState;
8284
ID3D11BlendState* pBlendState;
8385
ID3D11DepthStencilState* pDepthStencilState;
@@ -272,7 +274,8 @@ void ImGui_ImplDX11_RenderDrawData(ImDrawData* draw_data)
272274
ImGui_ImplDX11_RenderState render_state;
273275
render_state.Device = bd->pd3dDevice;
274276
render_state.DeviceContext = bd->pd3dDeviceContext;
275-
render_state.SamplerDefault = bd->pTexSamplerLinear;
277+
render_state.SamplerLinear = bd->pTexSamplerLinear;
278+
render_state.SamplerNearest = bd->pTexSamplerNearest;
276279
render_state.VertexConstantBuffer = bd->pVertexConstantBuffer;
277280
platform_io.Renderer_RenderState = &render_state;
278281

@@ -580,6 +583,8 @@ bool ImGui_ImplDX11_CreateDeviceObjects()
580583
desc.MinLOD = 0.f;
581584
desc.MaxLOD = 0.f;
582585
bd->pd3dDevice->CreateSamplerState(&desc, &bd->pTexSamplerLinear);
586+
desc.Filter = D3D11_FILTER_MIN_MAG_MIP_POINT;
587+
bd->pd3dDevice->CreateSamplerState(&desc, &bd->pTexSamplerNearest);
583588
}
584589

585590
return true;
@@ -597,6 +602,7 @@ void ImGui_ImplDX11_InvalidateDeviceObjects()
597602
ImGui_ImplDX11_DestroyTexture(tex);
598603

599604
if (bd->pTexSamplerLinear) { bd->pTexSamplerLinear->Release(); bd->pTexSamplerLinear = nullptr; }
605+
if (bd->pTexSamplerNearest) { bd->pTexSamplerNearest->Release(); bd->pTexSamplerNearest = nullptr; }
600606
if (bd->pIB) { bd->pIB->Release(); bd->pIB = nullptr; }
601607
if (bd->pVB) { bd->pVB->Release(); bd->pVB = nullptr; }
602608
if (bd->pBlendState) { bd->pBlendState->Release(); bd->pBlendState = nullptr; }

backends/imgui_impl_dx11.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ struct ImGui_ImplDX11_RenderState
4444
{
4545
ID3D11Device* Device;
4646
ID3D11DeviceContext* DeviceContext;
47-
ID3D11SamplerState* SamplerDefault;
47+
ID3D11SamplerState* SamplerLinear;
48+
ID3D11SamplerState* SamplerNearest;
4849
ID3D11Buffer* VertexConstantBuffer;
4950
};
5051

backends/imgui_impl_dx12.cpp

Lines changed: 51 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,10 @@ struct ImGui_ImplDX12_Data
9393
ImGui_ImplDX12_InitInfo InitInfo;
9494
IDXGIFactory5* pdxgiFactory;
9595
ID3D12Device* pd3dDevice;
96-
ID3D12RootSignature* pRootSignature;
97-
ID3D12PipelineState* pPipelineState;
96+
ID3D12RootSignature* pRootSignatureLinear;
97+
ID3D12RootSignature* pRootSignatureNearest;
98+
ID3D12PipelineState* pPipelineStateLinear;
99+
ID3D12PipelineState* pPipelineStateNearest;
98100
ID3D12CommandQueue* pCommandQueue;
99101
bool commandQueueOwned;
100102
DXGI_FORMAT RTVFormat;
@@ -140,11 +142,27 @@ struct VERTEX_CONSTANT_BUFFER_DX12
140142
float mvp[4][4];
141143
};
142144

145+
// FIXME-WIP: Allow user to forward declare those two, for until we come up with a backend agnostic API to do this. (#9173)
146+
void ImGui_ImplDX12_SetupSamplerLinear(ID3D12GraphicsCommandList* command_list);
147+
void ImGui_ImplDX12_SetupSamplerNearest(ID3D12GraphicsCommandList* command_list);
148+
143149
// Functions
144-
static void ImGui_ImplDX12_SetupRenderState(ImDrawData* draw_data, ID3D12GraphicsCommandList* command_list, ImGui_ImplDX12_RenderBuffers* fr)
150+
void ImGui_ImplDX12_SetupSamplerLinear(ID3D12GraphicsCommandList* command_list)
145151
{
146152
ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData();
153+
command_list->SetPipelineState(bd->pPipelineStateLinear);
154+
command_list->SetGraphicsRootSignature(bd->pRootSignatureLinear);
155+
}
147156

157+
void ImGui_ImplDX12_SetupSamplerNearest(ID3D12GraphicsCommandList* command_list)
158+
{
159+
ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData();
160+
command_list->SetPipelineState(bd->pPipelineStateNearest);
161+
command_list->SetGraphicsRootSignature(bd->pRootSignatureNearest);
162+
}
163+
164+
static void ImGui_ImplDX12_SetupRenderState(ImDrawData* draw_data, ID3D12GraphicsCommandList* command_list, ImGui_ImplDX12_RenderBuffers* fr)
165+
{
148166
// Setup orthographic projection matrix into our constant buffer
149167
// Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right).
150168
VERTEX_CONSTANT_BUFFER_DX12 vertex_constant_buffer;
@@ -186,8 +204,7 @@ static void ImGui_ImplDX12_SetupRenderState(ImDrawData* draw_data, ID3D12Graphic
186204
ibv.Format = sizeof(ImDrawIdx) == 2 ? DXGI_FORMAT_R16_UINT : DXGI_FORMAT_R32_UINT;
187205
command_list->IASetIndexBuffer(&ibv);
188206
command_list->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
189-
command_list->SetPipelineState(bd->pPipelineState);
190-
command_list->SetGraphicsRootSignature(bd->pRootSignature);
207+
ImGui_ImplDX12_SetupSamplerLinear(command_list);
191208
command_list->SetGraphicsRoot32BitConstants(0, 16, &vertex_constant_buffer, 0);
192209

193210
// Setup blend factor
@@ -555,7 +572,7 @@ bool ImGui_ImplDX12_CreateDeviceObjects()
555572
ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData();
556573
if (!bd || !bd->pd3dDevice)
557574
return false;
558-
if (bd->pPipelineState)
575+
if (bd->pPipelineStateLinear)
559576
ImGui_ImplDX12_InvalidateDeviceObjects();
560577

561578
HRESULT hr = ::CreateDXGIFactory1(IID_PPV_ARGS(&bd->pdxgiFactory));
@@ -644,7 +661,15 @@ bool ImGui_ImplDX12_CreateDeviceObjects()
644661
if (D3D12SerializeRootSignatureFn(&desc, D3D_ROOT_SIGNATURE_VERSION_1, &blob, nullptr) != S_OK)
645662
return false;
646663

647-
bd->pd3dDevice->CreateRootSignature(0, blob->GetBufferPointer(), blob->GetBufferSize(), IID_PPV_ARGS(&bd->pRootSignature));
664+
bd->pd3dDevice->CreateRootSignature(0, blob->GetBufferPointer(), blob->GetBufferSize(), IID_PPV_ARGS(&bd->pRootSignatureLinear));
665+
blob->Release();
666+
667+
// Root Signature for ImDrawCallback_SetSamplerNearest
668+
staticSampler[0].Filter = D3D12_FILTER_MIN_MAG_MIP_POINT;
669+
if (D3D12SerializeRootSignatureFn(&desc, D3D_ROOT_SIGNATURE_VERSION_1, &blob, nullptr) != S_OK)
670+
return false;
671+
672+
bd->pd3dDevice->CreateRootSignature(0, blob->GetBufferPointer(), blob->GetBufferSize(), IID_PPV_ARGS(&bd->pRootSignatureNearest));
648673
blob->Release();
649674
}
650675

@@ -657,7 +682,7 @@ bool ImGui_ImplDX12_CreateDeviceObjects()
657682
D3D12_GRAPHICS_PIPELINE_STATE_DESC psoDesc = {};
658683
psoDesc.NodeMask = 1;
659684
psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE;
660-
psoDesc.pRootSignature = bd->pRootSignature;
685+
psoDesc.pRootSignature = bd->pRootSignatureLinear;
661686
psoDesc.SampleMask = UINT_MAX;
662687
psoDesc.NumRenderTargets = 1;
663688
psoDesc.RTVFormats[0] = bd->RTVFormat;
@@ -780,7 +805,18 @@ bool ImGui_ImplDX12_CreateDeviceObjects()
780805
desc.BackFace = desc.FrontFace;
781806
}
782807

783-
HRESULT result_pipeline_state = bd->pd3dDevice->CreateGraphicsPipelineState(&psoDesc, IID_PPV_ARGS(&bd->pPipelineState));
808+
HRESULT result_pipeline_state = bd->pd3dDevice->CreateGraphicsPipelineState(&psoDesc, IID_PPV_ARGS(&bd->pPipelineStateLinear));
809+
if (result_pipeline_state != S_OK)
810+
{
811+
vertexShaderBlob->Release();
812+
pixelShaderBlob->Release();
813+
return false;
814+
}
815+
816+
// Pipeline State for ImDrawCallback_SetSamplerNearest
817+
psoDesc.pRootSignature = bd->pRootSignatureNearest;
818+
819+
result_pipeline_state = bd->pd3dDevice->CreateGraphicsPipelineState(&psoDesc, IID_PPV_ARGS(&bd->pPipelineStateNearest));
784820
vertexShaderBlob->Release();
785821
pixelShaderBlob->Release();
786822
if (result_pipeline_state != S_OK)
@@ -813,8 +849,11 @@ void ImGui_ImplDX12_InvalidateDeviceObjects()
813849
if (bd->commandQueueOwned)
814850
SafeRelease(bd->pCommandQueue);
815851
bd->commandQueueOwned = false;
816-
SafeRelease(bd->pRootSignature);
817-
SafeRelease(bd->pPipelineState);
852+
SafeRelease(bd->pRootSignatureLinear);
853+
SafeRelease(bd->pRootSignatureNearest);
854+
SafeRelease(bd->pPipelineStateLinear);
855+
SafeRelease(bd->pPipelineStateNearest);
856+
818857
if (bd->pTexUploadBufferMapped)
819858
{
820859
D3D12_RANGE range = { 0, bd->pTexUploadBufferSize };
@@ -961,7 +1000,7 @@ void ImGui_ImplDX12_NewFrame()
9611000
ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData();
9621001
IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplDX12_Init()?");
9631002

964-
if (!bd->pPipelineState)
1003+
if (!bd->pPipelineStateLinear)
9651004
if (!ImGui_ImplDX12_CreateDeviceObjects())
9661005
IM_ASSERT(0 && "ImGui_ImplDX12_CreateDeviceObjects() failed!");
9671006
}

backends/imgui_impl_sdlgpu3.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ struct ImGui_ImplSDLGPU3_Data
6262
SDL_GPUShader* FragmentShader = nullptr;
6363
SDL_GPUGraphicsPipeline* Pipeline = nullptr;
6464
SDL_GPUSampler* TexSamplerLinear = nullptr;
65+
SDL_GPUSampler* TexSamplerNearest = nullptr;
6566
SDL_GPUTransferBuffer* TexTransferBuffer = nullptr;
6667
uint32_t TexTransferBufferSize = 0;
6768

@@ -236,7 +237,8 @@ void ImGui_ImplSDLGPU3_RenderDrawData(ImDrawData* draw_data, SDL_GPUCommandBuffe
236237
ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO();
237238
ImGui_ImplSDLGPU3_RenderState render_state;
238239
render_state.Device = bd->InitInfo.Device;
239-
render_state.SamplerDefault = render_state.SamplerCurrent = bd->TexSamplerLinear;
240+
render_state.SamplerLinear = render_state.SamplerCurrent = bd->TexSamplerLinear;
241+
render_state.SamplerNearest = bd->TexSamplerNearest;
240242
platform_io.Renderer_RenderState = &render_state;
241243

242244
ImGui_ImplSDLGPU3_SetupRenderState(draw_data, &render_state, pipeline, command_buffer, render_pass, fd, fb_width, fb_height);
@@ -592,9 +594,14 @@ void ImGui_ImplSDLGPU3_CreateDeviceObjects()
592594
sampler_info.enable_anisotropy = false;
593595
sampler_info.max_anisotropy = 1.0f;
594596
sampler_info.enable_compare = false;
595-
596597
bd->TexSamplerLinear = SDL_CreateGPUSampler(v->Device, &sampler_info);
597598
IM_ASSERT(bd->TexSamplerLinear != nullptr && "Failed to create sampler, call SDL_GetError() for more information");
599+
600+
sampler_info.min_filter = SDL_GPU_FILTER_NEAREST;
601+
sampler_info.mag_filter = SDL_GPU_FILTER_NEAREST;
602+
sampler_info.mipmap_mode = SDL_GPU_SAMPLERMIPMAPMODE_NEAREST;
603+
bd->TexSamplerNearest = SDL_CreateGPUSampler(v->Device, &sampler_info);
604+
IM_ASSERT(bd->TexSamplerNearest != nullptr && "Failed to create sampler, call SDL_GetError() for more information");
598605
}
599606

600607
ImGui_ImplSDLGPU3_CreateGraphicsPipeline();

backends/imgui_impl_sdlgpu3.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ IMGUI_IMPL_API void ImGui_ImplSDLGPU3_UpdateTexture(ImTextureData* tex);
5757
struct ImGui_ImplSDLGPU3_RenderState
5858
{
5959
SDL_GPUDevice* Device;
60-
SDL_GPUSampler* SamplerDefault; // Default sampler (bilinear filtering)
60+
SDL_GPUSampler* SamplerLinear; // Bilinear filtering sampler
61+
SDL_GPUSampler* SamplerNearest; // Nearest/point filtering sampler
6162
SDL_GPUSampler* SamplerCurrent; // Current sampler (may be changed by callback)
6263
};
6364

backends/imgui_impl_win32.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -830,7 +830,7 @@ IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandlerEx(HWND hwnd, UINT msg, WPA
830830
// - Your own app may already do this via a manifest or explicit calls. This is mostly useful for our examples/ apps.
831831
// - In theory we could call simple functions from Windows SDK such as SetProcessDPIAware(), SetProcessDpiAwareness(), etc.
832832
// but most of the functions provided by Microsoft require Windows 8.1/10+ SDK at compile time and Windows 8/10+ at runtime,
833-
// neither we want to require the user to have. So we dynamically select and load those functions to avoid dependencies.
833+
// neither of which we want to require the user to have. So we dynamically select and load those functions to avoid dependencies.
834834
//---------------------------------------------------------------------------------------------------------
835835
// This is the scheme successfully used by GLFW (from which we borrowed some of the code) and other apps aiming to be highly portable.
836836
// ImGui_ImplWin32_EnableDpiAwareness() is just a helper called by main.cpp, we don't call it automatically.

0 commit comments

Comments
 (0)