Wrap IMVU's Direct3D renderer in the pass-through

IMVU's OpenGL renderer needs a real graphics driver; Direct3D also runs on Windows' basic display driver and is what most players use. The log can now be read while the client runs. Verified in rooms: every call goes through.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
dhkatzandClaude Opus 5.5 committed 2026-10-28 04:28:26 -07:00
1 parent dc643d271b
commit 3c28a8794b
6 files changed
+52 -35

No files matched your search

+12
View File
@@ -112,4 +112,16 @@ static_assert(sizeof(PiRenderEngine) == 12, "vtable pointer, magic, size");
using IsRenderEngineSupported = int(__cdecl*)();
using CreateRenderEngine = SharedPtr<PiRenderEngine>(__cdecl*)(SharedPtr<INativeWindow> window);
// The renderers SceneWindow.dll's createRenderer makes (values from _avatarwindow.pyd's RendererType).
enum class RendererType : int {
Direct3D = 1, // RenderEngineDx, Direct3D 9
OpenGL = 2, // the plugin glRenderEngine.dll
SwiftShader = 9, // RenderEngineDx on swiftshader.dll
};
// SceneWindow.dll's createRenderer(boost::shared_ptr<INativeWindow>, RendererType), exported by this name.
using CreateRenderer = SharedPtr<PiRenderEngine>(__cdecl*)(SharedPtr<INativeWindow> window, RendererType type);
inline constexpr const char* createRendererName =
"?createRenderer@@YA?AV?$shared_ptr@VPiRenderEngine@@@boost@@V?$shared_ptr@VINativeWindow@@@2@W4RendererType@@@Z";
} // namespace t5de::imvu