Commit: 1b20b600c5b21c70d515f4f87ffd9607a04f8398
Author: Joshua Leung
Date:   Tue Jan 12 14:00:04 2016 +1300
Branches: PSketch
https://developer.blender.org/rB1b20b600c5b21c70d515f4f87ffd9607a04f8398

Merge branch 'master' into PSketch

Conflicts:
        source/blender/blenloader/intern/versioning_270.c
        source/blender/makesrna/intern/rna_sculpt_paint.c

===================================================================



===================================================================

diff --cc source/blender/blenkernel/intern/scene.c
index e3fac21,ca0896e..6f63675
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@@ -651,19 -650,8 +651,19 @@@ void BKE_scene_init(Scene *sce
                pset->brush[a].count = 10;
        }
        pset->brush[PE_BRUSH_CUT].strength = 100;
 +      
 +      psculpt = &sce->toolsettings->psculpt;
 +      for (a = 0; a < PSCULPT_TOT_BRUSH; a++) {
 +              psculpt->brush[a].strength = 0.5f;
 +              psculpt->brush[a].size = 50;
 +              psculpt->brush[a].rate = 0.1f;
 +      }
 +      psculpt->brush[PSCULPT_BRUSH_CURL].strength = 0.25f;
 +      psculpt->brush[PSCULPT_BRUSH_TWIST].strength = 0.25f;
 +      psculpt->brush[PSCULPT_BRUSH_CURL].xzMode = PSCULPT_BRUSH_DO_X;
 +      psculpt->brush[PSCULPT_BRUSH_GRAB].flag |= 
PSCULPT_BRUSH_FLAG_GRAB_INITIAL;
  
-       sce->r.ffcodecdata.audio_mixrate = 44100;
+       sce->r.ffcodecdata.audio_mixrate = 48000;
        sce->r.ffcodecdata.audio_volume = 1.0f;
        sce->r.ffcodecdata.audio_bitrate = 192;
        sce->r.ffcodecdata.audio_channels = 2;
diff --cc source/blender/blenloader/intern/versioning_270.c
index b294c06,b975a39..f29c1e5
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@@ -935,31 -937,117 +937,146 @@@ void blo_do_versions_270(FileData *fd, 
                }
        }
  
