49 return {&storage->items, &storage->items_count, &storage->active_item_index};
85 const int items_count)
87 if (items_count == 0) {
91 for (
int i = 0;
i < items_count;
i++) {
92 max_identifier =
math::max(items[
i].identifier, max_identifier);
94 return max_identifier + 1;
101 std::optional<int> dimensions = std::nullopt)
105 storage->items_count);
120 return "Item_" + std::to_string(item.
identifier);
char * BLI_strdup_null(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_MALLOC
Read Guarded memory(de)allocation.
T max(const T &a, const T &b)
void set_item_name_and_make_unique(bNode &node, typename Accessor::ItemT &item, const char *value)
char vector_socket_dimensions
static constexpr StringRefNull move_item
static constexpr StringRefNull remove_item
static constexpr StringRefNull add_item
static constexpr StringRefNull items
static constexpr StringRefNull active_index
static constexpr StringRefNull list
static std::string validate_name(const StringRef name)
static constexpr char unique_name_separator
static constexpr bool has_name
static StructRNA * item_srna
static constexpr bool has_name_validation
static int find_available_identifier(const NodeCompositorFileOutputItem *items, const int items_count)
static char ** get_name(NodeCompositorFileOutputItem &item)
static constexpr bool can_have_empty_name
static socket_items::SocketItemsRef< NodeCompositorFileOutputItem > get_items_from_node(bNode &node)
static void copy_item(const NodeCompositorFileOutputItem &source, NodeCompositorFileOutputItem &destination)
static void destruct_item(NodeCompositorFileOutputItem *item)
static std::string socket_identifier_for_item(const NodeCompositorFileOutputItem &item)
static constexpr bool has_type
static bool supports_socket_type(const eNodeSocketDatatype socket_type, const int)
static void blend_write_item(BlendWriter *writer, const ItemT &item)
static void blend_read_data_item(BlendDataReader *reader, ItemT &item)
static constexpr StringRefNull node_idname
NodeCompositorFileOutputItem ItemT
static eNodeSocketDatatype get_socket_type(const NodeCompositorFileOutputItem &item)
static void init_with_socket_type_and_name(bNode &node, NodeCompositorFileOutputItem &item, const eNodeSocketDatatype socket_type, const char *name, std::optional< int > dimensions=std::nullopt)
static constexpr bool has_vector_dimensions