diff options
Diffstat (limited to 'src/Runtime/ogl-runtime/res/effectlib/distancefieldtext.vert')
m--------- | src/Runtime/ogl-runtime | 0 | ||||
-rw-r--r-- | src/Runtime/ogl-runtime/res/effectlib/distancefieldtext.vert | 77 |
2 files changed, 0 insertions, 77 deletions
diff --git a/src/Runtime/ogl-runtime b/src/Runtime/ogl-runtime new file mode 160000 +Subproject 2025912174c4cf99270b7439ec3b021e1d089ae diff --git a/src/Runtime/ogl-runtime/res/effectlib/distancefieldtext.vert b/src/Runtime/ogl-runtime/res/effectlib/distancefieldtext.vert deleted file mode 100644 index f6b2de41..00000000 --- a/src/Runtime/ogl-runtime/res/effectlib/distancefieldtext.vert +++ /dev/null @@ -1,77 +0,0 @@ -#ifdef GL_OES_standard_derivatives -# extension GL_OES_standard_derivatives : enable -#else -# define use_fallback -#endif - -uniform highp mat4 mvp; -uniform highp float fontScale; -uniform int textureWidth; -uniform int textureHeight; - -attribute highp vec3 vCoord; -attribute highp vec2 tCoord; - -varying highp vec2 sampleCoord; - -#ifdef use_fallback -varying highp vec2 alphas; - -highp float thresholdFunc(highp float scale) -{ - highp float base = 0.5; - highp float baseDev = 0.065; - highp float devScaleMin = 0.15; - highp float devScaleMax = 0.3; - return base - ((clamp(scale, devScaleMin, devScaleMax) - devScaleMin) - / (devScaleMax - devScaleMin) * -baseDev + baseDev); -} - -highp float spreadFunc(highp float scale) -{ - return 0.06 / scale; -} - -highp vec2 alphaRange(highp float scale) -{ - highp float base = thresholdFunc(scale); - highp float range = spreadFunc(scale); - highp float alphaMin = max(0.0, base - range); - highp float alphaMax = min(base + range, 1.0); - return vec2(alphaMin, alphaMax); -} - -highp float determinantOfSubmatrix(highp mat4 m, int col0, int col1, int row0, int row1) -{ - return m[col0][row0] * m[col1][row1] - m[col0][row1] * m[col1][row0]; -} - -highp float determinantOfSubmatrix(highp mat4 m, int col0, int col1, int col2, - int row0, int row1, int row2) -{ - highp float det = m[col0][row0] * determinantOfSubmatrix(m, col1, col2, row1, row2); - det -= m[col1][row0] * determinantOfSubmatrix(m, col0, col2, row1, row2); - det += m[col2][row0] * determinantOfSubmatrix(m, col0, col1, row1, row2); - return det; -} - -highp float determinant(highp mat4 m) -{ - highp float det = m[0][0] * determinantOfSubmatrix(m, 1, 2, 3, 1, 2, 3); - det -= m[1][0] * determinantOfSubmatrix(m, 0, 2, 3, 1, 2, 3); - det += m[2][0] * determinantOfSubmatrix(m, 0, 1, 3, 1, 2, 3); - det -= m[3][0] * determinantOfSubmatrix(m, 0, 1, 2, 1, 2, 3); - return det; -} -#endif - -void main() -{ -#ifdef use_fallback - highp float scale = fontScale * pow(abs(determinant(mvp)), 1.0 / 3.0); - alphas = alphaRange(scale); -#endif - - sampleCoord = tCoord * vec2(1.0 / float(textureWidth), 1.0 / float(textureHeight)); - gl_Position = mvp * vec4(vCoord, 1.0); -} |