Commit: 13c6a6cdb0c226c907989739d34fa58447b68266
Author: Julian Eisel
Date:   Sat Dec 19 13:09:03 2015 +0100
Branches: wiggly-widgets
https://developer.blender.org/rB13c6a6cdb0c226c907989739d34fa58447b68266

Merge branch 'master' into wiggly-widgets

Conflicts:
        release/scripts/modules/sys_info.py
        source/blender/blenloader/intern/versioning_270.c
        source/blender/editors/space_view3d/drawobject.c
        source/blender/editors/transform/transform_manipulator.c

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



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

diff --cc source/blender/blenloader/intern/versioning_270.c
index fae602e,72312d7..19d8a4f
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@@ -935,42 -936,98 +936,137 @@@ 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, "SpaceNode", "float", 
"backdrop_zoom")) {
 +                      bScreen *sc;
 +                      for (sc = main->screen.first; sc; sc = sc->id.next) {
 +                              ScrArea *sa;
 +                              for (sa = sc->areabase.first; sa; sa = 
sa->next) {
 +                                      SpaceLink *sl;
 +                                      for (sl = sa->spacedata.first; sl; sl = 
sl->next) {
 +                                              if (sl->spacetype == 
SPACE_NODE) {
 +                                                      SpaceNode *snode = 
(SpaceNode *)sl;
 +                                                      snode->backdrop_zoom = 
1.0;
 +                                              }
 +                                              if (sl->spacetype == SPACE_SEQ) 
{
 +                                                      SpaceSeq *sseq = 
(SpaceSeq *)sl;
 +                                                      sseq->overdrop_zoom = 
1.0;
 +                                              }
 +                                      }
 +                              }
 +                      }
 +              }
 +
 +              if (!DNA_struct_elem_find(fd->filesdna, "SpaceIpo", "float", 
"backdrop_zoom")) {
 +                      bScreen *sc;
 +                      for (sc = main->screen.first; sc; sc = sc->id.next) {
 +                              ScrArea *sa;
 +                              for (sa = sc->areabase.first; sa; sa = 
sa->next) {
 +                                      SpaceLink *sl;
 +                                      for (sl = sa->spacedata.first; sl; sl = 
sl->next) {
 +                                              if (sl->spacetype == SPACE_IPO) 
{
 +                                                      SpaceIpo *sipo = 
(SpaceIpo *)sl;
 +                                                      sipo->backdrop_zoom = 
1.0f;
 +                                                      sipo->backdrop_opacity 
= 0.7f;
 +                                              }
 +                                      }
 +                              }
 +                      }
 +              }
 +      }
  }
diff --cc source/blender/editors/include/ED_armature.h
index a1531af,15c6837..d325c0d
--- a/source/blender/editors/include/ED_armature.h
+++ b/source/blender/editors/include/ED_armature.h
@@@ -211,14 -209,9 +212,15 @@@ int BDR_drawSketchNames(struct ViewCont
  /* meshlaplacian.c */
  void mesh_deform_bind(struct Scene *scene,
                        struct MeshDeformModifierData *mmd,
+                       struct DerivedMesh *cagedm,
                        float *vertexcos, int totvert, float cagemat[4][4]);
 -      
 +
 +/* pose_utils.c */
 +struct ThemeWireColor *ED_pchan_get_colorset(
 +        struct bArmature *arm,
 +        struct bPose *pose, struct bPoseChannel *pchan)
 +        ATTR_WARN_UNUSED_RESULT;
 +
  #ifdef __cplusplus
  }
  #endif
diff --cc source/blender/editors/space_view3d/drawobject.c
index 92daea4,681e64f..874468f
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@@ -86,10 -86,10 +86,11 @@@
  #include "BIF_gl.h"
  #include "BIF_glutil.h"
  
++#include "GPU_buffers.h"
  #include "GPU_draw.h"
- #include "GPU_extensions.h"
  #include "GPU_select.h"
- #include "GPU_buffers.h"
+ #include "GPU_basic_shader.h"
+ #include "GPU_shader.h"
  
  #include "ED_mesh.h"
  #include "ED_particle.h"
diff --cc source/blender/editors/space_view3d/space_view3d.c
index b299875,fa14ca9..2808b3d
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@@ -60,15 -51,12 +60,15 @@@
  #include "BKE_scene.h"
  #include "BKE_screen.h"
  
 +#include "ED_armature.h"
  #include "ED_space_api.h"
  #include "ED_screen.h"
 +#include "ED_transform.h"
 +#include "ED_view3d.h"
  
- #include "GPU_extensions.h"
- #include "GPU_material.h"
  #include "GPU_compositing.h"
+ #include "GPU_framebuffer.h"
+ #include "GPU_material.h"
  
  #include "BIF_gl.h"
  
