Skip to content

Commit

Permalink
UPBGE: Use data_to_c_simple instead of STRINGIFY for built in 2d filt…
Browse files Browse the repository at this point in the history
…ers.
  • Loading branch information
panzergame authored and youle31 committed Aug 13, 2016
1 parent c023048 commit 9e3b5a4
Show file tree
Hide file tree
Showing 25 changed files with 208 additions and 608 deletions.
23 changes: 12 additions & 11 deletions source/gameengine/Rasterizer/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -95,19 +95,20 @@ set(SRC
RAS_Texture.h
RAS_TextUser.h
RAS_TexVert.h
RAS_OpenGLFilters/RAS_Blur2DFilter.h
RAS_OpenGLFilters/RAS_Dilation2DFilter.h
RAS_OpenGLFilters/RAS_Erosion2DFilter.h
RAS_OpenGLFilters/RAS_GrayScale2DFilter.h
RAS_OpenGLFilters/RAS_Invert2DFilter.h
RAS_OpenGLFilters/RAS_Laplacian2DFilter.h
RAS_OpenGLFilters/RAS_Prewitt2DFilter.h
RAS_OpenGLFilters/RAS_Sepia2DFilter.h
RAS_OpenGLFilters/RAS_Sharpen2DFilter.h
RAS_OpenGLFilters/RAS_Sobel2DFilter.h
RAS_OpenGLFilters/RAS_VertexShader2DFilter.h
)

data_to_c_simple(RAS_OpenGLFilters/RAS_Blur2DFilter.glsl SRC)
data_to_c_simple(RAS_OpenGLFilters/RAS_Dilation2DFilter.glsl SRC)
data_to_c_simple(RAS_OpenGLFilters/RAS_Erosion2DFilter.glsl SRC)
data_to_c_simple(RAS_OpenGLFilters/RAS_GrayScale2DFilter.glsl SRC)
data_to_c_simple(RAS_OpenGLFilters/RAS_Invert2DFilter.glsl SRC)
data_to_c_simple(RAS_OpenGLFilters/RAS_Laplacian2DFilter.glsl SRC)
data_to_c_simple(RAS_OpenGLFilters/RAS_Prewitt2DFilter.glsl SRC)
data_to_c_simple(RAS_OpenGLFilters/RAS_Sepia2DFilter.glsl SRC)
data_to_c_simple(RAS_OpenGLFilters/RAS_Sharpen2DFilter.glsl SRC)
data_to_c_simple(RAS_OpenGLFilters/RAS_Sobel2DFilter.glsl SRC)
data_to_c_simple(RAS_OpenGLFilters/RAS_VertexShader2DFilter.glsl SRC)

add_definitions(${GL_DEFINITIONS})

blender_add_lib(ge_rasterizer "${SRC}" "${INC}" "${INC_SYS}")
8 changes: 5 additions & 3 deletions source/gameengine/Rasterizer/RAS_2DFilter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,14 @@

#include "BLI_utildefines.h" // for STRINGIFY

#include "RAS_OpenGLFilters/RAS_VertexShader2DFilter.h"

#include "EXP_Value.h"

#include "glew-mx.h"

extern "C" {
extern char datatoc_RAS_VertexShader2DFilter_glsl[];
}

static char predefinedUniformsName[RAS_2DFilter::MAX_PREDEFINED_UNIFORM_TYPE][40] = {
"bgl_RenderedTexture", // RENDERED_TEXTURE_UNIFORM
"bgl_DepthTexture", // DEPTH_TEXTURE_UNIFORM
Expand Down Expand Up @@ -63,7 +65,7 @@ RAS_2DFilter::RAS_2DFilter(RAS_2DFilterData& data)
m_textures[i] = 0;
}

m_progs[VERTEX_PROGRAM] = STR_String(VertexShader);
m_progs[VERTEX_PROGRAM] = STR_String(datatoc_RAS_VertexShader2DFilter_glsl);
m_progs[FRAGMENT_PROGRAM] = data.shaderText;

LinkProgram();
Expand Down
43 changes: 22 additions & 21 deletions source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,18 @@

#include "glew-mx.h"

#include "RAS_OpenGLFilters/RAS_Blur2DFilter.h"
#include "RAS_OpenGLFilters/RAS_Sharpen2DFilter.h"
#include "RAS_OpenGLFilters/RAS_Dilation2DFilter.h"
#include "RAS_OpenGLFilters/RAS_Erosion2DFilter.h"
#include "RAS_OpenGLFilters/RAS_Laplacian2DFilter.h"
#include "RAS_OpenGLFilters/RAS_Sobel2DFilter.h"
#include "RAS_OpenGLFilters/RAS_Prewitt2DFilter.h"
#include "RAS_OpenGLFilters/RAS_GrayScale2DFilter.h"
#include "RAS_OpenGLFilters/RAS_Sepia2DFilter.h"
#include "RAS_OpenGLFilters/RAS_Invert2DFilter.h"

