Merged changes in the trunk up to revision 52340.
[blender.git] / source / blender / blenkernel / intern / library.c
index eb0612a..db96567 100644 (file)
 #include "BKE_speaker.h"
 #include "BKE_movieclip.h"
 #include "BKE_mask.h"
+#include "BKE_linestyle.h"
 
 #include "RNA_access.h"
 
@@ -268,6 +269,8 @@ int id_make_local(ID *id, int test)
                        return 0; /* can't be linked */
                case ID_GD:
                        return 0; /* not implemented */
+               case ID_LS:
+                       return 0; /* not implemented */
        }
 
        return 0;
@@ -362,6 +365,9 @@ int id_copy(ID *id, ID **newid, int test)
                case ID_MSK:
                        if (!test) *newid = (ID *)BKE_mask_copy((Mask *)id);
                        return 1;
+               case ID_LS:
+                       if(!test) *newid= (ID*)FRS_copy_linestyle((FreestyleLineStyle*)id);
+                       return 1;
        }
        
        return 0;
@@ -492,6 +498,8 @@ ListBase *which_libbase(Main *mainlib, short type)
                        return &(mainlib->movieclip);
                case ID_MSK:
                        return &(mainlib->mask);
+               case ID_LS:
+                       return &(mainlib->linestyle);
        }
        return NULL;
 }
@@ -576,6 +584,7 @@ int set_listbasepointers(Main *main, ListBase **lb)
        lb[a++] = &(main->wm);
        lb[a++] = &(main->movieclip);
        lb[a++] = &(main->mask);
+       lb[a++] = &(main->linestyle);
        
        lb[a] = NULL;
 
@@ -690,6 +699,9 @@ static ID *alloc_libblock_notest(short type)
                case ID_MSK:
                        id = MEM_callocN(sizeof(Mask), "Mask");
                        break;
+               case ID_LS:
+                       id = MEM_callocN(sizeof(FreestyleLineStyle), "Freestyle Line Style");
+                       break;
        }
        return id;
 }
@@ -914,6 +926,9 @@ void BKE_libblock_free(ListBase *lb, void *idv)
                case ID_MSK:
                        BKE_mask_free(bmain, (Mask *)id);
                        break;
+               case ID_LS:
+                       FRS_free_linestyle((FreestyleLineStyle *)id);
+                       break;
        }
 
        BLI_remlink(lb, id);