ViEAndroidGLES20.smali
.class public Lorg/webrtc/videoengine/ViEAndroidGLES20;
.super Landroid/opengl/GLSurfaceView;
.source "SourceFile"
# interfaces
.implements Landroid/opengl/GLSurfaceView$Renderer;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/webrtc/videoengine/ViEAndroidGLES20$a;,
Lorg/webrtc/videoengine/ViEAndroidGLES20$b;
}
.end annotation
# static fields
.field private static a:Ljava/lang/String; = "WEBRTC-JR"
# instance fields
.field private b:Z
.field private c:Z
.field private d:Z
.field private e:Ljava/util/concurrent/locks/ReentrantLock;
.field private f:J
.field private g:I
.field private h:I
# direct methods
.method static constructor <clinit>()V
.registers 0
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.registers 4
.line 48
invoke-direct {p0, p1}, Landroid/opengl/GLSurfaceView;-><init>(Landroid/content/Context;)V
const/4 p1, 0x0
.line 33
iput-boolean p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->b:Z
.line 34
iput-boolean p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->c:Z
.line 36
iput-boolean p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->d:Z
.line 37
new-instance v0, Ljava/util/concurrent/locks/ReentrantLock;
invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantLock;-><init>()V
iput-object v0, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->e:Ljava/util/concurrent/locks/ReentrantLock;
const-wide/16 v0, 0x0
.line 39
iput-wide v0, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->f:J
.line 40
iput p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->g:I
.line 41
iput p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->h:I
.line 49
invoke-direct {p0, p1, p1, p1}, Lorg/webrtc/videoengine/ViEAndroidGLES20;->a(ZII)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;ZII)V
.registers 7
.line 54
invoke-direct {p0, p1}, Landroid/opengl/GLSurfaceView;-><init>(Landroid/content/Context;)V
const/4 p1, 0x0
.line 33
iput-boolean p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->b:Z
.line 34
iput-boolean p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->c:Z
.line 36
iput-boolean p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->d:Z
.line 37
new-instance v0, Ljava/util/concurrent/locks/ReentrantLock;
invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantLock;-><init>()V
iput-object v0, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->e:Ljava/util/concurrent/locks/ReentrantLock;
const-wide/16 v0, 0x0
.line 39
iput-wide v0, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->f:J
.line 40
iput p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->g:I
.line 41
iput p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->h:I
.line 55
invoke-direct {p0, p2, p3, p4}, Lorg/webrtc/videoengine/ViEAndroidGLES20;->a(ZII)V
return-void
.end method
.method private native CreateOpenGLNative(JII)I
.end method
.method private native DrawNative(J)V
.end method
.method static synthetic a()Ljava/lang/String;
.registers 1
.line 28
sget-object v0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->a:Ljava/lang/String;
return-object v0
.end method
.method static synthetic a(Ljava/lang/String;Ljavax/microedition/khronos/egl/EGL10;)V
.registers 6
.line 1104
:goto_0
invoke-interface {p1}, Ljavax/microedition/khronos/egl/EGL10;->eglGetError()I
move-result v0
const/16 v1, 0x3000
if-eq v0, v1, :cond_21
.line 1105
sget-object v1, Lorg/webrtc/videoengine/ViEAndroidGLES20;->a:Ljava/lang/String;
const/4 v2, 0x2
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
aput-object p0, v2, v3
const/4 v3, 0x1
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
aput-object v0, v2, v3
const-string v0, "%s: EGL error: 0x%x"
invoke-static {v0, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_0
:cond_21
return-void
.end method
.method private a(ZII)V
.registers 19
move-object v0, p0
if-eqz p1, :cond_b
.line 65
invoke-virtual {p0}, Lorg/webrtc/videoengine/ViEAndroidGLES20;->getHolder()Landroid/view/SurfaceHolder;
move-result-object v1
const/4 v2, -0x3
invoke-interface {v1, v2}, Landroid/view/SurfaceHolder;->setFormat(I)V
.line 70
:cond_b
new-instance v1, Lorg/webrtc/videoengine/ViEAndroidGLES20$b;
const/4 v2, 0x0
invoke-direct {v1, v2}, Lorg/webrtc/videoengine/ViEAndroidGLES20$b;-><init>(B)V
invoke-virtual {p0, v1}, Lorg/webrtc/videoengine/ViEAndroidGLES20;->setEGLContextFactory(Landroid/opengl/GLSurfaceView$EGLContextFactory;)V
.line 76
new-instance v1, Lorg/webrtc/videoengine/ViEAndroidGLES20$a;
if-eqz p1, :cond_29
const/16 v4, 0x8
const/16 v5, 0x8
const/16 v6, 0x8
const/16 v7, 0x8
move-object v3, v1
move/from16 v8, p2
move/from16 v9, p3
invoke-direct/range {v3 .. v9}, Lorg/webrtc/videoengine/ViEAndroidGLES20$a;-><init>(IIIIII)V
goto :goto_35
:cond_29
const/4 v9, 0x5
const/4 v10, 0x6
const/4 v11, 0x5
const/4 v12, 0x0
move-object v8, v1
move/from16 v13, p2
move/from16 v14, p3
invoke-direct/range {v8 .. v14}, Lorg/webrtc/videoengine/ViEAndroidGLES20$a;-><init>(IIIIII)V
:goto_35
invoke-virtual {p0, v1}, Lorg/webrtc/videoengine/ViEAndroidGLES20;->setEGLConfigChooser(Landroid/opengl/GLSurfaceView$EGLConfigChooser;)V
.line 81
invoke-virtual {p0, p0}, Lorg/webrtc/videoengine/ViEAndroidGLES20;->setRenderer(Landroid/opengl/GLSurfaceView$Renderer;)V
.line 82
invoke-virtual {p0, v2}, Lorg/webrtc/videoengine/ViEAndroidGLES20;->setRenderMode(I)V
return-void
.end method
# virtual methods
.method public onDrawFrame(Ljavax/microedition/khronos/opengles/GL10;)V
.registers 5
.line 312
iget-object p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->e:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {p1}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V
.line 313
iget-boolean p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->d:Z
if-eqz p1, :cond_2d
iget-boolean p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->b:Z
if-nez p1, :cond_e
goto :goto_2d
.line 318
:cond_e
iget-boolean p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->c:Z
if-nez p1, :cond_22
.line 319
iget-wide v0, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->f:J
iget p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->g:I
iget v2, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->h:I
invoke-direct {p0, v0, v1, p1, v2}, Lorg/webrtc/videoengine/ViEAndroidGLES20;->CreateOpenGLNative(JII)I
move-result p1
if-eqz p1, :cond_1f
return-void
:cond_1f
const/4 p1, 0x1
.line 322
iput-boolean p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->c:Z
.line 324
:cond_22
iget-wide v0, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->f:J
invoke-direct {p0, v0, v1}, Lorg/webrtc/videoengine/ViEAndroidGLES20;->DrawNative(J)V
.line 325
iget-object p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->e:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {p1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
return-void
.line 314
:cond_2d
:goto_2d
iget-object p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->e:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {p1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
return-void
.end method
.method public onSurfaceChanged(Ljavax/microedition/khronos/opengles/GL10;II)V
.registers 6
const/4 p1, 0x1
.line 329
iput-boolean p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->b:Z
.line 330
iput p2, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->g:I
.line 331
iput p3, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->h:I
.line 333
iget-object v0, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->e:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V
.line 334
iget-boolean v0, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->d:Z
if-eqz v0, :cond_1a
.line 335
iget-wide v0, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->f:J
invoke-direct {p0, v0, v1, p2, p3}, Lorg/webrtc/videoengine/ViEAndroidGLES20;->CreateOpenGLNative(JII)I
move-result p2
if-nez p2, :cond_1a
.line 336
iput-boolean p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->c:Z
.line 338
:cond_1a
iget-object p1, p0, Lorg/webrtc/videoengine/ViEAndroidGLES20;->e:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {p1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
return-void
.end method
.method public onSurfaceCreated(Ljavax/microedition/khronos/opengles/GL10;Ljavax/microedition/khronos/egl/EGLConfig;)V
.registers 3
return-void
.end method