Metal/WebGPU: Clip view scissor and render area to the framebuffer. Fixes #3864. (#3866)

This commit is contained in:
Branimir Karadžić
2026-08-02 02:51:44 +00:00
committed by GitHub
parent 47320e39a8
commit e75ab293cc
2 changed files with 33 additions and 16 deletions
+7 -3
View File
@@ -5962,11 +5962,15 @@ m_resolution.formatColor = TextureFormat::BGRA8;
;
viewState.m_rect = _render->m_view[view].m_rect;
const Rect& viewRect = _render->m_view[view].m_rect;
const Rect& clippedRect = _render->m_view[view].m_clippedRect;
Rect scissorRect = _render->m_view[view].m_scissor;
const Rect fbRect(0, 0, bx::narrowCast<uint16_t>(fb.m_width), bx::narrowCast<uint16_t>(fb.m_height) );
const Rect& viewRect = _render->m_view[view].m_rect;
Rect clippedRect;
clippedRect.setIntersect(_render->m_view[view].m_clippedRect, fbRect);
Rect scissorRect = _render->m_view[view].m_scissor;
scissorRect.intersect(fbRect);
viewHasScissor = !scissorRect.isZero();