Merged changes in the trunk up to revision 46787.
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>
Sat, 19 May 2012 08:40:56 +0000 (08:40 +0000)
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>
Sat, 19 May 2012 08:40:56 +0000 (08:40 +0000)
Conflicts resolved:
source/blender/blenkernel/intern/idcode.c
source/blender/blenloader/intern/readfile.c
source/blender/editors/include/ED_anim_api.h
source/blender/editors/include/UI_resources.h
source/blender/makesrna/intern/rna_main.c

38 files changed:
1  2 
release/scripts/startup/bl_ui/space_view3d.py
source/blender/CMakeLists.txt
source/blender/SConscript
source/blender/blenkernel/BKE_main.h
source/blender/blenkernel/CMakeLists.txt
source/blender/blenkernel/intern/anim_sys.c
source/blender/blenkernel/intern/idcode.c
source/blender/blenkernel/intern/object.c
source/blender/blenkernel/intern/subsurf_ccg.c
source/blender/blenlib/intern/bpath.c
source/blender/blenloader/intern/readfile.c
source/blender/bmesh/intern/bmesh_operators.h
source/blender/bmesh/operators/bmo_utils.c
source/blender/editors/animation/anim_filter.c
source/blender/editors/include/ED_anim_api.h
source/blender/editors/include/UI_resources.h
source/blender/editors/mesh/editmesh_select.c
source/blender/editors/mesh/editmesh_tools.c
source/blender/editors/mesh/mesh_ops.c
source/blender/editors/space_view3d/drawobject.c
source/blender/editors/transform/transform.c
source/blender/makesdna/DNA_ID.h
source/blender/makesdna/DNA_meshdata_types.h
source/blender/makesdna/DNA_scene_types.h
source/blender/makesdna/intern/makesdna.c
source/blender/makesrna/intern/makesrna.c
source/blender/makesrna/intern/rna_ID.c
source/blender/makesrna/intern/rna_action.c
source/blender/makesrna/intern/rna_color.c
source/blender/makesrna/intern/rna_main.c
source/blender/makesrna/intern/rna_main_api.c
source/blender/makesrna/intern/rna_mesh.c
source/blender/makesrna/intern/rna_userdef.c
source/blender/render/intern/source/convertblender.c
source/blender/render/intern/source/pipeline.c
source/blenderplayer/bad_level_call_stubs/stubs.c
source/creator/CMakeLists.txt
source/creator/creator.c

