Code Monkey home page Code Monkey logo

indicium-supra's Introduction

Indicium-Supra

API-Hooking and rendering framework for DirectX-based games.

Build status Discord Website GitHub followers Mastodon Follow

About

Indicium-Supra consists of a self-contained library (DLL) which exposes a minimalistic API for rendering custom content in foreign processes eliminating the need for in-depth knowledge about Direct3D and API-hooking. The most common use-case might be drawing custom overlays on top of your games. The framework takes care about pesky tasks like detecting the DirectX version the game was built for and supports runtime-hooking (no special launcher application required).

Supported DirectX versions

  • DirectX 9.0
  • DirectX 9.0 Extended (Vista+)
  • DirectX 10
  • DirectX 11
  • DirectX 12 (implemented but untested)

How to build

Prerequisites

Samples are currently broken on this branch due to major API redesign!

  • Visual Studio 2019 (Community Edition is just fine)
  • Windows SDK
  • Follow the Vcpkg Quick Start and install the following packages:
    • .\vcpkg install spdlog:x86-windows-static spdlog:x64-windows-static detours:x86-windows-static detours:x64-windows-static
    • For the ImGui sample to build you'll also need:
      • .\vcpkg install imgui:x86-windows-static imgui:x64-windows-static

Building should be pretty straight-forward since the dependencies get installed via Vcpkg. You have multiple choices for getting things done.

Visual Studio

Just open the solution file Indicium-Supra.sln and start the build from there.

The lazy way

Now if you're really in a hurry you can grab pre-built binaries from the buildbot. Boom, done.

How to use

Inject the resulting host library (e.g. Indicium-ImGui.dll) into the target process first using a DLL injection utility of your choice (you can ofc. use mine as well). The following example loads the imgui sample:

.\Injector -i -n hl2.exe Indicium-ImGui.dll

Just make sure your host library doesn't require any external dependencies not present in the process context or you'll get a LoadLibrary failed error.

Diagnostics

The core library logs its progress and potential errors to the file %TEMP%\Indicium-Supra.log.

Demos

The following screenshots show imgui getting rendered in foreign processes using different versions of DirectX.

DirectX 9

Half-Life 2, 32-Bit

Half-Life 2

DirectX 9 Ex

Castlevania: Lords of Shadow, 32-Bit

Castlevania: Lords of Shadow

DirectX 10

Bioshock 2, 32-Bit

Bioshock2_2017-08-10_14-48-38.png

DirectX 11

Ryse: Son of Rome, 64-Bit

Ryse_2017-08-09_21-48-57.png

Road Redemption, 64-Bit

RoadRedemptionEarlyAccess_2017-08-14_14-06-21.png

Sources

indicium-supra's People

Contributors

agrippa1994 avatar dogeamazed avatar dzikoysk avatar nefarius avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

indicium-supra's Issues

Documentation

How does this work? .
It works just like: ?

If so, is there any Wrapper for .Net?

Cannot build with VS 2017

I'm trying to build the library with VS 2017, but getting compile errors about missing DirectX header. Below is compiler output for Game.cpp:

1>  cl /c /I"G:\Dev\Sources\_Lab\D3DHooking\Indicium-Supra\packages\nefarius.poco-basic-windows-v150.1.8.1\build\native\..\..\lib\native\include" /I"G:\Dev\Sources\_Lab\D3DHooking\Indicium-Supra\packages\Nefarius.minhook.1.3.3.1\build\native\..\..\lib\native\include" /ZI /W0 /WX- /diagnostics:classic /MP /Od /Oy- /D WIN32 /D _DEBUG /D _WINDOWS /D _USRDLL /D IS_INDICIUM_SUPRA /D _WINDLL /D _MBCS /Gm- /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"Debug\\" /Fd"Debug\vc141.pdb" /Gd /TP /analyze- /FC /errorReport:prompt Game\Game.cpp
1>
1>  Game.cpp
1>  g:\dev\sources\_lab\d3dhooking\indicium-supra\src\indicium-supra\game\hook\direct3d9ex.h(2): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory
1>Done building target "ClCompile" in project "Indicium-Supra.vcxproj" -- FAILED.

I tried fixing these by adding $(DXSDK_DIR)Include; to the include path, but this results in other errors:

