c.smali
.class public final Lcom/tencent/liteav/beauty/b/b/c;
.super Lcom/tencent/liteav/videobase/a/b;
.source "SourceFile"
# instance fields
.field private a:I
.field private b:F
.field private c:I
.field private d:I
# direct methods
.method public constructor <init>()V
.registers 2
const/4 v0, 0x0
.line 100
invoke-direct {p0, v0}, Lcom/tencent/liteav/beauty/b/b/c;-><init>(B)V
return-void
.end method
.method private constructor <init>(B)V
.registers 3
const-string p1, "attribute vec4 position;\nattribute vec4 inputTextureCoordinate;\n\nuniform float imageWidthFactor; \nuniform float imageHeightFactor; \n\nvarying vec2 textureCoordinate;\nvarying vec2 leftTextureCoordinate;\nvarying vec2 rightTextureCoordinate; \nvarying vec2 topTextureCoordinate;\nvarying vec2 bottomTextureCoordinate;\n\n\nvoid main()\n{\n gl_Position = position;\n \n mediump vec2 widthStep = vec2(imageWidthFactor, 0.0);\n mediump vec2 heightStep = vec2(0.0, imageHeightFactor);\n \n textureCoordinate = inputTextureCoordinate.xy;\n leftTextureCoordinate = inputTextureCoordinate.xy - widthStep;\n rightTextureCoordinate = inputTextureCoordinate.xy + widthStep;\n topTextureCoordinate = inputTextureCoordinate.xy + heightStep;\n bottomTextureCoordinate = inputTextureCoordinate.xy - heightStep;\n}\n"
const-string v0, "precision mediump float;\n\nuniform float sharpness;\nvarying mediump vec2 textureCoordinate;\nvarying mediump vec2 leftTextureCoordinate;\nvarying mediump vec2 rightTextureCoordinate; \nvarying mediump vec2 topTextureCoordinate;\nvarying mediump vec2 bottomTextureCoordinate;\n\nuniform sampler2D inputImageTexture;\nfloat centerMultiplier;\nfloat edgeMultiplier;\n\nvoid main()\n{\n mediump vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);\n mediump vec3 leftTextureColor = texture2D(inputImageTexture, leftTextureCoordinate).rgb;\n mediump vec3 rightTextureColor = texture2D(inputImageTexture, rightTextureCoordinate).rgb;\n mediump vec3 topTextureColor = texture2D(inputImageTexture, topTextureCoordinate).rgb;\n mediump vec3 bottomTextureColor = texture2D(inputImageTexture, bottomTextureCoordinate).rgb;\n\n centerMultiplier = 1.0 + 4.0 * sharpness * (1.0 - textureColor.a);\n edgeMultiplier = sharpness * (1.0 - textureColor.a);\n gl_FragColor = vec4((textureColor.rgb * centerMultiplier - (leftTextureColor * edgeMultiplier + rightTextureColor * edgeMultiplier + topTextureColor * edgeMultiplier + bottomTextureColor * edgeMultiplier)), textureColor.a); \n}\n"
.line 104
invoke-direct {p0, p1, v0}, Lcom/tencent/liteav/videobase/a/b;-><init>(Ljava/lang/String;Ljava/lang/String;)V
const/4 p1, 0x0
.line 105
iput p1, p0, Lcom/tencent/liteav/beauty/b/b/c;->b:F
return-void
.end method
# virtual methods
.method public final a(F)V
.registers 4
.line 127
invoke-static {p1}, Ljava/lang/String;->valueOf(F)Ljava/lang/String;
move-result-object v0
const-string v1, "setSharpness "
invoke-virtual {v1, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "GPUSharpen"
invoke-static {v1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 128
iput p1, p0, Lcom/tencent/liteav/beauty/b/b/c;->b:F
.line 129
iget v0, p0, Lcom/tencent/liteav/beauty/b/b/c;->a:I
const v1, 0x3f333333 # 0.7f
add-float/2addr p1, v1
invoke-virtual {p0, v0, p1}, Lcom/tencent/liteav/beauty/b/b/c;->setFloatOnDraw(IF)V
return-void
.end method
.method public final canBeSkipped()Z
.registers 2
.line 134
iget v0, p0, Lcom/tencent/liteav/beauty/b/b/c;->b:F
invoke-virtual {p0, v0}, Lcom/tencent/liteav/beauty/b/b/c;->isLessOrEqualZero(F)Z
move-result v0
return v0
.end method
.method public final onInit(Lcom/tencent/liteav/videobase/frame/e;)V
.registers 3
.line 110
invoke-super {p0, p1}, Lcom/tencent/liteav/videobase/a/b;->onInit(Lcom/tencent/liteav/videobase/frame/e;)V
.line 111
invoke-virtual {p0}, Lcom/tencent/liteav/beauty/b/b/c;->getProgramId()I
move-result p1
const-string v0, "sharpness"
invoke-static {p1, v0}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I
move-result p1
iput p1, p0, Lcom/tencent/liteav/beauty/b/b/c;->a:I
.line 113
invoke-virtual {p0}, Lcom/tencent/liteav/beauty/b/b/c;->getProgramId()I
move-result p1
const-string v0, "imageWidthFactor"
invoke-static {p1, v0}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I
move-result p1
iput p1, p0, Lcom/tencent/liteav/beauty/b/b/c;->c:I
.line 115
invoke-virtual {p0}, Lcom/tencent/liteav/beauty/b/b/c;->getProgramId()I
move-result p1
const-string v0, "imageHeightFactor"
invoke-static {p1, v0}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I
move-result p1
iput p1, p0, Lcom/tencent/liteav/beauty/b/b/c;->d:I
.line 116
iget p1, p0, Lcom/tencent/liteav/beauty/b/b/c;->b:F
invoke-virtual {p0, p1}, Lcom/tencent/liteav/beauty/b/b/c;->a(F)V
return-void
.end method
.method public final onOutputSizeChanged(II)V
.registers 5
.line 121
invoke-super {p0, p1, p2}, Lcom/tencent/liteav/videobase/a/b;->onOutputSizeChanged(II)V
.line 122
iget v0, p0, Lcom/tencent/liteav/beauty/b/b/c;->c:I
int-to-float p1, p1
const/high16 v1, 0x3f800000 # 1.0f
div-float p1, v1, p1
invoke-virtual {p0, v0, p1}, Lcom/tencent/liteav/beauty/b/b/c;->setFloatOnDraw(IF)V
.line 123
iget p1, p0, Lcom/tencent/liteav/beauty/b/b/c;->d:I
int-to-float p2, p2
div-float/2addr v1, p2
invoke-virtual {p0, p1, v1}, Lcom/tencent/liteav/beauty/b/b/c;->setFloatOnDraw(IF)V
return-void
.end method