svn merge ^/trunk/blender -r41954:41961
This commit is contained in:
@@ -34,6 +34,7 @@ import bcolors
|
||||
bc = bcolors.bcolors()
|
||||
import btools
|
||||
VERSION = btools.VERSION
|
||||
VERSION_RELEASE_CYCLE = btools.VERSION_RELEASE_CYCLE
|
||||
|
||||
Split = SCons.Util.Split
|
||||
Action = SCons.Action.Action
|
||||
@@ -584,6 +585,10 @@ def AppIt(target=None, source=None, env=None):
|
||||
cmd = 'cp -R %s/release/scripts %s/%s.app/Contents/MacOS/%s/'%(bldroot,installdir,binary,VERSION)
|
||||
commands.getoutput(cmd)
|
||||
|
||||
if VERSION_RELEASE_CYCLE == "release":
|
||||
cmd = 'rm -rf %s/%s.app/Contents/MacOS/%s/scripts/addons_contrib'%(installdir,binary,VERSION)
|
||||
commands.getoutput(cmd)
|
||||
|
||||
if env['WITH_BF_CYCLES']:
|
||||
croot = '%s/intern/cycles' % (bldroot)
|
||||
cinstalldir = '%s/%s.app/Contents/MacOS/%s/scripts/addons/cycles' % (installdir,binary,VERSION)
|
||||
|
||||
@@ -78,7 +78,7 @@ static const char *locales[] = {
|
||||
"finnish", "fi_FI",
|
||||
"swedish", "sv_SE",
|
||||
"french", "fr_FR",
|
||||
"spanish", "es_ES",
|
||||
"spanish", "es",
|
||||
"catalan", "ca_AD",
|
||||
"czech", "cs_CZ",
|
||||
"ptb", "pt_BR",
|
||||
|
||||
@@ -44,6 +44,7 @@ struct Main;
|
||||
struct Object;
|
||||
struct QuicktimeCodecData;
|
||||
struct RenderData;
|
||||
struct SceneRenderLayer;
|
||||
struct Scene;
|
||||
struct Text;
|
||||
struct Text;
|
||||
@@ -93,7 +94,8 @@ void scene_clear_tagged(struct Main *bmain, struct Scene *sce);
|
||||
|
||||
void scene_update_for_newframe(struct Main *bmain, struct Scene *sce, unsigned int lay);
|
||||
|
||||
void scene_add_render_layer(struct Scene *sce);
|
||||
struct SceneRenderLayer *scene_add_render_layer(struct Scene *sce, const char *name);
|
||||
int scene_remove_render_layer(struct Main *main, struct Scene *scene, struct SceneRenderLayer *srl);
|
||||
|
||||
/* render profile */
|
||||
int get_render_subsurf_level(struct RenderData *r, int level);
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
|
||||
#include "DNA_anim_types.h"
|
||||
#include "DNA_group_types.h"
|
||||
#include "DNA_node_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
#include "DNA_scene_types.h"
|
||||
#include "DNA_screen_types.h"
|
||||
@@ -483,7 +484,7 @@ Scene *add_scene(const char *name)
|
||||
sce->r.osa= 8;
|
||||
|
||||
/* note; in header_info.c the scene copy happens..., if you add more to renderdata it has to be checked there */
|
||||
scene_add_render_layer(sce);
|
||||
scene_add_render_layer(sce, NULL);
|
||||
|
||||
/* game data */
|
||||
sce->gm.stereoflag = STEREO_NOSTEREO;
|
||||
@@ -1086,13 +1087,15 @@ void scene_update_for_newframe(Main *bmain, Scene *sce, unsigned int lay)
|
||||
}
|
||||
|
||||
/* return default layer, also used to patch old files */
|
||||
void scene_add_render_layer(Scene *sce)
|
||||
SceneRenderLayer *scene_add_render_layer(Scene *sce, const char *name)
|
||||
{
|
||||
SceneRenderLayer *srl;
|
||||
// int tot= 1 + BLI_countlist(&sce->r.layers);
|
||||
|
||||
|
||||
if(!name)
|
||||
name= "RenderLayer";
|
||||
|
||||
srl= MEM_callocN(sizeof(SceneRenderLayer), "new render layer");
|
||||
strcpy(srl->name, "RenderLayer");
|
||||
BLI_strncpy(srl->name, name, sizeof(srl->name));
|
||||
BLI_uniquename(&sce->r.layers, srl, "RenderLayer", '.', offsetof(SceneRenderLayer, name), sizeof(srl->name));
|
||||
BLI_addtail(&sce->r.layers, srl);
|
||||
|
||||
@@ -1100,6 +1103,45 @@ void scene_add_render_layer(Scene *sce)
|
||||
srl->lay= (1<<20) -1;
|
||||
srl->layflag= 0x7FFF; /* solid ztra halo edge strand */
|
||||
srl->passflag= SCE_PASS_COMBINED|SCE_PASS_Z;
|
||||
|
||||
return srl;
|
||||
}
|
||||
|
||||
int scene_remove_render_layer(Main *bmain, Scene *scene, SceneRenderLayer *srl)
|
||||
{
|
||||
const int act= BLI_findindex(&scene->r.layers, srl);
|
||||
Scene *sce;
|
||||
|
||||
if (act == -1) {
|
||||
return 0;
|
||||
}
|
||||
else if ( (scene->r.layers.first == scene->r.layers.last) &&
|
||||
(scene->r.layers.first == srl))
|
||||
{
|
||||
/* ensure 1 layer is kept */
|
||||
return 0;
|
||||
}
|
||||
|
||||
BLI_remlink(&scene->r.layers, srl);
|
||||
MEM_freeN(srl);
|
||||
|
||||
scene->r.actlay= 0;
|
||||
|
||||
for(sce = bmain->scene.first; sce; sce = sce->id.next) {
|
||||
if(sce->nodetree) {
|
||||
bNode *node;
|
||||
for(node = sce->nodetree->nodes.first; node; node = node->next) {
|
||||
if(node->type==CMP_NODE_R_LAYERS && (Scene*)node->id==scene) {
|
||||
if(node->custom1==act)
|
||||
node->custom1= 0;
|
||||
else if(node->custom1>act)
|
||||
node->custom1--;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* render simplification */
|
||||
|
||||
@@ -9029,7 +9029,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
|
||||
if(sce->r.yparts<2) sce->r.yparts= 4;
|
||||
/* adds default layer */
|
||||
if(sce->r.layers.first==NULL)
|
||||
scene_add_render_layer(sce);
|
||||
scene_add_render_layer(sce, NULL);
|
||||
else {
|
||||
SceneRenderLayer *srl;
|
||||
/* new layer flag for sky, was default for solid */
|
||||
|
||||
@@ -519,7 +519,7 @@ static int render_layer_add_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
Scene *scene= CTX_data_scene(C);
|
||||
|
||||
scene_add_render_layer(scene);
|
||||
scene_add_render_layer(scene, NULL);
|
||||
scene->r.actlay= BLI_countlist(&scene->r.layers) - 1;
|
||||
|
||||
WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, scene);
|
||||
@@ -543,32 +543,11 @@ void SCENE_OT_render_layer_add(wmOperatorType *ot)
|
||||
|
||||
static int render_layer_remove_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C), *sce;
|
||||
SceneRenderLayer *rl;
|
||||
int act= scene->r.actlay;
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
SceneRenderLayer *rl = BLI_findlink(&scene->r.layers, scene->r.actlay);
|
||||
|
||||
if(BLI_countlist(&scene->r.layers) <= 1)
|
||||
if(!scene_remove_render_layer(CTX_data_main(C), scene, rl))
|
||||
return OPERATOR_CANCELLED;
|
||||
|
||||
rl= BLI_findlink(&scene->r.layers, scene->r.actlay);
|
||||
BLI_remlink(&scene->r.layers, rl);
|
||||
MEM_freeN(rl);
|
||||
|
||||
scene->r.actlay= 0;
|
||||
|
||||
for(sce = CTX_data_main(C)->scene.first; sce; sce = sce->id.next) {
|
||||
if(sce->nodetree) {
|
||||
bNode *node;
|
||||
for(node = sce->nodetree->nodes.first; node; node = node->next) {
|
||||
if(node->type==CMP_NODE_R_LAYERS && (Scene*)node->id==scene) {
|
||||
if(node->custom1==act)
|
||||
node->custom1= 0;
|
||||
else if(node->custom1>act)
|
||||
node->custom1--;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, scene);
|
||||
|
||||
|
||||
@@ -1919,11 +1919,10 @@ static int set_floor_exec(bContext *C, wmOperator *op)
|
||||
object_apply_mat4(parent, newmat, 0, 0);
|
||||
|
||||
/* make camera have positive z-coordinate */
|
||||
mul_v3_m4v3(vec[0], mat, camera->loc);
|
||||
if(camera->loc[2]<0) {
|
||||
if(parent->loc[2]<0) {
|
||||
invert_m4(rot);
|
||||
mul_m4_m4m4(newmat, mat, rot);
|
||||
object_apply_mat4(camera, newmat, 0, 0);
|
||||
object_apply_mat4(parent, newmat, 0, 0);
|
||||
}
|
||||
|
||||
where_is_object(scene, parent);
|
||||
|
||||
@@ -2409,9 +2409,15 @@ PropertyRNA *RNA_def_float_rotation(StructOrFunctionRNA *cont_, const char *iden
|
||||
ContainerRNA *cont= cont_;
|
||||
PropertyRNA *prop;
|
||||
|
||||
prop= RNA_def_property(cont, identifier, PROP_FLOAT, PROP_EULER); // XXX
|
||||
if(len != 0) RNA_def_property_array(prop, len);
|
||||
if(default_value) RNA_def_property_float_array_default(prop, default_value);
|
||||
prop= RNA_def_property(cont, identifier, PROP_FLOAT, (len != 0) ? PROP_EULER : PROP_ANGLE);
|
||||
if(len != 0) {
|
||||
RNA_def_property_array(prop, len);
|
||||
if(default_value) RNA_def_property_float_array_default(prop, default_value);
|
||||
}
|
||||
else {
|
||||
/* RNA_def_property_float_default must be called outside */
|
||||
BLI_assert(default_value == NULL);
|
||||
}
|
||||
if(hardmin != hardmax) RNA_def_property_range(prop, hardmin, hardmax);
|
||||
RNA_def_property_ui_text(prop, ui_name, ui_description);
|
||||
RNA_def_property_ui_range(prop, softmin, softmax, 1, 3);
|
||||
|
||||
@@ -736,6 +736,28 @@ static void rna_RenderSettings_active_layer_set(PointerRNA *ptr, PointerRNA valu
|
||||
if (index != -1) rd->actlay= index;
|
||||
}
|
||||
|
||||
static SceneRenderLayer *rna_RenderLayer_new(ID *id, RenderData *UNUSED(rd), const char *name)
|
||||
{
|
||||
Scene *scene= (Scene *)id;
|
||||
SceneRenderLayer *srl= scene_add_render_layer(scene, name);
|
||||
|
||||
WM_main_add_notifier(NC_SCENE|ND_RENDER_OPTIONS, NULL);
|
||||
|
||||
return srl;
|
||||
}
|
||||
|
||||
static void rna_RenderLayer_remove(ID *id, RenderData *UNUSED(rd), Main *bmain, ReportList *reports, SceneRenderLayer *srl)
|
||||
{
|
||||
Scene *scene= (Scene *)id;
|
||||
|
||||
if (!scene_remove_render_layer(bmain, scene, srl)) {
|
||||
BKE_reportf(reports, RPT_ERROR, "RenderLayer '%s' could not be removed from scene '%s'", srl->name, scene->id.name+2);
|
||||
}
|
||||
else {
|
||||
WM_main_add_notifier(NC_SCENE|ND_RENDER_OPTIONS, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
static void rna_RenderSettings_engine_set(PointerRNA *ptr, int value)
|
||||
{
|
||||
RenderData *rd= (RenderData*)ptr->data;
|
||||
@@ -2188,8 +2210,8 @@ static void rna_def_render_layers(BlenderRNA *brna, PropertyRNA *cprop)
|
||||
StructRNA *srna;
|
||||
PropertyRNA *prop;
|
||||
|
||||
// FunctionRNA *func;
|
||||
// PropertyRNA *parm;
|
||||
FunctionRNA *func;
|
||||
PropertyRNA *parm;
|
||||
|
||||
RNA_def_property_srna(cprop, "RenderLayers");
|
||||
srna= RNA_def_struct(brna, "RenderLayers", NULL);
|
||||
@@ -2211,6 +2233,19 @@ static void rna_def_render_layers(BlenderRNA *brna, PropertyRNA *cprop)
|
||||
RNA_def_property_ui_text(prop, "Active Render Layer", "Active Render Layer");
|
||||
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
|
||||
|
||||
func= RNA_def_function(srna, "new", "rna_RenderLayer_new");
|
||||
RNA_def_function_ui_description(func, "Add a render layer to scene");
|
||||
RNA_def_function_flag(func, FUNC_USE_SELF_ID);
|
||||
parm= RNA_def_string(func, "name", "RenderLayer", 0, "", "New name for the marker (not unique)");
|
||||
RNA_def_property_flag(parm, PROP_REQUIRED);
|
||||
parm= RNA_def_pointer(func, "result", "SceneRenderLayer", "", "Newly created render layer");
|
||||
RNA_def_function_return(func, parm);
|
||||
|
||||
func= RNA_def_function(srna, "remove", "rna_RenderLayer_remove");
|
||||
RNA_def_function_ui_description(func, "Remove a render layer");
|
||||
RNA_def_function_flag(func, FUNC_USE_MAIN|FUNC_USE_REPORTS|FUNC_USE_SELF_ID);
|
||||
parm= RNA_def_pointer(func, "layer", "SceneRenderLayer", "", "Timeline marker to remove");
|
||||
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
||||
}
|
||||
|
||||
static void rna_def_scene_render_data(BlenderRNA *brna)
|
||||
|
||||
@@ -2620,7 +2620,7 @@ static void rna_def_userdef_system(BlenderRNA *brna)
|
||||
{4, "ITALIAN", 0, "Italian (Italiano)", "it_IT"},
|
||||
{15, "RUSSIAN", 0, "Russian (Русский)", "ru_RU"},
|
||||
{13, "SIMPLIFIED_CHINESE", 0, "Simplified Chinese (简体中文)", "zh_CN"},
|
||||
{9, "SPANISH", 0, "Spanish (Español)", "es_ES"},
|
||||
{9, "SPANISH", 0, "Spanish (Español)", "es"},
|
||||
{0, "", 0, "In progress", ""},
|
||||
{2, "JAPANESE", 0, "Japanese (日本語)", "ja_JP"},
|
||||
{3, "DUTCH", 0, "Dutch (Nederlandse taal)", "nl_NL"},
|
||||
|
||||
Reference in New Issue
Block a user