@Override public void onDrawEye(Eye eye) { GLES20.glEnable(GLES20.GL_DEPTH_TEST); GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT); checkGLError("onDrawEye"); if (DEBUG_CARDBOARD) { Viewport viewport = eye.getViewport(); String e = "MONOCULAR"; if (eye.getType() == Eye.Type.RIGHT) e = "RIGHT"; else if (eye.getType() == Eye.Type.LEFT) e = "LEFT"; Log.d(TAG, "onDrawEye " + e + " viewport " + viewport.x + " " + viewport.y + " " + viewport.width + " " + viewport.height); } sketch.handleDraw(eye); }
@Override public void onDrawFrame(HeadTransform headTransform, Eye leftEye, Eye rightEye) { glThread = Thread.currentThread(); sketch.handleHeadTransform(headTransform); if (DEBUG_CARDBOARD) { Viewport vleft = leftEye.getViewport(); Log.d(TAG, "onDrawFrame left viewport " + vleft.x + " " + vleft.y + " " + vleft.width + " " + vleft.height); } sketch.handleDraw(leftEye.getType()); if (rightEye != null) { if (DEBUG_CARDBOARD) { Viewport vright = rightEye.getViewport(); Log.d(TAG, "onDrawFrame right viewport " + vright.x + " " + vright.y + " " + vright.width + " " + vright.height); } sketch.handleDraw(rightEye.getType()); } }
class RegisteredMethods { int count; Object[] objects; // Because the Method comes from the class being called, // it will be unique for most, if not all, objects. Method[] methods; Object[] emptyArgs = new Object[]{}; void handle() { handle(emptyArgs); } void handle(Object[] args) { for (int i = 0; i < count; i++) { try { methods[i].invoke(objects[i], args); } catch (Exception e) { // check for wrapped exception, get root exception Throwable t; if (e instanceof InvocationTargetException) { InvocationTargetException ite = (InvocationTargetException) e; t = ite.getCause(); } else { t = e; } // check for RuntimeException, and allow to bubble up if (t instanceof RuntimeException) { // re-throw exception
void leftDraw(Eye eye) { boolean monocular = eye.getType()==Eye.Type.MONOCULAR; g.beginDraw();
void rightDraw(Eye eye) { boolean monocular = eye.getType()==Eye.Type.MONOCULAR; if (frameCount == 0) { g.endDraw();