Skip to content

Preview

Purpose

The Preview folder owns Snap Studio Pro’s live preview orchestration layer.

It coordinates preview scene lifecycle, prefab loading, camera fitting, background placement, preview rendering, rotation state, style effects, volume setup, and preview-facing state.

This territory is intentionally coordination-heavy. Preview is where the editor assembles the systems required to show, interact with, and capture the currently selected prefab.

Owns

  • Preview scene lifecycle coordination
  • Preview prefab instance management
  • Preview camera coordination
  • Live preview rendering coordination
  • Background placement and preview application
  • Rotation/input-facing preview state
  • Preview style state
  • Preview volume coordination
  • Preview-facing facades and context contracts

Does NOT Own

  • Low-level rendering implementation
  • Export workflow ownership
  • Editor window layout/navigation
  • Persistent preset file ownership
  • General infrastructure services
  • Pipeline-specific rendering implementations
  • Panel-specific UI drawing

Allowed Dependencies

Preview may depend on:

  • Abstractions
  • Core rendering contracts
  • Models
  • Enums
  • Infrastructure utilities where needed
  • Feature services when applying feature-owned settings to the preview
  • Pipeline routing through established rendering/volume abstractions

Preview should avoid depending directly on panel UI.

Notes

Preview is not infrastructure.

It is the application-facing preview composition layer. Classes here may coordinate multiple systems, but should delegate implementation details to focused controllers, services, facades, or feature systems.

Large coordination classes are acceptable here when they represent real editor workflow composition rather than hidden implementation detail.

The main architectural rule is simple:

Preview coordinates what the user sees. Rendering implements how pixels are produced. Features own feature workflows. Panels draw and collect editor UI input.

Future Candidates

  • Keep XML comments focused on ownership and orchestration intent.
  • Avoid splitting further unless behaviour is protected and the new boundary is obvious.
  • Watch for rendering implementation drifting back into Preview.
  • Watch for panel-specific UI logic drifting into Preview.