Overlay D3D - Kissaki/mumble GitHub Wiki

General Documentation

Execution flow

On windows:

  1. Initialisation starts in the Mumble client Overlay_win.cpp OverlayPrivateWin::OverlayPrivateWin Loads mumble_ol.dll from the (running) Mumbles app path, via QLibrary()->load()

  2. On success, call GetOverlayMagicVersion Version check of Mumble clients expected overlay library version and the loaded library version

  3. Prepare for injecting the functions InstallHooks, RemoveHooks, PrepareD3D9, PrepareDXGI, PrepareDXGI11 into the system library.

  4. Call the Prepare 9, 10, 11 functions

x. setActive(true) call from somewhere -> Installhook function is run

File and Folder Structure

(not in alphabetical order, but a structured order)

* overlay
** ods.h - ods is a shorthand function for logging strings to debug - _ods_out and fods
** ods.c
** lib.h - structure data common to all D3D overlay libs
** lib.cpp
** HardHook.h - struct HardHook - Will serve as the intermediate object between lib and D3D windows lib, hooking the overlay lib into the windows one
** HardHook.cpp
** opengl.cpp
** overlay.h
** overlay.fx
** overlay.hex
** overlay11.hex
** overlay_blacklist.h - defines an array with the default process blacklist the overlay is not drawn in
** overlay.pro - Qt project file

* overlay_gl - Overlay library source for _*nix_ systems
** overlay.c - The OpenGL hook code
** overlay_gl.pro - Qt project file

* macx/overlay
** avail.h
** avail.pl - script to generate avail.h out of overlay.m
** mach_override.h
** mach_override.c
** overlay.m - - as [https://github.com/mumble-voip/mumble/pull/44#issuecomment-2648392](per), replicated from /overlay_gl/overlay.c
** overlay.plist
** overlay.pro - Qt project file
⚠️ **GitHub.com Fallback** ⚠️