Completes the 3D frame by rendering overlays, resolving MSAA, applying post-effects, and presenting.
Takes no parameters.
Returns nothing.
3D Graphics
Parameters & Returns
Parameters
This function takes no parameters.
Returns
Void
Quick Summary
Completes the 3D frame by rendering overlays, resolving MSAA, applying post-effects, and presenting.
Takes no parameters.
Returns nothing.
Technical Exegesis...
Completes the 3D frame by rendering overlays, resolving MSAA, applying post-effects, and presenting. Takes no parameters. Must be called after b3dCls3D and all rendering commands each frame.
Completes the 3D frame by rendering overlays, resolving MSAA, applying post-effects, and presenting. Takes no parameters. Must be called after b3dCls3D and all rendering commands each frame. Execution sequence: (1) Render 2D overlay (text, sprites, UI) over 3D scene via BBR_2DOverlay_Render, (2) If MSAA enabled (sample count > 1), resolve MSAA render target to back buffer via ResolveSubresource, (3) Apply screen shader if set via b3dSetScreenShader, or radiance effect if enabled, (4) Transition render target from RENDER_TARGET to PRESENT state using resource barrier, (5) Execute command list via g_commandListManager->ExecuteCommandList, submits to command queue, (6) Call Present() on swap chain, displays frame to screen. VSYNC behavior: mode 1 uses syncInterval=1 (60fps cap), modes 2/3 use syncInterval=0 (unlimited). Tearing flag set for modes 2/3 if supported. Returns nothing.
This function finalizes frame rendering and synchronizes with display. 2D overlay enables HUD, debug text, UI over 3D world - rendered last for correct Z order. MSAA resolve converts multi-sample render target to single-sample back buffer - required before Present(). ResolveSubresource performs hardware-accelerated averaging of samples. Screen shader use case: post-process effects (bloom, tone mapping, color grading, vignette). Radiance effect: simulated light scattering. Resource barrier ensures render target writable during rendering, readable during resolve/shader, presentable for Present(). CommandListManager executes via command queue, adds fence signal, tracks completion. Present() swaps front/back buffers - flips display surface. SyncInterval 0 = no VSYNC, 1 = VSYNC to monitor refresh (60Hz or higher). DXGI_PRESENT_ALLOW_TEARING flag enables variable refresh rate (G-SYNC, FreeSync). Frame latency waitable object (waited in b3dCls3D) signals after Present completes. Canvas support: when canvas active, uses canvas swap chain, canvas render targets. Essential final call every frame - displays rendered content. Pair with b3dCls3D to bracket frame rendering.