Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesrna/intern/rna_scene.c
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
| Show First 20 Lines • Show All 448 Lines • ▼ Show 20 Lines | |||||
| #ifdef RNA_RUNTIME | #ifdef RNA_RUNTIME | ||||
| #include "DNA_anim_types.h" | #include "DNA_anim_types.h" | ||||
| #include "DNA_color_types.h" | #include "DNA_color_types.h" | ||||
| #include "DNA_node_types.h" | #include "DNA_node_types.h" | ||||
| #include "DNA_object_types.h" | #include "DNA_object_types.h" | ||||
| #include "DNA_mesh_types.h" | #include "DNA_mesh_types.h" | ||||
| #include "DNA_text_types.h" | #include "DNA_text_types.h" | ||||
| #include "DNA_workspace_types.h" | |||||
| #include "RNA_access.h" | #include "RNA_access.h" | ||||
| #include "MEM_guardedalloc.h" | #include "MEM_guardedalloc.h" | ||||
| #include "BKE_brush.h" | #include "BKE_brush.h" | ||||
| #include "BKE_collection.h" | #include "BKE_collection.h" | ||||
| #include "BKE_colortools.h" | #include "BKE_colortools.h" | ||||
| ▲ Show 20 Lines • Show All 537 Lines • ▼ Show 20 Lines | |||||
| }; | }; | ||||
| static void rna_RenderSettings_stereoViews_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) | static void rna_RenderSettings_stereoViews_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) | ||||
| { | { | ||||
| RenderData *rd = (RenderData *)ptr->data; | RenderData *rd = (RenderData *)ptr->data; | ||||
| rna_iterator_listbase_begin(iter, &rd->views, rna_RenderSettings_stereoViews_skip); | rna_iterator_listbase_begin(iter, &rd->views, rna_RenderSettings_stereoViews_skip); | ||||
| } | } | ||||
| static char *rna_ViewRenderSettings_path(PointerRNA *UNUSED(ptr)) | |||||
| { | |||||
| return BLI_sprintfN("viewport_render"); | |||||
| } | |||||
| static char *rna_RenderSettings_path(PointerRNA *UNUSED(ptr)) | static char *rna_RenderSettings_path(PointerRNA *UNUSED(ptr)) | ||||
| { | { | ||||
| return BLI_sprintfN("render"); | return BLI_sprintfN("render"); | ||||
| } | } | ||||
| static char *rna_ImageFormatSettings_path(PointerRNA *ptr) | static char *rna_ImageFormatSettings_path(PointerRNA *ptr) | ||||
| { | { | ||||
| ImageFormatData *imf = (ImageFormatData *)ptr->data; | ImageFormatData *imf = (ImageFormatData *)ptr->data; | ||||
| ▲ Show 20 Lines • Show All 459 Lines • ▼ Show 20 Lines | if (!BKE_scene_remove_render_view(scene, srv)) { | ||||
| return; | return; | ||||
| } | } | ||||
| RNA_POINTER_INVALIDATE(srv_ptr); | RNA_POINTER_INVALIDATE(srv_ptr); | ||||
| WM_main_add_notifier(NC_SCENE | ND_RENDER_OPTIONS, NULL); | WM_main_add_notifier(NC_SCENE | ND_RENDER_OPTIONS, NULL); | ||||
| } | } | ||||
| static void rna_RenderSettings_engine_set(PointerRNA *ptr, int value) | static void rna_RenderSettings_views_format_set(PointerRNA *ptr, int value) | ||||
| { | { | ||||
| RenderData *rd = (RenderData *)ptr->data; | RenderData *rd = (RenderData *)ptr->data; | ||||
| RenderEngineType *type = BLI_findlink(&R_engines, value); | |||||
| Scene *scene = (Scene *)ptr->id.data; | |||||
| if (type) | if (rd->views_format == SCE_VIEWS_FORMAT_MULTIVIEW && | ||||
| BLI_strncpy_utf8(rd->engine, type->idname, sizeof(rd->engine)); | value == SCE_VIEWS_FORMAT_STEREO_3D) | ||||
| { | |||||
| /* make sure the actview is visible */ | |||||
| if (rd->actview > 1) rd->actview = 1; | |||||
| } | |||||
| rd->views_format = value; | |||||
| } | |||||
| static void rna_ViewRenderSettings_engine_set(PointerRNA *ptr, int value) | |||||
| { | |||||
| ViewRender *view_render = (ViewRender *)ptr->data; | |||||
| RenderEngineType *type = BLI_findlink(&R_engines, value); | |||||
| DEG_id_tag_update(&scene->id, DEG_TAG_COPY_ON_WRITE); | if (type) { | ||||
| BLI_strncpy_utf8(view_render->engine_id, type->idname, sizeof(view_render->engine_id)); | |||||
| DEG_id_tag_update(ptr->id.data, DEG_TAG_COPY_ON_WRITE); | |||||
| } | |||||
| } | } | ||||
| static EnumPropertyItem *rna_RenderSettings_engine_itemf( | static EnumPropertyItem *rna_ViewRenderSettings_engine_itemf( | ||||
| bContext *UNUSED(C), PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free) | bContext *UNUSED(C), PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free) | ||||
| { | { | ||||
| RenderEngineType *type; | RenderEngineType *type; | ||||
| EnumPropertyItem *item = NULL; | EnumPropertyItem *item = NULL; | ||||
| EnumPropertyItem tmp = {0, "", 0, "", ""}; | EnumPropertyItem tmp = {0, "", 0, "", ""}; | ||||
| int a = 0, totitem = 0; | int a = 0, totitem = 0; | ||||
| for (type = R_engines.first; type; type = type->next, a++) { | for (type = R_engines.first; type; type = type->next, a++) { | ||||
| tmp.value = a; | tmp.value = a; | ||||
| tmp.identifier = type->idname; | tmp.identifier = type->idname; | ||||
| tmp.name = type->name; | tmp.name = type->name; | ||||
| RNA_enum_item_add(&item, &totitem, &tmp); | RNA_enum_item_add(&item, &totitem, &tmp); | ||||
| } | } | ||||
| RNA_enum_item_end(&item, &totitem); | RNA_enum_item_end(&item, &totitem); | ||||
| *r_free = true; | *r_free = true; | ||||
| return item; | return item; | ||||
| } | } | ||||
| static int rna_RenderSettings_engine_get(PointerRNA *ptr) | static int rna_ViewRenderSettings_engine_get(PointerRNA *ptr) | ||||
| { | { | ||||
| RenderData *rd = (RenderData *)ptr->data; | ViewRender *view_render = (ViewRender *)ptr->data; | ||||
| RenderEngineType *type; | RenderEngineType *type; | ||||
| int a = 0; | int a = 0; | ||||
| for (type = R_engines.first; type; type = type->next, a++) | for (type = R_engines.first; type; type = type->next, a++) | ||||
| if (STREQ(type->idname, rd->engine)) | if (STREQ(type->idname, view_render->engine_id)) | ||||
| return a; | return a; | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| static void rna_RenderSettings_engine_update(Main *bmain, Scene *UNUSED(unused), PointerRNA *UNUSED(ptr)) | static void rna_ViewRenderSettings_engine_update(Main *bmain, Scene *UNUSED(unused), PointerRNA *UNUSED(ptr)) | ||||
| { | { | ||||
| ED_render_engine_changed(bmain); | ED_render_engine_changed(bmain); | ||||
| } | } | ||||
| static void rna_Scene_glsl_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) | static void rna_Scene_glsl_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) | ||||
| { | { | ||||
| Scene *scene = (Scene *)ptr->id.data; | Scene *scene = (Scene *)ptr->id.data; | ||||
| ▲ Show 20 Lines • Show All 79 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| static char *rna_SceneRenderView_path(PointerRNA *ptr) | static char *rna_SceneRenderView_path(PointerRNA *ptr) | ||||
| { | { | ||||
| SceneRenderView *srv = (SceneRenderView *)ptr->data; | SceneRenderView *srv = (SceneRenderView *)ptr->data; | ||||
| return BLI_sprintfN("render.views[\"%s\"]", srv->name); | return BLI_sprintfN("render.views[\"%s\"]", srv->name); | ||||
| } | } | ||||
| static void rna_RenderSettings_views_format_set(PointerRNA *ptr, int value) | static int rna_ViewRenderSettings_multiple_engines_get(PointerRNA *UNUSED(ptr)) | ||||
| { | |||||
| RenderData *rd = (RenderData *)ptr->data; | |||||
| if (rd->views_format == SCE_VIEWS_FORMAT_MULTIVIEW && | |||||
| value == SCE_VIEWS_FORMAT_STEREO_3D) | |||||
| { | |||||
| /* make sure the actview is visible */ | |||||
| if (rd->actview > 1) rd->actview = 1; | |||||
| } | |||||
| rd->views_format = value; | |||||
| } | |||||
| static int rna_RenderSettings_multiple_engines_get(PointerRNA *UNUSED(ptr)) | |||||
| { | { | ||||
| return (BLI_listbase_count(&R_engines) > 1); | return (BLI_listbase_count(&R_engines) > 1); | ||||
| } | } | ||||
| static int rna_RenderSettings_use_shading_nodes_get(PointerRNA *ptr) | static int rna_ViewRenderSettings_use_shading_nodes_get(PointerRNA *ptr) | ||||
| { | { | ||||
| Scene *scene = (Scene *)ptr->id.data; | ViewRender *view_render = (ViewRender *)ptr->data; | ||||
| return BKE_scene_use_new_shading_nodes(scene); | return BKE_viewrender_use_new_shading_nodes(view_render); | ||||
| } | } | ||||
| static int rna_RenderSettings_use_spherical_stereo_get(PointerRNA *ptr) | static int rna_ViewRenderSettings_use_spherical_stereo_get(PointerRNA *ptr) | ||||
| { | { | ||||
| Scene *scene = (Scene *)ptr->id.data; | ViewRender *view_render = (ViewRender *)ptr->data; | ||||
| return BKE_scene_use_spherical_stereo(scene); | return BKE_viewrender_use_spherical_stereo(view_render); | ||||
| } | } | ||||
| static int rna_RenderSettings_use_game_engine_get(PointerRNA *ptr) | static int rna_ViewRenderSettings_use_game_engine_get(PointerRNA *ptr) | ||||
| { | { | ||||
| RenderData *rd = (RenderData *)ptr->data; | ViewRender *view_render = (ViewRender *)ptr->data; | ||||
| RenderEngineType *type; | RenderEngineType *type; | ||||
| for (type = R_engines.first; type; type = type->next) | for (type = R_engines.first; type; type = type->next) | ||||
| if (STREQ(type->idname, rd->engine)) | if (STREQ(type->idname, view_render->engine_id)) | ||||
| return (type->flag & RE_GAME) != 0; | return (type->flag & RE_GAME) != 0; | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| static void rna_SceneRenderLayer_layer_set(PointerRNA *ptr, const int *values) | static void rna_SceneRenderLayer_layer_set(PointerRNA *ptr, const int *values) | ||||
| { | { | ||||
| SceneRenderLayer *rl = (SceneRenderLayer *)ptr->data; | SceneRenderLayer *rl = (SceneRenderLayer *)ptr->data; | ||||
| ▲ Show 20 Lines • Show All 93 Lines • ▼ Show 20 Lines | static void object_simplify_update(Object *ob) | ||||
| if (ob->dup_group) { | if (ob->dup_group) { | ||||
| GroupObject *gob; | GroupObject *gob; | ||||
| for (gob = ob->dup_group->gobject.first; gob; gob = gob->next) | for (gob = ob->dup_group->gobject.first; gob; gob = gob->next) | ||||
| object_simplify_update(gob->ob); | object_simplify_update(gob->ob); | ||||
| } | } | ||||
| } | } | ||||
| static void rna_Scene_use_simplify_update(Main *bmain, Scene *scene, PointerRNA *ptr) | static void rna_Scene_use_simplify_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) | ||||
| { | { | ||||
| Scene *sce = ptr->id.data; | Scene *sce = ptr->id.data; | ||||
| Scene *sce_iter; | Scene *sce_iter; | ||||
| Base *base; | Base *base; | ||||
| BKE_main_id_tag_listbase(&bmain->object, LIB_TAG_DOIT, true); | FOREACH_SCENE_OBJECT(sce, ob) | ||||
| for (SETLOOPER(sce, sce_iter, base)) | { | ||||
| object_simplify_update(ob); | |||||
| } | |||||
| FOREACH_SCENE_OBJECT_END | |||||
| for (SETLOOPER_SET_ONLY(sce, sce_iter, base)) { | |||||
| object_simplify_update(base->object); | object_simplify_update(base->object); | ||||
| } | |||||
| WM_main_add_notifier(NC_GEOM | ND_DATA, NULL); | WM_main_add_notifier(NC_GEOM | ND_DATA, NULL); | ||||
| DEG_id_tag_update(&scene->id, 0); | DEG_id_tag_update(&sce->id, 0); | ||||
| } | } | ||||
| static void rna_Scene_simplify_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) | static void rna_Scene_simplify_update(Main *bmain, Scene *scene, PointerRNA *ptr) | ||||
| { | { | ||||
| Scene *sce = ptr->id.data; | Scene *sce = ptr->id.data; | ||||
| if (sce->r.mode & R_SIMPLIFY) | if (sce->r.mode & R_SIMPLIFY) | ||||
| rna_Scene_use_simplify_update(bmain, sce, ptr); | rna_Scene_use_simplify_update(bmain, scene, ptr); | ||||
| } | } | ||||
| static void rna_SceneRenderData_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) | static void rna_SceneRenderData_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) | ||||
| { | { | ||||
| Scene *sce = ptr->id.data; | Scene *sce = ptr->id.data; | ||||
| DEG_id_tag_update(&sce->id, 0); | DEG_id_tag_update(&sce->id, 0); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 1,170 Lines • ▼ Show 20 Lines | |||||
| }; | }; | ||||
| static void rna_LayerObjects_selected_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) | static void rna_LayerObjects_selected_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) | ||||
| { | { | ||||
| SceneLayer *sl = (SceneLayer *)ptr->data; | SceneLayer *sl = (SceneLayer *)ptr->data; | ||||
| rna_iterator_listbase_begin(iter, &sl->object_bases, rna_SceneLayer_objects_selected_skip); | rna_iterator_listbase_begin(iter, &sl->object_bases, rna_SceneLayer_objects_selected_skip); | ||||
| } | } | ||||
| static void rna_SceneLayer_engine_set(PointerRNA *ptr, int value) | |||||
| { | |||||
| SceneLayer *sl = (SceneLayer *)ptr->data; | |||||
| RenderEngineType *type = BLI_findlink(&R_engines, value); | |||||
| if (type) | |||||
| BKE_scene_layer_engine_set(sl, type->idname); | |||||
| } | |||||
| static EnumPropertyItem *rna_SceneLayer_engine_itemf( | |||||
| bContext *UNUSED(C), PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free) | |||||
| { | |||||
| RenderEngineType *type; | |||||
| EnumPropertyItem *item = NULL; | |||||
| EnumPropertyItem tmp = {0, "", 0, "", ""}; | |||||
| int a = 0, totitem = 0; | |||||
| for (type = R_engines.first; type; type = type->next, a++) { | |||||
| tmp.value = a; | |||||
| tmp.identifier = type->idname; | |||||
| tmp.name = type->name; | |||||
| RNA_enum_item_add(&item, &totitem, &tmp); | |||||
| } | |||||
| RNA_enum_item_end(&item, &totitem); | |||||
| *r_free = true; | |||||
| return item; | |||||
| } | |||||
| static int rna_SceneLayer_engine_get(PointerRNA *ptr) | |||||
| { | |||||
| SceneLayer *sl = (SceneLayer *)ptr->data; | |||||
| RenderEngineType *type; | |||||
| int a = 0; | |||||
| for (type = R_engines.first; type; type = type->next, a++) | |||||
| if (STREQ(type->idname, sl->engine)) | |||||
| return a; | |||||
| return 0; | |||||
| } | |||||
| static void rna_SceneLayer_engine_update(Main *bmain, Scene *UNUSED(unused), PointerRNA *UNUSED(ptr)) | |||||
| { | |||||
| ED_render_engine_changed(bmain); | |||||
| } | |||||
| static int rna_SceneLayer_multiple_engines_get(PointerRNA *UNUSED(ptr)) | |||||
| { | |||||
| return (BLI_listbase_count(&R_engines) > 1); | |||||
| } | |||||
| static void rna_SceneLayer_update_tagged(SceneLayer *UNUSED(sl), bContext *C) | static void rna_SceneLayer_update_tagged(SceneLayer *UNUSED(sl), bContext *C) | ||||
| { | { | ||||
| Depsgraph *graph = CTX_data_depsgraph(C); | Depsgraph *graph = CTX_data_depsgraph(C); | ||||
| DEG_OBJECT_ITER(graph, ob, DEG_OBJECT_ITER_FLAG_ALL) | DEG_OBJECT_ITER(graph, ob, DEG_OBJECT_ITER_FLAG_ALL) | ||||
| { | { | ||||
| /* Don't do anything, we just need to run the iterator to flush | /* Don't do anything, we just need to run the iterator to flush | ||||
| * the base info to the objects. */ | * the base info to the objects. */ | ||||
| UNUSED_VARS(ob); | UNUSED_VARS(ob); | ||||
| ▲ Show 20 Lines • Show All 4,021 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| static void rna_def_scene_layer(BlenderRNA *brna) | static void rna_def_scene_layer(BlenderRNA *brna) | ||||
| { | { | ||||
| FunctionRNA *func; | FunctionRNA *func; | ||||
| StructRNA *srna; | StructRNA *srna; | ||||
| PropertyRNA *prop; | PropertyRNA *prop; | ||||
| static EnumPropertyItem engine_items[] = { | |||||
| {0, "BLENDER_RENDER", 0, "Blender Render", "Use the Blender internal rendering engine for rendering"}, | |||||
| {0, NULL, 0, NULL, NULL} | |||||
| }; | |||||
| srna = RNA_def_struct(brna, "SceneLayer", NULL); | srna = RNA_def_struct(brna, "SceneLayer", NULL); | ||||
| RNA_def_struct_ui_text(srna, "Render Layer", "Render layer"); | RNA_def_struct_ui_text(srna, "Render Layer", "Render layer"); | ||||
| RNA_def_struct_ui_icon(srna, ICON_RENDERLAYERS); | RNA_def_struct_ui_icon(srna, ICON_RENDERLAYERS); | ||||
| prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); | prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); | ||||
| RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SceneLayer_name_set"); | RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SceneLayer_name_set"); | ||||
| RNA_def_property_ui_text(prop, "Name", "Render layer name"); | RNA_def_property_ui_text(prop, "Name", "Render layer name"); | ||||
| RNA_def_struct_name_property(srna, prop); | RNA_def_struct_name_property(srna, prop); | ||||
| Show All 19 Lines | static void rna_def_scene_layer(BlenderRNA *brna) | ||||
| RNA_def_property_update(prop, NC_SCENE | ND_LAYER, NULL); | RNA_def_property_update(prop, NC_SCENE | ND_LAYER, NULL); | ||||
| /* Override settings */ | /* Override settings */ | ||||
| prop = RNA_def_property(srna, "engine_overrides", PROP_COLLECTION, PROP_NONE); | prop = RNA_def_property(srna, "engine_overrides", PROP_COLLECTION, PROP_NONE); | ||||
| RNA_def_property_collection_sdna(prop, NULL, "properties->data.group", NULL); | RNA_def_property_collection_sdna(prop, NULL, "properties->data.group", NULL); | ||||
| RNA_def_property_struct_type(prop, "SceneLayerSettings"); | RNA_def_property_struct_type(prop, "SceneLayerSettings"); | ||||
| RNA_def_property_ui_text(prop, "Layer Settings", "Override of engine specific render settings"); | RNA_def_property_ui_text(prop, "Layer Settings", "Override of engine specific render settings"); | ||||
| /* engine */ | |||||
| prop = RNA_def_property(srna, "engine", PROP_ENUM, PROP_NONE); | |||||
| RNA_def_property_enum_items(prop, engine_items); | |||||
| RNA_def_property_enum_funcs(prop, "rna_SceneLayer_engine_get", "rna_SceneLayer_engine_set", | |||||
| "rna_SceneLayer_engine_itemf"); | |||||
| RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); | |||||
| RNA_def_property_ui_text(prop, "Engine", "Engine to use for rendering"); | |||||
| RNA_def_property_update(prop, NC_WINDOW, "rna_SceneLayer_engine_update"); | |||||
| prop = RNA_def_property(srna, "has_multiple_engines", PROP_BOOLEAN, PROP_NONE); | |||||
| RNA_def_property_boolean_funcs(prop, "rna_SceneLayer_multiple_engines_get", NULL); | |||||
| RNA_def_property_clear_flag(prop, PROP_EDITABLE); | |||||
| RNA_def_property_ui_text(prop, "Multiple Engines", "More than one rendering engine is available"); | |||||
| /* debug update routine */ | /* debug update routine */ | ||||
| func = RNA_def_function(srna, "update", "rna_SceneLayer_update_tagged"); | func = RNA_def_function(srna, "update", "rna_SceneLayer_update_tagged"); | ||||
| RNA_def_function_flag(func, FUNC_USE_CONTEXT); | RNA_def_function_flag(func, FUNC_USE_CONTEXT); | ||||
| RNA_def_function_ui_description(func, | RNA_def_function_ui_description(func, | ||||
| "Update data tagged to be updated from previous access to data or operators"); | "Update data tagged to be updated from previous access to data or operators"); | ||||
| } | } | ||||
| static void rna_def_scene_layers(BlenderRNA *brna, PropertyRNA *cprop) | static void rna_def_scene_layers(BlenderRNA *brna, PropertyRNA *cprop) | ||||
| ▲ Show 20 Lines • Show All 800 Lines • ▼ Show 20 Lines | static void rna_def_scene_render_data(BlenderRNA *brna) | ||||
| }; | }; | ||||
| static EnumPropertyItem threads_mode_items[] = { | static EnumPropertyItem threads_mode_items[] = { | ||||
| {0, "AUTO", 0, "Auto-detect", "Automatically determine the number of threads, based on CPUs"}, | {0, "AUTO", 0, "Auto-detect", "Automatically determine the number of threads, based on CPUs"}, | ||||
| {R_FIXED_THREADS, "FIXED", 0, "Fixed", "Manually determine the number of threads"}, | {R_FIXED_THREADS, "FIXED", 0, "Fixed", "Manually determine the number of threads"}, | ||||
| {0, NULL, 0, NULL, NULL} | {0, NULL, 0, NULL, NULL} | ||||
| }; | }; | ||||
| static EnumPropertyItem engine_items[] = { | |||||
| {0, "BLENDER_RENDER", 0, "Blender Render", "Use the Blender internal rendering engine for rendering"}, | |||||
| {0, NULL, 0, NULL, NULL} | |||||
| }; | |||||
| static EnumPropertyItem freestyle_thickness_items[] = { | static EnumPropertyItem freestyle_thickness_items[] = { | ||||
| {R_LINE_THICKNESS_ABSOLUTE, "ABSOLUTE", 0, "Absolute", "Specify unit line thickness in pixels"}, | {R_LINE_THICKNESS_ABSOLUTE, "ABSOLUTE", 0, "Absolute", "Specify unit line thickness in pixels"}, | ||||
| {R_LINE_THICKNESS_RELATIVE, "RELATIVE", 0, "Relative", | {R_LINE_THICKNESS_RELATIVE, "RELATIVE", 0, "Relative", | ||||
| "Unit line thickness is scaled by the proportion of the present vertical image " | "Unit line thickness is scaled by the proportion of the present vertical image " | ||||
| "resolution to 480 pixels"}, | "resolution to 480 pixels"}, | ||||
| {0, NULL, 0, NULL, NULL}}; | {0, NULL, 0, NULL, NULL}}; | ||||
| static EnumPropertyItem views_format_items[] = { | static EnumPropertyItem views_format_items[] = { | ||||
| ▲ Show 20 Lines • Show All 720 Lines • ▼ Show 20 Lines | #endif | ||||
| prop = RNA_def_property(srna, "views_format", PROP_ENUM, PROP_NONE); | prop = RNA_def_property(srna, "views_format", PROP_ENUM, PROP_NONE); | ||||
| RNA_def_property_enum_items(prop, views_format_items); | RNA_def_property_enum_items(prop, views_format_items); | ||||
| RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); | RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); | ||||
| RNA_def_property_ui_text(prop, "Setup Stereo Mode", ""); | RNA_def_property_ui_text(prop, "Setup Stereo Mode", ""); | ||||
| RNA_def_property_enum_funcs(prop, NULL, "rna_RenderSettings_views_format_set", NULL); | RNA_def_property_enum_funcs(prop, NULL, "rna_RenderSettings_views_format_set", NULL); | ||||
| RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); | RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); | ||||
| /* engine */ | |||||
| prop = RNA_def_property(srna, "engine", PROP_ENUM, PROP_NONE); | |||||
| RNA_def_property_enum_items(prop, engine_items); | |||||
| RNA_def_property_enum_funcs(prop, "rna_RenderSettings_engine_get", "rna_RenderSettings_engine_set", | |||||
| "rna_RenderSettings_engine_itemf"); | |||||
| RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); | |||||
| RNA_def_property_ui_text(prop, "Engine", "Engine to use for rendering"); | |||||
| RNA_def_property_update(prop, NC_WINDOW, "rna_RenderSettings_engine_update"); | |||||
| prop = RNA_def_property(srna, "has_multiple_engines", PROP_BOOLEAN, PROP_NONE); | |||||
| RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_multiple_engines_get", NULL); | |||||
| RNA_def_property_clear_flag(prop, PROP_EDITABLE); | |||||
| RNA_def_property_ui_text(prop, "Multiple Engines", "More than one rendering engine is available"); | |||||
| prop = RNA_def_property(srna, "use_shading_nodes", PROP_BOOLEAN, PROP_NONE); | |||||
| RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_use_shading_nodes_get", NULL); | |||||
| RNA_def_property_clear_flag(prop, PROP_EDITABLE); | |||||
| RNA_def_property_ui_text(prop, "Use Shading Nodes", "Active render engine uses new shading nodes system"); | |||||
| prop = RNA_def_property(srna, "use_spherical_stereo", PROP_BOOLEAN, PROP_NONE); | |||||
| RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_use_spherical_stereo_get", NULL); | |||||
| RNA_def_property_clear_flag(prop, PROP_EDITABLE); | |||||
| RNA_def_property_ui_text(prop, "Use Spherical Stereo", "Active render engine supports spherical stereo rendering"); | |||||
| prop = RNA_def_property(srna, "use_game_engine", PROP_BOOLEAN, PROP_NONE); | |||||
| RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_use_game_engine_get", NULL); | |||||
| RNA_def_property_clear_flag(prop, PROP_EDITABLE); | |||||
| RNA_def_property_ui_text(prop, "Use Game Engine", "Current rendering engine is a game engine"); | |||||
| /* simplify */ | /* simplify */ | ||||
| prop = RNA_def_property(srna, "use_simplify", PROP_BOOLEAN, PROP_NONE); | prop = RNA_def_property(srna, "use_simplify", PROP_BOOLEAN, PROP_NONE); | ||||
| RNA_def_property_boolean_sdna(prop, NULL, "mode", R_SIMPLIFY); | RNA_def_property_boolean_sdna(prop, NULL, "mode", R_SIMPLIFY); | ||||
| RNA_def_property_ui_text(prop, "Use Simplify", "Enable simplification of scene for quicker preview renders"); | RNA_def_property_ui_text(prop, "Use Simplify", "Enable simplification of scene for quicker preview renders"); | ||||
| RNA_def_property_update(prop, 0, "rna_Scene_use_simplify_update"); | RNA_def_property_update(prop, 0, "rna_Scene_use_simplify_update"); | ||||
| prop = RNA_def_property(srna, "simplify_subdivision", PROP_INT, PROP_UNSIGNED); | prop = RNA_def_property(srna, "simplify_subdivision", PROP_INT, PROP_UNSIGNED); | ||||
| RNA_def_property_int_sdna(prop, NULL, "simplify_subsurf"); | RNA_def_property_int_sdna(prop, NULL, "simplify_subsurf"); | ||||
| ▲ Show 20 Lines • Show All 65 Lines • ▼ Show 20 Lines | #endif | ||||
| RNA_define_animate_sdna(true); | RNA_define_animate_sdna(true); | ||||
| /* *** Animated *** */ | /* *** Animated *** */ | ||||
| /* Scene API */ | /* Scene API */ | ||||
| RNA_api_scene_render(srna); | RNA_api_scene_render(srna); | ||||
| } | } | ||||
| static void rna_def_scene_view_render(BlenderRNA *brna) | |||||
| { | |||||
| StructRNA *srna; | |||||
| PropertyRNA *prop; | |||||
| static EnumPropertyItem engine_items[] = { | |||||
| {0, "BLENDER_RENDER", 0, "Blender Render", "Use the Blender internal rendering engine for rendering"}, | |||||
| {0, NULL, 0, NULL, NULL} | |||||
| }; | |||||
| srna = RNA_def_struct(brna, "ViewRenderSettings", NULL); | |||||
| RNA_def_struct_sdna(srna, "ViewRender"); | |||||
| RNA_def_struct_nested(brna, srna, "Scene"); | |||||
| RNA_def_struct_path_func(srna, "rna_ViewRenderSettings_path"); | |||||
| RNA_def_struct_ui_text(srna, "View Render", "Rendering settings related to viewport drawing/rendering"); | |||||
| /* engine */ | |||||
| prop = RNA_def_property(srna, "engine", PROP_ENUM, PROP_NONE); | |||||
| RNA_def_property_enum_items(prop, engine_items); | |||||
| RNA_def_property_enum_funcs(prop, "rna_ViewRenderSettings_engine_get", "rna_ViewRenderSettings_engine_set", | |||||
| "rna_ViewRenderSettings_engine_itemf"); | |||||
| RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); | |||||
| RNA_def_property_ui_text(prop, "Engine", "Engine to use for rendering"); | |||||
| RNA_def_property_update(prop, NC_WINDOW, "rna_ViewRenderSettings_engine_update"); | |||||
| prop = RNA_def_property(srna, "has_multiple_engines", PROP_BOOLEAN, PROP_NONE); | |||||
| RNA_def_property_boolean_funcs(prop, "rna_ViewRenderSettings_multiple_engines_get", NULL); | |||||
| RNA_def_property_clear_flag(prop, PROP_EDITABLE); | |||||
| RNA_def_property_ui_text(prop, "Multiple Engines", "More than one rendering engine is available"); | |||||
| prop = RNA_def_property(srna, "use_shading_nodes", PROP_BOOLEAN, PROP_NONE); | |||||
| RNA_def_property_boolean_funcs(prop, "rna_ViewRenderSettings_use_shading_nodes_get", NULL); | |||||
| RNA_def_property_clear_flag(prop, PROP_EDITABLE); | |||||
| RNA_def_property_ui_text(prop, "Use Shading Nodes", "Active render engine uses new shading nodes system"); | |||||
| prop = RNA_def_property(srna, "use_spherical_stereo", PROP_BOOLEAN, PROP_NONE); | |||||
| RNA_def_property_boolean_funcs(prop, "rna_ViewRenderSettings_use_spherical_stereo_get", NULL); | |||||
| RNA_def_property_clear_flag(prop, PROP_EDITABLE); | |||||
| RNA_def_property_ui_text(prop, "Use Spherical Stereo", "Active render engine supports spherical stereo rendering"); | |||||
| prop = RNA_def_property(srna, "use_game_engine", PROP_BOOLEAN, PROP_NONE); | |||||
| RNA_def_property_boolean_funcs(prop, "rna_ViewRenderSettings_use_game_engine_get", NULL); | |||||
| RNA_def_property_clear_flag(prop, PROP_EDITABLE); | |||||
| RNA_def_property_ui_text(prop, "Use Game Engine", "Current rendering engine is a game engine"); | |||||
| } | |||||
| /* scene.objects */ | /* scene.objects */ | ||||
| static void rna_def_scene_objects(BlenderRNA *brna, PropertyRNA *cprop) | static void rna_def_scene_objects(BlenderRNA *brna, PropertyRNA *cprop) | ||||
| { | { | ||||
| StructRNA *srna; | StructRNA *srna; | ||||
| PropertyRNA *prop; | PropertyRNA *prop; | ||||
| FunctionRNA *func; | FunctionRNA *func; | ||||
| PropertyRNA *parm; | PropertyRNA *parm; | ||||
| ▲ Show 20 Lines • Show All 531 Lines • ▼ Show 20 Lines | void RNA_def_scene(BlenderRNA *brna) | ||||
| /* Render Data */ | /* Render Data */ | ||||
| prop = RNA_def_property(srna, "render", PROP_POINTER, PROP_NONE); | prop = RNA_def_property(srna, "render", PROP_POINTER, PROP_NONE); | ||||
| RNA_def_property_flag(prop, PROP_NEVER_NULL); | RNA_def_property_flag(prop, PROP_NEVER_NULL); | ||||
| RNA_def_property_pointer_sdna(prop, NULL, "r"); | RNA_def_property_pointer_sdna(prop, NULL, "r"); | ||||
| RNA_def_property_struct_type(prop, "RenderSettings"); | RNA_def_property_struct_type(prop, "RenderSettings"); | ||||
| RNA_def_property_ui_text(prop, "Render Data", ""); | RNA_def_property_ui_text(prop, "Render Data", ""); | ||||
| /* View Render */ | |||||
| prop = RNA_def_property(srna, "view_render", PROP_POINTER, PROP_NONE); | |||||
| RNA_def_property_flag(prop, PROP_NEVER_NULL); | |||||
| RNA_def_property_struct_type(prop, "ViewRenderSettings"); | |||||
| RNA_def_property_ui_text(prop, "View Render", ""); | |||||
| /* Render Engine Data */ | /* Render Engine Data */ | ||||
| prop = RNA_def_property(srna, "layer_properties", PROP_COLLECTION, PROP_NONE); | prop = RNA_def_property(srna, "layer_properties", PROP_COLLECTION, PROP_NONE); | ||||
| RNA_def_property_collection_sdna(prop, NULL, "layer_properties->data.group", NULL); | RNA_def_property_collection_sdna(prop, NULL, "layer_properties->data.group", NULL); | ||||
| RNA_def_property_struct_type(prop, "SceneLayerSettings"); | RNA_def_property_struct_type(prop, "SceneLayerSettings"); | ||||
| RNA_def_property_ui_text(prop, "Layer Settings", | RNA_def_property_ui_text(prop, "Layer Settings", | ||||
| "Engine specific render settings to be overridden by layers"); | "Engine specific render settings to be overridden by layers"); | ||||
| prop = RNA_def_property(srna, "collection_properties", PROP_COLLECTION, PROP_NONE); | prop = RNA_def_property(srna, "collection_properties", PROP_COLLECTION, PROP_NONE); | ||||
| ▲ Show 20 Lines • Show All 146 Lines • ▼ Show 20 Lines | void RNA_def_scene(BlenderRNA *brna) | ||||
| rna_def_layer_collection_override(brna); | rna_def_layer_collection_override(brna); | ||||
| rna_def_scene_layer(brna); | rna_def_scene_layer(brna); | ||||
| rna_def_object_base(brna); | rna_def_object_base(brna); | ||||
| RNA_define_animate_sdna(true); | RNA_define_animate_sdna(true); | ||||
| /* *** Animated *** */ | /* *** Animated *** */ | ||||
| rna_def_scene_layer_settings(brna); | rna_def_scene_layer_settings(brna); | ||||
| rna_def_layer_collection_settings(brna); | rna_def_layer_collection_settings(brna); | ||||
| rna_def_scene_render_data(brna); | rna_def_scene_render_data(brna); | ||||
| rna_def_scene_view_render(brna); | |||||
| rna_def_scene_render_layer(brna); | rna_def_scene_render_layer(brna); | ||||
| rna_def_gpu_fx(brna); | rna_def_gpu_fx(brna); | ||||
| rna_def_scene_render_view(brna); | rna_def_scene_render_view(brna); | ||||
| /* Scene API */ | /* Scene API */ | ||||
| RNA_api_scene(srna); | RNA_api_scene(srna); | ||||
| } | } | ||||
| #endif | #endif | ||||