refactor(viewport): unify paper into one shader, transparent clear
Collapse the paper-space rendering path into the same shader widget the model layout uses. The PaperCanvas widget draws the paper sheet, paper entities and viewport borders underneath; the unified shader paints all content viewports on top, scissored to each viewport's rect. - Drop PaperViewportPane / PaperViewportPipeline newtype / PaperViewportPrimitive, ViewportPaneMode::Paper, ViewportPane::paper, build_primitive and build_viewport_primitive. Scene exposes only build_viewports. - view.rs: the paper branch stacks PaperCanvas + the unified shader instead of the old paper_canvas_view function. The active paper viewport's blue border, render-mode picker and ViewCube hit-area are layered in the same viewport_stack as the model layout. - Transparent shader clear (alpha=0) + alpha-blended blit pipeline so the underlying widget (container bg in model, PaperCanvas sheet in paper) shows through everywhere the shader has not painted geometry — including inside content viewport rectangles. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
417a708275
commit
8d64426087
5 changed files with 91 additions and 455 deletions
|
|
@ -772,7 +772,12 @@ impl Pipeline {
|
|||
entry_point: Some("fs_main"),
|
||||
targets: &[Some(wgpu::ColorTargetState {
|
||||
format,
|
||||
blend: None,
|
||||
// Alpha-blend the resolve texture onto the surface so a
|
||||
// transparent shader clear (alpha=0 outside any drawn
|
||||
// geometry) leaves whatever the underlying widget
|
||||
// painted — model container bg in a model layout,
|
||||
// PaperCanvas sheet in a paper layout — visible.
|
||||
blend: Some(wgpu::BlendState::ALPHA_BLENDING),
|
||||
write_mask: wgpu::ColorWrites::ALL,
|
||||
})],
|
||||
compilation_options: wgpu::PipelineCompilationOptions::default(),
|
||||
|
|
|
|||
Loading…
Reference in a new issue