diff --git a/app/src/main/java/com/googlecreativelab/drawar/DrawAR.java b/app/src/main/java/com/googlecreativelab/drawar/DrawAR.java index b317e09..0e38d72 100755 --- a/app/src/main/java/com/googlecreativelab/drawar/DrawAR.java +++ b/app/src/main/java/com/googlecreativelab/drawar/DrawAR.java @@ -388,6 +388,8 @@ public void onWindowFocusChanged(boolean hasFocus) { */ @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { + if (mSession == null) return; + GLES20.glClearColor(0.1f, 0.1f, 0.1f, 1.0f); // Create the texture and pass it to ARCore session to be filled during update(). @@ -527,7 +529,7 @@ public void onDrawFrame(GL10 gl) { mBackgroundRenderer.draw(mFrame); // Draw Lines - if (mFrame.getCamera().getTrackingState() == TrackingState.TRACKING) { + if (mFrame != null && mFrame.getCamera().getTrackingState() == TrackingState.TRACKING) { mLineShaderRenderer.draw(viewmtx, projmtx, mScreenWidth, mScreenHeight, AppSettings.getNearClip(), AppSettings.getFarClip()); } } diff --git a/app/src/main/java/com/googlecreativelab/drawar/rendering/BackgroundRenderer.java b/app/src/main/java/com/googlecreativelab/drawar/rendering/BackgroundRenderer.java index a65d4bc..e7a9a7f 100755 --- a/app/src/main/java/com/googlecreativelab/drawar/rendering/BackgroundRenderer.java +++ b/app/src/main/java/com/googlecreativelab/drawar/rendering/BackgroundRenderer.java @@ -129,6 +129,8 @@ public void createOnGlThread(Context context) { * @param frame The last {@code Frame} returned by {@link Session#update()}. */ public void draw(Frame frame) { + if (frame == null) return; + // If display rotation changed (also includes view size change), we need to re-query the uv // coordinates for the screen rect, as they may have changed as well. if (frame.hasDisplayGeometryChanged()) {