[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51160] branches/ge_harmony: Exposing the builtin 2DFilters to the Post-Process UI.

Daniel Stokes kupomail at gmail.com
Mon Oct 8 04:56:39 CEST 2012


Revision: 51160
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51160
Author:   kupoman
Date:     2012-10-08 02:56:38 +0000 (Mon, 08 Oct 2012)
Log Message:
-----------
Exposing the builtin 2DFilters to the Post-Process UI. Since Motion Blur is a very special case, it has been excluded for now.

Modified Paths:
--------------
    branches/ge_harmony/release/scripts/startup/bl_ui/properties_game.py
    branches/ge_harmony/source/blender/blenkernel/intern/shader.c
    branches/ge_harmony/source/blender/makesdna/DNA_shader_types.h
    branches/ge_harmony/source/blender/makesrna/intern/rna_shader.c
    branches/ge_harmony/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
    branches/ge_harmony/source/gameengine/Rasterizer/RAS_IFilterManager.h

Modified: branches/ge_harmony/release/scripts/startup/bl_ui/properties_game.py
===================================================================
--- branches/ge_harmony/release/scripts/startup/bl_ui/properties_game.py	2012-10-08 02:51:42 UTC (rev 51159)
+++ branches/ge_harmony/release/scripts/startup/bl_ui/properties_game.py	2012-10-08 02:56:38 UTC (rev 51160)
@@ -364,6 +364,8 @@
     col.label("Source:")
     row = col.row()
     row.prop(shader, "shader_location", expand=True)
+    if shader.shader_location == "BUILTIN":
+        col.prop(shader, "filter_builtin")
     if shader.shader_location == "INTERNAL":
         col.prop(shader, "source_text", text="")
     elif shader.shader_location == "EXTERNAL":

Modified: branches/ge_harmony/source/blender/blenkernel/intern/shader.c
===================================================================
--- branches/ge_harmony/source/blender/blenkernel/intern/shader.c	2012-10-08 02:51:42 UTC (rev 51159)
+++ branches/ge_harmony/source/blender/blenkernel/intern/shader.c	2012-10-08 02:56:38 UTC (rev 51160)
@@ -51,6 +51,8 @@
 	sh->type = SHADER_TYPE_FRAGMENT;
 	sh->location = SHADER_LOC_BUILTIN;
 
+	sh->sourceenum = SHADER_2DFILTER_BLUR;
+
 	sh->uniforms.first = NULL;
 	sh->uniforms.last = NULL;
 

Modified: branches/ge_harmony/source/blender/makesdna/DNA_shader_types.h
===================================================================
--- branches/ge_harmony/source/blender/makesdna/DNA_shader_types.h	2012-10-08 02:51:42 UTC (rev 51159)
+++ branches/ge_harmony/source/blender/makesdna/DNA_shader_types.h	2012-10-08 02:56:38 UTC (rev 51160)
@@ -53,7 +53,7 @@
 	char type;
 	char use;
 	char location;
-	char sourcenum;
+	char sourceenum;
 	char sourcepath[240];
 	short geom_in;
 	short geom_out;
@@ -68,6 +68,22 @@
 	struct Shader *shader;
 } ShaderLink;
 
+
+/* Duplicated from RAS_IFilterManager.h */
+enum SHADER_2DFILTER_MODE {
+	SHADER_2DFILTER_MOTIONBLUR = 1,
+	SHADER_2DFILTER_BLUR,
+	SHADER_2DFILTER_SHARPEN,
+	SHADER_2DFILTER_DILATION,
+	SHADER_2DFILTER_EROSION,
+	SHADER_2DFILTER_LAPLACIAN,
+	SHADER_2DFILTER_SOBEL,
+	SHADER_2DFILTER_PREWITT,
+	SHADER_2DFILTER_GRAYSCALE,
+	SHADER_2DFILTER_SEPIA,
+	SHADER_2DFILTER_INVERT,
+};
+
 /* type */
 #define SHADER_TYPE_VERTEX		0
 #define SHADER_TYPE_FRAGMENT	1

Modified: branches/ge_harmony/source/blender/makesrna/intern/rna_shader.c
===================================================================
--- branches/ge_harmony/source/blender/makesrna/intern/rna_shader.c	2012-10-08 02:51:42 UTC (rev 51159)
+++ branches/ge_harmony/source/blender/makesrna/intern/rna_shader.c	2012-10-08 02:56:38 UTC (rev 51160)
@@ -382,6 +382,20 @@
 		{SHADER_GEOM_OUT_TRIANGLE_STRIP, "TRIANGLE_STRIP", 0, "Triangle Strip", "Output triangle strips"},
 		{0, NULL, 0, NULL, NULL}};
 
