diff options
| author | 2010-05-20 18:20:21 -0700 | |
|---|---|---|
| committer | 2010-05-20 18:20:21 -0700 | |
| commit | 3f21110a80bc414383d783540175f821027da0cc (patch) | |
| tree | e21d6075db160e9e31f15568ad33d5929562cc05 | |
| parent | d67fbc2fc384e21f8325baf2593321ab32b96c8f (diff) | |
| parent | 1001a5b97bf910c164dce45c174c4660d678d818 (diff) | |
Merge "Remove noise functions and update images processing to use new rs namespace names."
| -rw-r--r-- | libs/rs/Android.mk | 1 | ||||
| -rw-r--r-- | libs/rs/java/ImageProcessing/res/raw/threshold.rs | 27 | ||||
| -rw-r--r-- | libs/rs/java/ImageProcessing/res/raw/threshold_bc.bc | bin | 8400 -> 8772 bytes | |||
| -rw-r--r-- | libs/rs/rsNoise.cpp | 256 | ||||
| -rw-r--r-- | libs/rs/rsNoise.h | 35 | ||||
| -rw-r--r-- | libs/rs/rsScriptC_Lib.cpp | 28 | ||||
| -rw-r--r-- | libs/rs/rsScriptC_LibGL.cpp | 1 | ||||
| -rw-r--r-- | libs/rs/scriptc/rs_math.rsh | 3 | 
8 files changed, 13 insertions, 338 deletions
| diff --git a/libs/rs/Android.mk b/libs/rs/Android.mk index c1910ff05c07..0f8de2bcc6f5 100644 --- a/libs/rs/Android.mk +++ b/libs/rs/Android.mk @@ -88,7 +88,6 @@ LOCAL_SRC_FILES:= \  	rsMatrix.cpp \      rsMesh.cpp \      rsMutex.cpp \ -	rsNoise.cpp \  	rsProgram.cpp \  	rsProgramFragment.cpp \  	rsProgramStore.cpp \ diff --git a/libs/rs/java/ImageProcessing/res/raw/threshold.rs b/libs/rs/java/ImageProcessing/res/raw/threshold.rs index 0317088360f9..6af40122bf5f 100644 --- a/libs/rs/java/ImageProcessing/res/raw/threshold.rs +++ b/libs/rs/java/ImageProcessing/res/raw/threshold.rs @@ -50,7 +50,7 @@ void computeColorMatrix() {      float oneMinusS = 1.0f - saturation; -    matrixLoadIdentity(colorMat); +    rsMatrixLoadIdentity((rs_matrix4x4 *)colorMat);      colorMat[0][0] = oneMinusS * rWeight + saturation;      colorMat[0][1] = oneMinusS * rWeight; @@ -165,7 +165,7 @@ void processNoBlur() {              output->a = input->a;          }      } -    sendToClient(&count, 1, 4, 0); +    rsSendToClient(&count, 1, 4, 0);  }  void horizontalBlur() { @@ -294,16 +294,15 @@ void verticalBlur() {  }  void filter() { -    debugP(0, (void *)height); -    debugP(0, (void *)width); -    debugP(0, (void *)radius); - -    debugPf(10, inBlack); -    debugPf(11, outBlack); -    debugPf(12, inWhite); -    debugPf(13, outWhite); -    debugPf(14, gamma); -    debugPf(15, saturation); +    RS_DEBUG(height); +    RS_DEBUG(width); +    RS_DEBUG(radius); +    RS_DEBUG(inBlack); +    RS_DEBUG(outBlack); +    RS_DEBUG(inWhite); +    RS_DEBUG(outWhite); +    RS_DEBUG(gamma); +    RS_DEBUG(saturation);      computeColorMatrix(); @@ -318,7 +317,7 @@ void filter() {      verticalBlur();      int count = 0; -    sendToClient(&count, 1, 4, 0); +    rsSendToClient(&count, 1, 4, 0);  }  void filterBenchmark() { @@ -329,6 +328,6 @@ void filterBenchmark() {      verticalBlur();      int count = 0; -    sendToClient(&count, 1, 4, 0); +    rsSendToClient(&count, 1, 4, 0);  } diff --git a/libs/rs/java/ImageProcessing/res/raw/threshold_bc.bc b/libs/rs/java/ImageProcessing/res/raw/threshold_bc.bcBinary files differ index 58a93e6cc615..29eba2db4c8a 100644 --- a/libs/rs/java/ImageProcessing/res/raw/threshold_bc.bc +++ b/libs/rs/java/ImageProcessing/res/raw/threshold_bc.bc diff --git a/libs/rs/rsNoise.cpp b/libs/rs/rsNoise.cpp deleted file mode 100644 index 764dc1a8cdd1..000000000000 --- a/libs/rs/rsNoise.cpp +++ /dev/null @@ -1,256 +0,0 @@ -/* - * This implementation of the noise functions was ported from the Java - * implementation by Jerry Huxtable (http://www.jhlabs.com) under - * Apache License 2.0 (see http://jhlabs.com/ip/filters/download.html) - * - * Original header: - * - * Copyright 2006 Jerry Huxtable - * - * 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. - */ - -#include "rsNoise.h" - -#include <math.h> -#include <stdlib.h> -#include <time.h> - -namespace android { -namespace renderscript { - -#define B 0x100 -#define BM 0xff -#define N 0x1000 - -static int p[B + B + 2]; -static float g3[B + B + 2][3]; -static float g2[B + B + 2][2]; -static float g1[B + B + 2]; -static bool noise_start = true; - -#define lerpf(start, stop, amount) start + (stop - start) * amount - -static inline float noise_sCurve(float t) -{ -    return t * t * (3.0f - 2.0f * t); -} - -inline void SC_normalizef2(float v[]) -{ -    float s = (float)sqrtf(v[0] * v[0] + v[1] * v[1]); -    v[0] = v[0] / s; -    v[1] = v[1] / s; -} - -inline void SC_normalizef3(float v[]) -{ -    float s = (float)sqrtf(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]); -    v[0] = v[0] / s; -    v[1] = v[1] / s; -    v[2] = v[2] / s; -} - -static void noise_init() -{ -    int i, j, k; -     -    for (i = 0; i < B; i++) { -        p[i] = i; -         -        g1[i] = (float)((rand() % (B + B)) - B) / B; -         -        for (j = 0; j < 2; j++) -            g2[i][j] = (float)((rand() % (B + B)) - B) / B; -        SC_normalizef2(g2[i]); -         -        for (j = 0; j < 3; j++) -            g3[i][j] = (float)((rand() % (B + B)) - B) / B; -        SC_normalizef3(g3[i]); -    } -     -    for (i = B-1; i >= 0; i--) { -        k = p[i]; -        p[i] = p[j = rand() % B]; -        p[j] = k; -    } -     -    for (i = 0; i < B + 2; i++) { -        p[B + i] = p[i]; -        g1[B + i] = g1[i]; -        for (j = 0; j < 2; j++) -            g2[B + i][j] = g2[i][j]; -        for (j = 0; j < 3; j++) -            g3[B + i][j] = g3[i][j]; -    } -} - -float SC_noisef(float x) -{ -    srand(time(NULL)); -    int bx0, bx1; -    float rx0, rx1, sx, t, u, v; -     -    if (noise_start) { -        noise_start = false; -        noise_init(); -    } -     -    t = x + N; -    bx0 = ((int)t) & BM; -    bx1 = (bx0+1) & BM; -    rx0 = t - (int)t; -    rx1 = rx0 - 1.0f; -     -    sx = noise_sCurve(rx0); -     -    u = rx0 * g1[p[bx0]]; -    v = rx1 * g1[p[bx1]]; -    return 2.3f * lerpf(u, v, sx); -} - -float SC_noisef2(float x, float y) -{ -    srand(time(NULL)); -    int bx0, bx1, by0, by1, b00, b10, b01, b11; -    float rx0, rx1, ry0, ry1, sx, sy, a, b, t, u, v; -    float *q; -    int i, j; -     -    if (noise_start) { -        noise_start = false; -        noise_init(); -    } -     -    t = x + N; -    bx0 = ((int)t) & BM; -    bx1 = (bx0+1) & BM; -    rx0 = t - (int)t; -    rx1 = rx0 - 1.0f; -	 -    t = y + N; -    by0 = ((int)t) & BM; -    by1 = (by0+1) & BM; -    ry0 = t - (int)t; -    ry1 = ry0 - 1.0f; -	 -    i = p[bx0]; -    j = p[bx1]; -     -    b00 = p[i + by0]; -    b10 = p[j + by0]; -    b01 = p[i + by1]; -    b11 = p[j + by1]; -     -    sx = noise_sCurve(rx0); -    sy = noise_sCurve(ry0); -     -    q = g2[b00]; u = rx0 * q[0] + ry0 * q[1]; -    q = g2[b10]; v = rx1 * q[0] + ry0 * q[1]; -    a = lerpf(u, v, sx); -     -    q = g2[b01]; u = rx0 * q[0] + ry1 * q[1]; -    q = g2[b11]; v = rx1 * q[0] + ry1 * q[1]; -    b = lerpf(u, v, sx); -     -    return 1.5f*lerpf(a, b, sy); -} - -float SC_noisef3(float x, float y, float z) -{ -    srand(time(NULL)); -    int bx0, bx1, by0, by1, bz0, bz1, b00, b10, b01, b11; -    float rx0, rx1, ry0, ry1, rz0, rz1, sy, sz, a, b, c, d, t, u, v; -    float *q; -    int i, j; -     -    if (noise_start) { -        noise_start = false; -        noise_init(); -    } -     -    t = x + N; -    bx0 = ((int)t) & BM; -    bx1 = (bx0+1) & BM; -    rx0 = t - (int)t; -    rx1 = rx0 - 1.0f; -     -    t = y + N; -    by0 = ((int)t) & BM; -    by1 = (by0+1) & BM; -    ry0 = t - (int)t; -    ry1 = ry0 - 1.0f; -	 -    t = z + N; -    bz0 = ((int)t) & BM; -    bz1 = (bz0+1) & BM; -    rz0 = t - (int)t; -    rz1 = rz0 - 1.0f; -	 -    i = p[bx0]; -    j = p[bx1]; -     -    b00 = p[i + by0]; -    b10 = p[j + by0]; -    b01 = p[i + by1]; -    b11 = p[j + by1]; -     -    t  = noise_sCurve(rx0); -    sy = noise_sCurve(ry0); -    sz = noise_sCurve(rz0); -     -    q = g3[b00 + bz0]; u = rx0 * q[0] + ry0 * q[1] + rz0 * q[2]; -    q = g3[b10 + bz0]; v = rx1 * q[0] + ry0 * q[1] + rz0 * q[2]; -    a = lerpf(u, v, t); -     -    q = g3[b01 + bz0]; u = rx0 * q[0] + ry1 * q[1] + rz0 * q[2]; -    q = g3[b11 + bz0]; v = rx1 * q[0] + ry1 * q[1] + rz0 * q[2]; -    b = lerpf(u, v, t); -     -    c = lerpf(a, b, sy); -     -    q = g3[b00 + bz1]; u = rx0 * q[0] + ry0 * q[1] + rz1 * q[2]; -    q = g3[b10 + bz1]; v = rx1 * q[0] + ry0 * q[1] + rz1 * q[2]; -    a = lerpf(u, v, t); -     -    q = g3[b01 + bz1]; u = rx0 * q[0] + ry1 * q[1] + rz1 * q[2]; -    q = g3[b11 + bz1]; v = rx1 * q[0] + ry1 * q[1] + rz1 * q[2]; -    b = lerpf(u, v, t); -     -    d = lerpf(a, b, sy); -     -    return 1.5f*lerpf(c, d, sz); -} - -float SC_turbulencef2(float x, float y, float octaves) -{ -    srand(time(NULL)); -    float t = 0.0f; -     -    for (float f = 1.0f; f <= octaves; f *= 2) -        t += fabs(SC_noisef2(f * x, f * y)) / f; -    return t; -} - -float SC_turbulencef3(float x, float y, float z, float octaves) -{ -    srand(time(NULL)); -    float t = 0.0f; -     -    for (float f = 1.0f; f <= octaves; f *= 2) -        t += fabs(SC_noisef3(f * x, f * y, f * z)) / f; -    return t; -} - -} -}
\ No newline at end of file diff --git a/libs/rs/rsNoise.h b/libs/rs/rsNoise.h deleted file mode 100644 index 9040751d4cb9..000000000000 --- a/libs/rs/rsNoise.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Source Project - * - * 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. - */ - -#ifndef ANDROID_RS_NOISE_H -#define ANDROID_RS_NOISE_H - -// --------------------------------------------------------------------------- -namespace android { -namespace renderscript { - -void SC_normalizef2(float v[]); -void SC_normalizef3(float v[]); -float SC_noisef(float x); -float SC_noisef2(float x, float y); -float SC_noisef3(float x, float y, float z); -float SC_turbulencef2(float x, float y, float octaves); -float SC_turbulencef3(float x, float y, float z, float octaves); - -} -} - -#endif diff --git a/libs/rs/rsScriptC_Lib.cpp b/libs/rs/rsScriptC_Lib.cpp index 956773bdecc2..0c10fcaec593 100644 --- a/libs/rs/rsScriptC_Lib.cpp +++ b/libs/rs/rsScriptC_Lib.cpp @@ -17,7 +17,6 @@  #include "rsContext.h"  #include "rsScriptC.h"  #include "rsMatrix.h" -#include "rsNoise.h"  #include "acc/acc.h"  #include "utils/Timers.h" @@ -225,11 +224,6 @@ static int SC_randi2(int min, int max)      return (int)SC_randf2(min, max);  } -static int SC_sign(int value) -{ -    return (value > 0) - (value < 0); -} -  static int SC_clamp(int amount, int low, int high)  {      return amount < low ? low : (amount > high ? high : amount); @@ -549,21 +543,6 @@ static void SC_scriptCall(int scriptID)      rsc->runScript((Script *)scriptID, 0);  } -static void SC_debugP(int i, void *p) -{ -    LOGE("debug P  %i  %p, %i", i, p, (int)p); -} - -static void SC_debugPi(int i, int p) -{ -    LOGE("debug Pi %i  0x%08x, %i", i, p, (int)p); -} - -static void SC_debugPf(int i, float p) -{ -    LOGE("debug Pf  %i  %f,   0x%08x", i, p, reinterpret_cast<uint32_t *>(&p)[0]); -} -  int SC_divsi3(int a, int b)  {      return a / b; @@ -664,21 +643,14 @@ static ScriptCState::SymbolTable_t gSyms[] = {  //////////////////////////////////////////////////////////////////// -    { "modf", (void *)&fmod },      //{ "sinf_fast", (void *)&SC_sinf_fast },      //{ "cosf_fast", (void *)&SC_cosf_fast }, -    //{ "sign", (void *)&SC_sign },      //{ "clamp", (void *)&SC_clamp },      //{ "distf2", (void *)&SC_distf2 },      //{ "distf3", (void *)&SC_distf3 },      //{ "magf2", (void *)&SC_magf2 },      //{ "magf3", (void *)&SC_magf3 },      //{ "mapf", (void *)&SC_mapf }, -    { "noisef", (void *)&SC_noisef }, -    { "noisef2", (void *)&SC_noisef2 }, -    { "noisef3", (void *)&SC_noisef3 }, -    { "turbulencef2", (void *)&SC_turbulencef2 }, -    { "turbulencef3", (void *)&SC_turbulencef3 },      { "scriptCall", (void *)&SC_scriptCall }, diff --git a/libs/rs/rsScriptC_LibGL.cpp b/libs/rs/rsScriptC_LibGL.cpp index a60aa80d191f..18f873ece2cb 100644 --- a/libs/rs/rsScriptC_LibGL.cpp +++ b/libs/rs/rsScriptC_LibGL.cpp @@ -17,7 +17,6 @@  #include "rsContext.h"  #include "rsScriptC.h"  #include "rsMatrix.h" -#include "rsNoise.h"  #include "acc/acc.h"  #include "utils/Timers.h" diff --git a/libs/rs/scriptc/rs_math.rsh b/libs/rs/scriptc/rs_math.rsh index a9c163d79d84..33e7ee4e5f30 100644 --- a/libs/rs/scriptc/rs_math.rsh +++ b/libs/rs/scriptc/rs_math.rsh @@ -70,9 +70,6 @@ extern void rsMatrixTranslate(rs_matrix4x4 *mat, float x, float y, float z);  ///////////////////////////////////////////////////////////////////  // non update funcs -extern float turbulencef2(float x, float y, float octaves); -extern float turbulencef3(float x, float y, float z, float octaves); -  /*  extern float3 float3Norm(float3);  extern float float3Length(float3); |