extern "C" {
extern char datatoc_RAS_Blur2DFilter_glsl[];
extern char datatoc_RAS_Sharpen2DFilter_glsl[];
extern char datatoc_RAS_Dilation2DFilter_glsl[];
extern char datatoc_RAS_Erosion2DFilter_glsl[];
extern char datatoc_RAS_Laplacian2DFilter_glsl[];
extern char datatoc_RAS_Sobel2DFilter_glsl[];
extern char datatoc_RAS_Prewitt2DFilter_glsl[];
extern char datatoc_RAS_GrayScale2DFilter_glsl[];
extern char datatoc_RAS_Sepia2DFilter_glsl[];
extern char datatoc_RAS_Invert2DFilter_glsl[];
}

RAS_2DFilterManager::RAS_2DFilterManager()
{
Expand Down Expand Up @@ -97,34 +98,34 @@ RAS_2DFilter *RAS_2DFilterManager::CreateFilter(RAS_2DFilterData& filterData)
case RAS_2DFilterManager::FILTER_MOTIONBLUR:
break;
case RAS_2DFilterManager::FILTER_BLUR:
shaderSource = BlurFragmentShader;
shaderSource = datatoc_RAS_Blur2DFilter_glsl;
break;
case RAS_2DFilterManager::FILTER_SHARPEN:
shaderSource = SharpenFragmentShader;
shaderSource = datatoc_RAS_Sharpen2DFilter_glsl;
break;
case RAS_2DFilterManager::FILTER_DILATION:
shaderSource = DilationFragmentShader;
shaderSource = datatoc_RAS_Dilation2DFilter_glsl;
break;
case RAS_2DFilterManager::FILTER_EROSION:
shaderSource = ErosionFragmentShader;
shaderSource = datatoc_RAS_Erosion2DFilter_glsl;
break;
case RAS_2DFilterManager::FILTER_LAPLACIAN:
shaderSource = LaplacianFragmentShader;
shaderSource = datatoc_RAS_Laplacian2DFilter_glsl;
break;
case RAS_2DFilterManager::FILTER_SOBEL:
shaderSource = SobelFragmentShader;
shaderSource = datatoc_RAS_Sobel2DFilter_glsl;
break;
case RAS_2DFilterManager::FILTER_PREWITT:
shaderSource = PrewittFragmentShader;
shaderSource = datatoc_RAS_Prewitt2DFilter_glsl;
break;
case RAS_2DFilterManager::FILTER_GRAYSCALE:
shaderSource = GrayScaleFragmentShader;
shaderSource = datatoc_RAS_GrayScale2DFilter_glsl;
break;
case RAS_2DFilterManager::FILTER_SEPIA:
shaderSource = SepiaFragmentShader;
shaderSource = datatoc_RAS_Sepia2DFilter_glsl;
break;
case RAS_2DFilterManager::FILTER_INVERT:
shaderSource = InvertFragmentShader;
shaderSource = datatoc_RAS_Invert2DFilter_glsl;
break;
}
if (!shaderSource) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
uniform sampler2D bgl_RenderedTexture;
uniform vec2 bgl_TextureCoordinateOffset[9];

void main(void)
{
vec4 sample[9];

for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
}

gl_FragColor = (sample[0] + (2.0*sample[1]) + sample[2] +
(2.0*sample[3]) + sample[4] + (2.0*sample[5]) +
sample[6] + (2.0*sample[7]) + sample[8]) / 13.0;
}

55 changes: 0 additions & 55 deletions source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Blur2DFilter.h

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
uniform sampler2D bgl_RenderedTexture;
uniform vec2 bgl_TextureCoordinateOffset[9];

void main(void)
{
vec4 sample[9];
vec4 maxValue = vec4(0.0);

for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
maxValue = max(sample[i], maxValue);
}

gl_FragColor = maxValue;
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
uniform sampler2D bgl_RenderedTexture;
uniform vec2 bgl_TextureCoordinateOffset[9];

void main(void)
{
vec4 sample[9];
vec4 minValue = vec4(1.0);

for (int i = 0; i < 9; i++)
{
sample[i] = texture2D(bgl_RenderedTexture,
gl_TexCoord[0].st + bgl_TextureCoordinateOffset[i]);
minValue = min(sample[i], minValue);
}

gl_FragColor = minValue;
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
uniform sampler2D bgl_RenderedTexture;

void main(void)
{
vec4 texcolor = texture2D(bgl_RenderedTexture, gl_TexCoord[0].st);
float gray = dot(texcolor.rgb, vec3(0.299, 0.587, 0.114));
gl_FragColor = vec4(gray, gray, gray, texcolor.a);
}
Loading

0 comments on commit 9e3b5a4

Please sign in to comment.