Core and the app · crate

kinogaki-color-service

Core

Studio's color service: the OpenColorIO config (lib-color's built-in ACES 2.0 CG config, or a file), the working space, and the viewer's display, view, look, exposure and gamma.

Repository
Core and the app (kinogaki/studio-core)
Folder
studio/core/color
Source
2 files, 991 lines
Tests
1 file, 40 lines
depends onused by tests alonedependencies for tests alone are listed below, not drawn

What it is

Studio's color service: the OpenColorIO config (lib-color's built-in ACES 2.0 CG config, or a file), the working space, and the viewer's display, view, look, exposure and gamma. All color science is lib-color's; this picks its processors.

  • Renders arrive in ACEScg and are drawn through the viewer: ACEScg to the working space, the viewer's exposure, the display and view, the viewer's gamma (ColorManagement::render_display, on the GPU).
  • Final renders are written in the working space, tagged with it (ColorManagement::exr_output), or as display code values through their Render Output's color management, the project's target display and its view unless it says otherwise, as the 2D canvas shows them (ColorManagement::picture_output). A page composes those code values (ColorManagement::entering).
  • An emitter's color (a light's swatch) is a spectrum's at luminance 1 in the working space: a blackbody's or a published illuminant's (ColorManagement::blackbody, ColorManagement::illuminant).
  • Packages convert colors through it as the SDK's ColorService: between any of the config's spaces by name or alias, and to and from the working space. Core lends one service to formats, cooks, runners and the render. What only core asks (a file's space by the config's rules, a display profile's display, a display's views) is this type's own (ColorManagement::file_space and the rest).

Depends on

CrateRepositoryAsWhat it is
kinogaki-colorlib-colornormalColor science and color management for Kinogaki.
kinogaki-render-apiSDKnormalKinogaki's render interface: what a host (Studio) sends a render engine and what comes back, with no GPU or OS API.
kinogaki-studio-apiSDKnormalKinogaki Studio's headless plugin API.

For its tests alone

CrateRepositoryAsWhat it is
kinogaki-spectralib-rendertestsSpectral data and the color science hosts and engines share.

Third-party

None.

Used by

CrateRepositoryAsWhat it is
kinogaki-core-packageCore and the appnormalCore's own SDK package (kinogaki.core): what Studio holds whatever plugins are installed.
kinogaki-documentCore and the appnormalStudio's document: the scene, a tree of objects under one root, and the core network each object of a kind naming a context holds.
kinogaki-editorCore and the appnormalKinogaki Studio's editor: the document and everything the window shows of it, as parts one frame borrows one by one.
kinogaki-image-pipelineCore and the appnormalImagePipeline: what renders become on screen and in files.
kinogaki-networkCore and the appnormalStudio's core networks (design: core-owned networks; "Cooking DAG for nodes is studio core").
kinogaki-sceneCore and the appnormalStudio's scene: the document cooked object by object.
kinogaki-testkitCore and the appnormalKinogaki Studio's core testkit: toy packages written against the SDK alone, so core is tested with no real plugin.

Modules

Public types and traits

At the crate root

Structs ColorManagementColorSettingsPictureOutputProjectColorsRenderColor

Enums Background

By module: 3 public types and traits in 1 module

picture BackgroundPictureOutputRenderColor

Besides these, 1 public function at module level.