28using namespace nodes::derived_node_tree_types;
77Result *NodeOperation::get_preview_result()
86 if (output_result.should_compute()) {
87 return &output_result;
92 if (
node()->input_sockets().is_empty()) {
103 if (input_result.is_allocated()) {
104 return &input_result;
#define BLI_assert_unreachable()
void GPU_debug_group_end()
void GPU_debug_group_begin(const char *name)
bool contains(const Key &key) const
virtual Profiler * profiler() const
Result create_result(ResultType type, ResultPrecision precision)
void compute_results_reference_counts(const Schedule &schedule)
const DNode & node() const
const bNode & bnode() const
void compute_preview() override
bool should_compute_output(StringRef identifier)
NodeOperation(Context &context, DNode node)
Result & get_result(StringRef identifier)
void populate_result(StringRef identifier, Result result)
Context & context() const
Result & get_input(StringRef identifier) const
void declare_input_descriptor(StringRef identifier, InputDescriptor descriptor)
void set_node_evaluation_time(bNodeInstanceKey node_instance_key, timeit::Nanoseconds time)
void set_reference_count(int count)
const DTreeContext * context() const
int number_of_inputs_linked_to_output_conditioned(DOutputSocket output, FunctionRef< bool(DInputSocket)> condition)
void compute_preview(Context &context, const nodes::DNode &node, const Result &input_result)
ResultType get_node_socket_result_type(const bNodeSocket *socket)
InputDescriptor input_descriptor_from_input_socket(const bNodeSocket *socket)
bool is_socket_available(const bNodeSocket *socket)
bool is_node_preview_needed(const DNode &node)
Clock::time_point TimePoint