Skip to content

Shared

Purpose

Owns reusable editor UI building blocks shared across Snap Studio Pro panels.

This territory contains common IMGUI controls, reusable panel sections, shared interaction helpers, drag-and-drop systems, progress displays, reusable capture UI, theme-aware styling helpers, and lightweight editor UX infrastructure.

Shared exists to reduce duplicated editor UI behaviour across the Snap Studio Pro editor.

Owns

  • Shared IMGUI helpers
  • Shared reusable controls
  • Shared panel validation utilities
  • Shared drag-and-drop systems
  • Shared progress UI
  • Shared capture-facing UI sections
  • Shared editor visual effects
  • Shared panel styling/theme helpers
  • Reusable editor interaction utilities

Does NOT Own

  • Feature workflow orchestration
  • Rendering implementation
  • Preview scene lifecycle ownership
  • Export execution
  • Pipeline implementation
  • Feature-domain business logic

Allowed Dependencies

Shared systems may depend on:

  • Unity Editor IMGUI APIs
  • Shared styles/themes
  • Lightweight abstractions/contracts
  • Preview facades where required
  • Shared models/settings

Shared should avoid depending on:

  • rendering implementation systems
  • export execution systems
  • feature orchestration systems
  • preview lifecycle systems

Notes

Shared is reusable editor UI infrastructure territory.

It owns: - reusable widgets - editor interaction helpers - reusable UI sections - visual editor effects - lightweight panel-state helpers

It does NOT own: - rendering - export workflows - capture execution - feature orchestration

If a shared helper becomes heavily coupled to one workflow or feature domain, it likely belongs in that owning territory instead.

The goal is: - reducing duplicated editor UI code - improving consistency - centralizing reusable UX behaviour

without creating hidden workflow systems.

Future Candidates

  • Continue extracting reusable editor interaction patterns where duplication appears.
  • Avoid turning Shared into a generic dumping ground.
  • Keep shared systems lightweight, presentation-focused, and reusable.
  • Maintain clear separation between reusable UI infrastructure and feature orchestration.