diff options
author | John Hoford <hoford@google.com> | 2012-10-23 15:17:12 -0700 |
---|---|---|
committer | John Hoford <hoford@google.com> | 2012-10-23 15:55:48 -0700 |
commit | 2dda1f980adc33d6bf9057a1a486920d2a2379df (patch) | |
tree | b88371ee58e6f1593f8b5123758d3d6f3f8f8c93 /jni/filters/tinyplanet.cc | |
parent | a6f29e1b7ac87c930b6dbbd1f6e73fefa08bd8fa (diff) | |
download | android_packages_apps_Snap-2dda1f980adc33d6bf9057a1a486920d2a2379df.tar.gz android_packages_apps_Snap-2dda1f980adc33d6bf9057a1a486920d2a2379df.tar.bz2 android_packages_apps_Snap-2dda1f980adc33d6bf9057a1a486920d2a2379df.zip |
add support for black and white filters, add rotation API to tiny planet
bug:7386370
bug:7389189
Change-Id: I1720893000c39edf28a356fb7b56634f004ef120
Diffstat (limited to 'jni/filters/tinyplanet.cc')
-rw-r--r-- | jni/filters/tinyplanet.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/jni/filters/tinyplanet.cc b/jni/filters/tinyplanet.cc index bc12c32f1..a40470d34 100644 --- a/jni/filters/tinyplanet.cc +++ b/jni/filters/tinyplanet.cc @@ -87,7 +87,7 @@ inline float wrap(float value, float dimension) { return value - (dimension * floor(value/dimension)); } -void StereographicProjection(float scale, unsigned char* input_image, +void StereographicProjection(float scale, float angle, unsigned char* input_image, int input_width, int input_height, unsigned char* output_image, int output_width, int output_height) { @@ -106,7 +106,8 @@ void StereographicProjection(float scale, unsigned char* input_image, // Convert to polar float r = hypotf(xf, yf); - float theta = atan2(yf, xf); + float theta = angle+atan2(yf, xf); + if (theta>PI_F) theta-=2*PI_F; // Project onto plane float phi = 2 * atan(1 / r); @@ -127,7 +128,7 @@ void StereographicProjection(float scale, unsigned char* input_image, } -void JNIFUNCF(ImageFilterTinyPlanet, nativeApplyFilter, jobject bitmap_in, jint width, jint height, jobject bitmap_out, jint output_size, jfloat scale) +void JNIFUNCF(ImageFilterTinyPlanet, nativeApplyFilter, jobject bitmap_in, jint width, jint height, jobject bitmap_out, jint output_size, jfloat scale,jfloat angle) { char* source = 0; char* destination = 0; @@ -136,7 +137,7 @@ void JNIFUNCF(ImageFilterTinyPlanet, nativeApplyFilter, jobject bitmap_in, jint unsigned char * rgb_in = (unsigned char * )source; unsigned char * rgb_out = (unsigned char * )destination; - StereographicProjection(scale, rgb_in, width, height, rgb_out, output_size, output_size); + StereographicProjection(scale,angle, rgb_in, width, height, rgb_out, output_size, output_size); AndroidBitmap_unlockPixels(env, bitmap_in); AndroidBitmap_unlockPixels(env, bitmap_out); } |