[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20612] branches/bb_dev/source/blender/gpu /intern/gpu_material.c: GLSL material export: unvoid unnecessary undo buffer, export library as lib_shader.glsl.

Benoit Bolsee benoit.bolsee at online.be
Thu Jun 4 00:33:42 CEST 2009


Revision: 20612
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20612
Author:   ben2610
Date:     2009-06-04 00:33:41 +0200 (Thu, 04 Jun 2009)

Log Message:
-----------
GLSL material export: unvoid unnecessary undo buffer, export library as lib_shader.glsl. The function used in the fragment shader can be found in this library.

Modified Paths:
--------------
    branches/bb_dev/source/blender/gpu/intern/gpu_material.c

Modified: branches/bb_dev/source/blender/gpu/intern/gpu_material.c
===================================================================
--- branches/bb_dev/source/blender/gpu/intern/gpu_material.c	2009-06-03 22:28:59 UTC (rev 20611)
+++ branches/bb_dev/source/blender/gpu/intern/gpu_material.c	2009-06-03 22:33:41 UTC (rev 20612)
@@ -72,6 +72,8 @@
 #endif
 #endif
 
+extern char datatoc_gpu_shader_material_glsl[];
+
 /* Structs */
 
 typedef enum DynMatProperty {
@@ -226,6 +228,7 @@
 
 		if (material->ma->shade_flag & MA_EXPORT) {
 			Text *text;
+			int undostate;
 			char name[24];
 
 			if (fragshader) {
@@ -234,9 +237,25 @@
 				if (!text)
 					text = add_empty_text(name);
 				if (text) {
+					undostate = txt_get_undostate(  );
+					txt_set_undostate( 1 );
 					txt_sel_all(text);
 					txt_insert_buf(text, fragshader);
+					txt_move_bof(text, 0);
+					txt_set_undostate( undostate );
 				}
+				snprintf(name, 24, "shader_lib.glsl");
+				text = find_script(name);
+				if (!text)
+					text = add_empty_text(name);
+				if (text) {
+					undostate = txt_get_undostate(  );
+					txt_set_undostate( 1 );
+					txt_sel_all(text);
+					txt_insert_buf(text, datatoc_gpu_shader_material_glsl);
+					txt_move_bof(text, 0);
+					txt_set_undostate( undostate );
+				}
 			}
 			if (vertexshader) {
 				snprintf(name, 24, "%s.vx", material->ma->id.name+2);
@@ -244,8 +263,12 @@
 				if (!text)
 					text = add_empty_text(name);
 				if (text) {
+					undostate = txt_get_undostate(  );
+					txt_set_undostate( 1 );
 					txt_sel_all(text);
 					txt_insert_buf(text, vertexshader);
+					txt_move_bof(text, 0);
+					txt_set_undostate( undostate );
 				}
 			}
 			/* export only once */





More information about the Bf-blender-cvs mailing list