summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libs/rs/Android.mk1
-rw-r--r--libs/rs/java/ImageProcessing/res/raw/threshold.rs27
-rw-r--r--libs/rs/java/ImageProcessing/res/raw/threshold_bc.bcbin8400 -> 8772 bytes
-rw-r--r--libs/rs/rsNoise.cpp256
-rw-r--r--libs/rs/rsNoise.h35
-rw-r--r--libs/rs/rsScriptC_Lib.cpp28
-rw-r--r--libs/rs/rsScriptC_LibGL.cpp1
-rw-r--r--libs/rs/scriptc/rs_math.rsh3
8 files changed, 13 insertions, 338 deletions
diff --git a/libs/rs/Android.mk b/libs/rs/Android.mk
index c1910ff..0f8de2b 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 0317088..6af4012 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.bc
index 58a93e6..29eba2d 100644
--- a/libs/rs/java/ImageProcessing/res/raw/threshold_bc.bc
+++ b/libs/rs/java/ImageProcessing/res/raw/threshold_bc.bc
Binary files differ
diff --git a/libs/rs/rsNoise.cpp b/libs/rs/rsNoise.cpp
deleted file mode 100644
index 764dc1a..0000000
--- 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 9040751..0000000
--- 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 956773b..0c10fca 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 a60aa80..18f873e 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 a9c163d..33e7ee4 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);