@Override public void onDetachedFromWindow() { super.onDetachedFromWindow(); try { mRendererDelegate.mRenderer.onRenderSurfaceDestroyed(null); } catch (NullPointerException ignored) { // Don't care, activity is terminating. } }
@Override public void onPause() { super.onPause(); if (mRendererDelegate != null) { mRendererDelegate.mRenderer.onPause(); } }
@Override public void onResume() { super.onResume(); if (mRendererDelegate != null) { mRendererDelegate.mRenderer.onResume(); } }
@Override protected void onAttachedToWindow() { super.onAttachedToWindow(); if (!isInEditMode()) { onResume(); } }
@Override protected void onVisibilityChanged(View changedView, int visibility) { if (visibility == View.GONE || visibility == View.INVISIBLE) { onPause(); } else { onResume(); } super.onVisibilityChanged(changedView, visibility); }
protected void setRenderer(VRRenderer renderer) { mSurfaceView.setRenderer(renderer); }
@Override public int getRenderMode() { if (mRendererDelegate != null) { return super.getRenderMode(); } else { return mRenderMode; } }
@Override public void setRenderMode(int mode) { mRenderMode = mode; if (mRendererDelegate != null) { super.setRenderMode(mRenderMode); } }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mSurfaceView = new VRSurfaceView(this); addContentView(mSurfaceView, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT)); int uiFlags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar | View.SYSTEM_UI_FLAG_FULLSCREEN; // hide status bar if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) { uiFlags |= View.SYSTEM_UI_FLAG_IMMERSIVE; } mSurfaceView.setSystemUiVisibility(uiFlags); setCardboardView(mSurfaceView); }
@Override protected void onAttachedToWindow() { super.onAttachedToWindow(); onResume(); }
@Override protected void onVisibilityChanged(View changedView, int visibility) { if (visibility == View.GONE || visibility == View.INVISIBLE) { onPause(); } else { onResume(); } super.onVisibilityChanged(changedView, visibility); }
@Override public void setSurfaceRenderer(ISurfaceRenderer renderer) throws IllegalStateException { if (mRendererDelegate != null) { throw new IllegalStateException("A renderer has already been set for this view."); } initialize(); final RendererDelegate delegate = new VRSurfaceView.RendererDelegate(renderer, this); super.setRenderer(delegate); mRendererDelegate = delegate; // Done to make sure we dont publish a reference before its safe. // Render mode cant be set until the GL thread exists setRenderMode(mRenderMode); onPause(); // We want to halt the surface view until we are ready }
@Override public void onPause() { super.onPause(); renderer.onPause(); }
@Override public void onDetachedFromWindow() { super.onDetachedFromWindow(); renderer.onRenderSurfaceDestroyed(null); }
@Override public void onResume() { super.onResume(); renderer.onResume(); }