mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-15 22:28:10 +08:00
Desktop: Execute editor and node graph natively (#2955)
* Desktop: Execute editor and node graph natively * Remove decouple execution feature * Disable feature gate for native communication functions * Avoid ininite message loop on an infinite canvas * Add any lint exception * Build evaluation loop * Fix texture passing message * Cleanup * More cleanup --------- Co-authored-by: Timon Schelling <me@timon.zip>
This commit is contained in:
@@ -427,22 +427,14 @@ struct InspectState {
|
||||
}
|
||||
/// The resulting value from the temporary inspected during execution
|
||||
#[derive(Clone, Debug, Default)]
|
||||
#[cfg_attr(feature = "decouple-execution", derive(serde::Serialize, serde::Deserialize))]
|
||||
pub struct InspectResult {
|
||||
#[cfg(not(feature = "decouple-execution"))]
|
||||
introspected_data: Option<Arc<dyn std::any::Any + Send + Sync + 'static>>,
|
||||
#[cfg(feature = "decouple-execution")]
|
||||
introspected_data: Option<TaggedValue>,
|
||||
pub inspect_node: NodeId,
|
||||
}
|
||||
|
||||
impl InspectResult {
|
||||
pub fn take_data(&mut self) -> Option<Arc<dyn std::any::Any + Send + Sync + 'static>> {
|
||||
#[cfg(not(feature = "decouple-execution"))]
|
||||
return self.introspected_data.clone();
|
||||
|
||||
#[cfg(feature = "decouple-execution")]
|
||||
return self.introspected_data.take().map(|value| value.to_any());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -487,8 +479,6 @@ impl InspectState {
|
||||
fn access(&self, executor: &DynamicExecutor) -> Option<InspectResult> {
|
||||
let introspected_data = executor.introspect(&[self.monitor_node]).inspect_err(|e| warn!("Failed to introspect monitor node {e}")).ok();
|
||||
// TODO: Consider displaying the error instead of ignoring it
|
||||
#[cfg(feature = "decouple-execution")]
|
||||
let introspected_data = introspected_data.as_ref().and_then(|data| TaggedValue::try_from_std_any_ref(data).ok());
|
||||
|
||||
Some(InspectResult {
|
||||
inspect_node: self.inspect_node,
|
||||
|
||||
Reference in New Issue
Block a user