Implement layer visibility toggle; log export color range
- Wire MenuAction::ToggleLayerVisibility (was a stub) to flip the active layer's `visible` flag via SetLayerPropertiesAction (undoable). This is what the SVG-export visibility fix depends on, and the "Hide/Show Layer" menu item now works. - Log the resolved color range in the zero-copy H.264 path to diagnose whether `full_range` reaches the encoder (the VAAPI driver may still omit the SPS VUI full_range flag). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
b301c63387
commit
9717289271
|
|
@ -921,6 +921,8 @@ impl ExportOrchestrator {
|
||||||
let bitrate = settings.quality.bitrate_kbps();
|
let bitrate = settings.quality.bitrate_kbps();
|
||||||
let fr = framerate.round() as i32;
|
let fr = framerate.round() as i32;
|
||||||
let full = settings.color_range.is_full();
|
let full = settings.color_range.is_full();
|
||||||
|
println!("🎬 [EXPORT] zero-copy H.264 color range: {} (full_range={})",
|
||||||
|
settings.color_range.name(), full);
|
||||||
let on_shared_device = shared_device.is_some();
|
let on_shared_device = shared_device.is_some();
|
||||||
// Prefer the shared device → decode→composite→encode stay GPU-resident on one device.
|
// Prefer the shared device → decode→composite→encode stay GPU-resident on one device.
|
||||||
// Without it, the encoder builds its own device (decode still downloads to CPU per Step 1's
|
// Without it, the encoder builds its own device (decode still downloads to CPU per Step 1's
|
||||||
|
|
|
||||||
|
|
@ -3727,8 +3727,21 @@ impl EditorApp {
|
||||||
// TODO: Implement delete layer
|
// TODO: Implement delete layer
|
||||||
}
|
}
|
||||||
MenuAction::ToggleLayerVisibility => {
|
MenuAction::ToggleLayerVisibility => {
|
||||||
println!("Menu: Toggle Layer Visibility");
|
use lightningbeam_core::actions::{SetLayerPropertiesAction, set_layer_properties::LayerProperty};
|
||||||
// TODO: Implement toggle layer visibility
|
use lightningbeam_core::layer::LayerTrait;
|
||||||
|
if let Some(layer_id) = self.active_layer_id {
|
||||||
|
let cur = self.action_executor.document()
|
||||||
|
.get_layer(&layer_id)
|
||||||
|
.map(|l| l.visible());
|
||||||
|
if let Some(cur) = cur {
|
||||||
|
let action = SetLayerPropertiesAction::new(layer_id, LayerProperty::Visible(!cur));
|
||||||
|
if let Err(e) = self.action_executor.execute(Box::new(action)) {
|
||||||
|
eprintln!("Toggle layer visibility: {}", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
println!("Toggle Layer Visibility: no active layer");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
MenuAction::ShowMasterTrack => {
|
MenuAction::ShowMasterTrack => {
|
||||||
// Toggle show_master_track on all Timeline pane instances
|
// Toggle show_master_track on all Timeline pane instances
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue