Nemirtingas / ingame_overlay

GNU General Public License v3.0
14 stars 4 forks source link

Fix 32-bit compilation for DX12 #18

Closed otavepto closed 4 months ago

otavepto commented 4 months ago

Currently 32-bit compilation triggers a static_assert failure in ImGui DX12 implementation imgui_impl_dx12.cpp::464

https://github.com/Nemirtingas/imgui/blob/d479e20744c36946fd97d416a9be630f3f4d4ab8/backends/imgui_impl_dx12.cpp#L456-L464

Their official solution (also in their example) is to use /D ImTextureID=ImU64. After this change it built successfully for 64 and 32

Nemirtingas commented 4 months ago

Hi, It is not an issue. Its because you didn't specified the IMGUI_USER_CONFIG cmake variable.

otavepto commented 4 months ago

Oh, I didn't know about that, could you please point me in the right direction?

Nemirtingas commented 4 months ago

You need to create your own configuration file. Because it will be deployed with the InGameOverlay library so anyone using your build will have the same ImGui configuration. Its done by setting the CMAKE variable IMGUI_USER_CONFIG when building the library.

The tests apps build scripts do it like this : https://github.com/Nemirtingas/ingame_overlay/blob/843888fd1fee1ed29cf74490a49dd9ece6d2eabe/tests/linux_opengl/build.sh#L5C7-L5C70

In the tests/common directory, there is a basic ImGui configuration file : https://github.com/Nemirtingas/ingame_overlay/blob/843888fd1fee1ed29cf74490a49dd9ece6d2eabe/tests/common/ingameoverlay_imconfig.h#L1C1-L5C1

In this file, you could tweak anything that ImGui allows you to tweak.

otavepto commented 4 months ago

Thank you very much.