Revision: 20292
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20292
Author:   blendix
Date:     2009-05-20 15:34:04 +0200 (Wed, 20 May 2009)

Log Message:
-----------
2.5 Material:
* Added material "type" property, with Surface/Volume/Halo
  options, compatible with sim_physics, as requested for
  material buttons layout. Obviously the Volume setting
  does nothing currently.
* Deprecated MA_HALO flag in favor of this.

Modified Paths:
--------------
    branches/blender2.5/blender/release/ui/buttons_material.py
    branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    
branches/blender2.5/blender/source/blender/editors/interface/interface_icons.c
    branches/blender2.5/blender/source/blender/editors/preview/previewrender.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_material_types.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_scene.c
    
branches/blender2.5/blender/source/blender/render/intern/source/convertblender.c
    branches/blender2.5/blender/source/blender/render/intern/source/rendercore.c

Modified: branches/blender2.5/blender/release/ui/buttons_material.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_material.py  2009-05-20 
12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/release/ui/buttons_material.py  2009-05-20 
13:34:04 UTC (rev 20292)
@@ -5,40 +5,41 @@
        __space_type__ = "BUTTONS_WINDOW"
        __region_type__ = "WINDOW"
        __context__ = "material"
+
+       def poll(self, context):
+               ob = context.active_object
+               return (ob and ob.active_material)
        
 class MATERIAL_PT_material(MaterialButtonsPanel):
        __idname__= "MATERIAL_PT_material"
        __label__ = "Material"
-       
+
        def draw(self, context):
                layout = self.layout
-               try:            
-                       mat = context.active_object.active_material
-               except: 
-                       mat = None
-               
-               if not mat:
-                       return
+               mat = context.active_object.active_material
        
                row = layout.row()
+               row.itemR(mat, "type", expand=True)
+
+               row = layout.row()
                row.column().itemR(mat, "diffuse_color")
                row.column().itemR(mat, "specular_color")
                row.column().itemR(mat, "mirror_color")
                
                row = layout.row()
-               row.itemR(mat, "color_model")
                row.itemR(mat, "alpha")
                        
 class MATERIAL_PT_sss(MaterialButtonsPanel):
        __idname__= "MATERIAL_PT_sss"
        __label__ = "Subsurface Scattering"
+
+       def poll(self, context):
+               ob = context.active_object
+               return (ob and ob.active_material and ob.active_material.type 
== "SURFACE")
        
        def draw(self, context):
                layout = self.layout
-               try:            
-                       sss = 
context.active_object.active_material.subsurface_scattering
-               except: 
-                       sss = None
+               sss = 
context.active_object.active_material.subsurface_scattering
                
                if not sss:
                        return
@@ -66,7 +67,7 @@
        
        def poll(self, context):
                ob = context.active_object
-               return (ob and ob.active_material)
+               return (ob and ob.active_material and ob.active_material.type 
== "SURFACE")
        
        def draw_header(self, context):
                raym = context.active_object.active_material.raytrace_mirror
@@ -99,17 +100,15 @@
 class MATERIAL_PT_raytransp(MaterialButtonsPanel):
        __idname__= "MATERIAL_PT_raytransp"
        __label__= "Ray Transparency"
+       
+       def poll(self, context):
+               ob = context.active_object
+               return (ob and ob.active_material and ob.active_material.type 
== "SURFACE")
 
        def draw(self, context):
                layout = self.layout
-               try:            
-                       rayt = 
context.active_object.active_material.raytrace_transparency
-               except: 
-                       rayt = None
+               rayt = 
context.active_object.active_material.raytrace_transparency
 
-               if not rayt:
-                       return
-
                layout.itemR(rayt, "enabled", text="Enable")
                
                split = layout.split()
@@ -135,61 +134,56 @@
        __idname__= "MATERIAL_PT_halo"
        __label__= "Halo"
        
+       def poll(self, context):
+               ob = context.active_object
+               return (ob and ob.active_material and ob.active_material.type 
== "HALO")
+       
        def draw(self, context):
                layout = self.layout
-               try:            
-                       halo = context.active_object.active_material.halo
-               except: 
-                       halo = None
+               mat = context.active_object.active_material
+               halo = mat.halo
 
