summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/filters/saturation.rs
diff options
context:
space:
mode:
authorSascha Haeberling <haeberling@google.com>2013-08-06 11:43:02 -0700
committerSascha Haeberling <haeberling@google.com>2013-08-06 11:43:02 -0700
commit8e963a5a6016d246184ed65906f9d103e92b17e2 (patch)
tree02eb244ea4a20d9aa8e43916a40b876be8935d11 /src/com/android/gallery3d/filtershow/filters/saturation.rs
parent4fc90b07dcf316c7ce6c5313af8202e84bc85603 (diff)
downloadandroid_packages_apps_Snap-8e963a5a6016d246184ed65906f9d103e92b17e2.tar.gz
android_packages_apps_Snap-8e963a5a6016d246184ed65906f9d103e92b17e2.tar.bz2
android_packages_apps_Snap-8e963a5a6016d246184ed65906f9d103e92b17e2.zip
This removes all non-Camera stuff from Camera2.
Note: Camera2 is a clone of Gallery2 right now. Note 2: I will bring .mk files back later. Change-Id: Ida958654296f5ebaacb6bb0ff59d52a7c37ce6fc
Diffstat (limited to 'src/com/android/gallery3d/filtershow/filters/saturation.rs')
-rw-r--r--src/com/android/gallery3d/filtershow/filters/saturation.rs161
1 files changed, 0 insertions, 161 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/saturation.rs b/src/com/android/gallery3d/filtershow/filters/saturation.rs
deleted file mode 100644
index 5210e34a3..000000000
--- a/src/com/android/gallery3d/filtershow/filters/saturation.rs
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2012 Unknown
- *
- * 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.
- */
-
-#pragma version(1)
-#pragma rs java_package_name(com.android.gallery3d.filtershow.filters)
-
-#define MAX_CHANELS 7
-#define MAX_HUE 4096
-static const int ABITS = 4;
-static const int HSCALE = 256;
-static const int k1=255 << ABITS;
-static const int k2=HSCALE << ABITS;
-
-static const float Rf = 0.2999f;
-static const float Gf = 0.587f;
-static const float Bf = 0.114f;
-
-rs_matrix3x3 colorMatrix_min;
-rs_matrix3x3 colorMatrix_max;
-
-int mNumberOfLines;
-// input data
-int saturation[MAX_CHANELS];
-float sat[MAX_CHANELS];
-
-float satLut[MAX_HUE];
-// generated data
-
-
-void setupGradParams() {
-
- int master = saturation[0];
- int max = master+saturation[1];
- int min = max;
-
- // calculate the minimum and maximum saturation
- for (int i = 1; i < MAX_CHANELS; i++) {
- int v = master+saturation[i];
- if (max < v) {
- max = v;
- }
- else if (min > v) {
- min = v;
- }
- }
- // generate a lookup table for all hue 0 to 4K which goes from 0 to 1 0=min sat 1 = max sat
- min = min - 1;
- for(int i = 0; i < MAX_HUE ; i++) {
- float p = i * 6 / (float)MAX_HUE;
- int ip = ((int)(p + .5f)) % 6;
- int v = master + saturation[ip + 1];
- satLut[i] = (v - min)/(float)(max - min);
- }
-
- float S = 1 + max / 100.f;
- float MS = 1 - S;
- float Rt = Rf * MS;
- float Gt = Gf * MS;
- float Bt = Bf * MS;
- float b = 1.f;
-
- // Generate 2 color matrix one at min sat and one at max
- rsMatrixSet(&colorMatrix_max, 0, 0, b * (Rt + S));
- rsMatrixSet(&colorMatrix_max, 1, 0, b * Gt);
- rsMatrixSet(&colorMatrix_max, 2, 0, b * Bt);
- rsMatrixSet(&colorMatrix_max, 0, 1, b * Rt);
- rsMatrixSet(&colorMatrix_max, 1, 1, b * (Gt + S));
- rsMatrixSet(&colorMatrix_max, 2, 1, b * Bt);
- rsMatrixSet(&colorMatrix_max, 0, 2, b * Rt);
- rsMatrixSet(&colorMatrix_max, 1, 2, b * Gt);
- rsMatrixSet(&colorMatrix_max, 2, 2, b * (Bt + S));
-
- S = 1 + min / 100.f;
- MS = 1-S;
- Rt = Rf * MS;
- Gt = Gf * MS;
- Bt = Bf * MS;
- b = 1;
-
- rsMatrixSet(&colorMatrix_min, 0, 0, b * (Rt + S));
- rsMatrixSet(&colorMatrix_min, 1, 0, b * Gt);
- rsMatrixSet(&colorMatrix_min, 2, 0, b * Bt);
- rsMatrixSet(&colorMatrix_min, 0, 1, b * Rt);
- rsMatrixSet(&colorMatrix_min, 1, 1, b * (Gt + S));
- rsMatrixSet(&colorMatrix_min, 2, 1, b * Bt);
- rsMatrixSet(&colorMatrix_min, 0, 2, b * Rt);
- rsMatrixSet(&colorMatrix_min, 1, 2, b * Gt);
- rsMatrixSet(&colorMatrix_min, 2, 2, b * (Bt + S));
-}
-
-static ushort rgb2hue( uchar4 rgb)
-{
- int iMin,iMax,chroma;
-
- int ri = rgb.r;
- int gi = rgb.g;
- int bi = rgb.b;
- short rv,rs,rh;
-
- if (ri > gi) {
- iMax = max (ri, bi);
- iMin = min (gi, bi);
- } else {
- iMax = max (gi, bi);
- iMin = min (ri, bi);
- }
-
- rv = (short) (iMax << ABITS);
-
- if (rv == 0) {
- return 0;
- }
-
- chroma = iMax - iMin;
- rs = (short) ((k1 * chroma) / iMax);
- if (rs == 0) {
- return 0;
- }
-
- if ( ri == iMax ) {
- rh = (short) ((k2 * (6 * chroma + gi - bi))/(6 * chroma));
- if (rh >= k2) {
- rh -= k2;
- }
- return rh;
- }
-
- if (gi == iMax) {
- return(short) ((k2 * (2 * chroma + bi - ri)) / (6 * chroma));
- }
-
- return (short) ((k2 * (4 * chroma + ri - gi)) / (6 * chroma));
-}
-
-uchar4 __attribute__((kernel)) selectiveAdjust(const uchar4 in, uint32_t x,
- uint32_t y) {
- float4 pixel = rsUnpackColor8888(in);
-
- float4 wsum = pixel;
- int hue = rgb2hue(in);
-
- float t = satLut[hue];
- pixel.xyz = rsMatrixMultiply(&colorMatrix_min ,pixel.xyz) * (1 - t) +
- t * (rsMatrixMultiply(&colorMatrix_max ,pixel.xyz));
-
- pixel.a = 1.0f;
- return rsPackColorTo8888(clamp(pixel, 0.f, 1.0f));
-} \ No newline at end of file