1>  cl /c /I"G:\Dev\Sources\_Lab\D3DHooking\Indicium-Supra\packages\nefarius.poco-basic-windows-v150.1.8.1\build\native\..\..\lib\native\include" /I"G:\Dev\Sources\_Lab\D3DHooking\Indicium-Supra\packages\Nefarius.minhook.1.3.3.1\build\native\..\..\lib\native\include" /ZI /W0 /WX- /diagnostics:classic /MP /Od /Oy- /D WIN32 /D _DEBUG /D _WINDOWS /D _USRDLL /D IS_INDICIUM_SUPRA /D _WINDLL /D _MBCS /Gm- /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"Debug\\" /Fd"Debug\vc141.pdb" /Gd /TP /analyze- /FC /errorReport:prompt Game\Game.cpp
1>
1>  Game.cpp
1>  c:\program files (x86)\windows kits\10\include\10.0.16299.0\shared\dxgicommon.h(10): error C2011: 'DXGI_RATIONAL': 'struct' type redefinition
1>  c:\program files (x86)\microsoft directx sdk (june 2010)\include\dxgitype.h(77): note: see declaration of 'DXGI_RATIONAL'
1>  c:\program files (x86)\windows kits\10\include\10.0.16299.0\shared\dxgicommon.h(20): error C2011: 'DXGI_SAMPLE_DESC': 'struct' type redefinition
1>  c:\program files (x86)\microsoft directx sdk (june 2010)\include\dxgitype.h(117): note: see declaration of 'DXGI_SAMPLE_DESC'
1>  c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\d3d12.h(1718): error C2079: 'D3D12_GRAPHICS_PIPELINE_STATE_DESC::SampleDesc' uses undefined struct 'DXGI_SAMPLE_DESC'
1>  c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\d3d12.h(2196): error C2079: 'D3D12_RESOURCE_DESC::SampleDesc' uses undefined struct 'DXGI_SAMPLE_DESC'
1>Done building target "ClCompile" in project "Indicium-Supra.vcxproj" -- FAILED.

Mouse/Keyboard input issue?

Hi!

Everything works fine:

  • Building x64 => ok
  • Injection => ok
  • Rendering => ok

But mouse and or keyboard input are not working at all.

Also I can see in the log:

2019-04-14 11:22:44.122 HookWindowProc [Warning]: Couldn't create hook for GWLP_WNDPROC

but not sure if it's related.

Thanks!

Can't interact

Hello, I can't interact with ImgUi.
Exist any fix? (I used the unchanged example plugin)

Example:
Example

Error:

HookWindowProc [Error]: Couldn't create hook for WNDPROC

DX10 Not Working (continuation)

Issue continuation from: agrippa1994/DX9-Overlay-API#37 (comment)

My setup: Visual Studio 2017 on Windows 10 x64. I followed your instructions to the letter in every README.md and all works perfectly except for a few DX10 Games that CAN be run in DX11 but I don't have hardware supported for anything higher than DX10. Its Nvidia 9800GT and its DX10 (not even 10.1 which may have something to do with it). I have it working great in all DX9 games.

Oh and you did press F11, right? This I should document 😆: LOL yeah, I found it in the code near the bottom. :D

You should find a log file generated at %TEMP%\Indicium-Supra.log what does it say?:

DX9 game Working says: Direct3D11 [Error]: Couldn't get handle to D3D11.dll
Assassins Creed, being run in DX10 but has DX11 Support, Not working says: Direct3D11 [Error]: Couldn't create D3D11 device

Indicium-Supra (DX9 Working).log

Indicium-Supra (DX10 Not Working).log

DX12 - Shadow of the tomb raider crash

Describe the bug
Tried pre-compiled x64 dlls with your precompiled injector on Shadow Of The Tomb Rider which runs with DX12 for me on Windows 10. Game crashed, no error nothing just instantly closes itself.

To Reproduce
Steps to reproduce the behavior:

  1. Inject dlls into the process
  2. Crash

Expected behavior
No cash

Screenshots
/

Please complete at least the following information:

  • Windows 10 x64 1803
  • Shadow Of The Tomb Raider
  • Game architecture 64-Bit
  • Version of libraries 3.2.57.0 (according to file details)

Logs
Where do I find them?!

Crash on Inject!!

Injecting Indicium-Supra.dll to my process causes the application to crash
i'm trying to inject it to a d3dx9 game

