-
Notifications
You must be signed in to change notification settings - Fork 282
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewrite ImGuiScene using TerraFX + Add DX12 backend #1542
Conversation
Curious about the note regarding the native DX11 backend, I tried this a while ago and it seemed to be working fine. Was I missing something? |
IME completion window would not show, and when multi-viewport is enabled, outside-the-game windows would get considered as not a valid target for IME input; only type English to those. For HS/DS/CS, it's more of foolproofing. Realistically the game would bind shaders every frame so it won't matter but just in case. |
fc269d7
to
1f45ea9
Compare
f4e0f66
to
989bb7d
Compare
Can't reproduce when DX debug layer is turned off. GPU Based Validation (Preview) enabled from DirectX Control Panel was causing the crash. Disabling that made the crash stop happening. Tested with a sample app that repeatedly creates and frees reserved resources. |
0ea2395
to
9af2b91
Compare
9af2b91
to
c667888
Compare
b117bf7
to
e6f4c92
Compare
dea1ea5
to
f279821
Compare
a8d2e88
to
a86f6f9
Compare
a86f6f9
to
e25ee19
Compare
@Soreepeong Did you do any tests on how this interacts with reshade while working on it? Same as before? |
This makes reshade unaware of windows created from using viewports. |
Changes
Effective
Code
deps/ImGuiScene
into Dalamud in a namespaceDalamud.ImGuiScene
, after a rewrite to avoid allocations and use TerraFX instead of SharpDX.Dx12Win32Scene
has been added.Dx12OnDx11Win32Scene
to test it out.IImGuiScene.SetTexturePipeline
,GetTexturePipeline
, andReleaseTexturePipeline
has been added.CreateTexturePipeline
is on the concrete class for the interface.Possible future
PInvoke.User32
,PInvoke.Kernel32
, andNativeFunctions
, and replace them withTerraFX.Interop.Windows.Windows
.Obsoleting
SharpDX.Direct3D11
is pending for deletion; it has been[Obsolete]
d inUiBuilder
.DevicePtr
instead, so that consumer plugins can wrap the nativeID3D11Device*
into their wrapper library of choice.SharpDX.Mathematics
is pending for deletion; it has been[Obsolete]
d inVectorExtensions
.Vector3
and stuff..Notes
ImGui Native Backend cannot be used as-is. ImGui's default DX11 implementation does not push and pop HS/DS/CS in
ID3D11DeviceContext
, and Win32 implementation deals with IME, which probably will conflict with the game's handling of IME.