Cleanup: Geometry Nodes: remove legacy type from socket item accessor

The use of legacy types is discouraged and it's easy to use the node idname in all cases here.

Pull Request: https://projects.blender.org/blender/blender/pulls/138858
This commit is contained in:
Jacques Lucke
2025-05-14 10:19:29 +02:00
parent 5a882c7628
commit 4a50809daf
13 changed files with 9 additions and 25 deletions

View File

@@ -24,7 +24,7 @@
namespace blender::nodes::socket_items::ops {
inline PointerRNA get_active_node_to_operate_on(bContext *C, const int node_type)
inline PointerRNA get_active_node_to_operate_on(bContext *C, const StringRef node_idname)
{
SpaceNode *snode = CTX_wm_space_node(C);
if (!snode) {
@@ -50,7 +50,7 @@ inline PointerRNA get_active_node_to_operate_on(bContext *C, const int node_type
active_node = const_cast<bNode *>(zone->output_node);
}
}
if (active_node->type_legacy != node_type) {
if (active_node->idname != node_idname) {
return PointerRNA_NULL;
}
return RNA_pointer_create_discrete(&snode->edittree->id, &RNA_Node, active_node);
@@ -68,7 +68,7 @@ inline void update_after_node_change(bContext *C, const PointerRNA node_ptr)
template<typename Accessor> inline bool editable_node_active_poll(bContext *C)
{
return get_active_node_to_operate_on(C, Accessor::node_type).data != nullptr;
return get_active_node_to_operate_on(C, Accessor::node_idname).data != nullptr;
}
template<typename Accessor>
@@ -83,7 +83,7 @@ inline void remove_active_item(wmOperatorType *ot,
ot->poll = editable_node_active_poll<Accessor>;
ot->exec = [](bContext *C, wmOperator * /*op*/) -> wmOperatorStatus {
PointerRNA node_ptr = get_active_node_to_operate_on(C, Accessor::node_type);
PointerRNA node_ptr = get_active_node_to_operate_on(C, Accessor::node_idname);
bNode &node = *static_cast<bNode *>(node_ptr.data);
SocketItemsRef ref = Accessor::get_items_from_node(node);
if (*ref.items_num > 0) {
@@ -107,7 +107,7 @@ inline void remove_item_by_index(wmOperatorType *ot,
ot->poll = editable_node_active_poll<Accessor>;
ot->exec = [](bContext *C, wmOperator *op) -> wmOperatorStatus {
PointerRNA node_ptr = get_active_node_to_operate_on(C, Accessor::node_type);
PointerRNA node_ptr = get_active_node_to_operate_on(C, Accessor::node_idname);
bNode &node = *static_cast<bNode *>(node_ptr.data);
const int index_to_remove = RNA_int_get(op->ptr, "index");
SocketItemsRef ref = Accessor::get_items_from_node(node);
@@ -133,7 +133,7 @@ inline void add_item(wmOperatorType *ot,
ot->poll = editable_node_active_poll<Accessor>;
ot->exec = [](bContext *C, wmOperator * /*op*/) -> wmOperatorStatus {
PointerRNA node_ptr = get_active_node_to_operate_on(C, Accessor::node_type);
PointerRNA node_ptr = get_active_node_to_operate_on(C, Accessor::node_idname);
bNode &node = *static_cast<bNode *>(node_ptr.data);
SocketItemsRef ref = Accessor::get_items_from_node(node);
const typename Accessor::ItemT *active_item = nullptr;
@@ -192,7 +192,7 @@ inline void move_active_item(wmOperatorType *ot,
ot->poll = editable_node_active_poll<Accessor>;
ot->exec = [](bContext *C, wmOperator *op) -> wmOperatorStatus {
PointerRNA node_ptr = get_active_node_to_operate_on(C, Accessor::node_type);
PointerRNA node_ptr = get_active_node_to_operate_on(C, Accessor::node_idname);
bNode &node = *static_cast<bNode *>(node_ptr.data);
const MoveDirection direction = MoveDirection(RNA_enum_get(op->ptr, "direction"));

View File

@@ -53,7 +53,7 @@ static void draw_items_list_with_operators(const bContext *C,
const bNodeTree &tree,
const bNode &node)
{
BLI_assert(Accessor::node_type == node.type_legacy);
BLI_assert(Accessor::node_idname == node.idname);
PointerRNA node_ptr = RNA_pointer_create_discrete(
const_cast<ID *>(&tree.id), &RNA_Node, const_cast<bNode *>(&node));
@@ -103,7 +103,7 @@ static void draw_active_item_props(const bNodeTree &tree,
const FunctionRef<void(PointerRNA *item_ptr)> draw_item)
{
using ItemT = typename Accessor::ItemT;
BLI_assert(Accessor::node_type == node.type_legacy);
BLI_assert(Accessor::node_idname == node.idname);
SocketItemsRef<ItemT> ref = Accessor::get_items_from_node(const_cast<bNode &>(node));
if (*ref.active_index < 0) {

View File

@@ -296,7 +296,6 @@ NOD_REGISTER_NODE(node_register)
namespace blender::nodes {
StructRNA *CaptureAttributeItemsAccessor::item_srna = &RNA_NodeGeometryCaptureAttributeItem;
int CaptureAttributeItemsAccessor::node_type = GEO_NODE_CAPTURE_ATTRIBUTE;
void CaptureAttributeItemsAccessor::blend_write_item(BlendWriter *writer, const ItemT &item)
{

View File

@@ -924,7 +924,6 @@ std::unique_ptr<LazyFunction> get_bake_lazy_function(
}
StructRNA *BakeItemsAccessor::item_srna = &RNA_NodeGeometryBakeItem;
int BakeItemsAccessor::node_type = GEO_NODE_BAKE;
void BakeItemsAccessor::blend_write_item(BlendWriter *writer, const ItemT &item)
{

View File

@@ -315,7 +315,6 @@ NOD_REGISTER_NODE(node_register)
namespace blender::nodes {
StructRNA *ClosureInputItemsAccessor::item_srna = &RNA_NodeGeometryClosureInputItem;
int ClosureInputItemsAccessor::node_type = GEO_NODE_CLOSURE_OUTPUT;
void ClosureInputItemsAccessor::blend_write_item(BlendWriter *writer, const ItemT &item)
{
@@ -328,7 +327,6 @@ void ClosureInputItemsAccessor::blend_read_data_item(BlendDataReader *reader, It
}
StructRNA *ClosureOutputItemsAccessor::item_srna = &RNA_NodeGeometryClosureOutputItem;
int ClosureOutputItemsAccessor::node_type = GEO_NODE_CLOSURE_OUTPUT;
void ClosureOutputItemsAccessor::blend_write_item(BlendWriter *writer, const ItemT &item)
{

View File

@@ -153,7 +153,6 @@ NOD_REGISTER_NODE(node_register)
namespace blender::nodes {
StructRNA *CombineBundleItemsAccessor::item_srna = &RNA_NodeGeometryCombineBundleItem;
int CombineBundleItemsAccessor::node_type = GEO_NODE_COMBINE_BUNDLE;
void CombineBundleItemsAccessor::blend_write_item(BlendWriter *writer, const ItemT &item)
{

View File

@@ -153,7 +153,6 @@ namespace blender::nodes {
StructRNA *EvaluateClosureInputItemsAccessor::item_srna =
&RNA_NodeGeometryEvaluateClosureInputItem;
int EvaluateClosureInputItemsAccessor::node_type = GEO_NODE_EVALUATE_CLOSURE;
void EvaluateClosureInputItemsAccessor::blend_write_item(BlendWriter *writer, const ItemT &item)
{
@@ -167,7 +166,6 @@ void EvaluateClosureInputItemsAccessor::blend_read_data_item(BlendDataReader *re
StructRNA *EvaluateClosureOutputItemsAccessor::item_srna =
&RNA_NodeGeometryEvaluateClosureOutputItem;
int EvaluateClosureOutputItemsAccessor::node_type = GEO_NODE_EVALUATE_CLOSURE;
void EvaluateClosureOutputItemsAccessor::blend_write_item(BlendWriter *writer, const ItemT &item)
{

View File

@@ -469,7 +469,6 @@ namespace blender::nodes {
StructRNA *ForeachGeometryElementInputItemsAccessor::item_srna =
&RNA_ForeachGeometryElementInputItem;
int ForeachGeometryElementInputItemsAccessor::node_type = GEO_NODE_FOREACH_GEOMETRY_ELEMENT_OUTPUT;
void ForeachGeometryElementInputItemsAccessor::blend_write_item(BlendWriter *writer,
const ItemT &item)
@@ -485,7 +484,6 @@ void ForeachGeometryElementInputItemsAccessor::blend_read_data_item(BlendDataRea
StructRNA *ForeachGeometryElementMainItemsAccessor::item_srna =
&RNA_ForeachGeometryElementMainItem;
int ForeachGeometryElementMainItemsAccessor::node_type = GEO_NODE_FOREACH_GEOMETRY_ELEMENT_OUTPUT;
void ForeachGeometryElementMainItemsAccessor::blend_write_item(BlendWriter *writer,
const ItemT &item)
@@ -501,8 +499,6 @@ void ForeachGeometryElementMainItemsAccessor::blend_read_data_item(BlendDataRead
StructRNA *ForeachGeometryElementGenerationItemsAccessor::item_srna =
&RNA_ForeachGeometryElementGenerationItem;
int ForeachGeometryElementGenerationItemsAccessor::node_type =
GEO_NODE_FOREACH_GEOMETRY_ELEMENT_OUTPUT;
void ForeachGeometryElementGenerationItemsAccessor::blend_write_item(BlendWriter *writer,
const ItemT &item)

View File

@@ -435,7 +435,6 @@ std::unique_ptr<LazyFunction> get_index_switch_node_lazy_function(
}
StructRNA *IndexSwitchItemsAccessor::item_srna = &RNA_IndexSwitchItem;
int IndexSwitchItemsAccessor::node_type = GEO_NODE_INDEX_SWITCH;
void IndexSwitchItemsAccessor::blend_write_item(BlendWriter * /*writer*/, const ItemT & /*item*/)
{

View File

@@ -479,7 +479,6 @@ std::unique_ptr<LazyFunction> get_menu_switch_node_socket_usage_lazy_function(co
}
StructRNA *MenuSwitchItemsAccessor::item_srna = &RNA_NodeEnumItem;
int MenuSwitchItemsAccessor::node_type = GEO_NODE_MENU_SWITCH;
void MenuSwitchItemsAccessor::blend_write_item(BlendWriter *writer, const ItemT &item)
{

View File

@@ -296,7 +296,6 @@ NOD_REGISTER_NODE(node_register)
namespace blender::nodes {
StructRNA *RepeatItemsAccessor::item_srna = &RNA_RepeatItem;
int RepeatItemsAccessor::node_type = GEO_NODE_REPEAT_OUTPUT;
void RepeatItemsAccessor::blend_write_item(BlendWriter *writer, const ItemT &item)
{

View File

@@ -170,7 +170,6 @@ NOD_REGISTER_NODE(node_register)
namespace blender::nodes {
StructRNA *SeparateBundleItemsAccessor::item_srna = &RNA_NodeGeometrySeparateBundleItem;
int SeparateBundleItemsAccessor::node_type = GEO_NODE_SEPARATE_BUNDLE;
void SeparateBundleItemsAccessor::blend_write_item(BlendWriter *writer, const ItemT &item)
{

View File

@@ -992,7 +992,6 @@ void mix_baked_data_item(const eNodeSocketDatatype socket_type,
}
StructRNA *SimulationItemsAccessor::item_srna = &RNA_SimulationStateItem;
int SimulationItemsAccessor::node_type = GEO_NODE_SIMULATION_OUTPUT;
void SimulationItemsAccessor::blend_write_item(BlendWriter *writer, const ItemT &item)
{