public void onCreate(ViewGroup groupView) { log.pushTimer(this, "start"); // Create OpenCV part: if (RUN_OPENCV) { opencv = new OpenCVInterface(this, this.mainActivity); JavaCameraView cameraView = new JavaCameraView(mainActivity, JavaCameraView.CAMERA_ID_ANY); cameraView.setLayoutParams( new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); cameraView.enableFpsMeter(); cameraView.setVisibility(JavaCameraView.GONE); groupView.addView(cameraView); opencv.onCreate(cameraView); } // Create OpenGL render part: if (RUN_RENDERER) { render = new RenderInterface(this); GLSurfaceView renderView = new GLSurfaceView(mainActivity.getApplicationContext()); renderView.setLayoutParams( new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); groupView.addView(renderView); render.onCreate(renderView); } // Set layout things: mainActivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); log.log(TAG, "Framework created in " + log.popTimer(this).time + "ms."); }
/** * Rendering of a single frame. Here we update and render the detected trackable list. * * @param gl Unused context. */ @Override public void onDrawFrame(GL10 gl) { if (MainInterface.DEBUG_FRAME_LOGGING) log.pushTimer(this, "opengl frame"); // Clear: GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT); // If new markerlist, get: if (mainInterface.getListUpdateStatus()) { this.toRender = mainInterface.getList(); if (toRender == null) { log.log(TAG, "Error getting list!"); toRender = new ArrayList<Trackable>(); } else log.debug(TAG, "Updated list – found " + this.toRender.size() + " " + "trackables."); } // ------------------------ RENDER ------------------------ if (!toRender.isEmpty()) { for (Trackable trackable : toRender) { // Reset model matrix to identity Matrix.setIdentityM(mModelMatrix, 0); Matrix.multiplyMM(mModelMatrix, 0, trackable.getTRANSLATION(), 0, mModelMatrix, 0); drawObject(trackable.getFloatbuffer()); } } if (MainInterface.DEBUG_FRAME_LOGGING) { log.debug(TAG, "OpenGL rendered frame in " + log.popTimer(this).time + "ms."); } }