mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-30 21:16:52 -06:00
cineon_log_to_lin takes the exponent scale from its caller. Interpret Footage > Cineon Settings passes 1 (Gamma 1 gives linear light) and the Cineon Converter passes 1.7, as before, so the converter's output and its default Gamma 1.7 are unchanged. The converter's Linear to Log, Log to Log reference and GPU shader return to their earlier code. A test checks the converter at its default Gamma and at 2.4, for all three conversion types, against the earlier formula.
66 lines
2.5 KiB
Rust
66 lines
2.5 KiB
Rust
//! The EffectCraft document model.
|
|
//!
|
|
//! `Project` → items (folders, compositions, footage, solids) → `Comp` → `Layer` → property tree
|
|
//! ([`props`]). Compositions sit behind `Arc` so undo snapshots share everything that did not
|
|
//! change.
|
|
|
|
#![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)]
|
|
|
|
pub mod build;
|
|
pub mod essential;
|
|
mod file_check;
|
|
pub mod limits;
|
|
pub mod props;
|
|
pub mod render_queue;
|
|
pub mod render_templates;
|
|
pub mod sequence;
|
|
pub mod styles;
|
|
pub mod tracking;
|
|
|
|
use std::collections::BTreeMap;
|
|
use std::sync::Arc;
|
|
|
|
pub use effectcraft_color::ColorSpace;
|
|
use effectcraft_color::{BlendMode, Label};
|
|
use effectcraft_time::{FrameRate, Tick};
|
|
pub use props::{Expression, FeatherFalloff, GroupKind, MaskMode, MaskMotionBlur, Node, ParamUi, PropGroup, Property, Uid, parse_path};
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
pub use effectcraft_keyframe as keyframe;
|
|
pub use effectcraft_keyframe::{Keyframe, Value};
|
|
|
|
mod comp;
|
|
mod footage;
|
|
mod item;
|
|
mod layer;
|
|
mod settings;
|
|
|
|
pub use comp::{Comp, Guide, Renderer, Resolution};
|
|
pub use footage::{AlphaMode, CineonSettings, CineonUnits, FieldOrder, Footage, FootageKind, Proxy, Solid, SourceLayer, cineon_log_to_lin};
|
|
pub use item::{Item, ItemId, ItemKind, LayerId};
|
|
pub use layer::{AutoOrient, FrameBlend, Layer, LayerSource, LightKind, MatteKind, PrimitiveKind, Quality, Sampling, Switches, TrackMatte};
|
|
pub use settings::{
|
|
APP_VERSION, BitDepth, ColorEngine, CuePoint, HdrMode, Marker, ProjectError, ProjectSettings, SCHEMA_EFFECT_SPACE, SCHEMA_VERSION, SavedView,
|
|
TimeDisplayStyle, is_newer_version, saved_by, saved_view,
|
|
};
|
|
|
|
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
|
pub struct Project {
|
|
pub schema: u32,
|
|
pub settings: ProjectSettings,
|
|
pub items: BTreeMap<ItemId, Item>,
|
|
pub next_id: u64,
|
|
/// The Render Queue (Composition ▸ Add to Render Queue).
|
|
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
|
pub render_queue: Vec<render_queue::RenderQueueItem>,
|
|
/// Render Settings / Output Module templates and their defaults.
|
|
#[serde(default, skip_serializing_if = "render_templates::RenderTemplates::is_default")]
|
|
pub render_templates: render_templates::RenderTemplates,
|
|
/// Render Queue preferences (Notify, storage overflow folders).
|
|
#[serde(default, skip_serializing_if = "render_queue::RenderQueuePrefs::is_default")]
|
|
pub render_prefs: render_queue::RenderQueuePrefs,
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests;
|