[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28755] branches/soc-2010-moguri/source/ blender: Getting material saving/ loading working again by using fixed arrays.

Mitchell Stokes mogurijin at gmail.com
Fri May 14 04:27:10 CEST 2010


Revision: 28755
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28755
Author:   moguri
Date:     2010-05-14 04:27:09 +0200 (Fri, 14 May 2010)

Log Message:
-----------
Getting material saving/loading working again by using fixed arrays. Right now the cap is set to 64, but a constant or something should probably be used instead.

Modified Paths:
--------------
    branches/soc-2010-moguri/source/blender/makesdna/DNA_material_types.h
    branches/soc-2010-moguri/source/blender/makesrna/intern/rna_material.c

Modified: branches/soc-2010-moguri/source/blender/makesdna/DNA_material_types.h
===================================================================
--- branches/soc-2010-moguri/source/blender/makesdna/DNA_material_types.h	2010-05-14 01:42:42 UTC (rev 28754)
+++ branches/soc-2010-moguri/source/blender/makesdna/DNA_material_types.h	2010-05-14 02:27:09 UTC (rev 28755)
@@ -130,9 +130,9 @@
 	float rms;
 	float darkness;
 	short texco, mapto;
-	char* vertex_shader;
-	char* fragment_shader;
-	char* geometry_shader;
+	char vertex_shader[64];
+	char fragment_shader[64];
+	char geometry_shader[64];
 	
 	/* ramp colors */
 	struct ColorBand *ramp_col;

Modified: branches/soc-2010-moguri/source/blender/makesrna/intern/rna_material.c
===================================================================
--- branches/soc-2010-moguri/source/blender/makesrna/intern/rna_material.c	2010-05-14 01:42:42 UTC (rev 28754)
+++ branches/soc-2010-moguri/source/blender/makesrna/intern/rna_material.c	2010-05-14 02:27:09 UTC (rev 28755)
@@ -122,93 +122,6 @@
 	ma->material_type= value;
 }
 
-static void rna_Material_fragment_get(PointerRNA *ptr, char *value)
-{
-	Material *ma= (Material*)ptr->data;
-
-	if(ma->fragment_shader)
-		strcpy(value, ma->fragment_shader);
-	else
-		strcpy(value, "");
-}
-
-static int rna_Material_fragment_length(PointerRNA *ptr)
-{
-	Material *ma= (Material*)ptr->data;
-	return (ma->fragment_shader)? strlen(ma->fragment_shader): 0;
-}
-
-static void rna_Material_fragment_set(PointerRNA *ptr, const char *value)
-{
-	Material *ma= (Material*)ptr->data;
-
-	if(ma->fragment_shader)
-		MEM_freeN(ma->fragment_shader);
-
-	if(strlen(value))
-		ma->fragment_shader= BLI_strdup(value);
-	else
-		ma->fragment_shader= NULL;
-}
-
-static void rna_Material_vertex_get(PointerRNA *ptr, char *value)
-{
-	Material *ma= (Material*)ptr->data;
-
-	if(ma->vertex_shader)
-		strcpy(value, ma->vertex_shader);
-	else
-		strcpy(value, "");
-}
-
-static int rna_Material_vertex_length(PointerRNA *ptr)
-{
-	Material *ma= (Material*)ptr->data;
-	return (ma->vertex_shader)? strlen(ma->vertex_shader): 0;
-}
-
-static void rna_Material_vertex_set(PointerRNA *ptr, const char *value)
-{
-	Material *ma= (Material*)ptr->data;
-
-	if(ma->vertex_shader)
-		MEM_freeN(ma->vertex_shader);
-
-	if(strlen(value))
-		ma->vertex_shader= BLI_strdup(value);
-	else
-		ma->vertex_shader= NULL;
-}
-
-static void rna_Material_geometry_get(PointerRNA *ptr, char *value)
-{
-	Material *ma= (Material*)ptr->data;
-
-	if(ma->geometry_shader)
-		strcpy(value, ma->geometry_shader);
-	else
-		strcpy(value, "");
-}
-
-static int rna_Material_geometry_length(PointerRNA *ptr)
-{
-	Material *ma= (Material*)ptr->data;
-	return (ma->geometry_shader)? strlen(ma->geometry_shader): 0;
-}
-
-static void rna_Material_geometry_set(PointerRNA *ptr, const char *value)
-{
-	Material *ma= (Material*)ptr->data;
-
-	if(ma->geometry_shader)
-		MEM_freeN(ma->geometry_shader);
-
-	if(strlen(value))
-		ma->geometry_shader= BLI_strdup(value);
-	else
-		ma->geometry_shader= NULL;
-}
-
 static void rna_Material_mtex_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
 {
 	Material *ma= (Material*)ptr->data;
@@ -1596,17 +1509,17 @@
 	RNA_def_property_update(prop, 0, "rna_Material_draw_update");
 
 	prop= RNA_def_property(srna, "fragment_shader", PROP_STRING, PROP_NONE);
-	RNA_def_property_string_funcs(prop, "rna_Material_fragment_get", "rna_Material_fragment_length", "rna_Material_fragment_set");
+	RNA_def_property_string_sdna(prop, NULL, "fragment_shader");
 	RNA_def_property_ui_text(prop, "Fragement Shader", "A custom GLSL fragment shader to use");
 	RNA_def_property_update(prop, 0, "rna_Material_update");
 
 	prop= RNA_def_property(srna, "vertex_shader", PROP_STRING, PROP_NONE);
-	RNA_def_property_string_funcs(prop, "rna_Material_vertex_get", "rna_Material_vertex_length", "rna_Material_vertex_set");
+	RNA_def_property_string_sdna(prop, NULL, "vertex_shader");
 	RNA_def_property_ui_text(prop, "Vertex Shader", "A custom GLSL vertex shader to use");
 	RNA_def_property_update(prop, 0, "rna_Material_update");
 
 	prop= RNA_def_property(srna, "geometry_shader", PROP_STRING, PROP_NONE);
-	RNA_def_property_string_funcs(prop, "rna_Material_geometry_get", "rna_Material_geometry_length", "rna_Material_geometry_set");
+	RNA_def_property_string_sdna(prop, NULL, "geometry_shader");
 	RNA_def_property_ui_text(prop, "Geometry Shader", "A custom GLSL geometry shader to use");
 	RNA_def_property_update(prop, 0, "rna_Material_update");
 





More information about the Bf-blender-cvs mailing list