+       if (!MAIN_VERSION_ATLEAST(main, 276, 4)) {
+               for (Scene *scene = main->scene.first; scene; scene = 
scene->id.next) {
+                       ToolSettings *ts = scene->toolsettings;
+                       
+                       if (ts->gp_sculpt.brush[0].size == 0) {
+                               GP_BrushEdit_Settings *gset = &ts->gp_sculpt;
+                               GP_EditBrush_Data *brush;
+                               
+                               brush = &gset->brush[GP_EDITBRUSH_TYPE_SMOOTH];
+                               brush->size = 25;
+                               brush->strength = 0.3f;
+                               brush->flag = GP_EDITBRUSH_FLAG_USE_FALLOFF | 
GP_EDITBRUSH_FLAG_SMOOTH_PRESSURE;
+                               
+                               brush = 
&gset->brush[GP_EDITBRUSH_TYPE_THICKNESS];
+                               brush->size = 25;
+                               brush->strength = 0.5f;
+                               brush->flag = GP_EDITBRUSH_FLAG_USE_FALLOFF;
+                               
+                               brush = &gset->brush[GP_EDITBRUSH_TYPE_GRAB];
+                               brush->size = 50;
+                               brush->strength = 0.3f;
+                               brush->flag = GP_EDITBRUSH_FLAG_USE_FALLOFF;
+                               
+                               brush = &gset->brush[GP_EDITBRUSH_TYPE_PUSH];
+                               brush->size = 25;
+                               brush->strength = 0.3f;
+                               brush->flag = GP_EDITBRUSH_FLAG_USE_FALLOFF;
+                               
+                               brush = &gset->brush[GP_EDITBRUSH_TYPE_TWIST];
+                               brush->size = 50;
+                               brush->strength = 0.3f; // XXX?
+                               brush->flag = GP_EDITBRUSH_FLAG_USE_FALLOFF;
+                               
+                               brush = &gset->brush[GP_EDITBRUSH_TYPE_PINCH];
+                               brush->size = 50;
+                               brush->strength = 0.5f; // XXX?
+                               brush->flag = GP_EDITBRUSH_FLAG_USE_FALLOFF;
+                               
+                               brush = 
&gset->brush[GP_EDITBRUSH_TYPE_RANDOMIZE];
+                               brush->size = 25;
+                               brush->strength = 0.5f;
+                               brush->flag = GP_EDITBRUSH_FLAG_USE_FALLOFF;
+                               
+                               brush = &gset->brush[GP_EDITBRUSH_TYPE_CLONE];
+                               brush->size = 50;
+                               brush->strength = 1.0f;
+                       }
+                       
+                       if (!DNA_struct_elem_find(fd->filesdna, "ToolSettings", 
"char", "gpencil_v3d_align")) {
+ #if 0 /* XXX: Cannot do this, as we get random crashes... */
+                               if (scene->gpd) {
+                                       bGPdata *gpd = scene->gpd;
+                                       
+                                       /* Copy over the settings stored in the 
GP datablock linked to the scene, for minimal disruption */
+                                       ts->gpencil_v3d_align = 0;
+                                       
+                                       if (gpd->flag & GP_DATA_VIEWALIGN)    
ts->gpencil_v3d_align |= GP_PROJECT_VIEWSPACE;
+                                       if (gpd->flag & GP_DATA_DEPTH_VIEW)   
ts->gpencil_v3d_align |= GP_PROJECT_DEPTH_VIEW;
+                                       if (gpd->flag & GP_DATA_DEPTH_STROKE) 
ts->gpencil_v3d_align |= GP_PROJECT_DEPTH_STROKE;
+                                       
+                                       if (gpd->flag & 
GP_DATA_DEPTH_STROKE_ENDPOINTS)
+                                               ts->gpencil_v3d_align |= 
GP_PROJECT_DEPTH_STROKE_ENDPOINTS;
+                               }
+                               else {
+                                       /* Default to cursor for all standard 
3D views */
+                                       ts->gpencil_v3d_align = 
GP_PROJECT_VIEWSPACE;
+                               }
+ #endif
+                               
+                               ts->gpencil_v3d_align = GP_PROJECT_VIEWSPACE;
+                               ts->gpencil_v2d_align = GP_PROJECT_VIEWSPACE;
+                               ts->gpencil_seq_align = GP_PROJECT_VIEWSPACE;
+                               ts->gpencil_ima_align = GP_PROJECT_VIEWSPACE;
+                       }
+               }
+               
+               for (bGPdata *gpd = main->gpencil.first; gpd; gpd = 
gpd->id.next) {
+                       bool enabled = false;
+                       
+                       /* Ensure that the datablock's onionskinning toggle flag
+                        * stays in sync with the status of the actual layers
+                        */
+                       for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = 
gpl->next) {
+                               if (gpl->flag & GP_LAYER_ONIONSKIN) {
+                                       enabled = true;
+                               }
+                       }
+                       
+                       if (enabled)
+                               gpd->flag |= GP_DATA_SHOW_ONIONSKINS;
+                       else
+                               gpd->flag &= ~GP_DATA_SHOW_ONIONSKINS;
+               }
+ 
+               if (!DNA_struct_elem_find(fd->filesdna, "Object", "unsigned 
char", "max_jumps")) {
+                       for (Object *ob = main->object.first; ob; ob = 
ob->id.next) {
+                               ob->max_jumps = 1;
+                       }
+               }
+       }
+       if (!MAIN_VERSION_ATLEAST(main, 276, 5)) {
+               ListBase *lbarray[MAX_LIBARRAY];
+               int a;
+ 
+               /* Important to clear all non-persistent flags from older 
versions here, otherwise they could collide
+                * with any new persistent flag we may add in the future. */
+               a = set_listbasepointers(main, lbarray);
+               while (a--) {
+                       for (ID *id = lbarray[a]->first; id; id = id->next) {
+                               id->flag &= LIB_FAKEUSER;
+                       }
+               }
+       }
++      
++      
 +      /* Pose Sculpt... */
 +      if (!DNA_struct_elem_find(fd->filesdna, "ToolSettings", 
"PSculptSettings", "psculpt")) {
 +              Scene *scene;
 +              
 +              /* init defaults for pose sculpt settings 
 +               * ! Keep in sync with blenkernel/scene.c - BKE_scene_init()
 +               *                and  blenloader/versioning_defaults.c
 +               */
 +              for (scene = main->scene.first; scene; scene = scene->id.next) {
 +                      PSculptSettings *pset = &scene->toolsettings->psculpt;
 +                      
 +                      //if (pset->brush[0].size == 0) 
 +                      {
 +                              int i;
 +                              
 +                              for (i = 0; i < PSCULPT_TOT_BRUSH; i++) {
 +                                      pset->brush[i].strength = 0.5f;
 +                                      pset->brush[i].size = 50;
 +                                      pset->brush[i].rate = 0.1f;
 +                              }
 +                              pset->brush[PSCULPT_BRUSH_CURL].strength = 
0.25f;
 +                              pset->brush[PSCULPT_BRUSH_TWIST].strength = 
0.25f;
 +                              pset->brush[PSCULPT_BRUSH_CURL].xzMode = 
PSCULPT_BRUSH_DO_X;
 +                              pset->brush[PSCULPT_BRUSH_GRAB].flag |= 
PSCULPT_BRUSH_FLAG_GRAB_INITIAL;
 +                      }
 +              }
 +      }
  }
