Blender  V3.3
RNA_access.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 /* Use a define instead of `#pragma once` because of `rna_internal.h` */
4 #ifndef __RNA_ACCESS_H__
5 #define __RNA_ACCESS_H__
6 
11 #include <stdarg.h>
12 
13 #include "RNA_types.h"
14 
15 #include "BLI_compiler_attrs.h"
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 struct ID;
22 struct IDOverrideLibrary;
25 struct IDProperty;
26 struct ListBase;
27 struct Main;
28 struct ReportList;
29 struct Scene;
30 struct bContext;
31 
32 /* Types */
33 extern BlenderRNA BLENDER_RNA;
34 
35 /* Pointer
36  *
37  * These functions will fill in RNA pointers, this can be done in three ways:
38  * - a pointer Main is created by just passing the data pointer
39  * - a pointer to a datablock can be created with the type and id data pointer
40  * - a pointer to data contained in a datablock can be created with the id type
41  * and id data pointer, and the data type and pointer to the struct itself.
42  *
43  * There is also a way to get a pointer with the information about all structs.
44  */
45 
46 void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr);
47 void RNA_id_pointer_create(struct ID *id, PointerRNA *r_ptr);
48 void RNA_pointer_create(struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr);
50 
52  struct PropertyRNA *prop,
53  int prop_index,
54  PathResolvedRNA *r_anim_rna);
55 
58 
59 extern const PointerRNA PointerRNA_NULL;
60 
61 /* Structs */
62 
63 StructRNA *RNA_struct_find(const char *identifier);
64 
65 const char *RNA_struct_identifier(const StructRNA *type);
66 const char *RNA_struct_ui_name(const StructRNA *type);
67 const char *RNA_struct_ui_name_raw(const StructRNA *type);
68 const char *RNA_struct_ui_description(const StructRNA *type);
69 const char *RNA_struct_ui_description_raw(const StructRNA *type);
72 
82 const StructRNA *RNA_struct_base_child_of(const StructRNA *type, const StructRNA *parent_type);
83 
84 bool RNA_struct_is_ID(const StructRNA *type);
85 bool RNA_struct_is_a(const StructRNA *type, const StructRNA *srna);
86 
88 
92 
94 void RNA_struct_py_type_set(StructRNA *srna, void *py_type);
95 
97 void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type);
98 
114 bool RNA_struct_idprops_unset(PointerRNA *ptr, const char *identifier);
115 
116 PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier);
118 unsigned int RNA_struct_count_properties(StructRNA *srna);
119 
124 const struct ListBase *RNA_struct_type_properties(StructRNA *srna);
125 PropertyRNA *RNA_struct_type_find_property_no_base(StructRNA *srna, const char *identifier);
130 PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char *identifier);
131 
132 FunctionRNA *RNA_struct_find_function(StructRNA *srna, const char *identifier);
133 const struct ListBase *RNA_struct_type_functions(StructRNA *srna);
134 
135 char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen, int *r_len);
136 
140 bool RNA_struct_available_or_report(struct ReportList *reports, const char *identifier);
141 bool RNA_struct_bl_idname_ok_or_report(struct ReportList *reports,
142  const char *identifier,
143  const char *sep);
144 
145 /* Properties
146  *
147  * Access to struct properties. All this works with RNA pointers rather than
148  * direct pointers to the data. */
149 
150 /* Property Information */
151 
152 const char *RNA_property_identifier(const PropertyRNA *prop);
153 const char *RNA_property_description(PropertyRNA *prop);
154 
159 int RNA_property_flag(PropertyRNA *prop);
167 int RNA_property_tags(PropertyRNA *prop);
170 
176 int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dimension);
181 char RNA_property_array_item_char(PropertyRNA *prop, int index);
182 int RNA_property_array_item_index(PropertyRNA *prop, char name);
183 
188 
189 const char *RNA_property_ui_name(const PropertyRNA *prop);
190 const char *RNA_property_ui_name_raw(const PropertyRNA *prop);
191 const char *RNA_property_ui_description(const PropertyRNA *prop);
192 const char *RNA_property_ui_description_raw(const PropertyRNA *prop);
193 const char *RNA_property_translation_context(const PropertyRNA *prop);
194 int RNA_property_ui_icon(const PropertyRNA *prop);
195 
196 /* Dynamic Property Information */
197 
198 void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax);
200  PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step);
201 
202 void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax);
204  PropertyRNA *prop,
205  float *softmin,
206  float *softmax,
207  float *step,
208  float *precision);
209 
210 int RNA_property_float_clamp(PointerRNA *ptr, PropertyRNA *prop, float *value);
211 int RNA_property_int_clamp(PointerRNA *ptr, PropertyRNA *prop, int *value);
212 
213 bool RNA_enum_identifier(const EnumPropertyItem *item, int value, const char **identifier);
214 int RNA_enum_bitflag_identifiers(const EnumPropertyItem *item, int value, const char **identifier);
215 bool RNA_enum_name(const EnumPropertyItem *item, int value, const char **r_name);
216 bool RNA_enum_description(const EnumPropertyItem *item, int value, const char **description);
217 int RNA_enum_from_value(const EnumPropertyItem *item, int value);
218 int RNA_enum_from_identifier(const EnumPropertyItem *item, const char *identifier);
223 int RNA_enum_from_name(const EnumPropertyItem *item, const char *name);
224 unsigned int RNA_enum_items_count(const EnumPropertyItem *item);
225 
227  PointerRNA *ptr,
228  PropertyRNA *prop,
229  bool use_static,
230  const EnumPropertyItem **r_item,
231  int *r_totitem,
232  bool *r_free);
233 void RNA_property_enum_items(struct bContext *C,
234  PointerRNA *ptr,
235  PropertyRNA *prop,
236  const EnumPropertyItem **r_item,
237  int *r_totitem,
238  bool *r_free);
240  PointerRNA *ptr,
241  PropertyRNA *prop,
242  const EnumPropertyItem **r_item,
243  int *r_totitem,
244  bool *r_free);
246  PointerRNA *ptr,
247  PropertyRNA *prop,
248  const EnumPropertyItem **r_item,
249  int *r_totitem,
250  bool *r_free);
252  struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *r_value);
254  struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int value, const char **identifier);
256  struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int value, const char **name);
258  struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int value, const char **name);
259 
261  struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int value, EnumPropertyItem *r_item);
263  struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int value, EnumPropertyItem *r_item);
264 
266  struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int value, const char **identifier);
267 
270 
276 bool RNA_property_editable_info(PointerRNA *ptr, PropertyRNA *prop, const char **r_info);
280 bool RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, const int index);
281 
286 
304 bool RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop); /* slow, use with care */
305 
306 void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop);
310 void RNA_property_update_main(struct Main *bmain,
311  struct Scene *scene,
312  PointerRNA *ptr,
313  PropertyRNA *prop);
318 bool RNA_property_update_check(struct PropertyRNA *prop);
319 
320 /* Property Data */
321 
323 void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, bool value);
324 void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, bool *values);
326 void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const bool *values);
327 void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, bool value);
331 
333 void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value);
334 void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values);
335 void RNA_property_int_get_array_range(PointerRNA *ptr, PropertyRNA *prop, int values[2]);
336 int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index);
337 void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values);
338 void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value);
340 bool RNA_property_int_set_default(PropertyRNA *prop, int value);
343 
345 void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value);
346 void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values);
347 void RNA_property_float_get_array_range(PointerRNA *ptr, PropertyRNA *prop, float values[2]);
348 float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index);
349 void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values);
350 void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value);
352 bool RNA_property_float_set_default(PropertyRNA *prop, float value);
355 
356 void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value);
358  PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen, int *r_len);
359 void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value);
360 void RNA_property_string_set_bytes(PointerRNA *ptr, PropertyRNA *prop, const char *value, int len);
361 
370  PointerRNA *ptr,
371  PropertyRNA *prop,
372  const char *edit_text,
374  void *visit_user_data);
375 
380 void RNA_property_string_get_default(PropertyRNA *prop, char *value, int max_len);
382  PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen, int *r_len);
387 
389 void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value);
399  const struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int from_value, int step);
400 
403  PropertyRNA *prop,
404  PointerRNA ptr_value,
405  struct ReportList *reports) ATTR_NONNULL(1, 2);
407 
409  PropertyRNA *prop,
421  PropertyRNA *prop,
422  const PointerRNA *t_ptr);
424  PropertyRNA *prop,
425  int key,
426  PointerRNA *r_ptr);
428  PropertyRNA *prop,
429  const char *key,
430  PointerRNA *r_ptr);
432  PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr, int *r_index);
433 
436 
441  PropertyRNA *prop,
442  int key,
443  const PointerRNA *assign_ptr);
445 
446 /* efficient functions to set properties for arrays */
448  PropertyRNA *prop,
449  PropertyRNA *itemprop,
450  RawArray *array);
451 int RNA_property_collection_raw_get(struct ReportList *reports,
452  PointerRNA *ptr,
453  PropertyRNA *prop,
454  const char *propname,
455  void *array,
457  int len);
458 int RNA_property_collection_raw_set(struct ReportList *reports,
459  PointerRNA *ptr,
460  PropertyRNA *prop,
461  const char *propname,
462  void *array,
464  int len);
467 
468 /* to create ID property groups */
474 bool RNA_property_collection_move(PointerRNA *ptr, PropertyRNA *prop, int key, int pos);
475 
476 /* copy/reset */
477 bool RNA_property_copy(
478  struct Main *bmain, PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index);
479 bool RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index);
481 
482 /* Quick name based property access
483  *
484  * These are just an easier way to access property values without having to
485  * call RNA_struct_find_property. The names have to exist as RNA properties
486  * for the type in the pointer, if they do not exist an error will be printed.
487  *
488  * There is no support for pointers and collections here yet, these can be
489  * added when ID properties support them. */
490 
491 bool RNA_boolean_get(PointerRNA *ptr, const char *name);
492 void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value);
493 void RNA_boolean_get_array(PointerRNA *ptr, const char *name, bool *values);
494 void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const bool *values);
495 
496 int RNA_int_get(PointerRNA *ptr, const char *name);
497 void RNA_int_set(PointerRNA *ptr, const char *name, int value);
498 void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values);
499 void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values);
500 
501 float RNA_float_get(PointerRNA *ptr, const char *name);
502 void RNA_float_set(PointerRNA *ptr, const char *name, float value);
503 void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values);
504 void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values);
505 
506 int RNA_enum_get(PointerRNA *ptr, const char *name);
507 void RNA_enum_set(PointerRNA *ptr, const char *name, int value);
508 void RNA_enum_set_identifier(struct bContext *C,
509  PointerRNA *ptr,
510  const char *name,
511  const char *id);
512 bool RNA_enum_is_equal(struct bContext *C,
513  PointerRNA *ptr,
514  const char *name,
515  const char *enumname);
516 
517 /* Lower level functions that don't use a PointerRNA. */
518 bool RNA_enum_value_from_id(const EnumPropertyItem *item, const char *identifier, int *r_value);
519 bool RNA_enum_id_from_value(const EnumPropertyItem *item, int value, const char **r_identifier);
520 bool RNA_enum_icon_from_value(const EnumPropertyItem *item, int value, int *r_icon);
521 bool RNA_enum_name_from_value(const EnumPropertyItem *item, int value, const char **r_name);
522 
523 void RNA_string_get(PointerRNA *ptr, const char *name, char *value);
525  PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen, int *r_len);
526 int RNA_string_length(PointerRNA *ptr, const char *name);
527 void RNA_string_set(PointerRNA *ptr, const char *name, const char *value);
528 
532 PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name);
533 /* Set the property name of PointerRNA ptr to ptr_value */
534 void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value);
535 void RNA_pointer_add(PointerRNA *ptr, const char *name);
536 
537 void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter);
538 int RNA_collection_length(PointerRNA *ptr, const char *name);
539 bool RNA_collection_is_empty(PointerRNA *ptr, const char *name);
540 void RNA_collection_add(PointerRNA *ptr, const char *name, PointerRNA *r_value);
541 void RNA_collection_clear(PointerRNA *ptr, const char *name);
542 
543 #define RNA_BEGIN(sptr, itemptr, propname) \
544  { \
545  CollectionPropertyIterator rna_macro_iter; \
546  for (RNA_collection_begin(sptr, propname, &rna_macro_iter); rna_macro_iter.valid; \
547  RNA_property_collection_next(&rna_macro_iter)) { \
548  PointerRNA itemptr = rna_macro_iter.ptr;
549 
550 #define RNA_END \
551  } \
552  RNA_property_collection_end(&rna_macro_iter); \
553  } \
554  ((void)0)
555 
556 #define RNA_PROP_BEGIN(sptr, itemptr, prop) \
557  { \
558  CollectionPropertyIterator rna_macro_iter; \
559  for (RNA_property_collection_begin(sptr, prop, &rna_macro_iter); rna_macro_iter.valid; \
560  RNA_property_collection_next(&rna_macro_iter)) { \
561  PointerRNA itemptr = rna_macro_iter.ptr;
562 
563 #define RNA_PROP_END \
564  } \
565  RNA_property_collection_end(&rna_macro_iter); \
566  } \
567  ((void)0)
568 
569 #define RNA_STRUCT_BEGIN(sptr, prop) \
570  { \
571  CollectionPropertyIterator rna_macro_iter; \
572  for (RNA_property_collection_begin( \
573  sptr, RNA_struct_iterator_property((sptr)->type), &rna_macro_iter); \
574  rna_macro_iter.valid; \
575  RNA_property_collection_next(&rna_macro_iter)) { \
576  PropertyRNA *prop = (PropertyRNA *)rna_macro_iter.ptr.data;
577 
578 #define RNA_STRUCT_BEGIN_SKIP_RNA_TYPE(sptr, prop) \
579  { \
580  CollectionPropertyIterator rna_macro_iter; \
581  RNA_property_collection_begin( \
582  sptr, RNA_struct_iterator_property((sptr)->type), &rna_macro_iter); \
583  if (rna_macro_iter.valid) { \
584  RNA_property_collection_next(&rna_macro_iter); \
585  } \
586  for (; rna_macro_iter.valid; RNA_property_collection_next(&rna_macro_iter)) { \
587  PropertyRNA *prop = (PropertyRNA *)rna_macro_iter.ptr.data;
588 
589 #define RNA_STRUCT_END \
590  } \
591  RNA_property_collection_end(&rna_macro_iter); \
592  } \
593  ((void)0)
594 
608 bool RNA_property_is_set_ex(PointerRNA *ptr, PropertyRNA *prop, bool use_ghost);
612 bool RNA_struct_property_is_set_ex(PointerRNA *ptr, const char *identifier, bool use_ghost);
613 bool RNA_struct_property_is_set(PointerRNA *ptr, const char *identifier);
614 bool RNA_property_is_idprop(const PropertyRNA *prop);
619 void RNA_struct_property_unset(PointerRNA *ptr, const char *identifier);
620 
625  struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int index, int max_prop_length);
631 char *RNA_pointer_as_string(struct bContext *C,
632  PointerRNA *ptr,
633  PropertyRNA *prop_ptr,
634  PointerRNA *ptr_prop);
639  PointerRNA *ptr,
640  bool as_function,
641  bool all_args,
642  bool nested_args,
643  int max_prop_length,
644  PropertyRNA *iterprop);
646  PointerRNA *ptr,
647  bool as_function,
648  bool all_args,
649  bool nested_args,
650  int max_prop_length);
652  struct bContext *C, FunctionRNA *func, bool as_function, bool all_args, int max_prop_length);
653 
654 /* Function */
655 
656 const char *RNA_function_identifier(FunctionRNA *func);
657 const char *RNA_function_ui_description(FunctionRNA *func);
659 int RNA_function_flag(FunctionRNA *func);
661 
664  FunctionRNA *func,
665  const char *identifier);
667 
668 /* Utility */
669 
671 
674 int RNA_parameter_list_size(const ParameterList *parms);
677 
681 
682 void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value);
683 void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value);
684 void RNA_parameter_set(ParameterList *parms, PropertyRNA *parm, const void *value);
685 void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value);
686 
687 /* Only for PROP_DYNAMIC properties! */
688 
693  PropertyRNA *parm,
694  void *data,
695  int length);
696 
697 int RNA_function_call(struct bContext *C,
698  struct ReportList *reports,
699  PointerRNA *ptr,
700  FunctionRNA *func,
701  ParameterList *parms);
703  struct ReportList *reports,
704  PointerRNA *ptr,
705  const char *identifier,
706  ParameterList *parms);
707 
709  struct ReportList *reports,
710  PointerRNA *ptr,
711  FunctionRNA *func,
712  const char *format,
713  ...) ATTR_PRINTF_FORMAT(5, 6);
715  struct ReportList *reports,
716  PointerRNA *ptr,
717  const char *identifier,
718  const char *format,
719  ...) ATTR_PRINTF_FORMAT(5, 6);
721  struct ReportList *reports,
722  PointerRNA *ptr,
723  FunctionRNA *func,
724  const char *format,
725  va_list args);
727  struct ReportList *reports,
728  PointerRNA *ptr,
729  const char *identifier,
730  const char *format,
731  va_list args);
732 
733 const char *RNA_translate_ui_text(const char *text,
734  const char *text_ctxt,
735  struct StructRNA *type,
736  struct PropertyRNA *prop,
737  int translate);
738 
739 /* ID */
740 
743 
744 #define RNA_POINTER_INVALIDATE(ptr) \
745  { \
746  /* this is checked for validity */ \
747  (ptr)->type = NULL; /* should not be needed but prevent bad pointer access, just in case */ \
748  (ptr)->owner_id = NULL; \
749  } \
750  (void)0
751 
752 /* macro which inserts the function name */
753 #if defined __GNUC__
754 # define RNA_warning(format, args...) _RNA_warning("%s: " format "\n", __func__, ##args)
755 #else
756 # define RNA_warning(format, ...) _RNA_warning("%s: " format "\n", __FUNCTION__, __VA_ARGS__)
757 #endif
758 
760 void _RNA_warning(const char *format, ...) ATTR_PRINTF_FORMAT(1, 2);
761 
762 /* Equals test. */
763 
768 typedef enum eRNACompareMode {
769  /* Only care about equality, not full comparison. */
779 
780 bool RNA_property_equals(struct Main *bmain,
781  struct PointerRNA *ptr_a,
782  struct PointerRNA *ptr_b,
783  struct PropertyRNA *prop,
784  eRNACompareMode mode);
785 bool RNA_struct_equals(struct Main *bmain,
786  struct PointerRNA *ptr_a,
787  struct PointerRNA *ptr_b,
788  eRNACompareMode mode);
789 
790 /* Override. */
791 
793 typedef enum eRNAOverrideMatch {
798 
804 
814 
815 typedef enum eRNAOverrideStatus {
825 
836 bool RNA_struct_override_matches(struct Main *bmain,
837  struct PointerRNA *ptr_local,
838  struct PointerRNA *ptr_reference,
839  const char *root_path,
840  size_t root_path_len,
841  struct IDOverrideLibrary *override,
842  eRNAOverrideMatch flags,
843  eRNAOverrideMatchResult *r_report_flags);
844 
849 bool RNA_struct_override_store(struct Main *bmain,
850  struct PointerRNA *ptr_local,
851  struct PointerRNA *ptr_reference,
852  PointerRNA *ptr_storage,
853  struct IDOverrideLibrary *override);
854 
855 typedef enum eRNAOverrideApplyFlag {
863 
868 void RNA_struct_override_apply(struct Main *bmain,
869  struct PointerRNA *ptr_dst,
870  struct PointerRNA *ptr_src,
871  struct PointerRNA *ptr_storage,
872  struct IDOverrideLibrary *override,
873  eRNAOverrideApplyFlag flag);
874 
876  PointerRNA *ptr,
877  PropertyRNA *prop,
878  struct ID **r_owner_id);
880  PointerRNA *ptr,
881  PropertyRNA *prop,
882  bool *r_created);
883 
885  struct Main *bmain,
886  PointerRNA *ptr,
887  PropertyRNA *prop,
888  int index,
889  bool strict,
890  bool *r_strict);
892  struct Main *bmain,
893  PointerRNA *ptr,
894  PropertyRNA *prop,
895  short operation,
896  int index,
897  bool strict,
898  bool *r_strict,
899  bool *r_created);
900 
902  PointerRNA *ptr,
903  PropertyRNA *prop,
904  int index);
905 
906 void RNA_struct_state_owner_set(const char *name);
907 const char *RNA_struct_state_owner_get(void);
908 
909 #ifdef __cplusplus
910 }
911 #endif
912 
913 #endif /* __RNA_ACCESS_H__ */
#define ATTR_NONNULL(...)
size_t ATTR_PRINTF_FORMAT(3, 4)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
bool RNA_property_enum_item_from_value(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int value, EnumPropertyItem *r_item)
Definition: rna_access.c:1814
StructUnregisterFunc RNA_struct_unregister(StructRNA *type)
Definition: rna_access.c:863
float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:2767
bool RNA_property_collection_lookup_int_has_fn(PropertyRNA *prop)
Definition: rna_access.c:4083
void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const bool *values)
Definition: rna_access.c:4898
StructRegisterFunc RNA_struct_register(StructRNA *type)
Definition: rna_access.c:858
bool RNA_property_enum_identifier(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int value, const char **identifier)
Definition: rna_access.c:1759
void RNA_property_enum_items_gettexted(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const EnumPropertyItem **r_item, int *r_totitem, bool *r_free)
Definition: rna_access.c:1560
const char * RNA_struct_identifier(const StructRNA *type)
Definition: rna_access.c:586
void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values)
Definition: rna_access.c:3095
bool RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:1966
void RNA_struct_override_apply(struct Main *bmain, struct PointerRNA *ptr_dst, struct PointerRNA *ptr_src, struct PointerRNA *ptr_storage, struct IDOverrideLibrary *override, eRNAOverrideApplyFlag flag)
void RNA_parameter_list_end(ParameterIterator *iter)
void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values)
Definition: rna_access.c:4945
const char * RNA_function_identifier(FunctionRNA *func)
Definition: rna_access.c:5768
void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, bool value)
Definition: rna_access.c:2352
void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value)
Definition: rna_access.c:2449
ParameterList * RNA_parameter_list_create(ParameterList *parms, PointerRNA *ptr, FunctionRNA *func)
FunctionRNA * RNA_struct_find_function(StructRNA *srna, const char *identifier)
Definition: rna_access.c:817
const struct ListBase * RNA_function_defined_parameters(FunctionRNA *func)
Definition: rna_access.c:5814
void RNA_property_int_ui_range(PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step)
Definition: rna_access.c:1227
const char * RNA_property_description(PropertyRNA *prop)
Definition: rna_access.c:1005
PointerRNA void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value, struct ReportList *reports) ATTR_NONNULL(1
bool RNA_property_array_check(PropertyRNA *prop)
Definition: rna_access.c:1080
bool RNA_struct_is_a(const StructRNA *type, const StructRNA *srna)
Definition: rna_access.c:695
int RNA_property_collection_lookup_string_index(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr, int *r_index)
Definition: rna_access.c:4130
bool RNA_property_is_unlink(PropertyRNA *prop)
Definition: rna_access.c:5327
const struct ListBase * RNA_struct_type_properties(StructRNA *srna)
Definition: rna_access.c:796
char * RNA_pointer_as_string_keywords_ex(struct bContext *C, PointerRNA *ptr, bool as_function, bool all_args, bool nested_args, int max_prop_length, PropertyRNA *iterprop)
Definition: rna_access.c:5397
void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values)
Definition: rna_access.c:2879
bool RNA_property_assign_default(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:6744
PropertyScaleType RNA_property_ui_scale(PropertyRNA *prop)
Definition: rna_access.c:1037
void RNA_struct_state_owner_set(const char *name)
Definition: rna_access.c:6806
int RNA_function_call_direct_va_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, va_list args)
Definition: rna_access.c:6625
bool RNA_property_int_set_default(PropertyRNA *prop, int value)
Definition: rna_access.c:2693
void RNA_property_string_get_default(PropertyRNA *prop, char *value, int max_len)
Definition: rna_access.c:3304
void RNA_struct_py_type_set(StructRNA *srna, void *py_type)
Definition: rna_access.c:892
void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values)
Definition: rna_access.c:4933
bool RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:2030
bool RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index)
Definition: rna_access.c:2405
bool RNA_property_float_set_default(PropertyRNA *prop, float value)
Definition: rna_access.c:3081
bool RNA_property_enum_value(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *r_value)
Definition: rna_access.c:1639
eRNAOverrideStatus RNA_property_override_library_status(struct Main *bmainm, PointerRNA *ptr, PropertyRNA *prop, int index)
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
Definition: rna_access.c:5155
PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name)
Definition: rna_access.c:5167
int RNA_collection_length(PointerRNA *ptr, const char *name)
Definition: rna_access.c:5239
int RNA_enum_from_name(const EnumPropertyItem *item, const char *name)
Definition: rna_access.c:1725
int RNA_property_int_clamp(PointerRNA *ptr, PropertyRNA *prop, int *value)
Definition: rna_access.c:1382
int RNA_property_float_clamp(PointerRNA *ptr, PropertyRNA *prop, float *value)
Definition: rna_access.c:1365
void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value)
Definition: rna_access.c:6026
int RNA_property_int_get_default(PointerRNA *ptr, PropertyRNA *prop)
void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value)
Definition: rna_access.c:5179
void RNA_boolean_get_array(PointerRNA *ptr, const char *name, bool *values)
Definition: rna_access.c:4886
bool RNA_property_enum_name(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int value, const char **name)
Definition: rna_access.c:1777
void ** RNA_struct_instance(PointerRNA *ptr)
Definition: rna_access.c:874
bool RNA_struct_is_ID(const StructRNA *type)
Definition: rna_access.c:655
int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index)
Definition: rna_access.c:2581
const char * RNA_property_identifier(const PropertyRNA *prop)
Definition: rna_access.c:1000
const char * RNA_property_ui_description_raw(const PropertyRNA *prop)
Definition: rna_access.c:1890
void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision)
Definition: rna_access.c:1311
void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value)
Definition: rna_access.c:3036
bool RNA_enum_value_from_id(const EnumPropertyItem *item, const char *identifier, int *r_value)
Definition: rna_access.c:5076
void RNA_property_string_search(const struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *edit_text, StringPropertySearchVisitFunc visit_fn, void *visit_user_data)
bool RNA_property_equals(struct Main *bmain, struct PointerRNA *ptr_a, struct PointerRNA *ptr_b, struct PropertyRNA *prop, eRNACompareMode mode)
int RNA_function_call_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, ParameterList *parms)
Definition: rna_access.c:6177
eStringPropertySearchFlag RNA_property_string_search_flag(PropertyRNA *prop)
Definition: rna_access.c:3374
bool RNA_property_collection_is_empty(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:3787
bool RNA_property_animateable(const PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:1993
PropertyUnit RNA_property_unit(PropertyRNA *prop)
Definition: rna_access.c:1032
void RNA_property_enum_items_gettexted_all(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const EnumPropertyItem **r_item, int *r_totitem, bool *r_free)
Definition: rna_access.c:1576
void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type)
Definition: rna_access.c:902
int RNA_function_defined(FunctionRNA *func)
Definition: rna_access.c:5788
int RNA_property_ui_icon(const PropertyRNA *prop)
Definition: rna_access.c:1900
eRNAOverrideStatus
Definition: RNA_access.h:815
@ RNA_OVERRIDE_STATUS_OVERRIDABLE
Definition: RNA_access.h:817
@ RNA_OVERRIDE_STATUS_MANDATORY
Definition: RNA_access.h:821
@ RNA_OVERRIDE_STATUS_OVERRIDDEN
Definition: RNA_access.h:819
@ RNA_OVERRIDE_STATUS_LOCKED
Definition: RNA_access.h:823
void RNA_parameter_dynamic_length_set_data(ParameterList *parms, PropertyRNA *parm, void *data, int length)
int RNA_property_collection_lookup_index(PointerRNA *ptr, PropertyRNA *prop, const PointerRNA *t_ptr)
Definition: rna_access.c:4059
void RNA_collection_clear(PointerRNA *ptr, const char *name)
Definition: rna_access.c:5227
bool RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index)
Definition: rna_access.c:6649
void RNA_parameter_dynamic_length_set(ParameterList *parms, PropertyRNA *parm, int length)
Definition: rna_access.c:6126
int int RNA_function_call_direct_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format,...) ATTR_PRINTF_FORMAT(5
bool RNA_property_enum_name_gettexted(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int value, const char **name)
Definition: rna_access.c:1796
char * RNA_pointer_as_string_id(struct bContext *C, PointerRNA *ptr)
Definition: rna_access.c:5336
const char * RNA_struct_ui_description(const StructRNA *type)
Definition: rna_access.c:609
void RNA_blender_rna_pointer_create(PointerRNA *r_ptr)
Definition: rna_access.c:179
char * RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen, int *r_len)
Definition: rna_access.c:907
bool RNA_collection_is_empty(PointerRNA *ptr, const char *name)
Definition: rna_access.c:5250
float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index)
Definition: rna_access.c:2954
bool RNA_path_resolved_create(PointerRNA *ptr, struct PropertyRNA *prop, int prop_index, PathResolvedRNA *r_anim_rna)
Definition: rna_access.c:6788
int RNA_property_collection_raw_get(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len)
Definition: rna_access.c:4705
short RNA_type_to_ID_code(const StructRNA *type)
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
Definition: rna_access.c:4874
void RNA_property_collection_skip(CollectionPropertyIterator *iter, int num)
Definition: rna_access.c:3725
int RNA_property_string_default_length(PointerRNA *ptr, PropertyRNA *prop)
float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index)
Definition: rna_access.c:3125
void RNA_pointer_add(PointerRNA *ptr, const char *name)
Definition: rna_access.c:5191
int RNA_enum_from_identifier(const EnumPropertyItem *item, const char *identifier)
Definition: rna_access.c:1714
int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dimension)
Definition: rna_access.c:1096
bool RNA_property_is_set_ex(PointerRNA *ptr, PropertyRNA *prop, bool use_ghost)
Definition: rna_access.c:5261
int RNA_property_enum_get_default(PointerRNA *ptr, PropertyRNA *prop)
struct IDOverrideLibraryPropertyOperation * RNA_property_override_property_operation_find(struct Main *bmain, PointerRNA *ptr, PropertyRNA *prop, int index, bool strict, bool *r_strict)
struct IDOverrideLibraryProperty * RNA_property_override_property_find(struct Main *bmain, PointerRNA *ptr, PropertyRNA *prop, struct ID **r_owner_id)
void RNA_parameter_set(ParameterList *parms, PropertyRNA *parm, const void *value)
Definition: rna_access.c:6042
bool RNA_struct_property_is_set_ex(PointerRNA *ptr, const char *identifier, bool use_ghost)
Definition: rna_access.c:5289
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:5271
bool RNA_struct_bl_idname_ok_or_report(struct ReportList *reports, const char *identifier, const char *sep)
Definition: rna_access.c:948
const char * RNA_struct_ui_name(const StructRNA *type)
Definition: rna_access.c:591
eRNAOverrideApplyFlag
Definition: RNA_access.h:855
@ RNA_OVERRIDE_APPLY_FLAG_IGNORE_ID_POINTERS
Definition: RNA_access.h:861
@ RNA_OVERRIDE_APPLY_FLAG_NOP
Definition: RNA_access.h:856
bool RNA_enum_icon_from_value(const EnumPropertyItem *item, int value, int *r_icon)
Definition: rna_access.c:5096
BlenderRNA BLENDER_RNA
void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax)
Definition: rna_access.c:1274
PropertyRNA * RNA_struct_type_find_property_no_base(StructRNA *srna, const char *identifier)
Definition: rna_access.c:801
void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, bool *values)
Definition: rna_access.c:2242
PropertyType RNA_property_type(PropertyRNA *prop)
Definition: rna_access.c:1010
const PointerRNA PointerRNA_NULL
Definition: rna_access.c:61
const char * RNA_function_ui_description_raw(FunctionRNA *func)
Definition: rna_access.c:5778
void RNA_id_pointer_create(struct ID *id, PointerRNA *r_ptr)
Definition: rna_access.c:112
void RNA_property_pointer_add(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:3617
void RNA_int_set(PointerRNA *ptr, const char *name, int value)
Definition: rna_access.c:4921
void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value)
Definition: rna_access.c:3421
void * RNA_struct_blender_type_get(StructRNA *srna)
Definition: rna_access.c:897
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
Definition: rna_access.c:717
int RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr)
Definition: rna_access.c:4097
char RNA_property_array_item_char(PropertyRNA *prop, int index)
Definition: rna_access.c:1105
void RNA_parameter_list_free(ParameterList *parms)
Definition: rna_access.c:5922
bool RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test)
Definition: rna_access.c:758
bool RNA_struct_override_store(struct Main *bmain, struct PointerRNA *ptr_local, struct PointerRNA *ptr_reference, PointerRNA *ptr_storage, struct IDOverrideLibrary *override)
void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values)
Definition: rna_access.c:4980
bool RNA_property_overridable_library_set(PointerRNA *ptr, PropertyRNA *prop, bool is_overridable)
unsigned int RNA_struct_count_properties(StructRNA *srna)
Definition: rna_access.c:780
int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index)
Definition: rna_access.c:2743
struct IDOverrideLibraryPropertyOperation * RNA_property_override_property_operation_get(struct Main *bmain, PointerRNA *ptr, PropertyRNA *prop, short operation, int index, bool strict, bool *r_strict, bool *r_created)
bool RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:2153
char * RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen, int *r_len)
Definition: rna_access.c:3178
void _RNA_warning(const char *format,...) ATTR_PRINTF_FORMAT(1
void RNA_property_float_get_array_range(PointerRNA *ptr, PropertyRNA *prop, float values[2])
Definition: rna_access.c:2917
void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, bool *values)
Definition: rna_access.c:2390
bool RNA_struct_idprops_contains_datablock(const StructRNA *type)
Definition: rna_access.c:675
void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value)
Definition: rna_access.c:2652
unsigned int RNA_enum_items_count(const EnumPropertyItem *item)
Definition: rna_access.c:1747
PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop) ATTR_NONNULL(1
bool RNA_enum_id_from_value(const EnumPropertyItem *item, int value, const char **r_identifier)
Definition: rna_access.c:5086
void RNA_enum_set_identifier(struct bContext *C, PointerRNA *ptr, const char *name, const char *id)
Definition: rna_access.c:5027
void RNA_pointer_recast(PointerRNA *ptr, PointerRNA *r_ptr)
Definition: rna_access.c:207
int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:2429
void RNA_property_collection_next(CollectionPropertyIterator *iter)
Definition: rna_access.c:3709
void RNA_collection_add(PointerRNA *ptr, const char *name, PointerRNA *r_value)
Definition: rna_access.c:5215
void RNA_parameter_list_next(ParameterIterator *iter)
Definition: rna_access.c:5980
int RNA_property_override_flag(PropertyRNA *prop)
const char * RNA_property_translation_context(const PropertyRNA *prop)
Definition: rna_access.c:1895
bool RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:1976
int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr)
Definition: rna_access.c:4184
const char * RNA_struct_ui_name_raw(const StructRNA *type)
Definition: rna_access.c:596
int RNA_property_enum_step(const struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int from_value, int step)
void RNA_string_get(PointerRNA *ptr, const char *name, char *value)
Definition: rna_access.c:5116
void RNA_property_enum_items(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const EnumPropertyItem **r_item, int *r_totitem, bool *r_free)
Definition: rna_access.c:1495
int RNA_property_collection_assign_int(PointerRNA *ptr, PropertyRNA *prop, int key, const PointerRNA *assign_ptr)
Definition: rna_access.c:4193
int RNA_int_get(PointerRNA *ptr, const char *name)
Definition: rna_access.c:4910
PropertyRNA * RNA_function_get_parameter(PointerRNA *ptr, FunctionRNA *func, int index)
bool RNA_property_update_check(struct PropertyRNA *prop)
Definition: rna_access.c:2132
int RNA_property_array_dimension(const PointerRNA *ptr, PropertyRNA *prop, int length[])
Definition: rna_access.c:1085
bool RNA_enum_name_from_value(const EnumPropertyItem *item, int value, const char **r_name)
Definition: rna_access.c:5106
PropertyRNA * RNA_struct_type_find_property(StructRNA *srna, const char *identifier)
Definition: rna_access.c:806
void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value)
Definition: rna_access.c:5997
eRNAOverrideMatch
Definition: RNA_access.h:793
@ RNA_OVERRIDE_COMPARE_IGNORE_OVERRIDDEN
Definition: RNA_access.h:797
@ RNA_OVERRIDE_COMPARE_CREATE
Definition: RNA_access.h:800
@ RNA_OVERRIDE_COMPARE_IGNORE_NON_OVERRIDABLE
Definition: RNA_access.h:795
@ RNA_OVERRIDE_COMPARE_RESTORE
Definition: RNA_access.h:802
const char * RNA_translate_ui_text(const char *text, const char *text_ctxt, struct StructRNA *type, struct PropertyRNA *prop, int translate)
Definition: rna_access.c:6643
StructRNA * RNA_struct_find(const char *identifier)
Definition: rna_access.c:581
void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value)
Definition: rna_access.c:3149
int RNA_function_flag(FunctionRNA *func)
Definition: rna_access.c:5783
bool RNA_property_editable_info(PointerRNA *ptr, PropertyRNA *prop, const char **r_info)
Definition: rna_access.c:1971
StructRNA * RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:1405
float RNA_property_float_get_default(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_pointer_poll(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *value)
Definition: rna_access.c:1431
PointerRNA void PointerRNA void RNA_property_collection_begin(PointerRNA *ptr, PropertyRNA *prop, CollectionPropertyIterator *iter)
Definition: rna_access.c:3675
int RNA_property_flag(PropertyRNA *prop)
Definition: rna_access.c:1055
RawPropertyType RNA_property_raw_type(PropertyRNA *prop)
Definition: rna_access.c:4684
bool RNA_property_comparable(PointerRNA *ptr, PropertyRNA *prop)
int RNA_struct_ui_icon(const StructRNA *type)
Definition: rna_access.c:601
void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, bool value)
Definition: rna_access.c:2180
float RNA_float_get(PointerRNA *ptr, const char *name)
Definition: rna_access.c:4957
bool RNA_property_builtin(PropertyRNA *prop)
Definition: rna_access.c:1065
struct IDProperty ** RNA_struct_idprops_p(PointerRNA *ptr)
Definition: rna_access.c:238
void RNA_property_int_get_array_range(PointerRNA *ptr, PropertyRNA *prop, int values[2])
Definition: rna_access.c:2544
int RNA_parameter_list_arg_count(const ParameterList *parms)
Definition: rna_access.c:5954
bool RNA_struct_idprops_register_check(const StructRNA *type)
Definition: rna_access.c:665
void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value)
Definition: rna_access.c:6088
void RNA_property_string_set_bytes(PointerRNA *ptr, PropertyRNA *prop, const char *value, int len)
Definition: rna_access.c:3268
void RNA_float_set(PointerRNA *ptr, const char *name, float value)
Definition: rna_access.c:4968
int RNA_string_length(PointerRNA *ptr, const char *name)
Definition: rna_access.c:5144
char * RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen, int *r_len)
Definition: rna_access.c:5129
const EnumPropertyItem * RNA_struct_property_tag_defines(const StructRNA *type)
Definition: rna_access.c:629
PropertyRNA * RNA_struct_name_property(const StructRNA *type)
Definition: rna_access.c:624
int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, PropertyRNA *itemprop, RawArray *array)
Definition: rna_access.c:4218
bool RNA_struct_undo_check(const StructRNA *type)
Definition: rna_access.c:660
void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter)
Definition: rna_access.c:5203
void RNA_struct_property_unset(PointerRNA *ptr, const char *identifier)
Definition: rna_access.c:5313
void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:2138
void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr)
Definition: rna_access.c:3835
bool RNA_pointer_is_null(const PointerRNA *ptr)
Definition: rna_access.c:164
bool RNA_struct_equals(struct Main *bmain, struct PointerRNA *ptr_a, struct PointerRNA *ptr_b, eRNACompareMode mode)
int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:1075
bool RNA_property_is_idprop(const PropertyRNA *prop)
Definition: rna_access.c:5322
int RNA_property_string_maxlength(PropertyRNA *prop)
Definition: rna_access.c:1399
bool RNA_enum_is_equal(struct bContext *C, PointerRNA *ptr, const char *name, const char *enumname)
Definition: rna_access.c:5045
bool RNA_struct_idprops_datablock_allowed(const StructRNA *type)
Definition: rna_access.c:670
bool RNA_property_copy(struct Main *bmain, PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index)
bool RNA_property_overridable_get(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values)
Definition: rna_access.c:2978
void RNA_property_enum_items_ex(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, bool use_static, const EnumPropertyItem **r_item, int *r_totitem, bool *r_free)
Definition: rna_access.c:1452
void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values)
Definition: rna_access.c:2605
bool RNA_enum_description(const EnumPropertyItem *item, int value, const char **description)
Definition: rna_access.c:1702
void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values)
Definition: rna_access.c:2707
int RNA_function_call(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms)
Definition: rna_access.c:6165
int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:3402
void RNA_pointer_create(struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
Definition: rna_access.c:136
void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value)
Definition: rna_access.c:2790
const struct ListBase * RNA_struct_type_functions(StructRNA *srna)
Definition: rna_access.c:853
eRNACompareMode
Definition: RNA_access.h:768
@ RNA_EQ_UNSET_MATCH_ANY
Definition: RNA_access.h:773
@ RNA_EQ_STRICT
Definition: RNA_access.h:771
@ RNA_EQ_COMPARE
Definition: RNA_access.h:777
@ RNA_EQ_UNSET_MATCH_NONE
Definition: RNA_access.h:775
int RNA_property_collection_raw_set(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len)
Definition: rna_access.c:4716
int RNA_property_enum_bitflag_identifiers(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int value, const char **identifier)
Definition: rna_access.c:1856
void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values)
Definition: rna_access.c:2512
bool RNA_property_collection_move(PointerRNA *ptr, PropertyRNA *prop, int key, int pos)
Definition: rna_access.c:3983
PropertySubType RNA_property_subtype(PropertyRNA *prop)
Definition: rna_access.c:1015
const char * RNA_struct_translation_context(const StructRNA *type)
Definition: rna_access.c:619
bool RNA_property_overridden(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_struct_property_is_set(PointerRNA *ptr, const char *identifier)
Definition: rna_access.c:5301
int RNA_parameter_list_ret_count(const ParameterList *parms)
Definition: rna_access.c:5959
void * RNA_struct_py_type_get(StructRNA *srna)
Definition: rna_access.c:887
void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax)
Definition: rna_access.c:1190
int RNA_enum_from_value(const EnumPropertyItem *item, int value)
Definition: rna_access.c:1736
void RNA_property_update_main(struct Main *bmain, struct Scene *scene, PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:2143
char * RNA_function_as_string_keywords(struct bContext *C, FunctionRNA *func, bool as_function, bool all_args, int max_prop_length)
Definition: rna_access.c:5492
bool RNA_struct_idprops_unset(PointerRNA *ptr, const char *identifier)
Definition: rna_access.c:680
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
Definition: rna_access.c:4863
int RNA_parameter_dynamic_length_get(ParameterList *parms, PropertyRNA *parm)
Definition: rna_access.c:6104
char * RNA_property_as_string(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int index, int max_prop_length)
Definition: rna_access.c:5615
bool RNA_struct_override_matches(struct Main *bmain, struct PointerRNA *ptr_local, struct PointerRNA *ptr_reference, const char *root_path, size_t root_path_len, struct IDOverrideLibrary *override, eRNAOverrideMatch flags, eRNAOverrideMatchResult *r_report_flags)
int RNA_enum_bitflag_identifiers(const EnumPropertyItem *item, int value, const char **identifier)
Definition: rna_access.c:1678
void RNA_property_collection_clear(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:4026
int RNA_property_tags(PropertyRNA *prop)
Definition: rna_access.c:1060
struct IDOverrideLibraryProperty * RNA_property_override_property_get(struct Main *bmain, PointerRNA *ptr, PropertyRNA *prop, bool *r_created)
PointerRNA void PointerRNA RNA_property_pointer_get_default(PointerRNA *ptr, PropertyRNA *prop) ATTR_NONNULL(1
bool RNA_property_collection_type_get(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr)
Definition: rna_access.c:4210
void RNA_property_collection_end(CollectionPropertyIterator *iter)
Definition: rna_access.c:3750
bool RNA_property_collection_lookup_string_has_fn(PropertyRNA *prop)
Definition: rna_access.c:4090
bool RNA_struct_idprops_check(StructRNA *srna)
Definition: rna_access.c:266
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
Definition: rna_access.c:5015
void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values)
Definition: rna_access.c:4992
int RNA_property_array_item_index(PropertyRNA *prop, char name)
Definition: rna_access.c:1136
bool RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index)
Definition: rna_access.c:2275
char * RNA_property_string_get_default_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen, int *r_len)
Definition: rna_access.c:3326
bool RNA_property_boolean_get_default(PointerRNA *ptr, PropertyRNA *prop)
struct IDProperty * RNA_struct_idprops(PointerRNA *ptr, bool create)
Definition: rna_access.c:251
PropertyRNA * RNA_function_find_parameter(PointerRNA *ptr, FunctionRNA *func, const char *identifier)
bool RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key)
Definition: rna_access.c:3918
int RNA_enum_get(PointerRNA *ptr, const char *name)
Definition: rna_access.c:5004
void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr)
Definition: rna_access.c:105
const char * RNA_struct_state_owner_get(void)
Definition: rna_access.c:6816
int RNA_function_call_direct(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format,...) ATTR_PRINTF_FORMAT(5
bool RNA_struct_available_or_report(struct ReportList *reports, const char *identifier)
Definition: rna_access.c:918
void RNA_property_unset(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:5281
bool RNA_enum_name(const EnumPropertyItem *item, int value, const char **r_name)
Definition: rna_access.c:1692
eRNAOverrideMatchResult
Definition: RNA_access.h:805
@ RNA_OVERRIDE_MATCH_RESULT_RESTORED
Definition: RNA_access.h:812
@ RNA_OVERRIDE_MATCH_RESULT_CREATED
Definition: RNA_access.h:810
void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter)
Definition: rna_access.c:5964
StructRNA * ID_code_to_RNA_type(short idcode)
int RNA_parameter_dynamic_length_get_data(ParameterList *parms, PropertyRNA *parm, void *data)
int int int RNA_function_call_direct_va(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, va_list args)
Definition: rna_access.c:6431
void RNA_property_pointer_remove(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:3645
PropertyRNA * RNA_struct_iterator_property(StructRNA *type)
Definition: rna_access.c:634
int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:3213
bool RNA_property_enum_item_from_value_gettexted(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int value, EnumPropertyItem *r_item)
Definition: rna_access.c:1842
bool RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, const int index)
Definition: rna_access.c:1986
int RNA_parameter_list_size(const ParameterList *parms)
Definition: rna_access.c:5949
int RNA_parameter_flag(PropertyRNA *prop)
Definition: rna_access.c:5821
int RNA_raw_type_sizeof(RawPropertyType type)
Definition: rna_access.c:4315
bool RNA_enum_identifier(const EnumPropertyItem *item, int value, const char **identifier)
Definition: rna_access.c:1668
const char * RNA_function_ui_description(FunctionRNA *func)
Definition: rna_access.c:5773
bool RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:2009
char * RNA_pointer_as_string_keywords(struct bContext *C, PointerRNA *ptr, bool as_function, bool all_args, bool nested_args, int max_prop_length)
Definition: rna_access.c:5477
const char * RNA_property_ui_name_raw(const PropertyRNA *prop)
Definition: rna_access.c:1880
const char * RNA_struct_ui_description_raw(const StructRNA *type)
Definition: rna_access.c:614
const char * RNA_property_ui_description(const PropertyRNA *prop)
Definition: rna_access.c:1885
char * RNA_pointer_as_string(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop_ptr, PointerRNA *ptr_prop)
Definition: rna_access.c:5382
const StructRNA * RNA_struct_base_child_of(const StructRNA *type, const StructRNA *parent_type)
Definition: rna_access.c:644
int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop)
Definition: rna_access.c:3762
void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const bool *values)
Definition: rna_access.c:2304
void * RNA_property_py_data_get(PropertyRNA *prop)
Definition: rna_access.c:1070
const char * RNA_property_ui_name(const PropertyRNA *prop)
Definition: rna_access.c:1875
StructRNA * RNA_struct_base(StructRNA *type)
Definition: rna_access.c:639
void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value)
Definition: rna_access.c:3239
struct StructRNA *(* StructRegisterFunc)(struct Main *bmain, struct ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free)
Definition: RNA_types.h:738
PropertyScaleType
Definition: RNA_types.h:96
eStringPropertySearchFlag
Definition: RNA_types.h:547
void(* StringPropertySearchVisitFunc)(void *visit_user_data, const StringPropertySearchVisitParams *params)
Definition: RNA_types.h:568
PropertyType
Definition: RNA_types.h:58
PropertyUnit
Definition: RNA_types.h:69
void(* StructUnregisterFunc)(struct Main *bmain, struct StructRNA *type)
Definition: RNA_types.h:746
RawPropertyType
Definition: RNA_types.h:431
PropertySubType
Definition: RNA_types.h:125
#define C
Definition: RandGen.cpp:25
int main(int argc, char *argv[])
Scene scene
int len
Definition: draw_manager.c:108
uint pos
format
Definition: logImageCore.h:38
std::unique_ptr< IDProperty, IDPropertyDeleter > create(StringRefNull prop_name, int32_t value)
Allocate a new IDProperty of type IDP_INT, set its name and value.
T length(const vec_base< T, Size > &a)
Definition: DNA_ID.h:368
Definition: BKE_main.h:121
PointerRNA * ptr
Definition: wm_files.c:3480