j.smali
.class public Lh7/j;
.super Lg7/a;
.source "GrainFilter.java"
# interfaces
.implements Lg7/e;
# static fields
.field public static final o:Ljava/util/Random;
.field public static final p:Ljava/lang/String;
# instance fields
.field public i:F
.field public j:I
.field public k:I
.field public l:I
.field public m:I
.field public n:I
# direct methods
.method public static constructor <clinit>()V
.registers 3
new-instance v0, Ljava/util/Random;
invoke-direct {v0}, Ljava/util/Random;-><init>()V
sput-object v0, Lh7/j;->o:Ljava/util/Random;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "#extension GL_OES_EGL_image_external : require\nprecision mediump float;\nvec2 seed;\nvarying vec2 vTextureCoord;\nuniform samplerExternalOES tex_sampler_0;\nuniform samplerExternalOES tex_sampler_1;\nuniform float scale;\nuniform float stepX;\nuniform float stepY;\nfloat rand(vec2 loc) {\n float theta1 = dot(loc, vec2(0.9898, 0.233));\n float theta2 = dot(loc, vec2(12.0, 78.0));\n float value = cos(theta1) * sin(theta2) + sin(theta1) * cos(theta2);\n float temp = mod(197.0 * value, 1.0) + value;\n float part1 = mod(220.0 * temp, 1.0) + temp;\n float part2 = value * 0.5453;\n float part3 = cos(theta1 + theta2) * 0.43758;\n float sum = (part1 + part2 + part3);\n return fract(sum)*scale;\n}\nvoid main() {\n seed[0] = "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v1, Lh7/j;->o:Ljava/util/Random;
invoke-virtual {v1}, Ljava/util/Random;->nextFloat()F
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
const-string v1, ";\n seed[1] = "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v1, Lh7/j;->o:Ljava/util/Random;
invoke-virtual {v1}, Ljava/util/Random;->nextFloat()F
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
const-string v1, ";\n float noise = texture2D(tex_sampler_1, "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "vTextureCoord"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, " + vec2(-stepX, -stepY)).r * 0.224;\n noise += texture2D(tex_sampler_1, "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, " + vec2(-stepX, stepY)).r * 0.224;\n noise += texture2D(tex_sampler_1, "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, " + vec2(stepX, -stepY)).r * 0.224;\n noise += texture2D(tex_sampler_1, "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, " + vec2(stepX, stepY)).r * 0.224;\n noise += 0.4448;\n noise *= scale;\n vec4 color = texture2D(tex_sampler_0, "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, ");\n float energy = 0.33333 * color.r + 0.33333 * color.g + 0.33333 * color.b;\n float mask = (1.0 - sqrt(energy));\n float weight = 1.0 - 1.333 * mask * noise;\n gl_FragColor = vec4(color.rgb * weight, color.a);\n gl_FragColor = gl_FragColor+vec4(rand("
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, " + seed), rand("
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, " + seed),rand("
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, " + seed),1);\n}\n"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
sput-object v0, Lh7/j;->p:Ljava/lang/String;
return-void
.end method
.method public constructor <init>()V
.registers 2
invoke-direct {p0}, Lg7/a;-><init>()V
const/high16 v0, 0x3f000000 # 0.5f
iput v0, p0, Lh7/j;->i:F
const/4 v0, 0x1
iput v0, p0, Lh7/j;->j:I
iput v0, p0, Lh7/j;->k:I
const/4 v0, -0x1
iput v0, p0, Lh7/j;->l:I
iput v0, p0, Lh7/j;->m:I
iput v0, p0, Lh7/j;->n: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/j;->l:I
invoke-static {v1, v0}, Ls7/a;->a(ILjava/lang/String;)V
const-string v0, "stepX"
invoke-static {p1, v0}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I
move-result v1
iput v1, p0, Lh7/j;->m:I
invoke-static {v1, v0}, Ls7/a;->a(ILjava/lang/String;)V
const-string v0, "stepY"
invoke-static {p1, v0}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I
move-result p1
iput p1, p0, Lh7/j;->n:I
invoke-static {p1, v0}, Ls7/a;->a(ILjava/lang/String;)V
return-void
.end method
.method public a(II)V
.registers 3
invoke-super {p0, p1, p2}, Lg7/a;->a(II)V
iput p1, p0, Lh7/j;->j:I
iput p2, p0, Lh7/j;->k:I
return-void
.end method
.method public b(F)V
.registers 2
invoke-virtual {p0, p1}, Lh7/j;->c(F)V
return-void
.end method
.method public b(J[F)V
.registers 5
.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/j;->l:I
iget p2, p0, Lh7/j;->i:F
invoke-static {p1, p2}, Landroid/opengl/GLES20;->glUniform1f(IF)V
const-string p1, "glUniform1f"
invoke-static {p1}, Ls7/a;->a(Ljava/lang/String;)V
iget p2, p0, Lh7/j;->m:I
iget p3, p0, Lh7/j;->j:I
int-to-float p3, p3
const/high16 v0, 0x3f000000 # 0.5f
div-float p3, v0, p3
invoke-static {p2, p3}, Landroid/opengl/GLES20;->glUniform1f(IF)V
invoke-static {p1}, Ls7/a;->a(Ljava/lang/String;)V
iget p2, p0, Lh7/j;->n:I
iget p3, p0, Lh7/j;->k:I
int-to-float p3, p3
div-float/2addr v0, p3
invoke-static {p2, v0}, Landroid/opengl/GLES20;->glUniform1f(IF)V
invoke-static {p1}, Ls7/a;->a(Ljava/lang/String;)V
return-void
.end method
.method public c()Ljava/lang/String;
.registers 2
.annotation build Landroidx/annotation/NonNull;
.end annotation
sget-object v0, Lh7/j;->p:Ljava/lang/String;
return-object v0
.end method
.method public c(F)V
.registers 4
const/4 v0, 0x0
cmpg-float v1, p1, v0
if-gez v1, :cond_6
const/4 p1, 0x0
:cond_6
const/high16 v0, 0x3f800000 # 1.0f
cmpl-float v1, p1, v0
if-lez v1, :cond_e
const/high16 p1, 0x3f800000 # 1.0f
:cond_e
iput p1, p0, Lh7/j;->i:F
return-void
.end method
.method public d()F
.registers 2
invoke-virtual {p0}, Lh7/j;->g()F
move-result v0
return v0
.end method
.method public g()F
.registers 2
iget v0, p0, Lh7/j;->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/j;->l:I
iput v0, p0, Lh7/j;->m:I
iput v0, p0, Lh7/j;->n:I
return-void
.end method