[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20292] branches/blender2.5/blender: 2. 5 Material:
Brecht Van Lommel
brecht at blender.org
Wed May 20 15:34:04 CEST 2009
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. @@
More information about the Bf-blender-cvs
mailing list