1
Get ObjReader & Documentation / Re: ObjReader 4.00 - the .ORB challenge
« Last post by Patrice Terrier on August 26, 2025, 12:23:06 pm »About ORV_64 v3.10
(sample app for embedding ObjReader via ORDLL64.dll.)

What it is
ORV_64 is a complete C/C++ (VS2022, x64) example that hosts the ObjReader engine through ORDLL64.dll.
The DLL exposes a focused C API, just enough to create a viewer window, load a model, animate it, and query stats.
So you can render ObjReader content inside your own application UI.
What ORDLL64.dll is
Why v3.10 matters, native .ORB compatibility
Typical integration flow
(sample app for embedding ObjReader via ORDLL64.dll.)

What it is
ORV_64 is a complete C/C++ (VS2022, x64) example that hosts the ObjReader engine through ORDLL64.dll.
The DLL exposes a focused C API, just enough to create a viewer window, load a model, animate it, and query stats.
So you can render ObjReader content inside your own application UI.
What ORDLL64.dll is
- The embeddable runtime of ObjReader (Win64).
- Owns the renderer, model loading (.orb, .obj/.mtl), animation timer, and optional audio sync.
- You supply the top-level window and message loop; the DLL creates and manages its child viewport.
Why v3.10 matters, native .ORB compatibility
- Cuts startup time (no text parsing/reindexing).
- Reduces disk size for large meshes.
- Simplifies packaging: ship model.orb + textures in the same folder.
Typical integration flow
- Create your main window (CreateWindowExW).
- Call OR_CreateWindow(...) to create the viewer child HWND.
- (Optional) OR_SetSwapInterval(TRUE) for V-sync, OR_TimerEnable(TRUE) to animate.
- Load a file via:
Code: [Select]
OR_ProcessCommandLine(L"path\\to\\model.orb");
- On WM_SIZE, resize the child window.
- Populate your UI with getters (OR_Vertices(), OR_Triangles(), …).
- Offer controls: OR_ViewReset(), OR_Get/SetAudioVolume(), OR_Screen_Shot().
- On exit, call OR_CloseAll().
- Create/host: OR_CreateWindow, OR_CloseAll
- Open model: OR_ProcessCommandLine (accepts .orb and .obj)
- Animation & timing: OR_TimerEnable, OR_GetAniTick
- Display options: OR_SetSwapInterval, OR_ViewReset, OR_Screen_Shot
- Info for UI:
- OR_Version, OR_ObjFileName
- OR_Vertices, OR_Triangles, OR_Indices
- OR_Meshes, OR_Materials, OR_ObjSize, OR_LoadTime
- OR_DetectGPU, OR_GPUinfo, OR_GPU, OR_CPU
- OR_Version, OR_ObjFileName
- Audio: OR_GetAudioVolume, OR_SetAudioVolume
- ORV_64 Version 3.10, is attached to this post.