diff options
author | Jay Wang <jaywang@codeaurora.org> | 2015-01-13 11:21:58 -0800 |
---|---|---|
committer | Jay Wang <jaywang@codeaurora.org> | 2015-01-13 11:21:58 -0800 |
commit | 71656de68587521161596af5db9c688be3fba40a (patch) | |
tree | c754f237aa651c0ef28600df494a28054e498c52 /jni/mosaic_renderer_jni.cpp | |
parent | 47890d45e3fe25eac6186ee946db6fcaa5354b3f (diff) | |
download | android_packages_apps_Snap-71656de68587521161596af5db9c688be3fba40a.tar.gz android_packages_apps_Snap-71656de68587521161596af5db9c688be3fba40a.tar.bz2 android_packages_apps_Snap-71656de68587521161596af5db9c688be3fba40a.zip |
Revert "SnapdragonCamera: Add FullScreen Preview when in Panoramic shoot"
This reverts commit 8c1e4ff06d80d69792170f0cab8dea2f490cb7fa.
Diffstat (limited to 'jni/mosaic_renderer_jni.cpp')
-rw-r--r-- | jni/mosaic_renderer_jni.cpp | 83 |
1 files changed, 22 insertions, 61 deletions
diff --git a/jni/mosaic_renderer_jni.cpp b/jni/mosaic_renderer_jni.cpp index f35599375..36f8064c7 100644 --- a/jni/mosaic_renderer_jni.cpp +++ b/jni/mosaic_renderer_jni.cpp @@ -27,7 +27,6 @@ #include "mosaic_renderer/SurfaceTextureRenderer.h" #include "mosaic_renderer/YVURenderer.h" - #include "mosaic/Log.h" #define LOG_TAG "MosaicRenderer" @@ -37,7 +36,6 @@ GLuint gSurfaceTextureID[1]; bool gWarpImage = true; -bool gPreviewBackgroundImage = true; // Low-Res input image frame in YUVA format for preview rendering and processing // and high-res YUVA input image for processing. @@ -89,9 +87,6 @@ FrameBuffer gBuffer[2]; // Shader to warp and render the preview FBO to the screen WarpRenderer gPreview; -// Shader to render the fullscreen preview background FBO to the screen -WarpRenderer gPreviewBackground; - // Index of the gBuffer FBO gWarper1 is going to write into int gCurrentFBOIndex = 0; @@ -145,12 +140,6 @@ double g_dAffinetransPan[16]; GLfloat g_dTranslationToFBOCenterGL[16]; double g_dTranslationToFBOCenter[16]; - - - - - - // GL 4x4 Identity transformation GLfloat g_dAffinetransIdentGL[] = { 1., 0., 0., 0., @@ -326,8 +315,8 @@ void UpdateWarpTransformation(float *trs) // Alignment is done based on low-res data. // To render the preview mosaic, the translation of the high-res mosaic is estimated to // H2L_FACTOR x low-res-based tranlation. - //gThisH1t[2] *= H2L_FACTOR; - //gThisH1t[5] *= H2L_FACTOR; + gThisH1t[2] *= H2L_FACTOR; + gThisH1t[5] *= H2L_FACTOR; db_Identity3x3(T); T[2] = -gCenterOffsetX; @@ -379,7 +368,6 @@ void UpdateWarpTransformation(float *trs) db_Identity3x3(H); H[2] = gPanOffset; - // Hp = inv(Km) * H * Km db_Identity3x3(Htemp1); db_Multiply3x3_3x3(Htemp1, H, gKm); @@ -409,13 +397,13 @@ void AllocateTextureMemory(int widthHR, int heightHR, int widthLR, int heightLR) gPreviewImageHeight[HR], 4); sem_post(&gPreviewImage_semaphore); - gPreviewFBOWidth = PREVIEW_FBO_WIDTH_SCALE * gPreviewImageWidth[LR]; - gPreviewFBOHeight = PREVIEW_FBO_HEIGHT_SCALE * gPreviewImageHeight[LR]; + gPreviewFBOWidth = PREVIEW_FBO_WIDTH_SCALE * gPreviewImageWidth[HR]; + gPreviewFBOHeight = PREVIEW_FBO_HEIGHT_SCALE * gPreviewImageHeight[HR]; // The origin is such that the current frame will sit with its center // at the center of the previewFBO - gCenterOffsetX = (gPreviewFBOWidth / 2 - gPreviewImageWidth[LR] / 2); - gCenterOffsetY = (gPreviewFBOHeight / 2 - gPreviewImageHeight[LR] / 2); + gCenterOffsetX = (gPreviewFBOWidth / 2 - gPreviewImageWidth[HR] / 2); + gCenterOffsetY = (gPreviewFBOHeight / 2 - gPreviewImageHeight[HR] / 2); gPanOffset = 0.0f; @@ -424,8 +412,8 @@ void AllocateTextureMemory(int widthHR, int heightHR, int widthLR, int heightLR) gPanViewfinder = true; - int w = gPreviewImageWidth[LR]; - int h = gPreviewImageHeight[LR]; + int w = gPreviewImageWidth[HR]; + int h = gPreviewImageHeight[HR]; int wm = gPreviewFBOWidth; int hm = gPreviewFBOHeight; @@ -505,8 +493,6 @@ extern "C" JNIEnv * env, jobject obj); JNIEXPORT void JNICALL Java_com_android_camera_MosaicRenderer_setWarping( JNIEnv * env, jobject obj, jboolean flag); - JNIEXPORT void JNICALL Java_com_android_camera_MosaicRenderer_setPreviewBackground( - JNIEnv * env, jobject obj, jboolean flag); }; @@ -538,7 +524,6 @@ JNIEXPORT jint JNICALL Java_com_android_camera_MosaicRenderer_init( gBufferInput[HR].InitializeGLContext(); gBufferInputYVU[LR].InitializeGLContext(); gBufferInputYVU[HR].InitializeGLContext(); - gPreviewBackground.InitializeGLProgram(); glBindFramebuffer(GL_FRAMEBUFFER, 0); @@ -563,16 +548,13 @@ void calculateUILayoutScaling(int width, int height, bool isLandscape) { // // Scale the preview FBO's height to the height of view and // maintain the aspect ratio of the current frame on the screen. - gUILayoutScalingY = PREVIEW_FBO_HEIGHT_SCALE; // Note that OpenGL scales a texture to view's width and height automatically. // The "width / height" inverts the scaling, so as to maintain the aspect ratio // of the current frame. - gUILayoutScalingX = ((float) gPreviewFBOWidth / gPreviewFBOHeight) / ((float) width / height) * PREVIEW_FBO_HEIGHT_SCALE; - } else { // ___ // __________ | | ______ @@ -591,10 +573,8 @@ void calculateUILayoutScaling(int width, int height, bool isLandscape) { // Note that OpenGL scales a texture to view's width and height automatically. // The "height / width" inverts the scaling, so as to maintain the aspect ratio // of the current frame. - gUILayoutScalingX = ((float) gPreviewFBOHeight / gPreviewFBOWidth) / ((float) width / height) * PREVIEW_FBO_WIDTH_SCALE; - } } @@ -602,7 +582,7 @@ JNIEXPORT void JNICALL Java_com_android_camera_MosaicRenderer_reset( JNIEnv * env, jobject obj, jint width, jint height, jboolean isLandscapeOrientation) { gIsLandscapeOrientation = isLandscapeOrientation; - calculateUILayoutScaling(gPreviewFBOWidth, gPreviewFBOHeight, gIsLandscapeOrientation); + calculateUILayoutScaling(width, height, gIsLandscapeOrientation); gBuffer[0].Init(gPreviewFBOWidth, gPreviewFBOHeight, GL_RGBA); gBuffer[1].Init(gPreviewFBOWidth, gPreviewFBOHeight, GL_RGBA); @@ -656,23 +636,20 @@ JNIEXPORT void JNICALL Java_com_android_camera_MosaicRenderer_reset( gWarper1.SetInputTextureName(gBuffer[1 - gCurrentFBOIndex].GetTextureName()); gWarper1.SetInputTextureType(GL_TEXTURE_2D); - // gBufferInput[LR] --> gWarper2 --> gBuffer[gCurrentFBOIndex] + // gBufferInput[HR] --> gWarper2 --> gBuffer[gCurrentFBOIndex] gWarper2.SetupGraphics(&gBuffer[gCurrentFBOIndex]); // gWarp2's destination buffer is the same to gWarp1's. No need to clear it // again. - gWarper2.SetViewportMatrix(gPreviewImageWidth[LR], - gPreviewImageHeight[LR], gBuffer[gCurrentFBOIndex].GetWidth(), + gWarper2.SetViewportMatrix(gPreviewImageWidth[HR], + gPreviewImageHeight[HR], gBuffer[gCurrentFBOIndex].GetWidth(), gBuffer[gCurrentFBOIndex].GetHeight()); gWarper2.SetScalingMatrix(1.0f, 1.0f); - gWarper2.SetInputTextureName(gBufferInput[LR].GetTextureName()); + gWarper2.SetInputTextureName(gBufferInput[HR].GetTextureName()); gWarper2.SetInputTextureType(GL_TEXTURE_2D); - int xoffset = (width/2 - gPreviewFBOWidth/2); - int yoffset = (height/2 - gPreviewFBOHeight/2); - // gBuffer[gCurrentFBOIndex] --> gPreview --> Screen - gPreview.SetupGraphics(xoffset,yoffset,gPreviewFBOWidth, gPreviewFBOHeight); + gPreview.SetupGraphics(width, height); gPreview.SetViewportMatrix(1, 1, 1, 1); // Scale the previewFBO so that the viewfinder window fills the layout height @@ -680,13 +657,6 @@ JNIEXPORT void JNICALL Java_com_android_camera_MosaicRenderer_reset( gPreview.SetScalingMatrix(gUILayoutScalingX, -1.0f * gUILayoutScalingY); gPreview.SetInputTextureName(gBuffer[gCurrentFBOIndex].GetTextureName()); gPreview.SetInputTextureType(GL_TEXTURE_2D); - - // gBufferInput[HR] --> gPreviewBackground --> screen - gPreviewBackground.SetupGraphics(0,0,width, height); - gPreviewBackground.SetViewportMatrix(1,1,1,1); - gPreviewBackground.SetScalingMatrix(1.0f, -1.0f); - gPreviewBackground.SetInputTextureName(gBufferInput[HR].GetTextureName()); - gPreviewBackground.SetInputTextureType(GL_TEXTURE_2D); } JNIEXPORT void JNICALL Java_com_android_camera_MosaicRenderer_preprocess( @@ -761,18 +731,15 @@ JNIEXPORT void JNICALL Java_com_android_camera_MosaicRenderer_step( { if(!gWarpImage) // ViewFinder { - if (gIsLandscapeOrientation) { - gPreviewBackground.DrawTexture(g_dAffinetransIdentGL); - } else { - gPreviewBackground.DrawTexture(g_dAffinetransRotation90GL); - } - } - else if(gPreviewBackgroundImage) - { + gWarper2.SetupGraphics(&gBuffer[gCurrentFBOIndex]); + gPreview.SetInputTextureName(gBuffer[gCurrentFBOIndex].GetTextureName()); + + gWarper2.DrawTexture(g_dTranslationToFBOCenterGL); + if (gIsLandscapeOrientation) { - gPreviewBackground.DrawTexture(g_dAffinetransIdentGL); + gPreview.DrawTexture(g_dAffinetransIdentGL); } else { - gPreviewBackground.DrawTexture(g_dAffinetransRotation90GL); + gPreview.DrawTexture(g_dAffinetransRotation90GL); } } else @@ -807,7 +774,7 @@ JNIEXPORT void JNICALL Java_com_android_camera_MosaicRenderer_setWarping( gWarper1.Clear(0.0, 0.0, 0.0, 1.0); // Clear the screen to black. gPreview.Clear(0.0, 0.0, 0.0, 1.0); - gPreviewBackground.Clear(0.0, 0.0, 0.0, 1.0); + gLastTx = 0.0f; gPanOffset = 0.0f; gPanViewfinder = true; @@ -835,9 +802,3 @@ JNIEXPORT void JNICALL Java_com_android_camera_MosaicRenderer_updateMatrix( g_dTranslationToFBOCenterGL[i] = g_dTranslationToFBOCenter[i]; } } - -JNIEXPORT void JNICALL Java_com_android_camera_MosaicRenderer_setPreviewBackground( - JNIEnv * env, jobject obj, jboolean flag) -{ - gPreviewBackgroundImage = (bool)flag; -} |