-               if not halo:
-                       return
-       
-               layout.itemR(halo, "enabled", text="Enable Halo")
+               split = layout.split()
+               
+               sub = split.column()
+               sub.itemL(text="General Settings:")
+               sub.itemR(halo, "size")
+               sub.itemR(halo, "hardness")
+               sub.itemR(halo, "add")
+               
+               sub = split.column()
+               sub.itemL(text="Elements:")
+               sub.itemR(halo, "ring")
+               sub.itemR(halo, "lines")
+               sub.itemR(halo, "star")
+               sub.itemR(halo, "flare_mode")
 
-               if halo.enabled:
-                       
-                       split = layout.split()
-                       
-                       sub = split.column()
-                       sub.itemL(text="General Settings:")
-                       sub.itemR(halo, "size")
-                       sub.itemR(halo, "hardness")
-                       sub.itemR(halo, "add")
-                       
-                       sub = split.column()
-                       sub.itemL(text="Elements:")
-                       sub.itemR(halo, "ring")
-                       sub.itemR(halo, "lines")
-                       sub.itemR(halo, "star")
-                       sub.itemR(halo, "flare_mode")
-
-                       row = layout.row()
-                       
-                       sub = row.column()
-                       sub.itemL(text="Options:")
-                       sub.itemR(halo, "use_texture", text="Texture")
-                       sub.itemR(halo, "use_vertex_normal", text="Vertex 
Normal")
-                       sub.itemR(halo, "xalpha")
-                       sub.itemR(halo, "shaded")
-                       sub.itemR(halo, "soft")
+               row = layout.row()
                
-                       sub = row.column()
-                       if (halo.ring):
-                               sub.itemR(halo, "rings")
-                       if (halo.lines):
-                               sub.itemR(halo, "line_number")
-                       if (halo.ring or halo.lines):
-                               sub.itemR(halo, "seed")
-                       if (halo.star):
-                               sub.itemR(halo, "star_tips")
-                       if (halo.flare_mode):
-                               sub.itemL(text="Flare:")
-                               sub.itemR(halo, "flare_size", text="Size")
-                               sub.itemR(halo, "flare_subsize", text="Subsize")
-                               sub.itemR(halo, "flare_boost", text="Boost")
-                               sub.itemR(halo, "flare_seed", text="Seed")
-                               sub.itemR(halo, "flares_sub", text="Sub")
+               sub = row.column()
+               sub.itemL(text="Options:")
+               sub.itemR(halo, "use_texture", text="Texture")
+               sub.itemR(halo, "use_vertex_normal", text="Vertex Normal")
+               sub.itemR(halo, "xalpha")
+               sub.itemR(halo, "shaded")
+               sub.itemR(halo, "soft")
+       
+               sub = row.column()
+               if (halo.ring):
+                       sub.itemR(halo, "rings")
+               if (halo.lines):
+                       sub.itemR(halo, "line_number")
+               if (halo.ring or halo.lines):
+                       sub.itemR(halo, "seed")
+               if (halo.star):
+                       sub.itemR(halo, "star_tips")
+               if (halo.flare_mode):
+                       sub.itemL(text="Flare:")
+                       sub.itemR(halo, "flare_size", text="Size")
+                       sub.itemR(halo, "flare_subsize", text="Subsize")
+                       sub.itemR(halo, "flare_boost", text="Boost")
+                       sub.itemR(halo, "flare_seed", text="Seed")
+                       sub.itemR(halo, "flares_sub", text="Sub")
                                
 bpy.types.register(MATERIAL_PT_material)
 bpy.types.register(MATERIAL_PT_raymir)

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c  
2009-05-20 12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c  
2009-05-20 13:34:04 UTC (rev 20292)
@@ -160,7 +160,7 @@
 //     ...
        {MA_RAYTRANSP, "raytrace_transparency.enabled", 0},
        {MA_RAYMIRROR, "raytrace_mirror.enabled", 0},
-       {MA_HALO, "halo.enabled", 0}
+//     {MA_HALO, "type", MA_TYPE_HALO}
 };
 
 /* ----------------- */

