Browse Source

remove SDF from core

dmuratshin 8 years ago
parent
commit
df702ae9ab

+ 35 - 6
examples/Demo/src/TestSignedDistanceFont.h

@@ -12,22 +12,46 @@ public:
     float offset = 0.5f;
     float outline = 0.4f;
 
+    static UberShaderProgram *uberShader;
+
 
     static void initMaterial()
     {
-
+        uberShader = new UberShaderProgram();
+        uberShader->init(STDRenderer::uberShaderBody,
+            R"(
+                #define REPLACED_GET_BASE
+                #define DONT_MULT_BY_RESULT_COLOR
+
+                uniform lowp vec4 sdf_outline_color;
+                uniform mediump vec4 sdf_params;
+            )",
+
+            R"(
+#ifdef PS
+                lowp vec4 replaced_get_base()
+                {
+                    lowp float tx = texture2D(base_texture, result_uv).r;
+     
+                    
+                    lowp float b =   min((tx - sdf_params.z) * sdf_params.w, 1.0);
+                    lowp float a = clamp((tx - sdf_params.x) * sdf_params.y, 0.0, 1.0);
+	                lowp vec4 res = (sdf_outline_color + (result_color - sdf_outline_color)*a) * b;
+
+                    return res;
+                }
+#endif
+        )");
     }
 
     static void freeMaterial()
     {
-
+        delete uberShader;
     }
 
     void init() override 
     {
-        _flags = UberShaderProgram::SDF;
-        //if (outlineOffset < offset)
-        _flags |= UberShaderProgram::SDF_OUTLINE;
+        _uberShader = uberShader;
     }
 
 
@@ -61,6 +85,8 @@ public:
     }
 };
 
+UberShaderProgram *SDFMaterial::uberShader = 0;
+
 class TestSignedDistanceFont : public Test
 {
 public:
@@ -70,6 +96,8 @@ public:
     spTween t;
     TestSignedDistanceFont()
     {
+        SDFMaterial::initMaterial();
+
         font.initSD("sdf/font.fnt", 8);
         font.load();
 
@@ -128,6 +156,7 @@ public:
 
     ~TestSignedDistanceFont()
     {
+        SDFMaterial::freeMaterial();
     }
 
     void clicked(string id)
@@ -149,7 +178,7 @@ public:
         if (id == "weight-")
             mat->offset -= 0.01f;
 
-        _txt->setMat(mat);
+        //_txt->setMat(mat);
 
     }
 

+ 1 - 1
examples/Demo/src/example.cpp

@@ -81,7 +81,7 @@ public:
         addButton("usershader2", "Custom shaders and render");
         addButton("opengl", "OpenGL usage");
         addButton("multicolorfont", "Outer Font Color");
-        addButton("sdf", "Signed Distance Font");
+        addButton("sdf", "Signed Distance Field Font");
         addButton("mask", "Mask");
         addButton("polygon", "Polygon");
         addButton("inputtext", "Input Text");

+ 0 - 7
oxygine/src/oxygine/core/UberShaderProgram.cpp

@@ -66,13 +66,6 @@ namespace oxygine
             if (flags & MASK)
                 strcat(prepend, "#define MASK\n");
 
-            if (flags & SDF)
-            {
-                strcat(prepend, "#define SDF\n");
-                if (flags & SDF_OUTLINE)
-                    strcat(prepend, "#define SDF_OUTLINE\n");
-            }
-
             char* end = prepend + strlen(prepend);
             strcat(prepend, "#define program_main_ps main\n");
             strcat(prepend, "#define PS\n");

+ 0 - 2
oxygine/src/oxygine/core/UberShaderProgram.h

@@ -53,8 +53,6 @@ namespace oxygine
             SEPARATE_ALPHA = 1 << 1,
             MASK_R_CHANNEL = 1 << 2,
             MASK = 1 << 3,
-            SDF = 1 << 4,
-            SDF_OUTLINE = 1 << 1,//same as SEPARATE_ALPHA
             _SIZE = 1 << 5
         };
 

File diff suppressed because it is too large
+ 0 - 1
oxygine/src/oxygine/core/system_data.cpp


+ 0 - 29
oxygine/system_data/original/system/shader.glsl

@@ -3,10 +3,6 @@ varying lowp vec4 result_color;
 varying mediump vec2 result_uv;
 varying mediump vec2 result_uv2;
 
-//SDF data
-uniform lowp vec4 sdf_outline_color;
-uniform mediump vec4 sdf_params;
-
 #ifdef VS
 uniform mediump mat4 mat;
 uniform mediump vec3 msk[4];
@@ -39,10 +35,6 @@ uniform lowp sampler2D base_texture;
 uniform lowp sampler2D mask_texture;
 uniform lowp sampler2D alpha_texture;
 
-#ifdef SDF
-#define DONT_MULT_BY_RESULT_COLOR
-#endif
-
 
 lowp vec4 modify_base_pre(lowp vec4);
 lowp vec4 modify_base(lowp vec4);
@@ -73,23 +65,6 @@ lowp vec4 get_base()
 	return base;
 }
 
-
-lowp vec4 get_base_sdf()
-{
-	lowp float tx = texture2D(base_texture, result_uv).r;
-     
-#ifdef SDF_OUTLINE
-    lowp float b =   min((tx - sdf_params.z) * sdf_params.w, 1.0);
-    lowp float a = clamp((tx - sdf_params.x) * sdf_params.y, 0.0, 1.0);
-	lowp vec4 res = (sdf_outline_color + (result_color - sdf_outline_color)*a) * b;
-#else
-	lowp float a = min((tx - sdf_params.x) * sdf_params.y, 1.0);
-	lowp vec4 res = result_color * a;
-#endif
-
-    return res;
-}
-
 lowp vec4 get_color()
 {
 
@@ -97,11 +72,7 @@ lowp vec4 get_color()
 	//define REPLACED_GET_BASE and declare your own function replaced_get_base()
 	lowp vec4 base = replaced_get_base();
 #else
-#	ifdef SDF
-	lowp vec4 base = get_base_sdf();
-#	else
 	lowp vec4 base = get_base();
-#	endif
 #endif
 
 

Some files were not shown because too many files changed in this diff