[feat] Add viewport debug overlay for TransformPane

- Add optional red border overlay showing viewport bounds with 10px inset
- Display viewport dimensions and device pixel ratio in overlay
- Enable via "Show Performance Overlay" checkbox in debug panel
- Helps visualize actual culling boundaries during development
This commit is contained in:
bymyself
2025-07-03 12:16:45 -07:00
parent 124db5991f
commit cd3296f49b
2 changed files with 26 additions and 0 deletions

View File

@@ -34,6 +34,7 @@
v-if="transformPaneEnabled && canvasStore.canvas && comfyAppReady"
:canvas="canvasStore.canvas as any"
:viewport="canvasViewport"
:show-debug-overlay="showPerformanceOverlay"
@raf-status-change="rafActive = $event"
@transform-update="handleTransformUpdate"
>

View File

@@ -7,6 +7,27 @@
>
<!-- Vue nodes will be rendered here -->
<slot />
<!-- Debug: Viewport bounds visualization -->
<div
v-if="props.showDebugOverlay"
class="viewport-debug-overlay"
:style="{
position: 'absolute',
left: '10px',
top: '10px',
border: '2px solid red',
width: (props.viewport?.width || 0) - 20 + 'px',
height: (props.viewport?.height || 0) - 20 + 'px',
pointerEvents: 'none',
opacity: 0.5
}"
>
<div style="position: absolute; top: 0; left: 0; background: red; color: white; padding: 2px 5px; font-size: 10px;">
Viewport: {{ props.viewport?.width }}x{{ props.viewport?.height }}
DPR: {{ devicePixelRatio }}
</div>
</div>
</div>
</template>
@@ -19,10 +40,14 @@ import { useTransformState } from '@/composables/element/useTransformState'
interface TransformPaneProps {
canvas?: LGraphCanvas
viewport?: { width: number; height: number }
showDebugOverlay?: boolean
}
const props = defineProps<TransformPaneProps>()
// Get device pixel ratio for display
const devicePixelRatio = window.devicePixelRatio || 1
// Transform state management
const {
camera,