f.smali

.class public final Lcom/tencent/liteav/videobase/c/f;
.super Lcom/tencent/liteav/videobase/c/j;
.source "SourceFile"


# direct methods
.method public constructor <init>()V
    .registers 3

    const-string v0, "attribute vec4 position;\nattribute vec4 inputTextureCoordinate;\nuniform mat4 textureTransform;\nvarying highp vec2 textureCoordinate;\nvoid main()\n{\n    gl_Position = position;\n    textureCoordinate = (textureTransform * inputTextureCoordinate).xy;\n}"

    const-string v1, "precision highp float;\nvarying highp vec2 textureCoordinate;\nuniform sampler2D inputImageTexture;\nuniform float width;\nuniform float height;\nhighp vec3 offset = vec3(0.0625, 0.5, 0.5);\nhighp mat3 scale = mat3( 0.256816,  0.504154, 0.0979137,\n                        -0.148246,  -0.29102,  0.439266,\n                         0.439271, -0.367833, -0.071438);\n\nvoid main() {\n    vec2 yScale = vec2(4.0, 4.0);\n    vec2 uvScale = vec2(8.0, 8.0);\n\n    highp vec2 nowTxtPos = textureCoordinate;\n    vec2 size = vec2(width, height);\n    float imageRatio = width / height;\n\n    if (nowTxtPos.y < 0.3) { //y\u5e73\u9762\u5360\u6574\u4e2atexture\u76840.3\n        // y1 postion\n        vec2 now_pos = nowTxtPos * size - vec2(0.375, 0.375);\n        vec2 basePos = now_pos * yScale;\n\n        float addY = float(int((basePos.x / width)));\n        basePos.x -= addY * width;\n        basePos.y += addY;\n\n        float y1 = 0.0;\n        float y2 = 0.0;\n        float y3 = 0.0;\n        float y4 = 0.0;\n        vec2 samplingPos = basePos / size;\n        vec4 texel = texture2D(inputImageTexture, samplingPos);\n\n        y1 = dot(texel.rgb, scale[0]);\n        y1 += offset[0];\n\n        basePos.x += 1.0;\n        addY = float(int((basePos.x / width)));\n        basePos.x -= addY * width;\n        basePos.y += addY;\n        samplingPos = basePos/ size;\n        texel = texture2D(inputImageTexture, samplingPos);\n\n        y2 = dot(texel.rgb, scale[0]);\n        y2 += offset[0];\n\n        basePos.x += 1.0;\n        addY = float(int((basePos.x / width)));\n        basePos.x -= addY * width;\n        basePos.y += addY;\n        samplingPos = basePos/ size;\n        texel = texture2D(inputImageTexture, samplingPos);\n\n        y3 = dot(texel.rgb, scale[0]);\n        y3 += offset[0];\n\n        basePos.x += 1.0;\n        addY = float(int((basePos.x / width)));\n        basePos.x -= addY * width;\n        basePos.y += addY;\n        samplingPos = basePos/ size;\n        texel = texture2D(inputImageTexture, samplingPos);\n\n        y4 = dot(texel.rgb, scale[0]);\n        y4 += offset[0];\n\n        gl_FragColor = vec4(y1, y2, y3, y4);\n    } else if (nowTxtPos.y >= 0.5 && nowTxtPos.y < 0.625) { //u\u5e73\u9762\u5360\u6574\u4e2atexture\u76840.5 ~ 0.625\u8303\u56f4\n        nowTxtPos.y -= 0.5;\n        highp vec2 basePos = nowTxtPos * uvScale * size + vec2(1.0, -0.5);\n        highp float addY = float(int(basePos.x / width));\n        basePos.x -= addY * width;\n\n        basePos.y += addY;\n        basePos.y *= 2.0;\n        basePos -= clamp(uvScale * 0.5, vec2(0.0), uvScale);\n        basePos.y -= 2.0;\n\n        highp vec4 sample = texture2D(inputImageTexture, basePos/ size).rgba;\n        highp float u1 = dot(sample.rgb, scale[1]);\n        u1 += offset.y;\n\n        basePos.x+=2.0;\n        addY = float(int((basePos.x / width)));\n        basePos.x -= addY * width;\n        basePos.y += addY * 2.0;\n        sample = texture2D(inputImageTexture, basePos/ size).rgba;\n        float u2 = dot(sample.rgb, scale[1]);\n        u2 += offset.y;\n\n        basePos.x+=2.0;\n        addY = float(int((basePos.x / width)));\n        basePos.x -= addY * width;\n        basePos.y += addY * 2.0;\n        sample = texture2D(inputImageTexture, basePos / size).rgba;\n        float u3 = dot(sample.rgb, scale[1]);\n        u3 += offset.y;\n\n        basePos.x+=2.0;\n        addY = float(int((basePos.x / width)));\n        basePos.x -= addY * width;\n        basePos.y += addY * 2.0;\n        sample = texture2D(inputImageTexture, basePos / size).rgba;\n        float u4 = dot(sample.rgb, scale[1]);\n        u4 += offset.y;\n\n        gl_FragColor = vec4(u1, u2, u3, u4);\n    } else if (nowTxtPos.y >= 0.75 && nowTxtPos.y < 0.875) { // v\u5e73\u9762\u5360texture\u76840.75 ~ 0.875\u8303\u56f4\n        nowTxtPos -= vec2(0,0.75);\n        highp vec2 basePos = nowTxtPos * uvScale * size + vec2(0.5, -0.5);\n        highp float addY = float(int(basePos.x / width));\n        basePos.x -= addY * width;\n\n        basePos.y += addY;\n        basePos.y *= 2.0;\n        basePos -= clamp(uvScale * 0.5, vec2(0.0), uvScale);\n        basePos.y -= 2.0;\n\n        highp vec4 sample = texture2D(inputImageTexture, basePos / size).rgba;\n        highp float v1 = dot(sample.rgb, scale[2]);\n        v1 += offset.z;\n\n        basePos.x += 2.0;\n        addY = float(int((basePos.x / width)));\n        basePos.x -= addY * width;\n        basePos.y += addY * 2.0;\n        sample = texture2D(inputImageTexture, basePos / size).rgba;\n        float v2 = dot(sample.rgb, scale[2]);\n        v2 += offset.z;\n\n        basePos.x += 2.0;\n        addY = float(int((basePos.x / width)));\n        basePos.x -= addY * width;\n        basePos.y += addY * 2.0;\n        sample = texture2D(inputImageTexture, basePos / size).rgba;\n        float v3 = dot(sample.rgb, scale[2]);\n        v3 += offset.z;\n\n        basePos.x += 2.0;\n        addY = float(int((basePos.x / width)));\n        basePos.x -= addY * width;\n        basePos.y += addY * 2.0;\n        sample = texture2D(inputImageTexture, basePos / size).rgba;\n        float v4 = dot(sample.rgb, scale[2]);\n        v4 += offset.z;\n\n        gl_FragColor = vec4(v1, v2, v3, v4);\n        // gl_FragColor = vec4(0.5, 0.5, 0.5, 0.5);\\\\\\\\\\\\\\\\n +\n    } else {\n    }\n}"

    .line 164
    invoke-direct {p0, v0, v1}, Lcom/tencent/liteav/videobase/c/j;-><init>(Ljava/lang/String;Ljava/lang/String;)V

    return-void
.end method