Engine.smali
.class public Lcom/censivn/C3DEngine/Engine;
.super Ljava/lang/Object;
.source "Engine.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/censivn/C3DEngine/Engine$EngineListener;
}
.end annotation
# static fields
.field public static final TAG:Ljava/lang/String; = "Censivn3D"
.field private static mInstance:Lcom/censivn/C3DEngine/Engine;
# instance fields
.field private isEngineInit:Z
.field private mContainer:Lcom/censivn/C3DEngine/core/RootContainer;
.field private mContext:Landroid/content/Context;
.field private mEnginePauseRunnable:Ljava/lang/Runnable;
.field private mEngineResumeRunnable:Ljava/lang/Runnable;
.field private mEngineState:Z
.field private mFrameBufferManager:Lcom/censivn/C3DEngine/coreapi/buffer/FrameBufferManager;
.field private mGLContentView:Lcom/censivn/C3DEngine/core/GLContentView;
.field private mListeners:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList",
"<",
"Lcom/censivn/C3DEngine/Engine$EngineListener;",
">;"
}
.end annotation
.end field
.field private mMouseEventManager:Lcom/censivn/C3DEngine/core/MouseEventManager;
.field private mRenderMessage:Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;
.field private mRenderer:Lcom/censivn/C3DEngine/core/Renderer;
.field private mSceneStateManager:Lcom/censivn/C3DEngine/coreapi/manager/SceneStateManager;
.field private mTextureManager:Lcom/censivn/C3DEngine/coreapi/manager/TextureManager;
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.registers 6
.prologue
const v3, 0x3f4ccccd # 0.8f
const/4 v2, 0x1
.line 128
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 37
iput-boolean v2, p0, Lcom/censivn/C3DEngine/Engine;->mEngineState:Z
.line 38
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/censivn/C3DEngine/Engine;->isEngineInit:Z
.line 130
const-string v0, "Engine"
const-string v1, "onCreate"
invoke-static {v0, v1}, Lcom/censivn/C3DEngine/utils/Debug;->log(Ljava/lang/String;Ljava/lang/String;)V
.line 132
sput-object p0, Lcom/censivn/C3DEngine/Engine;->mInstance:Lcom/censivn/C3DEngine/Engine;
.line 133
iput-object p1, p0, Lcom/censivn/C3DEngine/Engine;->mContext:Landroid/content/Context;
.line 134
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mListeners:Ljava/util/ArrayList;
.line 135
invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
move-result-object v0
.line 136
new-instance v1, Lcom/censivn/C3DEngine/core/GLContentView;
invoke-direct {v1, p1, p0, v2}, Lcom/censivn/C3DEngine/core/GLContentView;-><init>(Landroid/content/Context;Lcom/censivn/C3DEngine/Engine;Z)V
iput-object v1, p0, Lcom/censivn/C3DEngine/Engine;->mGLContentView:Lcom/censivn/C3DEngine/core/GLContentView;
.line 137
iget-object v1, p0, Lcom/censivn/C3DEngine/Engine;->mGLContentView:Lcom/censivn/C3DEngine/core/GLContentView;
invoke-virtual {v1, v2}, Lcom/censivn/C3DEngine/core/GLContentView;->setZOrderOnTop(Z)V
.line 138
new-instance v1, Lcom/censivn/C3DEngine/core/RootContainer;
invoke-direct {v1, p0}, Lcom/censivn/C3DEngine/core/RootContainer;-><init>(Lcom/censivn/C3DEngine/Engine;)V
invoke-virtual {p0, v1}, Lcom/censivn/C3DEngine/Engine;->setRootContainer(Lcom/censivn/C3DEngine/core/RootContainer;)V
.line 140
invoke-static {}, Lcom/censivn/C3DEngine/core/CanvasInfo;->reset()V
.line 141
iget v1, v0, Landroid/util/DisplayMetrics;->density:F
sput v1, Lcom/censivn/C3DEngine/core/CanvasInfo;->SYSTEM_DENSITY:F
.line 142
iget v0, v0, Landroid/util/DisplayMetrics;->density:F
sput v0, Lcom/censivn/C3DEngine/core/CanvasInfo;->ENGINE_DENSITY:F
.line 143
sget v0, Lcom/censivn/C3DEngine/core/CanvasInfo;->ENGINE_DENSITY:F
cmpg-float v0, v0, v3
if-gez v0, :cond_51
.line 144
sput v3, Lcom/censivn/C3DEngine/core/CanvasInfo;->ENGINE_DENSITY:F
.line 146
:cond_51
sget v0, Lcom/censivn/C3DEngine/core/CanvasInfo;->ENGINE_DENSITY:F
sget v1, Lcom/censivn/C3DEngine/core/CanvasInfo;->SYSTEM_DENSITY:F
div-float/2addr v0, v1
sput v0, Lcom/censivn/C3DEngine/core/CanvasInfo;->SCALE_DENSITY:F
.line 147
sget v0, Lcom/censivn/C3DEngine/core/CanvasInfo;->ENGINE_DENSITY:F
const/high16 v1, 0x40000000 # 2.0f
div-float/2addr v0, v1
sput v0, Lcom/censivn/C3DEngine/core/CanvasInfo;->HD_SCALE:F
.line 148
sget v0, Lcom/censivn/C3DEngine/core/CanvasInfo;->ENGINE_DENSITY:F
const/high16 v1, 0x40400000 # 3.0f
div-float/2addr v0, v1
sput v0, Lcom/censivn/C3DEngine/core/CanvasInfo;->XHD_SCALE:F
.line 149
sget v0, Lcom/censivn/C3DEngine/core/CanvasInfo;->ENGINE_DENSITY:F
const/high16 v1, 0x3fc00000 # 1.5f
div-float/2addr v0, v1
sput v0, Lcom/censivn/C3DEngine/core/CanvasInfo;->SCALE:F
.line 150
invoke-static {p1}, Lcom/censivn/C3DEngine/utils/Compatibility;->getStatusBarHeight(Landroid/content/Context;)I
move-result v0
sput v0, Lcom/censivn/C3DEngine/core/CanvasInfo;->STATUS_BAR_HEIGHT:I
.line 152
new-instance v0, Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;
invoke-direct {v0, p0}, Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;-><init>(Lcom/censivn/C3DEngine/Engine;)V
iput-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mRenderMessage:Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;
.line 153
new-instance v0, Lcom/censivn/C3DEngine/coreapi/buffer/FrameBufferManager;
invoke-direct {v0, p0}, Lcom/censivn/C3DEngine/coreapi/buffer/FrameBufferManager;-><init>(Lcom/censivn/C3DEngine/Engine;)V
iput-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mFrameBufferManager:Lcom/censivn/C3DEngine/coreapi/buffer/FrameBufferManager;
.line 154
new-instance v0, Lcom/censivn/C3DEngine/coreapi/manager/SceneStateManager;
invoke-direct {v0, p0}, Lcom/censivn/C3DEngine/coreapi/manager/SceneStateManager;-><init>(Lcom/censivn/C3DEngine/Engine;)V
iput-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mSceneStateManager:Lcom/censivn/C3DEngine/coreapi/manager/SceneStateManager;
.line 155
new-instance v0, Lcom/censivn/C3DEngine/core/Renderer;
invoke-direct {v0, p0}, Lcom/censivn/C3DEngine/core/Renderer;-><init>(Lcom/censivn/C3DEngine/Engine;)V
iput-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mRenderer:Lcom/censivn/C3DEngine/core/Renderer;
.line 156
new-instance v0, Lcom/censivn/C3DEngine/coreapi/manager/TextureManager;
invoke-direct {v0, p0}, Lcom/censivn/C3DEngine/coreapi/manager/TextureManager;-><init>(Lcom/censivn/C3DEngine/Engine;)V
iput-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mTextureManager:Lcom/censivn/C3DEngine/coreapi/manager/TextureManager;
.line 157
new-instance v0, Lcom/censivn/C3DEngine/core/MouseEventManager;
invoke-direct {v0, p0}, Lcom/censivn/C3DEngine/core/MouseEventManager;-><init>(Lcom/censivn/C3DEngine/Engine;)V
iput-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mMouseEventManager:Lcom/censivn/C3DEngine/core/MouseEventManager;
.line 158
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mGLContentView:Lcom/censivn/C3DEngine/core/GLContentView;
iget-object v1, p0, Lcom/censivn/C3DEngine/Engine;->mRenderer:Lcom/censivn/C3DEngine/core/Renderer;
invoke-virtual {v0, v1}, Lcom/censivn/C3DEngine/core/GLContentView;->setRenderer(Landroid/opengl/GLSurfaceView$Renderer;)V
.line 160
new-instance v0, Lcom/censivn/C3DEngine/Engine$3;
invoke-direct {v0, p0}, Lcom/censivn/C3DEngine/Engine$3;-><init>(Lcom/censivn/C3DEngine/Engine;)V
iput-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mEnginePauseRunnable:Ljava/lang/Runnable;
.line 167
new-instance v0, Lcom/censivn/C3DEngine/Engine$4;
invoke-direct {v0, p0}, Lcom/censivn/C3DEngine/Engine$4;-><init>(Lcom/censivn/C3DEngine/Engine;)V
iput-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mEngineResumeRunnable:Ljava/lang/Runnable;
.line 174
return-void
.end method
.method public static getInstance()Lcom/censivn/C3DEngine/Engine;
.registers 1
.prologue
.line 43
sget-object v0, Lcom/censivn/C3DEngine/Engine;->mInstance:Lcom/censivn/C3DEngine/Engine;
return-object v0
.end method
# virtual methods
.method public addListener(Lcom/censivn/C3DEngine/Engine$EngineListener;)V
.registers 3
.prologue
.line 184
monitor-enter p0
.line 185
:try_start_1
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mListeners:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 186
monitor-exit p0
.line 187
return-void
.line 186
:catchall_8
move-exception v0
monitor-exit p0
:try_end_a
.catchall {:try_start_1 .. :try_end_a} :catchall_8
throw v0
.end method
.method public destoryEGL()V
.registers 5
.prologue
.line 106
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Thread;->getId()J
move-result-wide v0
sget-wide v2, Lcom/censivn/C3DEngine/core/Renderer;->THREADID:J
cmp-long v0, v0, v2
if-nez v0, :cond_18
.line 107
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getRenderMessager()Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;
move-result-object v0
iget-object v1, p0, Lcom/censivn/C3DEngine/Engine;->mEnginePauseRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;->postUIThreadRunnable(Ljava/lang/Runnable;)V
.line 111
:goto_17
return-void
.line 109
:cond_18
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mEnginePauseRunnable:Ljava/lang/Runnable;
invoke-interface {v0}, Ljava/lang/Runnable;->run()V
goto :goto_17
.end method
.method public destroy()V
.registers 3
.prologue
const/4 v1, 0x0
.line 177
invoke-static {}, Lcom/censivn/C3DEngine/coreapi/tween/Tween;->destroy()V
.line 178
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/censivn/C3DEngine/Engine;->mEngineState:Z
.line 179
iput-object v1, p0, Lcom/censivn/C3DEngine/Engine;->mContext:Landroid/content/Context;
.line 180
sput-object v1, Lcom/censivn/C3DEngine/Engine;->mInstance:Lcom/censivn/C3DEngine/Engine;
.line 181
return-void
.end method
.method public getContext()Landroid/content/Context;
.registers 2
.prologue
.line 231
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mContext:Landroid/content/Context;
return-object v0
.end method
.method public getEngineState()Z
.registers 2
.prologue
.line 123
iget-boolean v0, p0, Lcom/censivn/C3DEngine/Engine;->mEngineState:Z
return v0
.end method
.method public getFrameBufferManager()Lcom/censivn/C3DEngine/coreapi/buffer/FrameBufferManager;
.registers 2
.prologue
.line 215
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mFrameBufferManager:Lcom/censivn/C3DEngine/coreapi/buffer/FrameBufferManager;
return-object v0
.end method
.method public getGLConentView()Lcom/censivn/C3DEngine/core/GLContentView;
.registers 2
.prologue
.line 243
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mGLContentView:Lcom/censivn/C3DEngine/core/GLContentView;
return-object v0
.end method
.method public getMouseEventManager()Lcom/censivn/C3DEngine/core/MouseEventManager;
.registers 2
.prologue
.line 219
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mMouseEventManager:Lcom/censivn/C3DEngine/core/MouseEventManager;
return-object v0
.end method
.method public getRenderMessager()Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;
.registers 2
.prologue
.line 223
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mRenderMessage:Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;
return-object v0
.end method
.method public getRenderer()Lcom/censivn/C3DEngine/core/Renderer;
.registers 2
.prologue
.line 235
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mRenderer:Lcom/censivn/C3DEngine/core/Renderer;
return-object v0
.end method
.method public getRootContainer()Lcom/censivn/C3DEngine/core/RootContainer;
.registers 2
.prologue
.line 251
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mContainer:Lcom/censivn/C3DEngine/core/RootContainer;
return-object v0
.end method
.method public getSceneStateManager()Lcom/censivn/C3DEngine/coreapi/manager/SceneStateManager;
.registers 2
.prologue
.line 227
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mSceneStateManager:Lcom/censivn/C3DEngine/coreapi/manager/SceneStateManager;
return-object v0
.end method
.method public getTextureManager()Lcom/censivn/C3DEngine/coreapi/manager/TextureManager;
.registers 2
.prologue
.line 239
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mTextureManager:Lcom/censivn/C3DEngine/coreapi/manager/TextureManager;
return-object v0
.end method
.method public onEngineInit()V
.registers 3
.prologue
.line 198
const-string v0, "Engine"
const-string v1, "onInit"
invoke-static {v0, v1}, Lcom/censivn/C3DEngine/utils/Debug;->log(Ljava/lang/String;Ljava/lang/String;)V
.line 200
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/censivn/C3DEngine/Engine;->isEngineInit:Z
.line 202
monitor-enter p0
.line 204
:try_start_b
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mListeners:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_11
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_24
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/censivn/C3DEngine/Engine$EngineListener;
.line 206
invoke-interface {v0}, Lcom/censivn/C3DEngine/Engine$EngineListener;->onEngineInit()V
goto :goto_11
.line 210
:catchall_21
move-exception v0
monitor-exit p0
:try_end_23
.catchall {:try_start_b .. :try_end_23} :catchall_21
throw v0
:cond_24
:try_start_24
monitor-exit p0
:try_end_25
.catchall {:try_start_24 .. :try_end_25} :catchall_21
.line 212
return-void
.end method
.method public onPause()V
.registers 3
.prologue
.line 54
const-string v0, "Engine"
const-string v1, "onPause"
invoke-static {v0, v1}, Lcom/censivn/C3DEngine/utils/Debug;->log(Ljava/lang/String;Ljava/lang/String;)V
.line 56
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/censivn/C3DEngine/Engine;->mEngineState:Z
.line 58
iget-boolean v0, p0, Lcom/censivn/C3DEngine/Engine;->isEngineInit:Z
if-eqz v0, :cond_22
.line 60
new-instance v0, Lcom/censivn/C3DEngine/Engine$1;
invoke-direct {v0, p0}, Lcom/censivn/C3DEngine/Engine$1;-><init>(Lcom/censivn/C3DEngine/Engine;)V
.line 70
iget-object v1, p0, Lcom/censivn/C3DEngine/Engine;->mRenderer:Lcom/censivn/C3DEngine/core/Renderer;
invoke-virtual {v1}, Lcom/censivn/C3DEngine/core/Renderer;->invalidate()V
.line 71
iget-object v1, p0, Lcom/censivn/C3DEngine/Engine;->mRenderMessage:Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;
invoke-virtual {v1, v0}, Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;->postGLThreadRunnable(Ljava/lang/Runnable;)V
.line 72
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mGLContentView:Lcom/censivn/C3DEngine/core/GLContentView;
invoke-virtual {v0}, Lcom/censivn/C3DEngine/core/GLContentView;->onPause()V
.line 77
:cond_22
return-void
.end method
.method public onResume()V
.registers 3
.prologue
.line 81
const-string v0, "Engine"
const-string v1, "onResume"
invoke-static {v0, v1}, Lcom/censivn/C3DEngine/utils/Debug;->log(Ljava/lang/String;Ljava/lang/String;)V
.line 83
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/censivn/C3DEngine/Engine;->mEngineState:Z
.line 85
iget-boolean v0, p0, Lcom/censivn/C3DEngine/Engine;->isEngineInit:Z
if-eqz v0, :cond_22
.line 87
new-instance v0, Lcom/censivn/C3DEngine/Engine$2;
invoke-direct {v0, p0}, Lcom/censivn/C3DEngine/Engine$2;-><init>(Lcom/censivn/C3DEngine/Engine;)V
.line 97
iget-object v1, p0, Lcom/censivn/C3DEngine/Engine;->mRenderer:Lcom/censivn/C3DEngine/core/Renderer;
invoke-virtual {v1}, Lcom/censivn/C3DEngine/core/Renderer;->invalidate()V
.line 98
iget-object v1, p0, Lcom/censivn/C3DEngine/Engine;->mRenderMessage:Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;
invoke-virtual {v1, v0}, Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;->postGLThreadRunnable(Ljava/lang/Runnable;)V
.line 99
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mGLContentView:Lcom/censivn/C3DEngine/core/GLContentView;
invoke-virtual {v0}, Lcom/censivn/C3DEngine/core/GLContentView;->onResume()V
.line 103
:cond_22
return-void
.end method
.method public removeListener(Lcom/censivn/C3DEngine/Engine$EngineListener;)V
.registers 3
.prologue
.line 190
monitor-enter p0
.line 191
:try_start_1
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mListeners:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
.line 192
monitor-exit p0
.line 193
return-void
.line 192
:catchall_8
move-exception v0
monitor-exit p0
:try_end_a
.catchall {:try_start_1 .. :try_end_a} :catchall_8
throw v0
.end method
.method public restoreEGL()V
.registers 5
.prologue
.line 114
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Thread;->getId()J
move-result-wide v0
sget-wide v2, Lcom/censivn/C3DEngine/core/Renderer;->THREADID:J
cmp-long v0, v0, v2
if-nez v0, :cond_18
.line 115
invoke-virtual {p0}, Lcom/censivn/C3DEngine/Engine;->getRenderMessager()Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;
move-result-object v0
iget-object v1, p0, Lcom/censivn/C3DEngine/Engine;->mEngineResumeRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Lcom/censivn/C3DEngine/coreapi/manager/RenderMessager;->postUIThreadRunnable(Ljava/lang/Runnable;)V
.line 119
:goto_17
return-void
.line 117
:cond_18
iget-object v0, p0, Lcom/censivn/C3DEngine/Engine;->mEngineResumeRunnable:Ljava/lang/Runnable;
invoke-interface {v0}, Ljava/lang/Runnable;->run()V
goto :goto_17
.end method
.method public setRootContainer(Lcom/censivn/C3DEngine/core/RootContainer;)V
.registers 2
.prologue
.line 247
iput-object p1, p0, Lcom/censivn/C3DEngine/Engine;->mContainer:Lcom/censivn/C3DEngine/core/RootContainer;
.line 248
return-void
.end method