Simple merge
@@@ -9,10 -9,11 +9,12 @@@ SConscript(['avi/SConscript'
              'blenloader/SConscript',
              'blenpluginapi/SConscript',
              'gpu/SConscript',
+             'opencl/SConscript',
              'editors/SConscript',
 +                      'freestyle/SConscript',
              'imbuf/SConscript',
              'makesdna/SConscript',
+             'compositor/SConscript',
              'render/SConscript',
              'nodes/SConscript',
              'modifiers/SConscript',
Simple merge
@@@ -742,18 -741,18 +742,18 @@@ void BKE_animdata_main_cb(Main *mainptr
  
        /* standard data version */
  #define ANIMDATA_IDS_CB(first) \
-       for (id= first; id; id= id->next) { \
-               AnimData *adt= BKE_animdata_from_id(id); \
+       for (id = first; id; id = id->next) { \
+               AnimData *adt = BKE_animdata_from_id(id); \
                if (adt) func(id, adt, user_data); \
        }
 -      
 +
        /* "embedded" nodetree cases (i.e. scene/material/texture->nodetree) */
  #define ANIMDATA_NODETREE_IDS_CB(first, NtId_Type) \
-       for (id= first; id; id= id->next) { \
-               AnimData *adt= BKE_animdata_from_id(id); \
-               NtId_Type *ntp= (NtId_Type *)id; \
+       for (id = first; id; id = id->next) { \
+               AnimData *adt = BKE_animdata_from_id(id); \
+               NtId_Type *ntp = (NtId_Type *)id; \
                if (ntp->nodetree) { \
-                       AnimData *adt2= BKE_animdata_from_id((ID *)ntp); \
+                       AnimData *adt2 = BKE_animdata_from_id((ID *)ntp); \
                        if (adt2) func(id, adt2, user_data); \
                } \
                if (adt) func(id, adt, user_data); \
@@@ -2350,14 -2343,11 +2350,14 @@@ void BKE_animsys_evaluate_all_animation
        /* movie clips */
        EVAL_ANIM_IDS(main->movieclip.first, ADT_RECALC_ANIM);
  
 +      /* linestyles */
 +      EVAL_ANIM_IDS(main->linestyle.first, ADT_RECALC_ANIM);
 +      
        /* objects */
-               /* ADT_RECALC_ANIM doesn't need to be supplied here, since object AnimData gets 
-                * this tagged by Depsgraph on framechange. This optimization means that objects
-                * linked from other (not-visible) scenes will not need their data calculated.
-                */
+       /* ADT_RECALC_ANIM doesn't need to be supplied here, since object AnimData gets
+        * this tagged by Depsgraph on framechange. This optimization means that objects
+        * linked from other (not-visible) scenes will not need their data calculated.
+        */
        EVAL_ANIM_IDS(main->object.first, 0); 
        
        /* worlds */
@@@ -47,41 -47,40 +47,41 @@@ typedef struct 
  } IDType;
  
  /* plural need to match rna_main.c's MainCollectionDef */
- static IDType idtypes[]= {
-       { ID_AC,                "Action",       "actions",              IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_AR,                "Armature", "armatures",        IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_BR,                "Brush",        "brushes",              IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_CA,                "Camera",       "cameras",              IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_CU,                "Curve",        "curves",               IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_GD,                "GPencil",      "grease_pencil", IDTYPE_FLAGS_ISLINKABLE},  /* rename gpencil */
-       { ID_GR,                "Group",        "groups",               IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_ID,                "ID",           "ids",                  0}, /* plural is fake */
-       { ID_IM,                "Image",        "images",               IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_IP,                "Ipo",          "ipos",                 IDTYPE_FLAGS_ISLINKABLE},  /* deprecated */
-       { ID_KE,                "Key",          "shape_keys",   0}, 
-       { ID_LA,                "Lamp",         "lamps",                IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_LI,                "Library",      "libraries",    0}, 
-       { ID_LS,                "FreestyleLineStyle", "linestyles", IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_LT,                "Lattice",      "lattices",             IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_MA,                "Material", "materials",        IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_MB,                "Metaball", "metaballs",        IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_ME,                "Mesh",         "meshes",               IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_NT,                "NodeTree",     "node_groups",  IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_OB,                "Object",       "objects",              IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_PA,                "ParticleSettings",     "particles", 0},
-       { ID_SCE,               "Scene",        "scenes",               IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_SCR,               "Screen",       "screens",              0}, 
-       { ID_SEQ,               "Sequence",     "sequences",    0}, /* not actually ID data */
-       { ID_SPK,               "Speaker",      "speakers",             IDTYPE_FLAGS_ISLINKABLE},
-       { ID_SO,                "Sound",        "sounds",               IDTYPE_FLAGS_ISLINKABLE},
-       { ID_TE,                "Texture",      "textures",             IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_TXT,               "Text",         "texts",                IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_VF,                "VFont",        "fonts",                IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_WO,                "World",        "worlds",               IDTYPE_FLAGS_ISLINKABLE}, 
-       { ID_WM,                "WindowManager", "window_managers",     0}, 
-       { ID_MC,                "MovieClip", "movieclips",      IDTYPE_FLAGS_ISLINKABLE},
+ static IDType idtypes[] = {
+       { ID_AC,        "Action",   "actions",      IDTYPE_FLAGS_ISLINKABLE},
+       { ID_AR,        "Armature", "armatures",    IDTYPE_FLAGS_ISLINKABLE},
+       { ID_BR,        "Brush",    "brushes",      IDTYPE_FLAGS_ISLINKABLE},
+       { ID_CA,        "Camera",   "cameras",      IDTYPE_FLAGS_ISLINKABLE},
+       { ID_CU,        "Curve",    "curves",       IDTYPE_FLAGS_ISLINKABLE},
+       { ID_GD,        "GPencil",  "grease_pencil", IDTYPE_FLAGS_ISLINKABLE},  /* rename gpencil */
+       { ID_GR,        "Group",    "groups",       IDTYPE_FLAGS_ISLINKABLE},
+       { ID_ID,        "ID",       "ids",          0}, /* plural is fake */
+       { ID_IM,        "Image",    "images",       IDTYPE_FLAGS_ISLINKABLE},
+       { ID_IP,        "Ipo",      "ipos",         IDTYPE_FLAGS_ISLINKABLE},  /* deprecated */
+       { ID_KE,        "Key",      "shape_keys",   0},
+       { ID_LA,        "Lamp",     "lamps",        IDTYPE_FLAGS_ISLINKABLE},
+       { ID_LI,        "Library",  "libraries",    0},
++      { ID_LS,        "FreestyleLineStyle", "linestyles", IDTYPE_FLAGS_ISLINKABLE},
+       { ID_LT,        "Lattice",  "lattices",     IDTYPE_FLAGS_ISLINKABLE},
+       { ID_MA,        "Material", "materials",    IDTYPE_FLAGS_ISLINKABLE},
+       { ID_MB,        "Metaball", "metaballs",    IDTYPE_FLAGS_ISLINKABLE},
+       { ID_ME,        "Mesh",     "meshes",       IDTYPE_FLAGS_ISLINKABLE},
+       { ID_NT,        "NodeTree", "node_groups",  IDTYPE_FLAGS_ISLINKABLE},
+       { ID_OB,        "Object",   "objects",      IDTYPE_FLAGS_ISLINKABLE},
+       { ID_PA,        "ParticleSettings", "particles", 0},
+       { ID_SCE,       "Scene",    "scenes",       IDTYPE_FLAGS_ISLINKABLE},
+       { ID_SCR,       "Screen",   "screens",      0},
+       { ID_SEQ,       "Sequence", "sequences",    0}, /* not actually ID data */
+       { ID_SPK,       "Speaker",  "speakers",     IDTYPE_FLAGS_ISLINKABLE},
+       { ID_SO,        "Sound",    "sounds",       IDTYPE_FLAGS_ISLINKABLE},
+       { ID_TE,        "Texture",  "textures",     IDTYPE_FLAGS_ISLINKABLE},
+       { ID_TXT,       "Text",     "texts",        IDTYPE_FLAGS_ISLINKABLE},
+       { ID_VF,        "VFont",    "fonts",        IDTYPE_FLAGS_ISLINKABLE},
+       { ID_WO,        "World",    "worlds",       IDTYPE_FLAGS_ISLINKABLE},
+       { ID_WM,        "WindowManager", "window_managers", 0},
+       { ID_MC,        "MovieClip", "movieclips",  IDTYPE_FLAGS_ISLINKABLE},
  };
- static int nidtypes= sizeof(idtypes)/sizeof(idtypes[0]);
+ static int nidtypes = sizeof(idtypes) / sizeof(idtypes[0]);
  
  static IDType *idtype_from_name(const char *str) 
  {
@@@ -505,10 -504,9 +505,10 @@@ void BLI_bpath_traverse_id(Main *bmain
                }
                break;
  
-       case ID_SCE:
+               case ID_SCE:
                {
-                       Scene *scene= (Scene *)id;
+                       Scene *scene = (Scene *)id;
 +                      SceneRenderLayer *srl= scene->r.layers.first;
                        if (scene->ed) {
                                Sequence *seq;
  
                                }
                                SEQ_END
                        }
 +                      for(; srl; srl= srl->next) {
 +                              FreestyleModuleConfig* module= srl->freestyleConfig.modules.first;
 +                              for (; module; module= module->next) {
 +                                      rewrite_path_fixed(module->module_path, visit_cb, absbase, bpath_user_data);
 +                              }
 +                      }
                }
                break;
-       case ID_ME:
+               case ID_ME:
                {
-                       Mesh *me= (Mesh *)id;
+                       Mesh *me = (Mesh *)id;
                        if (me->fdata.external) {
                                rewrite_path_fixed(me->fdata.external->filename, visit_cb, absbase, bpath_user_data);
                        }
@@@ -4842,10 -4829,9 +4830,10 @@@ static void lib_link_scene(FileData *fd
        Base *base, *next;
        Sequence *seq;
        SceneRenderLayer *srl;
 +      FreestyleLineSet *fls;
        TimeMarker *marker;
        
-       sce= main->scene.first;
+       sce = main->scene.first;
        while (sce) {
                if (sce->id.flag & LIB_NEEDLINK) {
                        /* Link ID Properties -- and copy this comment EXACTLY for easy finding
                        }
                        
                        for (srl= sce->r.layers.first; srl; srl= srl->next) {
-                               srl->mat_override= newlibadr_us(fd, sce->id.lib, srl->mat_override);
-                               srl->light_override= newlibadr_us(fd, sce->id.lib, srl->light_override);
+                               srl->mat_override = newlibadr_us(fd, sce->id.lib, srl->mat_override);
+                               srl->light_override = newlibadr_us(fd, sce->id.lib, srl->light_override);
 +                              for(fls=srl->freestyleConfig.linesets.first; fls; fls= fls->next) {
 +                                      fls->linestyle= newlibadr_us(fd, sce->id.lib, fls->linestyle);
 +                                      fls->group= newlibadr_us(fd, sce->id.lib, fls->group);
 +                              }
                        }
                        /*Game Settings: Dome Warp Text*/
-                       sce->gm.dome.warptext= newlibadr(fd, sce->id.lib, sce->gm.dome.warptext);
+                       sce->gm.dome.warptext = newlibadr(fd, sce->id.lib, sce->gm.dome.warptext);
+                       
                        /* Motion Tracking */
-                       sce->clip= newlibadr_us(fd, sce->id.lib, sce->clip);
+                       sce->clip = newlibadr_us(fd, sce->id.lib, sce->clip);
+                       
                        sce->id.flag -= LIB_NEEDLINK;
                }
-               sce= sce->id.next;
+               
+               sce = sce->id.next;
        }
  }
  
@@@ -4974,24 -4957,23 +4963,24 @@@ static void direct_link_scene(FileData 
        Editing *ed;
        Sequence *seq;
        MetaStack *ms;
 +      SceneRenderLayer *srl;
+       
        sce->theDag = NULL;
        sce->dagisvalid = 0;
-       sce->obedit= NULL;
-       sce->stats= NULL;
-       sce->fps_info= NULL;
-       sce->customdata_mask_modal= 0;
+       sce->obedit = NULL;
+       sce->stats = NULL;
+       sce->fps_info = NULL;
+       sce->customdata_mask_modal = 0;
        sce->lay_updated = 0;
+       
        sound_create_scene(sce);
+       
        /* set users to one by default, not in lib-link, this will increase it for compo nodes */
-       sce->id.us= 1;
+       sce->id.us = 1;
+       
        link_list(fd, &(sce->base));
        
-       sce->adt= newdataadr(fd, sce->adt);
+       sce->adt = newdataadr(fd, sce->adt);
        direct_link_animdata(fd, sce->adt);
        
        link_list(fd, &sce->keyingsets);
        link_list(fd, &(sce->markers));
        link_list(fd, &(sce->transform_spaces));
        link_list(fd, &(sce->r.layers));
-       for(srl= sce->r.layers.first; srl; srl= srl->next) {
 +
-       for(srl= sce->r.layers.first; srl; srl= srl->next) {
++      for(srl = sce->r.layers.first; srl; srl = srl->next) {
 +              link_list(fd, &(srl->freestyleConfig.modules));
 +      }
++      for(srl = sce->r.layers.first; srl; srl = srl->next) {
 +              link_list(fd, &(srl->freestyleConfig.linesets));
 +      }
        
-       sce->nodetree= newdataadr(fd, sce->nodetree);
+       sce->nodetree = newdataadr(fd, sce->nodetree);
        if (sce->nodetree)
                direct_link_nodetree(fd, sce->nodetree);
  }
@@@ -7710,40 -7514,21 +7703,51 @@@ static void do_versions(FileData *fd, L
                        }
                }
        }
+       
 +      /* default values in Freestyle settings */
 +      {
 +              Scene *sce;
 +              SceneRenderLayer *srl;
 +              FreestyleLineStyle *linestyle;
 +
 +              for(sce = main->scene.first; sce; sce = sce->id.next) {
 +                      if (sce->r.line_thickness_mode == 0) {
 +                              sce->r.line_thickness_mode= R_LINE_THICKNESS_ABSOLUTE;
 +                              sce->r.unit_line_thickness= 1.f;
 +                      }
 +                      for(srl= sce->r.layers.first; srl; srl= srl->next) {
 +                              if (srl->freestyleConfig.mode == 0)
 +                                      srl->freestyleConfig.mode= FREESTYLE_CONTROL_EDITOR_MODE;
 +                              if (srl->freestyleConfig.raycasting_algorithm == 0)
 +                                      srl->freestyleConfig.raycasting_algorithm= FREESTYLE_ALGO_CULLED_ADAPTIVE_CUMULATIVE;
 +                      }
 +              }
 +              for(linestyle = main->linestyle.first; linestyle; linestyle = linestyle->id.next) {
 +                      if (linestyle->thickness_position == 0) {
 +                              linestyle->thickness_position= LS_THICKNESS_CENTER;
 +                              linestyle->thickness_ratio= 0.5f;
 +                      }
 +                      if (linestyle->chaining == 0)
 +                              linestyle->chaining= LS_CHAINING_PLAIN;
 +                      if (linestyle->rounds == 0)
 +                              linestyle->rounds= 3;
 +              }
 +      }
 +      
        /* WATCH IT!!!: pointers from libdata have not been converted yet here! */
        /* WATCH IT 2!: Userdef struct init has to be in editors/interface/resources.c! */
+       {
+               Scene *scene;
+               // composite redesign
+               for (scene=main->scene.first; scene; scene=scene->id.next) {
+                       if (scene->nodetree) {
+                               if (scene->nodetree->chunksize == 0) {
+                                       scene->nodetree->chunksize = 256;
+                               }
+                       }
+               }
+       }
+       
        /* don't forget to set version number in blender.c! */
  }
  
@@@ -7786,10 -7571,9 +7790,10 @@@ static void lib_link_all(FileData *fd, 
        lib_link_brush(fd, main);
        lib_link_particlesettings(fd, main);
        lib_link_movieclip(fd, main);
 +      lib_link_linestyle(fd, main);
+       
        lib_link_mesh(fd, main);                /* as last: tpage images with users at zero */
+       
        lib_link_library(fd, main);             /* only init users */
  }
  
@@@ -8670,9 -8451,8 +8671,9 @@@ static void expand_scene(FileData *fd, 
  {
        Base *base;
        SceneRenderLayer *srl;
-       for (base= sce->base.first; base; base= base->next) {
 +      FreestyleLineSet *lineset;
+       
+       for (base = sce->base.first; base; base = base->next) {
                expand_doit(fd, mainvar, base->object);
        }
        expand_doit(fd, mainvar, sce->camera);
        if (sce->nodetree)
                expand_nodetree(fd, mainvar, sce->nodetree);
        
-       for (srl= sce->r.layers.first; srl; srl= srl->next) {
+       for (srl = sce->r.layers.first; srl; srl = srl->next) {
                expand_doit(fd, mainvar, srl->mat_override);
                expand_doit(fd, mainvar, srl->light_override);
-               for (lineset= srl->freestyleConfig.linesets.first; lineset; lineset= lineset->next) {
 +
++              for (lineset = srl->freestyleConfig.linesets.first; lineset; lineset = lineset->next) {
 +                      if (lineset->group)
 +                              expand_doit(fd, mainvar, lineset->group);
 +                      expand_doit(fd, mainvar, lineset->linestyle);
 +              }
        }
+       
        if (sce->r.dometext)
                expand_doit(fd, mainvar, sce->gm.dome.warptext);
-               
+       
        if (sce->gpd)
                expand_doit(fd, mainvar, sce->gpd);
+               
        if (sce->ed) {
                Sequence *seq;
+               
                SEQ_BEGIN (sce->ed, seq)
                {
                        if (seq->scene) expand_doit(fd, mainvar, seq->scene);
@@@ -8864,16 -8616,13 +8862,16 @@@ static void expand_main(FileData *fd, M
                                        case ID_MC:
                                                expand_movieclip(fd, mainvar, (MovieClip *)id);
                                                break;
 +                                      case ID_LS:
 +                                              expand_linestyle(fd, mainvar, (FreestyleLineStyle *)id);
 +                                              break;
                                        }
-                                       doit= 1;
+                                       
+                                       doit = 1;
                                        id->flag -= LIB_TEST;
+                                       
                                }
-                               id= id->next;
+                               id = id->next;
                        }
                }
        }
@@@ -64,9 -63,9 +64,10 @@@ enum 
        SIMEDGE_FACE,
        SIMEDGE_FACE_ANGLE,
        SIMEDGE_CREASE,
+       SIMEDGE_BEVEL,
        SIMEDGE_SEAM,
 -      SIMEDGE_SHARP
 +      SIMEDGE_SHARP,
 +      SIMEDGE_FREESTYLE
  };
  
  /* similar vertex selection slot values */
@@@ -227,16 -226,15 +227,16 @@@ typedef enum eAnimFilter_Flags 
  // xxx check on all of these flags again...
  
  /* Dopesheet only */
      /* 'Scene' channels */
+ /* 'Scene' channels */
  #define SEL_SCEC(sce) ((sce->flag & SCE_DS_SELECTED))
- #define EXPANDED_SCEC(sce) ((sce->flag & SCE_DS_COLLAPSED)==0)
      /* 'Sub-Scene' channels (flags stored in Data block) */
+ #define EXPANDED_SCEC(sce) ((sce->flag & SCE_DS_COLLAPSED) == 0)
+ /* 'Sub-Scene' channels (flags stored in Data block) */
  #define FILTER_WOR_SCED(wo) ((wo->flag & WO_DS_EXPAND))
-       /* 'Object' channels */
 +#define FILTER_LS_SCED(linestyle) ((linestyle->flag & LS_DS_EXPAND))
+ /* 'Object' channels */
  #define SEL_OBJC(base) ((base->flag & SELECT))
- #define EXPANDED_OBJC(ob) ((ob->nlaflag & OB_ADS_COLLAPSED)==0)
      /* 'Sub-object' channels (flags stored in Data block) */
+ #define EXPANDED_OBJC(ob) ((ob->nlaflag & OB_ADS_COLLAPSED) == 0)
+ /* 'Sub-object' channels (flags stored in Data block) */
  #define FILTER_SKE_OBJD(key) ((key->flag & KEY_DS_EXPAND))
  #define FILTER_MAT_OBJD(ma) ((ma->flag & MA_DS_EXPAND))
  #define FILTER_LAM_OBJD(la) ((la->flag & LA_DS_EXPAND))
@@@ -197,11 -197,8 +197,11 @@@ enum 
        TH_STITCH_PREVIEW_UNSTITCHABLE,
        TH_STITCH_PREVIEW_ACTIVE,
  
-       TH_MATCH,                               /* highlight color for search matches */
-       TH_SELECT_HIGHLIGHT,    /* highlight color for selected outliner item */
 +      TH_FREESTYLE_EDGE_MARK,
-       TH_FREESTYLE_FACE_MARK
++      TH_FREESTYLE_FACE_MARK,
++
+       TH_MATCH,           /* highlight color for search matches */
+       TH_SELECT_HIGHLIGHT /* highlight color for selected outliner item */
  };
  /* XXX WARNING: previous is saved in file, so do not change order! */
  
@@@ -682,9 -682,9 +682,10 @@@ static EnumPropertyItem prop_similar_ty
        {SIMEDGE_FACE, "FACE", 0, "Amount of Faces Around an Edge", ""},
        {SIMEDGE_FACE_ANGLE, "FACE_ANGLE", 0, "Face Angles", ""},
        {SIMEDGE_CREASE, "CREASE", 0, "Crease", ""},
+       {SIMEDGE_BEVEL, "BEVEL", 0, "Bevel", ""},
        {SIMEDGE_SEAM, "SEAM", 0, "Seam", ""},
        {SIMEDGE_SHARP, "SHARP", 0, "Sharpness", ""},
 +      {SIMEDGE_FREESTYLE, "FREESTYLE_EDGE", 0, "Freestyle Edge Marks", ""},
  
        {SIMFACE_MATERIAL, "MATERIAL", 0, "Material", ""},
        {SIMFACE_IMAGE, "IMAGE", 0, "Image", ""},
Simple merge
@@@ -378,14 -378,8 +378,14 @@@ static void rna_def_dopesheet(BlenderRN
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOLAM);
        RNA_def_property_ui_text(prop, "Display Lamp", "Include visualization of Lamp related Animation data");
        RNA_def_property_ui_icon(prop, ICON_LAMP_DATA, 0);
-       RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
+       RNA_def_property_update(prop, NC_ANIMATION | ND_ANIMCHAN | NA_EDITED, NULL);
        
 +      prop = RNA_def_property(srna, "show_linestyles", PROP_BOOLEAN, PROP_NONE);
 +      RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOLINESTYLE);
 +      RNA_def_property_ui_text(prop, "Display Line Style", "Include visualization of Line Style related Animation data");
 +      RNA_def_property_ui_icon(prop, ICON_BRUSH_DATA, 0); /* FIXME */
 +      RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
 +      
        prop = RNA_def_property(srna, "show_textures", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOTEX);
        RNA_def_property_ui_text(prop, "Display Texture", "Include visualization of Texture related Animation data");
@@@ -150,15 -149,7 +150,15 @@@ static char *rna_ColorRamp_path(Pointer
                                else if (ptr->data == ma->ramp_spec)
                                        return BLI_strdup("specular_ramp");
                        }
-                               break;
+                       break;
 +
 +                      case ID_LS:
 +                      {
 +                              char *path = FRS_path_from_ID_to_color_ramp((FreestyleLineStyle *)id, (ColorBand *)ptr->data);
 +                              if (path)
 +                                      return path;
 +                      }
 +                              break;
                }
        }
        
@@@ -226,22 -217,8 +226,22 @@@ static char *rna_ColorRampElement_path(
                                        }
                                }
                        }
-                               break;
+                       break;
                                
 +                      case ID_LS:
 +                      {
 +                              ListBase listbase;
 +                              LinkData *link;
 +
 +                              FRS_list_modifier_color_ramps((FreestyleLineStyle *)id, &listbase);
 +                              for (link = (LinkData *)listbase.first; link; link = link->next) {
 +                                      RNA_pointer_create(id, &RNA_ColorRamp, link->data, &ramp_ptr);
 +                                      COLRAMP_GETPATH;
 +                              }
 +                              BLI_freelistN(&listbase);
 +                      }
 +                              break;
 +
                        default: /* everything else should have a "color_ramp" property */
                        {
                                /* create pointer to the ID block, and try to resolve "color_ramp" pointer */
@@@ -292,14 -269,7 +292,14 @@@ static void rna_ColorRamp_update(Main *
                                DAG_id_tag_update(&tex->id, 0);
                                WM_main_add_notifier(NC_TEXTURE, tex);
                        }
-                               break;
+                       break;
 +                      case ID_LS:
 +                      {
 +                              FreestyleLineStyle *linestyle= ptr->id.data;
 +
 +                              WM_main_add_notifier(NC_LINESTYLE, linestyle);
 +                      }
 +                              break;
                        default:
                                break;
                }
@@@ -319,17 -311,13 +317,14 @@@ void RNA_def_main(BlenderRNA *brna
                {"texts", "Text", "rna_Main_text_begin", "Texts", "Text datablocks", RNA_def_main_texts},
                {"speakers", "Speaker", "rna_Main_speaker_begin", "Speakers", "Speaker datablocks", RNA_def_main_speakers},
                {"sounds", "Sound", "rna_Main_sound_begin", "Sounds", "Sound datablocks", RNA_def_main_sounds},
-               {"armatures", "Armature", "rna_Main_armature_begin", "Armatures", "Armature datablocks",
-                             RNA_def_main_armatures},
+               {"armatures", "Armature", "rna_Main_armature_begin", "Armatures", "Armature datablocks", RNA_def_main_armatures},
                {"actions", "Action", "rna_Main_action_begin", "Actions", "Action datablocks", RNA_def_main_actions},
-               {"particles", "ParticleSettings", "rna_Main_particle_begin", "Particles", "Particle datablocks",
-                             RNA_def_main_particles},
-               {"grease_pencil", "GreasePencil", "rna_Main_gpencil_begin", "Grease Pencil", "Grease Pencil datablocks",
-                                 RNA_def_main_gpencil},
-               {"movieclips", "MovieClip", "rna_Main_movieclips_begin", "Movie Clips", "Movie Clip datablocks",
-                              RNA_def_main_movieclips},
+               {"particles", "ParticleSettings", "rna_Main_particle_begin", "Particles", "Particle datablocks", RNA_def_main_particles},
+               {"grease_pencil", "GreasePencil", "rna_Main_gpencil_begin", "Grease Pencil", "Grease Pencil datablocks", RNA_def_main_gpencil},
+               {"movieclips", "MovieClip", "rna_Main_movieclips_begin", "Movie Clips", "Movie Clip datablocks", RNA_def_main_movieclips},
 +              {"linestyles", "FreestyleLineStyle", "rna_Main_linestyle_begin", "Line Styles", "Line Style datablocks", RNA_def_main_linestyles},
-               {NULL, NULL, NULL, NULL, NULL, NULL}};
+               {NULL, NULL, NULL, NULL, NULL, NULL}
+       };
  
        int i;
        
@@@ -37,8 -37,8 +37,9 @@@ blender_include_dirs
        ../blender/render/extern/include
        ../blender/makesdna
        ../blender/gpu
 +      ../blender/freestyle
        ../blender/windowmanager
+       ../blender/opencl
  )
  
  if(WIN32)
Simple merge