Complete black screen lockup or strange behavior in true fullscreen games

Hello,

I'm currently working on a project for the Unreal Engine 3 game Guilty Gear Xrd -REVELATOR-. The goal is to integrate a mod tool into an overlay.

I built Indicium-Supra and Indicium-ImGui.Plugin and injected Indicium-Supra with your Injector project. Works as intended when the game is windowed.

However when the game is in fullscreen (true fullscreen, ie not borderless-windowed and win10's fullscreen optimization disabled), the game turns black and seems frozen. It can also be a bit difficult to kill the process in that situation, because the frozen black fullscreen game keeps the focus and seems always on top.

I also tried to inject when game is windowed, then go fullscreen, but the result is the same.

Some other games don't lock up and seem to work fine in true fullscreen (Arcana Heart 3), but they still have the strange always on top behavior, and thus can't be alt-tabbed.

If you have any tips on this issue or need more details, please let me know.

Thanks,
Tom.

Manual Mapping not possible.

Correct me if I'am wrong I actually want confirmation, since it has 2 output DLL's
I'm unable to do it.

Tried Jlibrary.
Xenos Injector.
GH Injector.

Access Violation when injecting Indicium-Supra.dll

I am getting this error when attempting to inject the primary DLL.
Access Violation at 00007FFF6F039885

Do you know where this problem could be stemming from?
I have no compile errors and everything seems to compile file,
am I missing a lib or something?

Cannot compile any version with Visual Studio 2017 Enterprise

Hi, I'm not able to compile Indicium-Supra 1.1 with Visual Studio 2017 Enterprise. I keep getting error
Error C2220 warning treated as error - no 'object' file generated Indicium-Supra c:\program files (x86)\microsoft sdks\windows\v7.1a\include\shlobj.h 1151

I already went to Configuration Properties -> C/C++ -> General
Turn Off All Warnings /W0
Treat Warnings As Error No (/WX-)
And I am still getting the error.

I then tried to compile the newest version from the Master branch and I got countless errors. Even after installing boost and minhook.

I did manage to get the debug version of Indicium-Supra 1.1 to compile but it doesn't seem to work with Windows 10. Here is the full log:

[2018-07-17 23:29:01.026093]: Library loaded, attempting to launch main thread
[2018-07-17 23:29:01.027090]: Main thread created successfully
[2018-07-17 23:29:01.028087]: Initializing DLL injection
[2018-07-17 23:29:01.028087]: Searching for target process by process name: swtor.exe
[2018-07-17 23:29:01.032077]: Target PID: 10692
[2018-07-17 23:29:01.032077]: Opened target process [HANDLE: 000001BC]
[2018-07-17 23:29:01.040055]: Allocated memory [ADDR: 0E990000]
[2018-07-17 23:29:01.040055]: Wrote DLL path (C:\Users\mille\Desktop\Indicium-Supra.dll) to target process memory
[2018-07-17 23:29:01.040055]: Calling LoadLibraryA(C:\Users\mille\Desktop\Indicium-Supra.dll) in target process
[2018-07-17 23:29:01.043047]: Library loaded successfully
[2018-07-17 23:29:01.044045]: Library enabled successfully
[2018-07-17 23:29:01.058008]: Library loaded into \Device\HarddiskVolume4\Users\mille\Desktop\hello_world.exe
[2018-07-17 23:29:01.058008]: Library enabled
[2018-07-17 23:29:01.060002]: Acquiring VTable for Direct3DCreate9...
[2018-07-17 23:29:01.060002]: Could not get the handle to d3d9.dll
[2018-07-17 23:29:01.060002]: Couldn't get VTable for Direct3DCreate9
[2018-07-17 23:29:01.060002]: Releasing temporary objects
[2018-07-17 23:29:01.061000]: Acquiring VTable for Direct3DCreate9Ex...
[2018-07-17 23:29:01.061000]: Could not get the handle to d3d9.dll
[2018-07-17 23:29:01.061000]: Couldn't get VTable for Direct3DCreate9Ex
[2018-07-17 23:29:01.061000]: Releasing temporary objects
[2018-07-17 23:29:01.061997]: Acquiring VTable for ID3D10Device and IDXGISwapChain...
[2018-07-17 23:29:01.061997]: Couldn't get handle to DXGI.dll
[2018-07-17 23:29:01.062995]: Couldn't get VTable for IDXGISwapChain
[2018-07-17 23:29:01.062995]: Releasing temporary objects
[2018-07-17 23:29:01.063992]: Acquiring VTable for ID3D11Device and IDXGISwapChain...
[2018-07-17 23:29:01.063992]: Couldn't get handle to DXGI.dll
[2018-07-17 23:29:01.063992]: Couldn't get VTable for IDXGISwapChain
[2018-07-17 23:29:01.063992]: Releasing temporary objects
[2018-07-17 23:29:01.064990]: Acquiring VTable for IDirectInputDevice8...
[2018-07-17 23:29:01.107874]: Enumerating devices
[2018-07-17 23:29:01.175200]: No joystick device found
[2018-07-17 23:29:01.175200]: Couldn't get VTable for DirectInput8
[2018-07-17 23:29:01.175200]: Releasing temporary objects
[2018-07-17 23:29:01.175200]: Initializing hook engine...
[2018-07-17 23:29:01.175200]: Hook engine initialized
[2018-07-17 23:29:01.175200]: Hooking USER32!DefWindowProcA (ANSI)
[2018-07-17 23:29:01.175200]: Hooking USER32!DefWindowProcW (Unicode)
[2018-07-17 23:29:01.195147]: DefWindowProc hooked

I'm not sure why but the project is 100% bugged. According to the log GetModuleHandle isn't even working. Are you sure this library works on machines running windows 10?

By the way, swtor is a directx 9 game GetModuleHandle("d3d9.dll") should be working.

Building issue

I am trying to build the solution using VS 2017, it looks like I have an issue. Bellow the output:

1>------ Build started: Project: libMinHook, Configuration: Release Win32 ------
2>------ Build started: Project: _build, Configuration: Release Any CPU ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets\v141_xp\Toolset.targets(39,5): warning MSB8051: Support for targeting Windows XP is deprecated and will not be present in future releases of Visual Studio. Please see https://go.microsoft.com/fwlink/?linkid=2023588 for more information.
2>Build.cs(19,18,19,33): warning CS0114: 'Build.SourceDirectory' hides inherited member 'NukeBuild.SourceDirectory'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword.
2>Build.cs(20,18,20,36): warning CS0114: 'Build.ArtifactsDirectory' hides inherited member 'NukeBuild.ArtifactsDirectory'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword.
1>buffer.c
1>hde32.c
1>hook.c
1>trampoline.c
2>_build -> C:\Users\user\Downloads\Indicium-Supra-master\build\bin\Release\_build.dll
2>Done building project "_build.csproj".
1>libMinHook.vcxproj -> C:\Users\user\Downloads\Indicium-Supra-master\lib\Release\libMinHook.x86.lib
1>Done building project "libMinHook.vcxproj".
3>------ Build started: Project: Indicium-Supra, Configuration: Release Win32 ------
3>Running vcpkg...
3>The following packages will be built and installed:
3>  * expat[core]:x86-windows-static
3>  * pcre[core]:x86-windows-static
3>    poco[core]:x86-windows-static
3>  * sqlite3[core]:x86-windows-static
3>  * zlib[core]:x86-windows-static
3>Additional packages (*) will be modified to complete this operation.
3>Starting package 1/5: sqlite3:x86-windows-static
3>Building package sqlite3[core]:x86-windows-static...
3>A suitable version of cmake was not found (required v3.11.4). Downloading portable cmake v3.11.4...
3>Extracting cmake...
3>A suitable version of 7zip was not found (required v18.1.0). Downloading portable 7zip v18.1.0...
3>Downloading 7zip...
3>File does not have the expected hash:
3>             url : [ https://www.nuget.org/api/v2/package/7-Zip.CommandLine/18.1.0 ]
3>       File path : [ C:\Users\user\Downloads\Indicium-Supra-master\packages\Vcpkg.Nuget.1.5.0\vcpkg_bin\downloads\7-zip.commandline.18.1.0.nupkg.part ]
3>   Expected hash : [ 8c75314102e68d2b2347d592f8e3eb05812e1ebb525decbac472231633753f1d4ca31c8e6881a36144a8da26b2571305b3ae3f4e2b85fc4a290aeda63d1a13b8 ]
3>     Actual hash : [ a9dfaaafd15d98a2ac83682867ec5766720acf6e99d40d1a00d480692752603bf3f3742623f0ea85647a92374df405f331afd6021c5cf36af43ee8db198129c0 ]
3>
3>C:\Users\user\Downloads\Indicium-Supra-master\packages\Vcpkg.Nuget.1.5.0\build\Vcpkg.Nuget.props(13,5): error MSB6006: "Vcpkg" exited with code 1.
3>Done building project "Indicium-Supra.vcxproj" -- FAILED.
4>------ Build started: Project: Indicium-FW1FontWrapper, Configuration: Release Win32 ------
5>------ Build started: Project: Indicium-ImGui, Configuration: Release Win32 ------
5>Running vcpkg...
4>dllmain.cpp
5>The following packages will be built and installed:
5>  * expat[core]:x86-windows-static
5>  * pcre[core]:x86-windows-static
5>    poco[core]:x86-windows-static
5>  * sqlite3[core]:x86-windows-static
5>  * zlib[core]:x86-windows-static
5>Additional packages (*) will be modified to complete this operation.
5>Starting package 1/5: sqlite3:x86-windows-static
5>Building package sqlite3[core]:x86-windows-static...
5>A suitable version of cmake was not found (required v3.11.4). Downloading portable cmake v3.11.4...
5>Extracting cmake...
5>A suitable version of 7zip was not found (required v18.1.0). Downloading portable 7zip v18.1.0...
5>Downloading 7zip...
5>File does not have the expected hash:
5>             url : [ https://www.nuget.org/api/v2/package/7-Zip.CommandLine/18.1.0 ]
5>       File path : [ C:\Users\user\Downloads\Indicium-Supra-master\packages\Vcpkg.Nuget.1.5.0\vcpkg_bin\downloads\7-zip.commandline.18.1.0.nupkg.part ]
5>   Expected hash : [ 8c75314102e68d2b2347d592f8e3eb05812e1ebb525decbac472231633753f1d4ca31c8e6881a36144a8da26b2571305b3ae3f4e2b85fc4a290aeda63d1a13b8 ]
5>     Actual hash : [ a9dfaaafd15d98a2ac83682867ec5766720acf6e99d40d1a00d480692752603bf3f3742623f0ea85647a92374df405f331afd6021c5cf36af43ee8db198129c0 ]
5>
5>C:\Users\user\Downloads\Indicium-Supra-master\packages\Vcpkg.Nuget.1.5.0\build\Vcpkg.Nuget.props(13,5): error MSB6006: "Vcpkg" exited with code 1.
5>Done building project "Indicium-ImGui.vcxproj" -- FAILED.
4>LINK : fatal error LNK1181: cannot open input file 'C:\Users\user\Downloads\Indicium-Supra-master\bin\x86\Indicium-Supra.lib'
4>Done building project "Indicium-FW1FontWrapper.vcxproj" -- FAILED.
========== Build: 2 succeeded, 3 failed, 0 up-to-date, 0 skipped ==========

Thanks in advance!

Compile fails in Visual Studio

When attempting to build the Indicium-ImGui example using visual studio, the following error is thrown:
image

The issue remained present with a fresh build, and when compiling to 32bit instead (just x86 instead of x64, of course). Compiling through command line works as expected.

[Indicium-ImGui] Monster Hunter: World crashed after IDXGISwapChain::ResizeBuffers called

Describe the bug
I am developing a Overlay application for Monster Hunter: World based on Indicium-ImGui, but now Indicium-ImGui has a issue with this game. My game runs in full screen exclusive mode. But every time I press the Windows key or the Alt+Tab key combination to switch to the desktop, Monster Hunter: World will briefly switch back to the title window mode (the purpose is to let people see the version number). At this point, the log will record IDXGISwapChain::ResizeBuffers called and the game will crash after popping up the warning box ERR11: Invalid DXGI call..

To Reproduce
Steps to reproduce the behavior:

  1. Run Monster Hunter: World with fullscreen mode.
  2. Run a delayed injection script (inject.bat):
ping -n 10 google.com
.\Injector64.exe -n "MonsterHunterWorld.exe" -i Indicium-Supra.dll Indicium-ImGui.dll
  1. Wait until the overlay appears, press the Windows key or the Alt+Tab key combination to switch to the desktop.
  2. Game popped up a warning box with ERR11: Invalid DXGI call. and crashed.

Expected behavior
The game should not crash. I have tried to modify the code in multiple places, but I can't find a way to not break the overlay display and not let the game crash.

Even if the overlay is completely disabled after switching to window mode, I can accept it. Because we can eject the dll and re-inject it.

Screenshots
Screenshot

Please complete at least the following information:

  • Windows version: Windows 10 x64 version 1903 build 18898.1000
  • Game name: Monster Hunter: World
  • Game architecture: 64-Bit
  • Version of libraries: df5e989 (3.3)

Logs

[2019-05-23 02:10:31.968300] [0x00001948] [info] [IndiciumEngineInit] Indicium engine initialized, attempting to launch main thread
[2019-05-23 02:10:31.969315] [0x00001948] [info] [IndiciumEngineInit] Main thread created successfully
[2019-05-23 02:10:31.969315] [0x000011f0] [info] [IndiciumMainThread] Library loaded into \Device\HarddiskVolume9\Games\SteamLibrary\steamapps\common\Monster Hunter World\MonsterHunterWorld.exe
[2019-05-23 02:10:31.970300] [0x000011f0] [info] [IndiciumMainThread] Library enabled
[2019-05-23 02:10:32.059921] [0x000011f0] [info] [IndiciumMainThread] Hooking IDirect3DDevice9Ex::Present
[2019-05-23 02:10:32.059921] [0x000011f0] [info] [IndiciumMainThread] Hooking IDirect3DDevice9Ex::Reset
[2019-05-23 02:10:32.059921] [0x000011f0] [info] [IndiciumMainThread] Hooking IDirect3DDevice9Ex::EndScene
[2019-05-23 02:10:32.059921] [0x000011f0] [info] [IndiciumMainThread] Hooking IDirect3DDevice9Ex::PresentEx
[2019-05-23 02:10:32.059921] [0x000011f0] [info] [IndiciumMainThread] Hooking IDirect3DDevice9Ex::ResetEx
[2019-05-23 02:10:32.068911] [0x000011f0] [warning] [IndiciumMainThread] Module not found: Could not get handle to D3D10.dll
[2019-05-23 02:10:32.092907] [0x000011f0] [info] [IndiciumMainThread] Hooking IDXGISwapChain::Present
[2019-05-23 02:10:32.093907] [0x000011f0] [info] [IndiciumMainThread] Hooking IDXGISwapChain::ResizeTarget
[2019-05-23 02:10:32.093907] [0x000011f0] [info] [IndiciumMainThread] Hooking IDXGISwapChain::ResizeBuffers
[2019-05-23 02:10:32.094908] [0x00004e94] [info] [HookDX11] ++ IDXGISwapChain::Present called
[2019-05-23 02:10:32.094908] [0x00004e94] [info] [HookDX11->IndiciumEngineLogInfo] Loading ImGui plugin
[2019-05-23 02:10:32.098907] [0x00004e94] [info] [IndiciumEngineLogInfo] Grabbing device and context pointers
[2019-05-23 02:10:32.098907] [0x00004e94] [info] [IndiciumEngineLogInfo] Initializing ImGui
[2019-05-23 02:10:32.098907] [0x00004e94] [info] [IndiciumEngineLogInfo] ImGui (DX11) initialized
[2019-05-23 02:10:32.103927] [0x000011f0] [warning] [IndiciumMainThread] Module not found: Could not get handle to D3D12.dll
[2019-05-23 02:10:32.103927] [0x000011f0] [info] [IndiciumMainThread] Library initialized successfully
[2019-05-23 02:10:32.114908] [0x00004e94] [info] [IndiciumEngineLogInfo] ++ RenderScene called
[2019-05-23 02:10:38.502304] [0x00004e94] [info] [HookDX11] ++ IDXGISwapChain::ResizeBuffers called

Additional context
There is the project I am developing: https://github.com/SwimmingTiger/OverlayDisplayServer

It was modified from Indicium-ImGui and has the same issue as Indicium-ImGui.

I want to add full screen overlay support for a C# mod, so I started this project. I don't have any experience with DirectX development, I don't think I can solve this issue alone and I need your help.

Rehook swapchain if hook removed

The game seems to create a new swapchain at times and that unhooks the overlay.

Is there any way to auto rehook like OBS does?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.