p.smali

.class public Lh7/p;
.super Lg7/a;
.source "SaturationFilter.java"

# interfaces
.implements Lg7/e;


# instance fields
.field public i:F

.field public j:I

.field public k:I


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

.method public constructor <init>()V
    .registers 2

    invoke-direct {p0}, Lg7/a;-><init>()V

    const/high16 v0, 0x3f800000    # 1.0f

    iput v0, p0, Lh7/p;->i:F

    const/4 v0, -0x1

    iput v0, p0, Lh7/p;->j:I

    iput v0, p0, Lh7/p;->k:I

    return-void
.end method


# virtual methods
.method public a(I)V
    .registers 4

    invoke-super {p0, p1}, Lg7/a;->a(I)V

    const-string v0, "scale"

    invoke-static {p1, v0}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I

    move-result v1

    iput v1, p0, Lh7/p;->j:I

    invoke-static {v1, v0}, Ls7/a;->a(ILjava/lang/String;)V

    const-string v0, "exponents"

    invoke-static {p1, v0}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I

    move-result p1

    iput p1, p0, Lh7/p;->k:I

    invoke-static {p1, v0}, Ls7/a;->a(ILjava/lang/String;)V

    return-void
.end method

.method public b(F)V
    .registers 3

    const/high16 v0, 0x40000000    # 2.0f

    mul-float p1, p1, v0

    const/high16 v0, 0x3f800000    # 1.0f

    sub-float/2addr p1, v0

    invoke-virtual {p0, p1}, Lh7/p;->c(F)V

    return-void
.end method

.method public b(J[F)V
    .registers 8
    .param p1    # J
        .annotation build Landroidx/annotation/NonNull;
        .end annotation
    .end param

    invoke-super {p0, p1, p2, p3}, Lg7/a;->b(J[F)V

    iget p1, p0, Lh7/p;->i:F

    const-string p2, "glUniform3f"

    const-string p3, "glUniform1f"

    const/high16 v0, 0x3f800000    # 1.0f

    const/4 v1, 0x0

    cmpl-float v2, p1, v1

    if-lez v2, :cond_35

    iget p1, p0, Lh7/p;->j:I

    invoke-static {p1, v1}, Landroid/opengl/GLES20;->glUniform1f(IF)V

    invoke-static {p3}, Ls7/a;->a(Ljava/lang/String;)V

    iget p1, p0, Lh7/p;->k:I

    const p3, 0x3f666666    # 0.9f

    iget v1, p0, Lh7/p;->i:F

    mul-float p3, p3, v1

    add-float/2addr p3, v0

    const v2, 0x40066666    # 2.1f

    mul-float v2, v2, v1

    add-float/2addr v2, v0

    const v3, 0x402ccccd    # 2.7f

    mul-float v1, v1, v3

    add-float/2addr v1, v0

    invoke-static {p1, p3, v2, v1}, Landroid/opengl/GLES20;->glUniform3f(IFFF)V

    invoke-static {p2}, Ls7/a;->a(Ljava/lang/String;)V

    goto :goto_46

    :cond_35
    iget v2, p0, Lh7/p;->j:I

    add-float/2addr p1, v0

    invoke-static {v2, p1}, Landroid/opengl/GLES20;->glUniform1f(IF)V

    invoke-static {p3}, Ls7/a;->a(Ljava/lang/String;)V

    iget p1, p0, Lh7/p;->k:I

    invoke-static {p1, v1, v1, v1}, Landroid/opengl/GLES20;->glUniform3f(IFFF)V

    invoke-static {p2}, Ls7/a;->a(Ljava/lang/String;)V

    :goto_46
    return-void
.end method

.method public c()Ljava/lang/String;
    .registers 2
    .annotation build Landroidx/annotation/NonNull;
    .end annotation

    const-string v0, "#extension GL_OES_EGL_image_external : require\nprecision mediump float;\nuniform samplerExternalOES sTexture;\nuniform float scale;\nuniform vec3 exponents;\nfloat shift;\nvec3 weights;\nvarying vec2 vTextureCoord;\nvoid main() {\n  weights[0] = 0.25;\n  weights[1] = 0.625;\n  weights[2] = 0.125;\n  shift = 0.003921569;\n  vec4 oldcolor = texture2D(sTexture, vTextureCoord);\n  float kv = dot(oldcolor.rgb, weights) + shift;\n  vec3 new_color = scale * oldcolor.rgb + (1.0 - scale) * kv;\n  gl_FragColor = vec4(new_color, oldcolor.a);\n  vec4 color = texture2D(sTexture, vTextureCoord);\n  float de = dot(color.rgb, weights);\n  float inv_de = 1.0 / de;\n  vec3 verynew_color = de * pow(color.rgb * inv_de, exponents);\n  float max_color = max(max(max(verynew_color.r, verynew_color.g), verynew_color.b), 1.0);\n  gl_FragColor = gl_FragColor+vec4(verynew_color / max_color, color.a);\n}\n"

    return-object v0
.end method

.method public c(F)V
    .registers 4

    const/high16 v0, -0x40800000    # -1.0f

    cmpg-float v1, p1, v0

    if-gez v1, :cond_8

    const/high16 p1, -0x40800000    # -1.0f

    :cond_8
    const/high16 v0, 0x3f800000    # 1.0f

    cmpl-float v1, p1, v0

    if-lez v1, :cond_10

    const/high16 p1, 0x3f800000    # 1.0f

    :cond_10
    iput p1, p0, Lh7/p;->i:F

    return-void
.end method

.method public d()F
    .registers 3

    invoke-virtual {p0}, Lh7/p;->g()F

    move-result v0

    const/high16 v1, 0x3f800000    # 1.0f

    add-float/2addr v0, v1

    const/high16 v1, 0x40000000    # 2.0f

    div-float/2addr v0, v1

    return v0
.end method

.method public g()F
    .registers 2

    iget v0, p0, Lh7/p;->i:F

    return v0
.end method

.method public onDestroy()V
    .registers 2

    invoke-super {p0}, Lg7/a;->onDestroy()V

    const/4 v0, -0x1

    iput v0, p0, Lh7/p;->j:I

    iput v0, p0, Lh7/p;->k:I

    return-void
.end method