[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