Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (10)
Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review. WalkthroughRendering code now routes viewport setup and clear operations through the active render backend. Gamma updates use render-backend or WW3D APIs. Existing viewport dimensions, clear parameters, and gamma arguments remain unchanged. ChangesRender Backend Integration
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~12 minutes Change: Refactor Suggested reviewers: Merge Risk: ⚪ Minimal · up to The rendering calls now use backend-facing APIs without a concrete regression identified in the supplied evidence. No established issue warrants delaying merge. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to Existing rendering values and display restrictions are preserved, and no new security issue was established. Whether every caller remains within the rendering lifetime has not been fully verified. Retained concerns Security review detailsSecurity Blast Radius
Security Findings and Attack Paths
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
mirelle7
left a comment
There was a problem hiding this comment.
This entire PR is logically structured. Had one NIT question about styling and I would love to have answers for these. But I don't think these NIT are a hard blocker. But could repeat in following PRs.
| vp.y = (unsigned int)(Viewport.Min.Y * (float)height); | ||
| vp.width = (unsigned int)((Viewport.Max.X - Viewport.Min.X) * (float)width); | ||
| vp.height = (unsigned int)((Viewport.Max.Y - Viewport.Min.Y) * (float)height); | ||
| vp.min_z = ZBufferMin; |
There was a problem hiding this comment.
This is maybe a Nit question. But does this belong there?
There was a problem hiding this comment.
This is a one-to-one swap of the old D3DVIEWPORT8 fill. Do you mean the struct should have a constructor, or that the viewport setup should live somewhere other than the camera? Or something else?
| vp.MaxZ = 1; | ||
| DX8Wrapper::Set_Viewport(&vp); | ||
| RenderBackendViewport vp; | ||
| vp.x = 0; |
There was a problem hiding this comment.
Same as here. This is maybe a Nit question. But does this belong there? I do like this change. But not sure if this is a blocker.
#2613 put
Clear,Set_ViewportandSet_GammaonIRenderBackend, but onlyWW3Dcalls them through it. The other callers still go toDX8Wrapperdirectly.Now the remaining callers in Core and Zero Hour go through the backend.
CameraClass::ApplyandRender2DClassfill aRenderBackendViewportinstead of aD3DVIEWPORT8. W3DView callsWW3D::Set_Gamma.W3DDisplaycalls the backend directly because it passesuselimit = false, whichWW3D::Set_Gammacannot. The interface does not change.W3DProfilerFrameCapturekeeps its twoSet_Viewportcalls because it drives the D3D device directly.Todo: