From 0d126574bf05360fa843ebed389b25af4f7e6da9 Mon Sep 17 00:00:00 2001 From: dhkatz Date: Wed, 28 Oct 2026 04:39:15 -0700 Subject: [PATCH] Note the data types checked in the client Co-Authored-By: Claude Opus 5.5 --- docs/interface.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/interface.md b/docs/interface.md index 5130ed5..8e61222 100644 --- a/docs/interface.md +++ b/docs/interface.md @@ -67,6 +67,10 @@ virtual methods, IMVU's code only uses an engine through helpers that call its v colors; vertex buffers are made with a stride, element size and count, dynamic ones filled later through the buffer's own `update`. The objects an engine creates (buffers, textures, render targets) are declared in `include/t5de/imvu/resources.hpp`; IMVU's code deletes them through their virtual destructors. +- Checked in the client with the pass-through's logged arguments: a right-handed perspective projection (45 degree + vertical field of view, Direct3D's 0 to 1 depth) and an orthographic one for 2D, orthonormal view rotations, + opaque clear colors, ambient light with zero alpha, linear fog (1 to 50), scrolling texture transforms. Furniture + vertices are interleaved: positions and normals are 12-byte elements 32 bytes apart, so strides matter. - Still unknown: point sprites (`drawPointSprites`, particles), render targets, `CompoundRegion` (texture update regions), `newRenderTexture`'s flags, and what `beginRendering` does with a null target. MSVC orders overloaded virtual methods unlike their declaration, so our declarations never overload virtual methods.