diff --cc source/blender/blenloader/intern/versioning_defaults.c
index ab37fdf,e57a215..87f164f
--- a/source/blender/blenloader/intern/versioning_defaults.c
+++ b/source/blender/blenloader/intern/versioning_defaults.c
@@@ -179,35 -229,12 +229,41 @@@ void BLO_update_defaults_startup_blend(
                if (br) {
                        br->ob_mode &= ~OB_MODE_TEXTURE_PAINT;
                }
+ 
+               /* rename twist brush to rotate brush to match rotate tool */
+               br = (Brush *)BKE_libblock_find_name_ex(bmain, ID_BR, "Twist");
+               if (br) {
+                       BKE_libblock_rename(bmain, &br->id, "Rotate");
+               }
        }
 +      
 +      
 +      /* Pose Sculpt... */
 +      {
 +              Scene *scene;
 +              
 +              /* init defaults for pose sculpt settings 
 +               * ! Keep in sync with blenkernel/scene.c - BKE_scene_init()
 +               */
 +              for (scene = bmain->scene.first; scene; scene = scene->id.next) 
{
 +                      PSculptSettings *pset = &scene->toolsettings->psculpt;
 +                      
 +                      //if (pset->brush[0].size == 0) 
 +                      {
 +                              int i;
 +                              
 +                              for (i = 0; i < PSCULPT_TOT_BRUSH; i++) {
 +                                      pset->brush[i].strength = 0.5f;
 +                                      pset->brush[i].size = 50;
 +                                      pset->brush[i].rate = 0.1f;
 +                              }
 +                              pset->brush[PSCULPT_BRUSH_CURL].strength = 
0.25f;
 +                              pset->brush[PSCULPT_BRUSH_TWIST].strength = 
0.25f;
 +                              pset->brush[PSCULPT_BRUSH_CURL].xzMode = 
PSCULPT_BRUSH_DO_X;
 +                              pset->brush[PSCULPT_BRUSH_GRAB].flag |= 
PSCULPT_BRUSH_FLAG_GRAB_INITIAL;
 +                      }
 +              }
 +      }
 +
  }
  