Modified: 
branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c     
2009-05-20 12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c     
2009-05-20 13:34:04 UTC (rev 20292)
@@ -8912,6 +8912,7 @@
           bump the version (or sub-version.) */
        {
                Object *ob;
+               Material *ma;
                int i;
 
                for(ob = main->object.first; ob; ob = ob->id.next) {
@@ -8977,6 +8978,13 @@
                                ob->data = olddata;
                        }
                }
+
+               for(ma = main->mat.first; ma; ma = ma->id.next) {
+                       if(ma->mode & MA_HALO) {
+                               ma->material_type= MA_TYPE_HALO;
+                               ma->mode &= ~MA_HALO;
+                       }
+               }
        }
 
        /* WATCH IT!!!: pointers from libdata have not been converted yet here! 
*/

Modified: 
branches/blender2.5/blender/source/blender/editors/interface/interface_icons.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/interface/interface_icons.c  
    2009-05-20 12:13:37 UTC (rev 20291)
+++ 
branches/blender2.5/blender/source/blender/editors/interface/interface_icons.c  
    2009-05-20 13:34:04 UTC (rev 20292)
@@ -813,7 +813,7 @@
                } 
                else if (GS(id->name) == ID_MA) {
                        Material* mat = (Material*)id;
-                       if (mat->mode & MA_HALO) {
+                       if (mat->material_type == MA_TYPE_HALO) {
                                set_alpha( (char*) ri.rect, ri.pr_rectx, 
ri.pr_recty, 255);
                        }
                }

Modified: 
branches/blender2.5/blender/source/blender/editors/preview/previewrender.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/preview/previewrender.c  
2009-05-20 12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/source/blender/editors/preview/previewrender.c  
2009-05-20 13:34:04 UTC (rev 20292)
@@ -349,7 +349,7 @@
 
                                
                                if(sp->pr_method==PR_ICON_RENDER) {
-                                       if (mat->mode & MA_HALO) {
+                                       if (mat->material_type == MA_TYPE_HALO) 
{
                                                sce->lay= 1<<MA_FLAT;
                                        } 
                                        else {

Modified: 
branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c    
    2009-05-20 12:13:37 UTC (rev 20291)
+++ 
branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c    
    2009-05-20 13:34:04 UTC (rev 20292)
@@ -2281,7 +2281,7 @@
        Object *ob= base->object;
        Mesh *me = ob->data;
        Material *ma= give_current_material(ob, 1);
-       int hasHaloMat = (ma && (ma->mode&MA_HALO));
+       int hasHaloMat = (ma && (ma->material_type == MA_TYPE_HALO));
        int draw_wire = 0;
        int totvert, totedge, totface;
        DispList *dl;

Modified: 
branches/blender2.5/blender/source/blender/makesdna/DNA_material_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_material_types.h    
2009-05-20 12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_material_types.h    
2009-05-20 13:34:04 UTC (rev 20292)
@@ -52,7 +52,7 @@
        ID id;
        struct AnimData *adt;   /* animation data (must be immediately after id 
for utilities to use it) */ 
        
-       short colormodel, flag; 
+       short material_type, flag;      
        /* note, keep this below synced with render_types.h */
        float r, g, b;
        float specr, specg, specb;
@@ -147,11 +147,10 @@
         */
 #define MAXMAT                 16
 
-/* colormodel */
-#define MA_RGB                 0
-#define MA_CMYK                        1
-#define MA_YUV                 2
-#define MA_HSV                 3
+/* material_type */
+#define MA_TYPE_SURFACE        0
+#define MA_TYPE_HALO   1
+#define MA_TYPE_VOLUME 2
 
 /* flag */
                /* for render */
@@ -166,7 +165,7 @@
 #define MA_WIRE                        8
 #define MA_VERTEXCOL   16
 #define MA_HALO_SOFT   16
-#define MA_HALO                        32
+#define MA_HALO                        32                      /* deprecated */
 #define MA_ZTRA                        64
 #define MA_VERTEXCOLP  128
 #define MA_ZINV                        256

Modified: 
branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c   
2009-05-20 12:13:37 UTC (rev 20291)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_material.c   
2009-05-20 13:34:04 UTC (rev 20292)
@@ -62,14 +62,14 @@

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