Blender V5.0
node_tree_reference_lifetimes.cc File Reference
#include <iostream>
#include <fmt/format.h>
#include "BKE_node_legacy_types.hh"
#include "BKE_node_runtime.hh"
#include "BKE_node_tree_dot_export.hh"
#include "BKE_node_tree_reference_lifetimes.hh"
#include "BKE_node_tree_zones.hh"
#include "BLI_bit_group_vector.hh"
#include "BLI_bit_span_ops.hh"
#include "NOD_node_declaration.hh"
#include "NOD_socket.hh"
#include "BLI_resource_scope.hh"

Go to the source code of this file.

Classes

class  blender::bke::node_tree_reference_lifetimes::bNodeTreeBitGroupVectorOptions
class  blender::bke::node_tree_reference_lifetimes::NodeDeclaration

Namespaces

namespace  blender
namespace  blender::bke
namespace  blender::bke::node_tree_reference_lifetimes

Typedefs

using blender::bke::node_tree_reference_lifetimes::BitInt

Functions

std::ostream & blender::bke::node_tree_reference_lifetimes::operator<< (std::ostream &stream, const ReferenceSetInfo &info)
static bool blender::bke::node_tree_reference_lifetimes::socket_may_have_reference (const bNodeSocket &socket)
static bool blender::bke::node_tree_reference_lifetimes::or_into_each_other_masked (MutableBoundedBitSpan a, MutableBoundedBitSpan b, const BoundedBitSpan mask)
static bool blender::bke::node_tree_reference_lifetimes::or_into_each_other (MutableBoundedBitSpan a, MutableBoundedBitSpan b)
bool blender::bke::node_tree_reference_lifetimes::can_contain_reference (eNodeSocketDatatype socket_type)
bool blender::bke::node_tree_reference_lifetimes::can_contain_referenced_data (eNodeSocketDatatype socket_type)
static const bNodeTreeZoneblender::bke::node_tree_reference_lifetimes::get_zone_of_node_if_full (const bNodeTreeZones *zones, const bNode &node)
static Array< const aal::RelationsInNode * > blender::bke::node_tree_reference_lifetimes::prepare_relations_by_node (const bNodeTree &tree, ResourceScope &scope)
static Vector< ReferenceSetInfoblender::bke::node_tree_reference_lifetimes::find_reference_sets (const bNodeTree &tree, const Span< const aal::RelationsInNode * > &relations_by_node, Vector< int > &r_group_output_reference_sets, MultiValueMap< const bNodeTreeZone *, int > &r_output_set_sources_by_closure_zone)
static void blender::bke::node_tree_reference_lifetimes::set_initial_data_and_reference_bits (const bNodeTree &tree, const Span< ReferenceSetInfo > reference_sets, BitGroupVector<> &r_potential_data_by_socket, BitGroupVector<> &r_potential_reference_by_socket)
static BitVector blender::bke::node_tree_reference_lifetimes::get_references_coming_from_outside_zone (const bNodeTreeZone &zone, const Span< const BitGroupVector<> * > sources)
static bool blender::bke::node_tree_reference_lifetimes::pass_left_to_right (const bNodeTree &tree, const Span< const aal::RelationsInNode * > &relations_by_node, BitGroupVector<> &r_potential_data_by_socket, BitGroupVector<> &r_potential_reference_by_socket)
static void blender::bke::node_tree_reference_lifetimes::prepare_required_data_for_group_outputs (const bNodeTree &tree, const Span< ReferenceSetInfo > reference_sets, const Span< int > group_output_set_sources, const BitGroupVector<> &potential_data_by_socket, const BitGroupVector<> &potential_reference_by_socket, BitGroupVector<> &r_required_data_by_socket)
static void blender::bke::node_tree_reference_lifetimes::prepare_required_data_for_closure_outputs (const bNodeTree &tree, const Span< ReferenceSetInfo > reference_sets, MultiValueMap< const bNodeTreeZone *, int > &output_set_sources_by_closure_zone, const BitGroupVector<> &potential_data_by_socket, const BitGroupVector<> &potential_reference_by_socket, BitGroupVector<> &r_required_data_by_socket)
static void blender::bke::node_tree_reference_lifetimes::prepare_required_data_for_outputs (const bNodeTree &tree, const Span< ReferenceSetInfo > reference_sets, const Span< int > group_output_set_sources, MultiValueMap< const bNodeTreeZone *, int > &output_set_sources_by_closure_zone, const BitGroupVector<> &potential_data_by_socket, const BitGroupVector<> &potential_reference_by_socket, BitGroupVector<> &r_required_data_by_socket)
static bool blender::bke::node_tree_reference_lifetimes::pass_right_to_left (const bNodeTree &tree, const Span< const aal::RelationsInNode * > &relations_by_node, const BitGroupVector<> &potential_reference_by_socket, BitGroupVector<> &r_required_data_by_socket)
static aal::RelationsInNode blender::bke::node_tree_reference_lifetimes::get_tree_relations (const bNodeTree &tree, const Span< ReferenceSetInfo > reference_sets, const BitGroupVector<> &potential_data_by_socket, const BitGroupVector<> &potential_reference_by_socket, const BitGroupVector<> &required_data_by_socket)
static std::unique_ptr< ReferenceLifetimesInfoblender::bke::node_tree_reference_lifetimes::make_reference_lifetimes_info (const bNodeTree &tree)
bool blender::bke::node_tree_reference_lifetimes::analyse_reference_lifetimes (bNodeTree &tree)