diff --cc source/blender/editors/transform/transform_manipulator.c
index ca6cb1b,79b071e..0f62269
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@@ -547,14 -266,16 +548,16 @@@ bool gimbal_axis(Object *ob, float gmat
  /* returns total items selected */
  static int calc_manipulator_stats(const bContext *C)
  {
 -      ScrArea *sa = CTX_wm_area(C);
 -      ARegion *ar = CTX_wm_region(C);
 +      const ScrArea *sa = CTX_wm_area(C);
 +      const ARegion *ar = CTX_wm_region(C);
-       const View3D *v3d = sa->spacedata.first;
-       RegionView3D *rv3d = ar->regiondata;
        Scene *scene = CTX_data_scene(C);
        Object *obedit = CTX_data_edit_object(C);
-       Object *ob = OBACT;
+       View3D *v3d = sa->spacedata.first;
+       RegionView3D *rv3d = ar->regiondata;
        Base *base;
+       Object *ob = OBACT;
+       bGPdata *gpd = CTX_data_gpencil_data(C);
+       const bool is_gp_edit = ((gpd) && (gpd->flag & 
GP_DATA_STROKE_EDITMODE));
        int a, totsel = 0;
  
        /* transform widget matrix */
@@@ -832,13 -574,17 +858,13 @@@
        }
  
        /* global, local or normal orientation? */
-       if (ob && totsel) {
+       if (ob && totsel && !is_gp_edit) {
 +              float mat[3][3];
  
                switch (v3d->twmode) {
 -              
                        case V3D_MANIP_GLOBAL:
 -                      {
                                break; /* nothing to do */
 -                      }
                        case V3D_MANIP_GIMBAL:
 -                      {
 -                              float mat[3][3];
                                if (gimbal_axis(ob, mat)) {
                                        copy_m4_m3(rv3d->twmat, mat);
                                        break;
@@@ -906,274 -666,1250 +932,282 @@@ static void manipulator_drawflags_refre
        }
  }
  
- static void manipulator_prepare_mat(Scene *scene, View3D *v3d, RegionView3D 
*rv3d)
 -
 -/* ******************** DRAWING STUFFIES *********** */
 -
 -static float screen_aligned(RegionView3D *rv3d, float mat[4][4])
 -{
 -      glTranslate3fv(mat[3]);
 -
 -      /* sets view screen aligned */
 -      glRotatef(-360.0f * saacos(rv3d->viewquat[0]) / (float)M_PI, 
rv3d->viewquat[1], rv3d->viewquat[2], rv3d->viewquat[3]);
 -
 -      return len_v3(mat[0]); /* draw scale */
 -}
 -
 -
 -/* radring = radius of doughnut rings
 - * radhole = radius hole
 - * start = starting segment (based on nrings)
 - * end   = end segment
 - * nsides = amount of points in ring
 - * nrigns = amount of rings
 - */
 -static void partial_doughnut(float radring, float radhole, int start, int 
end, int nsides, int nrings)
++static void manipulator_prepare_mat(const bContext *C, View3D *v3d, 
RegionView3D *rv3d)
  {
 -      float theta, phi, theta1;
 -      float cos_theta, sin_theta;
 -      float cos_theta1, sin_theta1;
 -      float ring_delta, side_delta;
 -      int i, j, do_caps = true;
 -
 -      if (start == 0 && end == nrings) do_caps = false;
 -
 -      ring_delta = 2.0f * (float)M_PI / (float)nrings;
 -      side_delta = 2.0f * (float)M_PI / (float)nsides;
 -
 -      theta = (float)M_PI + 0.5f * ring_delta;
 -      cos_theta = cosf(theta);
 -      sin_theta = sinf(theta);
 -
 -      for (i = nrings - 1; i >= 0; i--) {
 -              theta1 = theta + ring_delta;
 -              cos_theta1 = cosf(theta1);
 -              sin_theta1 = sinf(theta1);
 -
 -              if (do_caps && i == start) {  // cap
 -                      glBegin(GL_POLYGON);
 -                      phi = 0.0;
 -                      for (j = nsides; j >= 0; j--) {
 -                              float cos_phi, sin_phi, dist;
 -
 -                              phi += side_delta;
 -                              cos_phi = cosf(phi);
 -                              sin_phi = sinf(phi);
 -                              dist = radhole + radring * cos_phi;
 -
 -                              glVertex3f(cos_theta1 * dist, -sin_theta1 * 
dist,  radring * sin_phi);
 -                      }
 -                      glEnd();
 -              }
 -              if (i >= start && i <= end) {
 -                      glBegin(GL_QUAD_STRIP);
 -                      phi = 0.0;
 -                      for (j = nsides; j >= 0; j--) {
 -                              float cos_phi, sin_phi, dist;
 -
 -                              phi += side_delta;
 -                              cos_phi = cosf(phi);
 -                              sin_phi = sinf(p

@@ 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