diff --cc source/blender/makesrna/intern/rna_sculpt_paint.c
index 40d9821,77bb4e9..25960a3
--- a/source/blender/makesrna/intern/rna_sculpt_paint.c
+++ b/source/blender/makesrna/intern/rna_sculpt_paint.c
@@@ -974,112 -983,72 +1012,178 @@@ static void rna_def_particle_edit(Blend
        RNA_def_property_ui_text(prop, "Curve", "");
  }
  
+ static void rna_def_gpencil_sculpt(BlenderRNA *brna)
+ {
+       static EnumPropertyItem prop_direction_items[] = {
+               {0, "ADD", 0, "Add", "Add effect of brush"},
+               {GP_EDITBRUSH_FLAG_INVERT, "SUBTRACT", 0, "Subtract", "Subtract 
effect of brush"},
+               {0, NULL, 0, NULL, NULL}};
+       
+       StructRNA *srna;
+       PropertyRNA *prop;
+       
++      
+       /* == Settings == */
+       srna = RNA_def_struct(brna, "GPencilSculptSettings", NULL);
+       RNA_def_struct_sdna(srna, "GP_BrushEdit_Settings");
+       RNA_def_struct_path_func(srna, "rna_GPencilSculptSettings_path");
+       RNA_def_struct_ui_text(srna, "GPencil Sculpt Settings", "Properties for 
Grease Pencil stroke sculpting tool");
+ 
+       prop = RNA_def_property(srna, "tool", PROP_ENUM, PROP_NONE);
+       RNA_def_property_enum_sdna(prop, NULL, "brushtype");
+       RNA_def_property_enum_items(prop, rna_enum_gpencil_sculpt_brush_items);
+       RNA_def_property_ui_text(prop, "Tool", "");
+       
+       prop = RNA_def_property(srna, "brush", PROP_POINTER, PROP_NONE);
+       RNA_def_property_struct_type(prop, "GPencilSculptBrush");
+       RNA_def_property_pointer_funcs(prop, 
"rna_GPencilSculptSettings_brush_get", NULL, NULL, NULL);
+       RNA_def_property_ui_text(prop, "Brush", "");
+       
+       prop = RNA_def_property(srna, "use_select_mask", PROP_BOOLEAN, 
PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", 
GP_BRUSHEDIT_FLAG_SELECT_MASK);
+       RNA_def_property_ui_text(prop, "Selection Mask", "Only sculpt selected 
stroke points");
+       RNA_def_property_ui_icon(prop, ICON_VERTEXSEL, 0); // FIXME: this needs 
a custom icon
+       
+       
+       /* brush */
+       srna = RNA_def_struct(brna, "GPencilSculptBrush", NULL);
+       RNA_def_struct_sdna(srna, "GP_EditBrush_Data");
+       RNA_def_struct_path_func(srna, "rna_GPencilSculptBrush_path");
+       RNA_def_struct_ui_text(srna, "GPencil Sculpt Brush", "Stroke editing 
brush");
+ 
+       prop = RNA_def_property(srna, "size", PROP_INT, PROP_PIXEL);
+       RNA_def_property_range(prop, 1, MAX_BRUSH_PIXEL_RADIUS);
+       RNA_def_property_ui_range(prop, 1, 100, 10, 3); // XXX: too big
+       RNA_def_property_ui_text(prop, "Radius", "Radius of the brush in 
pixels");
+ 
+       prop = RNA_def_property(srna, "strength", PROP_FLOAT, PROP_FACTOR);
+       RNA_def_property_range(prop, 0.001, 1.0);
+       RNA_def_property_ui_text(prop, "Strength", "Brush strength");
+       
+       prop = R

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to