Blender
V5.0
source
blender
nodes
NOD_socket_items_blend.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2024 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#pragma once
6
7
#include "
BLO_read_write.hh
"
8
9
#include "
NOD_socket_items.hh
"
10
11
namespace
blender::nodes::socket_items
{
12
13
template
<
typename
Accessor>
inline
void
blend_write
(
BlendWriter
*writer,
const
bNode
&node)
14
{
15
using
ItemT =
typename
Accessor::ItemT;
16
const
SocketItemsRef<ItemT>
items = Accessor::get_items_from_node(
const_cast<
bNode
&
>
(node));
17
BLO_write_struct_array_by_id
(
18
writer,
dna::sdna_struct_id_get<ItemT>
(), *items.
items_num
, *items.
items
);
19
for
(
const
ItemT &item :
Span
(*items.
items
, *items.
items_num
)) {
20
Accessor::blend_write_item(writer, item);
21
}
22
}
23
24
template
<
typename
Accessor>
inline
void
blend_read_data
(
BlendDataReader
*reader,
bNode
&node)
25
{
26
using
ItemT =
typename
Accessor::ItemT;
27
const
SocketItemsRef<ItemT>
items = Accessor::get_items_from_node(node);
28
*items.
items
=
static_cast<
ItemT *
>
(
29
BLO_read_struct_array_with_size
(reader, *items.
items
,
sizeof
(ItemT) * *items.
items_num
));
30
for
(ItemT &item :
MutableSpan
(*items.
items
, *items.
items_num
)) {
31
Accessor::blend_read_data_item(reader, item);
32
}
33
}
34
35
}
// namespace blender::nodes::socket_items
BLO_read_write.hh
BLO_read_struct_array_with_size
void * BLO_read_struct_array_with_size(BlendDataReader *reader, const void *old_address, size_t expected_size)
Definition
readfile.cc:5711
BLO_write_struct_array_by_id
void BLO_write_struct_array_by_id(BlendWriter *writer, int struct_id, int64_t array_size, const void *data_ptr)
Definition
writefile.cc:2221
NOD_socket_items.hh
blender::MutableSpan
Definition
BLI_span.hh:443
blender::Span
Definition
BLI_span.hh:74
blender::dna::sdna_struct_id_get
int sdna_struct_id_get()
blender::nodes::socket_items
Definition
NOD_socket_items.hh:33
blender::nodes::socket_items::blend_write
void blend_write(BlendWriter *writer, const bNode &node)
Definition
NOD_socket_items_blend.hh:13
blender::nodes::socket_items::blend_read_data
void blend_read_data(BlendDataReader *reader, bNode &node)
Definition
NOD_socket_items_blend.hh:24
BlendDataReader
Definition
readfile.cc:577
BlendWriter
Definition
writefile.cc:511
bNode
Definition
DNA_node_types.h:422
blender::nodes::socket_items::SocketItemsRef
Definition
NOD_socket_items.hh:48
blender::nodes::socket_items::SocketItemsRef::items_num
int * items_num
Definition
NOD_socket_items.hh:50
blender::nodes::socket_items::SocketItemsRef::items
T ** items
Definition
NOD_socket_items.hh:49
Generated on
for Blender by
doxygen
1.16.1