t5deRenderEngine.dll implements IMVU Classic's renderer plugin interface by wrapping IMVU's own OpenGL renderer, and logs what each frame calls, to prove our declarations of the interface. Built with CMake presets for 32-bit MSVC; docs/interface.md has the findings. Co-Authored-By: Claude Opus 5.5 <[email protected]>
22 lines
1.2 KiB
Markdown
22 lines
1.2 KiB
Markdown
# t5de-renderer
|
|
|
|
A renderer plugin for IMVU Classic (see README.md and docs/interface.md). Part of T5DE; the patches and the patcher
|
|
are in the `t5de` repository (git.t5de.dev/t5de/t5de, usually checked out beside this one).
|
|
|
|
## Rules
|
|
|
|
- Never commit IMVU's code: no decompiled or disassembled code, no client binaries, no Ghidra projects. Our own
|
|
declarations of IMVU's interfaces (names, signatures, layouts we worked out) and notes in our own words are fine.
|
|
- Test with a throwaway IMVU account, never a real one.
|
|
- Commits: author "dhkatz <dev@t5de.dev>"; never the user's real name or email.
|
|
- The user wants native code readable and auditable, built with modern CMake (targets, presets).
|
|
|
|
## Notes
|
|
|
|
- The plugin must match IMVU's ABI: 32-bit, MSVC (cl or clang-cl; MinGW's C++ ABI differs), `__thiscall`
|
|
virtual methods in IMVU's vtable order, Boost 1.61's `shared_ptr` layout. Exceptions must not cross into IMVU's
|
|
code (a different C runtime); the CRT is linked statically.
|
|
- Ghidra 12.2 (Java 25) is at `%LOCALAPPDATA%\Programs\ghidra_12.2_PUBLIC`; projects in
|
|
`%LOCALAPPDATA%\t5de-dev\ghidra`, analysed headless (`support\analyzeHeadless.bat`). The client to analyse is the
|
|
`t5de` checkout's `.cache/<version>/install`.
|