summaryrefslogtreecommitdiffstats
path: root/jni
diff options
context:
space:
mode:
authorJay Wang <jaywang@codeaurora.org>2015-01-13 11:21:58 -0800
committerJay Wang <jaywang@codeaurora.org>2015-01-13 11:21:58 -0800
commit71656de68587521161596af5db9c688be3fba40a (patch)
treec754f237aa651c0ef28600df494a28054e498c52 /jni
parent47890d45e3fe25eac6186ee946db6fcaa5354b3f (diff)
downloadandroid_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')
-rwxr-xr-x[-rw-r--r--]jni/feature_mos/src/mosaic_renderer/Renderer.cpp10
-rwxr-xr-x[-rw-r--r--]jni/feature_mos/src/mosaic_renderer/Renderer.h4
-rwxr-xr-x[-rw-r--r--]jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp2
-rwxr-xr-x[-rw-r--r--]jni/feature_mos/src/mosaic_renderer/WarpRenderer.cpp2
-rwxr-xr-x[-rw-r--r--]jni/feature_mos/src/mosaic_renderer/YVURenderer.cpp2
-rw-r--r--jni/mosaic_renderer_jni.cpp83
6 files changed, 30 insertions, 73 deletions
diff --git a/jni/feature_mos/src/mosaic_renderer/Renderer.cpp b/jni/feature_mos/src/mosaic_renderer/Renderer.cpp
index 8d0632402..b9938eb6b 100644..100755
--- a/jni/feature_mos/src/mosaic_renderer/Renderer.cpp
+++ b/jni/feature_mos/src/mosaic_renderer/Renderer.cpp
@@ -111,8 +111,8 @@ GLuint Renderer::createProgram(const char* pVertexSource, const char* pFragmentS
}
// Set this renderer to use the default frame-buffer (screen) and
-// set the viewport size to be the given x, y, width and height (pixels).
-bool Renderer::SetupGraphics(int x, int y, int width, int height)
+// set the viewport size to be the given width and height (pixels).
+bool Renderer::SetupGraphics(int width, int height)
{
bool succeeded = false;
do {
@@ -131,10 +131,8 @@ bool Renderer::SetupGraphics(int x, int y, int width, int height)
mFrameBuffer = NULL;
mSurfaceWidth = width;
mSurfaceHeight = height;
- mSurfaceXOffset = x;
- mSurfaceYOffset = y;
- glViewport(mSurfaceXOffset, mSurfaceYOffset, mSurfaceWidth, mSurfaceHeight);
+ glViewport(0, 0, mSurfaceWidth, mSurfaceHeight);
if (!checkGlError("glViewport")) break;
succeeded = true;
} while (false);
@@ -178,7 +176,7 @@ bool Renderer::Clear(float r, float g, float b, float a)
bool succeeded = false;
do {
bool rt = (mFrameBuffer == NULL)?
- SetupGraphics(mSurfaceXOffset, mSurfaceYOffset, mSurfaceWidth, mSurfaceHeight) :
+ SetupGraphics(mSurfaceWidth, mSurfaceHeight) :
SetupGraphics(mFrameBuffer);
if(!rt)
diff --git a/jni/feature_mos/src/mosaic_renderer/Renderer.h b/jni/feature_mos/src/mosaic_renderer/Renderer.h
index ffb9cbd25..a43e8028e 100644..100755
--- a/jni/feature_mos/src/mosaic_renderer/Renderer.h
+++ b/jni/feature_mos/src/mosaic_renderer/Renderer.h
@@ -18,7 +18,7 @@ class Renderer {
virtual bool InitializeGLProgram() = 0;
bool SetupGraphics(FrameBuffer* buffer);
- bool SetupGraphics(int x, int y, int width, int height);
+ bool SetupGraphics(int width, int height);
bool Clear(float r, float g, float b, float a);
@@ -59,8 +59,6 @@ class Renderer {
int mSurfaceWidth; // Width of target surface.
int mSurfaceHeight; // Height of target surface.
- int mSurfaceXOffset; // X Offset target surface.
- int mSurfaceYOffset; // Y Offset of target surface.
FrameBuffer *mFrameBuffer;
};
diff --git a/jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp b/jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp
index 4725463f2..88aac3626 100644..100755
--- a/jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp
+++ b/jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp
@@ -119,7 +119,7 @@ bool SurfaceTextureRenderer::DrawTexture(GLfloat *affine)
bool succeeded = false;
do {
bool rt = (mFrameBuffer == NULL)?
- SetupGraphics(mSurfaceXOffset, mSurfaceYOffset, mSurfaceWidth, mSurfaceHeight) :
+ SetupGraphics(mSurfaceWidth, mSurfaceHeight) :
SetupGraphics(mFrameBuffer);
if(!rt)
diff --git a/jni/feature_mos/src/mosaic_renderer/WarpRenderer.cpp b/jni/feature_mos/src/mosaic_renderer/WarpRenderer.cpp
index c030ce25e..af6779a3f 100644..100755
--- a/jni/feature_mos/src/mosaic_renderer/WarpRenderer.cpp
+++ b/jni/feature_mos/src/mosaic_renderer/WarpRenderer.cpp
@@ -110,7 +110,7 @@ bool WarpRenderer::DrawTexture(GLfloat *affine)
bool succeeded = false;
do {
bool rt = (mFrameBuffer == NULL)?
- SetupGraphics(mSurfaceXOffset, mSurfaceYOffset, mSurfaceWidth, mSurfaceHeight) :
+ SetupGraphics(mSurfaceWidth, mSurfaceHeight) :
SetupGraphics(mFrameBuffer);
if(!rt)
diff --git a/jni/feature_mos/src/mosaic_renderer/YVURenderer.cpp b/jni/feature_mos/src/mosaic_renderer/YVURenderer.cpp
index b30e6f7b6..f7dcf6f61 100644..100755
--- a/jni/feature_mos/src/mosaic_renderer/YVURenderer.cpp
+++ b/jni/feature_mos/src/mosaic_renderer/YVURenderer.cpp
@@ -79,7 +79,7 @@ bool YVURenderer::DrawTexture()
bool succeeded = false;
do {
bool rt = (mFrameBuffer == NULL)?
- SetupGraphics(mSurfaceXOffset, mSurfaceYOffset, mSurfaceWidth, mSurfaceHeight) :
+ SetupGraphics(mSurfaceWidth, mSurfaceHeight) :
SetupGraphics(mFrameBuffer);
if(!rt)
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;
-}