|
Blender V4.3
|
#include <BLI_compute_context.hh>
Inherited by blender::bke::ForeachGeometryElementZoneComputeContext, blender::bke::GroupNodeComputeContext, blender::bke::ModifierComputeContext, blender::bke::OperatorComputeContext, blender::bke::RepeatZoneComputeContext, and blender::bke::SimulationZoneComputeContext.
Public Member Functions | |
| ComputeContext (const char *static_type, const ComputeContext *parent) | |
| virtual | ~ComputeContext ()=default |
| const ComputeContextHash & | hash () const |
| const char * | static_type () const |
| const ComputeContext * | parent () const |
| void | print_stack (std::ostream &stream, StringRef name) const |
| virtual void | print_current_in_line (std::ostream &stream) const =0 |
Protected Attributes | |
| ComputeContextHash | hash_ |
Friends | |
| std::ostream & | operator<< (std::ostream &stream, const ComputeContext &compute_context) |
Identifies the context in which a computation happens. This context can be used to identify values logged during the computation. For more details, see the comment at the top of the file.
This class should be subclassed to implement specific contexts.
Definition at line 73 of file BLI_compute_context.hh.
|
inline |
Definition at line 92 of file BLI_compute_context.hh.
|
virtualdefault |
|
inline |
Definition at line 101 of file BLI_compute_context.hh.
References hash_.
Referenced by blender::nodes::LazyFunctionForGeometryNode::anonymous_attribute_name_for_output(), blender::nodes::gizmos::apply_gizmo_change(), blender::nodes::LazyFunctionForSimulationInputsUsage::execute_impl(), blender::nodes::LazyFunctionForViewerInputUsage::execute_impl(), blender::find_side_effect_nodes_for_active_gizmos(), blender::ed::space_node::find_sockets_on_active_gizmo_paths(), blender::nodes::gizmos::get_editable_gizmo_elem(), blender::nodes::geo_eval_log::GeoModifierLog::get_local_tree_logger(), blender::nodes::ForeachGeometryElementZoneSideEffectProvider::get_nodes_with_side_effects(), blender::nodes::GeometryNodesLazyFunctionSideEffectProvider::get_nodes_with_side_effects(), blender::nodes::RepeatZoneSideEffectProvider::get_nodes_with_side_effects(), blender::nodes::gizmo_is_used(), blender::ComputeContextBuilder::hash(), blender::nodes::node_geo_bake_cc::LazyFunctionForBakeNode::make_attribute_field(), blender::nodes::node_geo_simulation_cc::make_attribute_field(), blender::ed::geometry::run_node_group_exec(), blender::try_add_side_effect_node(), and blender::ed::view3d::geometry_nodes_gizmos::WIDGETGROUP_geometry_nodes_refresh().
|
inline |
Definition at line 111 of file BLI_compute_context.hh.
Referenced by ComputeContext(), blender::nodes::partial_eval::eval_upstream(), blender::nodes::partial_eval::get_global_node_sort_vector_left_to_right(), blender::nodes::partial_eval::get_global_node_sort_vector_right_to_left(), blender::nodes::geo_eval_log::GeoModifierLog::get_local_tree_logger(), and blender::try_add_side_effect_node().
|
pure virtual |
Print information about this specific context. This has to be implemented by each subclass.
| void blender::ComputeContext::print_stack | ( | std::ostream & | stream, |
| StringRef | name ) const |
Print the entire nested context stack.
Definition at line 34 of file compute_context.cc.
References blender::Stack< T, InlineBufferCapacity, Allocator >::is_empty(), blender::Stack< T, InlineBufferCapacity, Allocator >::pop(), and blender::Stack< T, InlineBufferCapacity, Allocator >::push().
Referenced by blender::nodes::GeometryNodesLazyFunctionLogger::dump_when_input_is_set_twice(), and blender::nodes::GeometryNodesLazyFunctionLogger::dump_when_outputs_are_missing().
|
inline |
Definition at line 106 of file BLI_compute_context.hh.
|
friend |
Definition at line 50 of file compute_context.cc.
|
protected |
The hash that uniquely identifies this context. It's a combined hash of this context as well as all the parent contexts.
Definition at line 89 of file BLI_compute_context.hh.
Referenced by ComputeContext(), blender::bke::ForeachGeometryElementZoneComputeContext::ForeachGeometryElementZoneComputeContext(), blender::bke::GroupNodeComputeContext::GroupNodeComputeContext(), hash(), blender::bke::ModifierComputeContext::ModifierComputeContext(), blender::bke::OperatorComputeContext::OperatorComputeContext(), and blender::bke::RepeatZoneComputeContext::RepeatZoneComputeContext().