22using namespace nodes::derived_node_tree_types;
44 const std::optional<int> dimensions = std::nullopt);
54 FunctionRef<
bool(
DNode)> condition);
90template<
typename Function>
inline void parallel_for(
const int2 range,
const Function &function)
93 for (const int64_t y : sub_y_range) {
94 for (const int64_t x : IndexRange(range.x)) {
struct bNodeSocket bNodeSocket
int number_of_inputs_linked_to_output_conditioned(DOutputSocket output, FunctionRef< bool(DInputSocket)> condition)
ResultType socket_data_type_to_result_type(const eNodeSocketDatatype data_type, const std::optional< int > dimensions=std::nullopt)
bool is_output_linked_to_node_conditioned(DOutputSocket output, FunctionRef< bool(DNode)> condition)
void compute_dispatch_threads_at_least(gpu::Shader *shader, int2 threads_range, int2 local_size=int2(16))
DSocket get_input_origin_socket(DInputSocket input)
DOutputSocket find_preview_output_socket(const DNode &node)
ResultType get_node_socket_result_type(const bNodeSocket *socket)
DOutputSocket get_output_linked_to_input(DInputSocket input)
InputDescriptor input_descriptor_from_input_socket(const bNodeSocket *socket)
void parallel_for(const int2 range, const Function &function)
bool is_pixel_node(DNode node)
bool is_socket_available(const bNodeSocket *socket)
bool is_node_preview_needed(const DNode &node)
void parallel_for(const IndexRange range, const int64_t grain_size, const Function &function, const TaskSizeHints &size_hints=detail::TaskSizeHints_Static(1))
VecBase< int32_t, 2 > int2