mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-22 04:58:11 +08:00
committed by
Keavon Chambers
parent
79ad3e7908
commit
74bfd630a9
+26
-1
@@ -105,12 +105,37 @@ static DOCUMENT_NODE_TYPES: &[DocumentNodeType] = &[
|
||||
DocumentInputType {
|
||||
name: "Path",
|
||||
data_type: FrontendGraphDataType::Text,
|
||||
default: NodeInput::value(TaggedValue::String(String::new()), true),
|
||||
default: NodeInput::value(TaggedValue::String(String::new()), false),
|
||||
},
|
||||
],
|
||||
outputs: &[FrontendGraphDataType::Raster],
|
||||
properties: node_properties::gpu_map_properties,
|
||||
},
|
||||
#[cfg(feature = "quantization")]
|
||||
DocumentNodeType {
|
||||
name: "QuantizeImage",
|
||||
category: "Image Adjustments",
|
||||
identifier: NodeIdentifier::new("graphene_std::quantization::GenerateQuantizationNode", &[concrete!("&TypeErasedNode")]),
|
||||
inputs: &[
|
||||
DocumentInputType {
|
||||
name: "Image",
|
||||
data_type: FrontendGraphDataType::Raster,
|
||||
default: NodeInput::value(TaggedValue::Image(Image::empty()), true),
|
||||
},
|
||||
DocumentInputType {
|
||||
name: "samples",
|
||||
data_type: FrontendGraphDataType::Number,
|
||||
default: NodeInput::value(TaggedValue::U32(100), false),
|
||||
},
|
||||
DocumentInputType {
|
||||
name: "Fn index",
|
||||
data_type: FrontendGraphDataType::Number,
|
||||
default: NodeInput::value(TaggedValue::U32(0), false),
|
||||
},
|
||||
],
|
||||
outputs: &[FrontendGraphDataType::Raster],
|
||||
properties: node_properties::quantize_properties,
|
||||
},
|
||||
DocumentNodeType {
|
||||
name: "Invert RGB",
|
||||
category: "Image Adjustments",
|
||||
|
||||
+20
@@ -141,6 +141,20 @@ fn number_widget(document_node: &DocumentNode, node_id: NodeId, index: usize, na
|
||||
})),
|
||||
])
|
||||
}
|
||||
if let NodeInput::Value {
|
||||
tagged_value: TaggedValue::U32(x),
|
||||
exposed: false,
|
||||
} = document_node.inputs[index]
|
||||
{
|
||||
widgets.extend_from_slice(&[
|
||||
WidgetHolder::unrelated_separator(),
|
||||
WidgetHolder::new(Widget::NumberInput(NumberInput {
|
||||
value: Some(x as f64),
|
||||
on_update: update_value(|x: &NumberInput| TaggedValue::U32(x.value.unwrap() as u32), node_id, index),
|
||||
..NumberInput::default()
|
||||
})),
|
||||
])
|
||||
}
|
||||
widgets
|
||||
}
|
||||
|
||||
@@ -199,6 +213,12 @@ pub fn posterize_properties(document_node: &DocumentNode, node_id: NodeId, _cont
|
||||
vec![LayoutGroup::Row { widgets: value }]
|
||||
}
|
||||
|
||||
pub fn quantize_properties(document_node: &DocumentNode, node_id: NodeId, _context: &mut NodePropertiesContext) -> Vec<LayoutGroup> {
|
||||
let value = number_widget(document_node, node_id, 1, "Levels", NumberInput::new().min(1.).max(1000.).int(), true);
|
||||
let index = number_widget(document_node, node_id, 1, "Fit Fn Index", NumberInput::new().min(0.).max(2.).int(), true);
|
||||
|
||||
vec![LayoutGroup::Row { widgets: value }, LayoutGroup::Row { widgets: index }]
|
||||
}
|
||||
pub fn exposure_properties(document_node: &DocumentNode, node_id: NodeId, _context: &mut NodePropertiesContext) -> Vec<LayoutGroup> {
|
||||
let value = number_widget(document_node, node_id, 1, "Value", NumberInput::new().min(-3.).max(3.), true);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user