forked from bartvdbraak/blender
RNA
* The generated code is now split into multiple files instead of a single big one. Scons, make and cmake are updated to deal with this.
This commit is contained in:
parent
b08f15aa08
commit
bebe874a5b
@ -132,7 +132,8 @@ typedef enum StructFlag {
|
||||
STRUCT_ID = 1,
|
||||
|
||||
/* internal flags */
|
||||
STRUCT_RUNTIME = 2
|
||||
STRUCT_RUNTIME = 2,
|
||||
STRUCT_GENERATED = 4
|
||||
} StructFlag;
|
||||
|
||||
typedef struct StructRNA StructRNA;
|
||||
|
@ -24,8 +24,7 @@
|
||||
#
|
||||
# ***** END GPL LICENSE BLOCK *****
|
||||
|
||||
SET(SRC
|
||||
makesrna.c
|
||||
SET(DEFSRC
|
||||
rna_action.c
|
||||
rna_actuator.c
|
||||
rna_armature.c
|
||||
@ -36,7 +35,6 @@ SET(SRC
|
||||
rna_constraint.c
|
||||
rna_controller.c
|
||||
rna_curve.c
|
||||
rna_define.c
|
||||
rna_fluidsim.c
|
||||
rna_group.c
|
||||
rna_ID.c
|
||||
@ -70,7 +68,58 @@ SET(SRC
|
||||
rna_userdef.c
|
||||
rna_vfont.c
|
||||
rna_wm.c
|
||||
rna_world.c
|
||||
rna_world.c)
|
||||
|
||||
SET(GENSRC
|
||||
rna_action_gen.c
|
||||
rna_actuator_gen.c
|
||||
rna_armature_gen.c
|
||||
rna_brush_gen.c
|
||||
rna_camera_gen.c
|
||||
rna_cloth_gen.c
|
||||
rna_color_gen.c
|
||||
rna_constraint_gen.c
|
||||
rna_controller_gen.c
|
||||
rna_curve_gen.c
|
||||
rna_fluidsim_gen.c
|
||||
rna_group_gen.c
|
||||
rna_ID_gen.c
|
||||
rna_image_gen.c
|
||||
rna_ipo_gen.c
|
||||
rna_key_gen.c
|
||||
rna_lamp_gen.c
|
||||
rna_lattice_gen.c
|
||||
rna_main_gen.c
|
||||
rna_material_gen.c
|
||||
rna_mesh_gen.c
|
||||
rna_meta_gen.c
|
||||
rna_modifier_gen.c
|
||||
rna_nodetree_gen.c
|
||||
rna_object_gen.c
|
||||
rna_object_force_gen.c
|
||||
rna_packedfile_gen.c
|
||||
rna_particle_gen.c
|
||||
rna_pose_gen.c
|
||||
rna_property_gen.c
|
||||
rna_radio_gen.c
|
||||
rna_rna_gen.c
|
||||
rna_scene_gen.c
|
||||
rna_screen_gen.c
|
||||
rna_scriptlink_gen.c
|
||||
rna_sensor_gen.c
|
||||
rna_sequence_gen.c
|
||||
rna_sound_gen.c
|
||||
rna_text_gen.c
|
||||
rna_texture_gen.c
|
||||
rna_userdef_gen.c
|
||||
rna_vfont_gen.c
|
||||
rna_wm_gen.c
|
||||
rna_world_gen.c)
|
||||
|
||||
SET(SRC
|
||||
makesrna.c
|
||||
rna_define.c
|
||||
${DEFSRC}
|
||||
../../../../intern/guardedalloc/intern/mallocn.c
|
||||
../../../../intern/guardedalloc/intern/mmap_win.c)
|
||||
|
||||
@ -81,15 +130,16 @@ FILE(GLOB INC_FILES ../*.h ../../makesdna/*.h)
|
||||
ADD_EXECUTABLE(makesrna ${SRC} ${INC_FILES})
|
||||
TARGET_LINK_LIBRARIES(makesrna bf_dna)
|
||||
|
||||
# Output rna.c
|
||||
# Output rna_*_gen.c
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rna.c
|
||||
COMMAND ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/makesrna ${CMAKE_CURRENT_BINARY_DIR}/rna.c ${CMAKE_SOURCE_DIR}/source/blender/makesrna/
|
||||
OUTPUT ${GENSRC}
|
||||
COMMAND ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/makesrna ${CMAKE_CURRENT_BINARY_DIR}/ ${CMAKE_SOURCE_DIR}/source/blender/makesrna/
|
||||
DEPENDS makesrna
|
||||
)
|
||||
|
||||
# Build bf_rna
|
||||
SET(SRC rna_access.c rna_dependency.c rna.c)
|
||||
SET(SRC rna_access.c rna_dependency.c ${GENSRC})
|
||||
BLENDERLIB(bf_rna "${SRC}" "${INC}")
|
||||
|
||||
MESSAGE(STATUS "Configuring makesrna")
|
||||
|
||||
|
@ -24,7 +24,17 @@
|
||||
|
||||
LIBNAME = rna
|
||||
DIR = $(OCGDIR)/blender/makesrna
|
||||
CSRCS = RNA.c $(wildcard rna_*.c)
|
||||
|
||||
ALLRNA = $(wildcard rna_*.c)
|
||||
DEFRNA = $(filter-out %rna_define.c, $(filter-out %rna_dependency.c, $(filter-out %rna_access.c, $(ALLRNA))))
|
||||
|
||||
GENSRCS = $(patsubst rna_%.c, rna_%_gen.c, $(DEFRNA))
|
||||
GENTARGET = $(patsubst %.c, $(DIR)/$(DEBUG_DIR)%.c, $(GENSRCS))
|
||||
|
||||
MAKESRCS = $(DEFRNA) makesrna.c rna_define.c
|
||||
MAKEOBJS = $(patsubst %.c, $(DIR)/$(DEBUG_DIR)%.o, $(MAKESRCS))
|
||||
|
||||
CSRCS = $(GENSRCS) rna_access.c rna_dependency.c
|
||||
|
||||
include nan_compile.mk
|
||||
|
||||
@ -53,8 +63,8 @@ ifeq ($(OS),windows)
|
||||
endif
|
||||
|
||||
clean::
|
||||
@$(RM) $(DIR)/makesrna* $(DIR)/RNA.c
|
||||
@$(RM) $(DIR)/debug/makesrna* $(DIR)/debug/RNA.c
|
||||
@$(RM) $(DIR)/makesrna* $(DIR)/rna*
|
||||
@$(RM) $(DIR)/debug/makesrna* $(DIR)/debug/rna*
|
||||
|
||||
# TODO include right .mk for ldflags
|
||||
|
||||
@ -62,18 +72,19 @@ clean::
|
||||
# is done quite intentionally. If there is a bug in that lib, it needs
|
||||
# to be fixed by the module maintainer.
|
||||
|
||||
RNAOBJS = $(filter-out %rna_dependency.o, $(filter-out %rna_access.o, $(filter-out %RNA.o, $(OBJS))))
|
||||
|
||||
$(DIR)/$(DEBUG_DIR)makesrna: $(RNAOBJS) $(DIR)/$(DEBUG_DIR)makesrna.o $(OCGDIR)/blender/makesdna/$(DEBUG_DIR)libdna.a $(NAN_GUARDEDALLOC)/lib/libguardedalloc.a
|
||||
$(DIR)/$(DEBUG_DIR)makesrna: $(MAKEOBJS) $(OCGDIR)/blender/makesdna/$(DEBUG_DIR)libdna.a $(NAN_GUARDEDALLOC)/lib/libguardedalloc.a
|
||||
$(CC) $(LDFLAGS) -o $@ $(WINLIBS) $^
|
||||
|
||||
$(DIR)/$(DEBUG_DIR)RNA.c: $(DIR)/$(DEBUG_DIR)makesrna
|
||||
$(DIR)/$(DEBUG_DIR)rna_phony_gen.c: $(DIR)/$(DEBUG_DIR)makesrna
|
||||
ifeq ($(OS),windows)
|
||||
$(SRCHOME)/tools/cygwin/cl_wrapper.pl - $(DIR)/$(DEBUG_DIR)makesrna \
|
||||
$(DIR)/$(DEBUG_DIR)RNA.c
|
||||
$(DIR)/$(DEBUG_DIR)
|
||||
else
|
||||
$(DIR)/$(DEBUG_DIR)makesrna $(DIR)/$(DEBUG_DIR)RNA.c
|
||||
$(DIR)/$(DEBUG_DIR)makesrna $(DIR)/$(DEBUG_DIR)
|
||||
endif
|
||||
@touch $@
|
||||
|
||||
$(GENTARGET): $(DIR)/$(DEBUG_DIR)rna_phony_gen.c
|
||||
|
||||
$(DIR)/$(DEBUG_DIR)makesrna.o: makesrna.c $(wildcard rna_*.c)
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) makesrna.c -o $@
|
||||
|
@ -14,6 +14,12 @@ source_files = env.Glob('*.c')
|
||||
source_files.remove('rna_access.c')
|
||||
source_files.remove('rna_dependency.c')
|
||||
|
||||
generated_files = source_files[:]
|
||||
generated_files.remove('rna_define.c')
|
||||
generated_files.remove('makesrna.c')
|
||||
|
||||
generated_files = [filename[:-2] + '_gen.c' for filename in generated_files]
|
||||
|
||||
makesrna_tool = env.Clone()
|
||||
rna = env.Clone()
|
||||
makesrna_tool.Append(CCFLAGS = '-DBASE_HEADER="\\"source/blender/makesrna/\\"" ')
|
||||
@ -59,11 +65,19 @@ else:
|
||||
makesrna = makesrna_tool.Program (target = targetpath, source = source_files, LIBS=['bf_guardedalloc', 'bf_dna'])
|
||||
|
||||
rna_dict = rna.Dictionary()
|
||||
rna.Depends ('rna.c', makesrna)
|
||||
rna.Depends (generated_files, makesrna)
|
||||
|
||||
# this seems bad, how to retrieve it from scons?
|
||||
build_dir = root_build_dir + '/source/blender/makesrna/intern/'
|
||||
|
||||
if env['OURPLATFORM'] != 'linuxcross':
|
||||
rna.Command ('rna.c', '', root_build_dir+os.sep+"makesrna $TARGET")
|
||||
rna.Command (generated_files, '', root_build_dir+os.sep+"makesrna " + build_dir)
|
||||
else:
|
||||
rna.Command ('rna.c', '', root_build_dir+os.sep+"makesrna.exe $TARGET")
|
||||
obj = ['intern/rna.c', 'intern/rna_access.c', 'intern/rna_dependency.c']
|
||||
rna.Command (generated_files, '', root_build_dir+os.sep+"makesrna.exe " + build_dir)
|
||||
|
||||
obj = ['intern/rna_access.c', 'intern/rna_dependency.c']
|
||||
for generated_file in generated_files:
|
||||
obj += ['intern/' + generated_file]
|
||||
|
||||
Return ('obj')
|
||||
|
||||
|
@ -598,18 +598,6 @@ static void rna_auto_types()
|
||||
}
|
||||
}
|
||||
|
||||
static void rna_auto_functions(FILE *f)
|
||||
{
|
||||
StructDefRNA *ds;
|
||||
PropertyDefRNA *dp;
|
||||
|
||||
fprintf(f, "/* Autogenerated Functions */\n\n");
|
||||
|
||||
for(ds=DefRNA.structs.first; ds; ds=ds->next)
|
||||
for(dp=ds->properties.first; dp; dp=dp->next)
|
||||
rna_def_property_funcs(f, dp);
|
||||
}
|
||||
|
||||
static void rna_sort(BlenderRNA *brna)
|
||||
{
|
||||
StructRNA *srna;
|
||||
@ -668,8 +656,13 @@ static void rna_generate_prototypes(BlenderRNA *brna, FILE *f)
|
||||
StructRNA *srna;
|
||||
|
||||
for(srna=brna->structs.first; srna; srna=srna->next)
|
||||
fprintf(f, "StructRNA RNA_%s;\n", srna->identifier);
|
||||
fprintf(f, "extern StructRNA RNA_%s;\n", srna->identifier);
|
||||
fprintf(f, "\n");
|
||||
}
|
||||
|
||||
static void rna_generate_blender(BlenderRNA *brna, FILE *f)
|
||||
{
|
||||
StructRNA *srna;
|
||||
|
||||
fprintf(f, "BlenderRNA BLENDER_RNA = {");
|
||||
|
||||
@ -957,18 +950,15 @@ RNAProcessItem PROCESS_ITEMS[]= {
|
||||
{"rna_world.c", RNA_def_world},
|
||||
{NULL, NULL}};
|
||||
|
||||
static int rna_preprocess(char *basedirectory, FILE *f)
|
||||
static void rna_generate(BlenderRNA *brna, char *basedirectory, FILE *f, char *filename)
|
||||
{
|
||||
BlenderRNA *brna;
|
||||
StructRNA *srna;
|
||||
int i, status;
|
||||
StructDefRNA *ds;
|
||||
PropertyDefRNA *dp;
|
||||
|
||||
fprintf(f, "\n/* Automatically generated struct definitions for the Data API.\n"
|
||||
" Do not edit manually, changes will be overwritten */\n\n"
|
||||
"#define RNA_RUNTIME\n\n");
|
||||
|
||||
brna= RNA_create();
|
||||
|
||||
fprintf(f, "#include <float.h>\n");
|
||||
fprintf(f, "#include <limits.h>\n");
|
||||
fprintf(f, "#include <string.h>\n\n");
|
||||
@ -981,82 +971,119 @@ static int rna_preprocess(char *basedirectory, FILE *f)
|
||||
fprintf(f, "#include \"RNA_types.h\"\n");
|
||||
fprintf(f, "#include \"rna_internal.h\"\n\n");
|
||||
|
||||
/* this is ugly, but we cannot have c files compiled for both
|
||||
* makesrna and blender with some build systems at the moment */
|
||||
fprintf(f, "#include \"rna_define.c\"\n\n");
|
||||
|
||||
for(i=0; PROCESS_ITEMS[i].filename; i++)
|
||||
if(PROCESS_ITEMS[i].define)
|
||||
PROCESS_ITEMS[i].define(brna);
|
||||
|
||||
rna_sort(brna);
|
||||
rna_auto_types();
|
||||
|
||||
rna_generate_prototypes(brna, f);
|
||||
|
||||
for(i=0; PROCESS_ITEMS[i].filename; i++)
|
||||
fprintf(f, "#include \"%s\"\n", PROCESS_ITEMS[i].filename);
|
||||
fprintf(f, "\n");
|
||||
fprintf(f, "#include \"%s\"\n\n", filename);
|
||||
|
||||
rna_auto_functions(f);
|
||||
fprintf(f, "/* Autogenerated Functions */\n\n");
|
||||
|
||||
for(srna=brna->structs.first; srna; srna=srna->next)
|
||||
rna_generate_struct(brna, srna, f);
|
||||
|
||||
status= DefRNA.error;
|
||||
for(ds=DefRNA.structs.first; ds; ds=ds->next)
|
||||
if(!filename || ds->filename == filename)
|
||||
for(dp=ds->properties.first; dp; dp=dp->next)
|
||||
rna_def_property_funcs(f, dp);
|
||||
|
||||
RNA_define_free(brna);
|
||||
RNA_free(brna);
|
||||
for(ds=DefRNA.structs.first; ds; ds=ds->next)
|
||||
if(!filename || ds->filename == filename)
|
||||
rna_generate_struct(brna, ds->srna, f);
|
||||
|
||||
return status;
|
||||
if(strcmp(filename, "rna_ID.c") == 0) {
|
||||
/* this is ugly, but we cannot have c files compiled for both
|
||||
* makesrna and blender with some build systems at the moment */
|
||||
fprintf(f, "#include \"rna_define.c\"\n\n");
|
||||
|
||||
rna_generate_blender(brna, f);
|
||||
}
|
||||
}
|
||||
|
||||
static void make_bad_file(char *file)
|
||||
{
|
||||
FILE *fp= fopen(file, "w");
|
||||
fprintf(fp, "ERROR! Cannot make correct RNA.c file, STUPID!\n");
|
||||
fprintf(fp, "ERROR! Cannot make correct RNA file, STUPID!\n");
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
static int rna_preprocess(char *basedirectory, char *outfile)
|
||||
{
|
||||
BlenderRNA *brna;
|
||||
StructDefRNA *ds;
|
||||
FILE *file;
|
||||
char deffile[4096];
|
||||
int i, status, len;
|
||||
|
||||
/* define rna */
|
||||
brna= RNA_create();
|
||||
|
||||
for(i=0; PROCESS_ITEMS[i].filename; i++) {
|
||||
if(PROCESS_ITEMS[i].define) {
|
||||
PROCESS_ITEMS[i].define(brna);
|
||||
|
||||
for(ds=DefRNA.structs.first; ds; ds=ds->next)
|
||||
if(!ds->filename)
|
||||
ds->filename= PROCESS_ITEMS[i].filename;
|
||||
}
|
||||
}
|
||||
|
||||
rna_sort(brna);
|
||||
rna_auto_types();
|
||||
|
||||
status= (DefRNA.error != 0);
|
||||
|
||||
len= strlen(outfile);
|
||||
|
||||
for(i=0; PROCESS_ITEMS[i].filename; i++) {
|
||||
strcpy(deffile, outfile);
|
||||
strcat(deffile, PROCESS_ITEMS[i].filename);
|
||||
deffile[strlen(deffile)-2] = '\0';
|
||||
strcat(deffile, "_gen.c");
|
||||
|
||||
if(status) {
|
||||
make_bad_file(deffile);
|
||||
}
|
||||
else {
|
||||
file = fopen(deffile, "w");
|
||||
|
||||
if(!file) {
|
||||
printf ("Unable to open file: %s\n", deffile);
|
||||
status = 1;
|
||||
}
|
||||
else {
|
||||
rna_generate(brna, basedirectory, file, PROCESS_ITEMS[i].filename);
|
||||
fclose(file);
|
||||
|
||||
status= (DefRNA.error != 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RNA_define_free(brna);
|
||||
RNA_free(brna);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
#ifndef BASE_HEADER
|
||||
#define BASE_HEADER "../"
|
||||
#endif
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
FILE *file;
|
||||
int totblock, return_status = 0;
|
||||
|
||||
if (argc!=2 && argc!=3) {
|
||||
printf("Usage: %s outfile.c [base directory]\n", argv[0]);
|
||||
printf("Usage: %s outdirectory/ [base directory]\n", argv[0]);
|
||||
return_status = 1;
|
||||
}
|
||||
else {
|
||||
file = fopen(argv[1], "w");
|
||||
char baseDirectory[256];
|
||||
|
||||
if (!file) {
|
||||
printf ("Unable to open file: %s\n", argv[1]);
|
||||
return_status = 1;
|
||||
}
|
||||
else {
|
||||
char baseDirectory[256];
|
||||
printf("Running makesrna, program versions %s\n", RNA_VERSION_DATE);
|
||||
|
||||
printf("Running makesrna, program versions %s\n", RNA_VERSION_DATE);
|
||||
if (argc==3)
|
||||
strcpy(baseDirectory, argv[2]);
|
||||
else
|
||||
strcpy(baseDirectory, BASE_HEADER);
|
||||
|
||||
if (argc==3)
|
||||
strcpy(baseDirectory, argv[2]);
|
||||
else
|
||||
strcpy(baseDirectory, BASE_HEADER);
|
||||
|
||||
return_status= (rna_preprocess(baseDirectory, file));
|
||||
fclose(file);
|
||||
|
||||
if(return_status) {
|
||||
/* error */
|
||||
make_bad_file(argv[1]);
|
||||
return_status = 1;
|
||||
}
|
||||
}
|
||||
return_status= rna_preprocess(baseDirectory, argv[1]);
|
||||
}
|
||||
|
||||
totblock= MEM_get_memory_blocks_in_use();
|
||||
|
@ -35,25 +35,25 @@
|
||||
#include "BKE_idprop.h"
|
||||
|
||||
/* name functions that ignore the first two ID characters */
|
||||
static void rna_ID_name_get(PointerRNA *ptr, char *value)
|
||||
void rna_ID_name_get(PointerRNA *ptr, char *value)
|
||||
{
|
||||
ID *id= (ID*)ptr->data;
|
||||
BLI_strncpy(value, id->name+2, sizeof(id->name)-2);
|
||||
}
|
||||
|
||||
static int rna_ID_name_length(PointerRNA *ptr)
|
||||
int rna_ID_name_length(PointerRNA *ptr)
|
||||
{
|
||||
ID *id= (ID*)ptr->data;
|
||||
return strlen(id->name+2);
|
||||
}
|
||||
|
||||
static void rna_ID_name_set(PointerRNA *ptr, const char *value)
|
||||
void rna_ID_name_set(PointerRNA *ptr, const char *value)
|
||||
{
|
||||
ID *id= (ID*)ptr->data;
|
||||
BLI_strncpy(id->name+2, value, sizeof(id->name)-2);
|
||||
}
|
||||
|
||||
static StructRNA *rna_ID_refine(PointerRNA *ptr)
|
||||
StructRNA *rna_ID_refine(PointerRNA *ptr)
|
||||
{
|
||||
ID *id= (ID*)ptr->data;
|
||||
|
||||
@ -87,7 +87,7 @@ static StructRNA *rna_ID_refine(PointerRNA *ptr)
|
||||
}
|
||||
}
|
||||
|
||||
static void rna_ID_fake_user_set(PointerRNA *ptr, int value)
|
||||
void rna_ID_fake_user_set(PointerRNA *ptr, int value)
|
||||
{
|
||||
ID *id= (ID*)ptr->data;
|
||||
|
||||
|
@ -64,6 +64,7 @@ typedef struct StructDefRNA {
|
||||
struct StructDefRNA *next, *prev;
|
||||
|
||||
struct StructRNA *srna;
|
||||
const char *filename;
|
||||
|
||||
const char *dnaname;
|
||||
|
||||
@ -142,6 +143,12 @@ void RNA_def_world(struct BlenderRNA *brna);
|
||||
void rna_def_ipo_common(struct StructRNA *srna);
|
||||
void rna_def_texmat_common(struct StructRNA *srna, const char *texspace_editable);
|
||||
|
||||
void rna_ID_name_get(struct PointerRNA *ptr, char *value);
|
||||
int rna_ID_name_length(struct PointerRNA *ptr);
|
||||
void rna_ID_name_set(struct PointerRNA *ptr, const char *value);
|
||||
struct StructRNA *rna_ID_refine(struct PointerRNA *ptr);
|
||||
void rna_ID_fake_user_set(struct PointerRNA *ptr, int value);
|
||||
|
||||
void rna_object_vgroup_name_index_get(struct PointerRNA *ptr, char *value, int index);
|
||||
int rna_object_vgroup_name_index_length(struct PointerRNA *ptr, int index);
|
||||
void rna_object_vgroup_name_index_set(struct PointerRNA *ptr, const char *value, short *index);
|
||||
|
@ -29,6 +29,7 @@
|
||||
|
||||
#include "rna_internal.h"
|
||||
|
||||
#include "DNA_curve_types.h"
|
||||
#include "DNA_key_types.h"
|
||||
#include "DNA_lattice_types.h"
|
||||
#include "DNA_meshdata_types.h"
|
||||
|
@ -29,6 +29,7 @@
|
||||
|
||||
#include "rna_internal.h"
|
||||
|
||||
#include "DNA_mesh_types.h"
|
||||
#include "DNA_meta_types.h"
|
||||
|
||||
#ifdef RNA_RUNTIME
|
||||
|
@ -33,6 +33,7 @@
|
||||
|
||||
#include "DNA_armature_types.h"
|
||||
#include "DNA_modifier_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
#include "DNA_scene_types.h"
|
||||
|
||||
#include "BKE_bmesh.h" /* For BevelModifierData */
|
||||
@ -284,7 +285,6 @@ static void rna_def_modifier_subsurf(BlenderRNA *brna)
|
||||
static void rna_def_modifier_multires(BlenderRNA *brna)
|
||||
{
|
||||
StructRNA *srna;
|
||||
PropertyRNA *prop;
|
||||
|
||||
srna= RNA_def_struct(brna, "MultiresModifier", "Modifier");
|
||||
RNA_def_struct_ui_text(srna, "Multires Modifier", "");
|
||||
|
@ -29,6 +29,8 @@
|
||||
|
||||
#include "rna_internal.h"
|
||||
|
||||
#include "DNA_customdata_types.h"
|
||||
#include "DNA_mesh_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
#include "DNA_property_types.h"
|
||||
#include "DNA_scene_types.h"
|
||||
|
@ -24,6 +24,9 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "DNA_ID.h"
|
||||
|
||||
#include "RNA_access.h"
|
||||
#include "RNA_define.h"
|
||||
#include "RNA_types.h"
|
||||
|
||||
|
@ -35,6 +35,7 @@
|
||||
|
||||
#ifdef RNA_RUNTIME
|
||||
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_global.h"
|
||||
|
||||
void *rna_Scene_objects_get(CollectionPropertyIterator *iter)
|
||||
|
@ -25,6 +25,8 @@
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
#include "BKE_text.h"
|
||||
|
||||
#include "RNA_define.h"
|
||||
|
Loading…
Reference in New Issue
Block a user