summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jason Sams <jsams@google.com> 2012-07-31 15:30:28 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2012-07-31 15:30:29 -0700
commita9fa7b25ddefc3ba4cbf30ce05453d5e3459dbe1 (patch)
treed2d14dc806f49928180505d427f82c34be6d93d2
parent22a7b9de5e7037edfa2b9df9f33974ea0a8e718a (diff)
parent41bd3508e7888b898027cb8ebfddd66c9abbfd1a (diff)
Merge "save 2ms replace div with mul." into jb-mr1-dev
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette.rsh12
1 files changed, 7 insertions, 5 deletions
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette.rsh b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette.rsh
index 77ead9c915b1..94295641e98c 100644
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette.rsh
+++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/vignette.rsh
@@ -17,6 +17,7 @@
static float2 scale;
static float2 center, dimensions;
static float range, inv_max_dist, shade, slope;
+static float2 overDimensions;
void init_vignette(uint32_t dim_x, uint32_t dim_y, float center_x, float center_y,
float desired_scale, float desired_shade, float desired_slope) {
@@ -43,20 +44,21 @@ void init_vignette(uint32_t dim_x, uint32_t dim_y, float center_x, float center_
range = 1.3 - 0.7*sqrt(desired_scale);
shade = desired_shade;
slope = desired_slope;
+
+ overDimensions = ((float2)1.f) / dimensions;
}
void root(const uchar4 *in, uchar4 *out, uint32_t x, uint32_t y) {
// Convert x and y to floating point coordinates with center as origin
- const float4 fin = rsUnpackColor8888(*in);
- float2 coord;
- coord.x = (float)x / dimensions.x;
- coord.y = (float)y / dimensions.y;
+ const float4 fin = convert_float4(*in);
+ float2 coord = {(float)x, (float)y};
+ coord *= overDimensions;
coord -= center;
const float dist = length(scale * coord);
const float lumen = shade / (1.0 + exp((dist * inv_max_dist - range) * slope)) + (1.0 - shade);
float4 fout;
fout.rgb = fin.rgb * lumen;
fout.w = fin.w;
- *out = rsPackColorTo8888(fout);
+ *out = convert_uchar4(fout);
}