Add the renderer process

The renderer becomes two programs: the adapter (t5deRenderEngine.dll, 32-bit, in IMVU's process) and a 64-bit renderer process (t5de-renderer.exe) drawing with Diligent Engine, fetched with FetchContent and pinned. For now a spike: the adapter starts the renderer process for each engine and signals each frame through a shared memory channel, and the renderer process draws a box into a child window in the client's 3D view.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
dhkatzandClaude Opus 5.5 committed 2026-10-28 05:17:03 -07:00
1 parent 0d126574bf
commit 9a7d7d2908
18 files changed
+491 -57

No files matched your search

+14 -11
View File
@@ -1,25 +1,28 @@
# t5de-renderer
A new 3D renderer for the IMVU Classic client, as a renderer plugin the client loads like its own OpenGL renderer.
Part of [T5DE](https://git.t5de.dev/t5de/t5de); unofficial, not affiliated with IMVU.
A new 3D renderer for the IMVU Classic client. Part of [T5DE](https://git.t5de.dev/t5de/t5de); unofficial, not
affiliated with IMVU.
For now it's a pass-through: it wraps IMVU's Direct3D renderer and logs what each frame draws, to prove our
declarations of IMVU's interface (`docs/interface.md`).
Two programs (`docs/architecture.md`): an adapter, `t5deRenderEngine.dll`, which IMVU Classic loads as a renderer
plugin, and a 64-bit renderer process, `t5de-renderer.exe`, which draws with
[Diligent Engine](https://github.com/DiligentGraphics/DiligentCore). For now the client's own Direct3D renderer still
draws the scene, and the renderer process proves the setup by drawing a small box over it. `docs/interface.md` has
what we know of IMVU's renderer interface.
## Building
Needs Visual Studio Build Tools 2026 (the C++ workload) and CMake 3.28 or newer. IMVU Classic is a 32-bit
Visual C++ program, so the plugin is built for 32-bit Windows (the `windows-x86` preset):
Needs Visual Studio Build Tools 2026 (the C++ workload) and CMake 3.28 or newer. One preset per program:
```sh
cmake --workflow --preset release
cmake --workflow --preset adapter # build/windows-x86/adapter/Release/t5deRenderEngine.dll, and the tests
cmake --workflow --preset renderer # build/windows-x64/renderer/Release/t5de-renderer.exe
```
That configures, builds `build/windows-x86/Release/t5deRenderEngine.dll` and runs the tests. Or step by step:
`cmake --preset windows-x86`, `cmake --build --preset debug`, `ctest --preset debug`.
The renderer's first configure fetches Diligent Engine (pinned in `renderer/CMakeLists.txt`) and builds it, which
takes a while.
## Trying it
Copy `t5deRenderEngine.dll` into a T5DE client folder built with the `t5de-renderer` patch, which has the OpenGL
setting load it in place of `glRenderEngine.dll`, then choose OpenGL in Settings > Advanced. The log is
Copy both programs into a T5DE client folder built with the `t5de-renderer` patch, which has the OpenGL setting load
the adapter in place of `glRenderEngine.dll`, then choose OpenGL in Settings > Advanced. The adapter's log is
`%TEMP%\t5de-renderer.log`.