diff options
author | Michael Kolb <kolby@google.com> | 2013-01-29 20:51:56 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-01-29 20:51:57 +0000 |
commit | 9a19022b495447029c81fdcd83dc1a1c86d98b25 (patch) | |
tree | de3268b090958a305529d1f34051bea03bacde46 /src/com/android/camera/MosaicRenderer.java | |
parent | 72d510612f505d4d8439dab144d5c253346aebc2 (diff) | |
parent | 8872c23e739de38d74f04a8c852ebb5199c905f6 (diff) | |
download | android_packages_apps_Snap-9a19022b495447029c81fdcd83dc1a1c86d98b25.tar.gz android_packages_apps_Snap-9a19022b495447029c81fdcd83dc1a1c86d98b25.tar.bz2 android_packages_apps_Snap-9a19022b495447029c81fdcd83dc1a1c86d98b25.zip |
Merge "Move Camera Java/Native source into Gallery2" into gb-ub-photos-bryce
Diffstat (limited to 'src/com/android/camera/MosaicRenderer.java')
-rw-r--r-- | src/com/android/camera/MosaicRenderer.java | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/src/com/android/camera/MosaicRenderer.java b/src/com/android/camera/MosaicRenderer.java new file mode 100644 index 000000000..c50ca0d52 --- /dev/null +++ b/src/com/android/camera/MosaicRenderer.java @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.camera; + +/** + * The Java interface to JNI calls regarding mosaic preview rendering. + * + */ +public class MosaicRenderer +{ + static + { + System.loadLibrary("jni_mosaic"); + } + + /** + * Function to be called in onSurfaceCreated() to initialize + * the GL context, load and link the shaders and create the + * program. Returns a texture ID to be used for SurfaceTexture. + * + * @return textureID the texture ID of the newly generated texture to + * be assigned to the SurfaceTexture object. + */ + public static native int init(); + + /** + * Pass the drawing surface's width and height to initialize the + * renderer viewports and FBO dimensions. + * + * @param width width of the drawing surface in pixels. + * @param height height of the drawing surface in pixels. + * @param isLandscapeOrientation is the orientation of the activity layout in landscape. + */ + public static native void reset(int width, int height, boolean isLandscapeOrientation); + + /** + * Calling this function will render the SurfaceTexture to a new 2D texture + * using the provided STMatrix. + * + * @param stMatrix texture coordinate transform matrix obtained from the + * Surface texture + */ + public static native void preprocess(float[] stMatrix); + + /** + * This function calls glReadPixels to transfer both the low-res and high-res + * data from the GPU memory to the CPU memory for further processing by the + * mosaicing library. + */ + public static native void transferGPUtoCPU(); + + /** + * Function to be called in onDrawFrame() to update the screen with + * the new frame data. + */ + public static native void step(); + + /** + * Call this function when a new low-res frame has been processed by + * the mosaicing library. This will tell the renderer library to + * update its texture and warping transformation. Any calls to step() + * after this call will use the new image frame and transformation data. + */ + public static native void updateMatrix(); + + /** + * This function allows toggling between showing the input image data + * (without applying any warp) and the warped image data. For running + * the renderer as a viewfinder, we set the flag to false. To see the + * preview mosaic, we set the flag to true. + * + * @param flag boolean flag to set the warping to true or false. + */ + public static native void setWarping(boolean flag); +} |