Files
t5de-renderer/CLAUDE.md
T
dhkatzandClaude Opus 5.5 dc643d271b Add a pass-through renderer plugin
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]>
2026-10-28 03:31:00 -07:00

1.2 KiB

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 [email protected]"; 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.