peppy-enterprises / fahrenheit

A Final Fantasy X/X-2 reverse-engineering project and mod framework.
MIT License
9 stars 2 forks source link

Enable ImGui for use in Fahrenheit. #2

Open fkelava opened 1 month ago

fkelava commented 1 month ago

This did not initially work because of missing DX11/Win32 backend enablement.

ImGui.NET does not bundle/wrap the backends, so that is out of the question. We can therefore do two things:

fkelava commented 1 month ago

Rough procedure for compiling an amended ImGui.NET/cimgui:

fkelava commented 1 month ago

Fahrenheit will bring LuaJIT, cimgui and ImGui.NET in as submodules and provide build scripts as soon as it is confirmed that this, in fact, works.

fkelava commented 2 weeks ago

Partial: a4bfe84cd2b4db532f1532a5e46722a648462802, 2abe70869d83f42f59dc92cc9842163bc2751679

fkelava commented 2 weeks ago

Enablement complete as of 1236a99545a845a1201859f4c5e9ae28fa500491.

Rendering hook still requires implementation, but beyond that we are- hopefully- done.

EvelynTSMG commented 2 weeks ago

@fkelava did it :3 image-217.png

fkelava commented 1 week ago

Commit of this functionality is still pending a better way to handle D3D/DXGI method invocation.

For a proof of concept I used Vortice.Windows, but this bundles an unacceptable amount of runtime dependencies. The relevant parts need to be "lifted" into Fahrenheit, but this is not trivial because we are dealing with COM interop.

At the very least we need:

fkelava commented 1 week ago

Implementation complete as of 650abb23560f016e7c0da2a0d4582a266af66571.

API bindings not yet set (i.e. that the ImGui core module invokes other modules' ImGui rendering callbacks), but the module can be used for internal testing even pending that.

At long last, we've done it.

EvelynTSMG commented 6 days ago

(Closing this issue requires me to implement the actually allowing mods to render things using imgui part)