+	static EnumPropertyItem prop_filter_builtin_items[] = {
+		//{SHADER_2DFILTER_MOTIONBLUR, "MOTIONBLUR", 0, "Motion Blur", ""},
+		{SHADER_2DFILTER_BLUR, "BLUR", 0, "Blur", "Decreases contrast"},
+		{SHADER_2DFILTER_SHARPEN, "SHARPEN", 0, "Sharpen", "Increases contrast"},
+		{SHADER_2DFILTER_DILATION, "DILATION", 0, "Dilation", ""},
+		{SHADER_2DFILTER_EROSION, "EROSION", 0, "Erosion", ""},
+		{SHADER_2DFILTER_LAPLACIAN, "LAPLACIAN", 0, "Laplacian", ""},
+		{SHADER_2DFILTER_SOBEL, "SOBEL", 0, "Sobel", ""},
+		{SHADER_2DFILTER_PREWITT, "PREWITT", 0, "Prewitt", ""},
+		{SHADER_2DFILTER_GRAYSCALE, "GRAYSCALE", 0, "Grascale", "Removes color"},
+		{SHADER_2DFILTER_SEPIA, "SEPIA", 0, "Sepia", "Converts color to a Sepia tone"},
+		{SHADER_2DFILTER_INVERT, "INVERT", 0, "Invert", "Inverts colors"},
+		{0, NULL, 0, NULL, NULL}};
+
 	srna = RNA_def_struct(brna, "Shader", "ID");
 	RNA_def_struct_ui_text(srna, "Shader", "Shader datablock to define custom shading for a material");
 	RNA_def_struct_ui_icon(srna, ICON_TEXT);
@@ -404,6 +418,12 @@
 	RNA_def_property_ui_text(prop, "Location", "Location of the shader to use");
 	RNA_def_property_update(prop, 0, "rna_Shader_update");
 
+	prop = RNA_def_property(srna, "filter_builtin", PROP_ENUM, PROP_NONE);
+	RNA_def_property_enum_sdna(prop, NULL, "sourceenum");
+	RNA_def_property_enum_items(prop, prop_filter_builtin_items);
+	RNA_def_property_ui_text(prop, "Filter", "Builtin filter to use");
+	RNA_def_property_update(prop, 0, "rna_Shader_update");
+
 	prop = RNA_def_property(srna, "source_text", PROP_POINTER, PROP_NONE);
 	RNA_def_property_pointer_sdna(prop, NULL, "sourcetext");
 	RNA_def_property_struct_type(prop, "Text");

Modified: branches/ge_harmony/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
===================================================================
--- branches/ge_harmony/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2012-10-08 02:51:42 UTC (rev 51159)
+++ branches/ge_harmony/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2012-10-08 02:56:38 UTC (rev 51160)
@@ -370,7 +370,10 @@
 			for (uni = (Uniform *)shader->uniforms.first; uni; uni = uni->next) {
 				destinationscene->Update2DUniform(i, STR_String(uni->name), (RAS_UNIFORM_TYPE)uni->type, uni->data);
 			}
-			destinationscene->Update2DFilter(NULL, RAS_2DFILTER_CUSTOMFILTER, i, text);
+			if (shader->location == SHADER_LOC_BUILTIN)
+				destinationscene->Update2DFilter(NULL, (RAS_2DFILTER_MODE)shader->sourceenum, i, STR_String());
+			else
+				destinationscene->Update2DFilter(NULL, RAS_2DFILTER_CUSTOMFILTER, i, text);
 		}
 	}
 	

Modified: branches/ge_harmony/source/gameengine/Rasterizer/RAS_IFilterManager.h
===================================================================
--- branches/ge_harmony/source/gameengine/Rasterizer/RAS_IFilterManager.h	2012-10-08 02:51:42 UTC (rev 51159)
+++ branches/ge_harmony/source/gameengine/Rasterizer/RAS_IFilterManager.h	2012-10-08 02:56:38 UTC (rev 51160)
@@ -38,6 +38,7 @@
 #include "MEM_guardedalloc.h"
 #endif
 
+/* Partially duplicated in DNA_shader_types.h */
 enum RAS_2DFILTER_MODE {
 	RAS_2DFILTER_ENABLED = -2,
 	RAS_2DFILTER_DISABLED = -1,




More information about the Bf-blender-cvs mailing list