Add Chromium-only Blender WebEngine parity work
This commit is contained in:
53
blender-5.2.0/source/blender/makesdna/DNA_print.hh
Normal file
53
blender-5.2.0/source/blender/makesdna/DNA_print.hh
Normal file
@@ -0,0 +1,53 @@
|
||||
/* SPDX-FileCopyrightText: 2025 Blender Authors
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <iosfwd>
|
||||
|
||||
#include "DNA_sdna_type_ids.hh"
|
||||
|
||||
namespace blender {
|
||||
|
||||
struct SDNA;
|
||||
struct SDNA_Struct;
|
||||
|
||||
namespace dna {
|
||||
|
||||
/**
|
||||
* Print all members of the struct assuming that the data has the given address. This is mainly
|
||||
* useful for observing what data is written to a .blend file.
|
||||
*
|
||||
* \param sdna: Contains reflection information about DNA structs.
|
||||
* \param struct_id: The type the data points to. Used to index into `sdna.structs`.
|
||||
* \param data: Where the data is stored.
|
||||
* \param address: The address that should be printed. Often it's the same as `data`.
|
||||
* \param element_num: The number of elements in the array, or 1 if there is only one struct.
|
||||
* \param stream: Where to print the output.
|
||||
*/
|
||||
void print_structs_at_address(const SDNA &sdna,
|
||||
int struct_id,
|
||||
const void *data,
|
||||
const void *address,
|
||||
int64_t element_num,
|
||||
std::ostream &stream);
|
||||
|
||||
/**
|
||||
* Prints all members of the struct to stdout.
|
||||
*/
|
||||
void print_struct_by_id(int struct_id, const void *data);
|
||||
|
||||
} // namespace dna
|
||||
|
||||
/**
|
||||
* Prints all members of the struct to stdout.
|
||||
*
|
||||
* Usage:
|
||||
* DNA_print_struct(bNode, node);
|
||||
*/
|
||||
#define DNA_print_struct(struct_name, data_ptr) \
|
||||
dna::print_struct_by_id(dna::sdna_struct_id_get<struct_name>(), data_ptr)
|
||||
|
||||
} // namespace blender
|
||||
Reference in New Issue
Block a user