summaryrefslogtreecommitdiffstats
path: root/libs/rs/java/Samples
diff options
context:
space:
mode:
authorAlex Sakhartchouk <alexst@google.com>2010-09-14 09:50:43 -0700
committerAlex Sakhartchouk <alexst@google.com>2010-09-14 09:50:43 -0700
commitc984dd73c6f96d16e11813ae433ef70f7648ae77 (patch)
treea40cb9dc5d1b3020e4cf33f575714e72ef3e805f /libs/rs/java/Samples
parentbcd3387eed8910c540d92f26fb6680e9e0ce0588 (diff)
downloadframeworks_base-c984dd73c6f96d16e11813ae433ef70f7648ae77.zip
frameworks_base-c984dd73c6f96d16e11813ae433ef70f7648ae77.tar.gz
frameworks_base-c984dd73c6f96d16e11813ae433ef70f7648ae77.tar.bz2
Shader changes to allow for more flexible constant binding.
Change-Id: Ic66e6e2a371c6e3d5dce1b00f63acab8c09bd110
Diffstat (limited to 'libs/rs/java/Samples')
-rw-r--r--libs/rs/java/Samples/res/raw/shaderf.glsl3
-rw-r--r--libs/rs/java/Samples/res/raw/shaderv.glsl16
-rw-r--r--libs/rs/java/Samples/src/com/android/samples/RsRenderStatesRS.java7
-rw-r--r--libs/rs/java/Samples/src/com/android/samples/rsrenderstates.rs10
-rw-r--r--libs/rs/java/Samples/src/com/android/samples/shader_def.rsh4
5 files changed, 12 insertions, 28 deletions
diff --git a/libs/rs/java/Samples/res/raw/shaderf.glsl b/libs/rs/java/Samples/res/raw/shaderf.glsl
index fdcf481..fcbe7ee 100644
--- a/libs/rs/java/Samples/res/raw/shaderf.glsl
+++ b/libs/rs/java/Samples/res/raw/shaderf.glsl
@@ -3,10 +3,11 @@ varying lowp float light0_Diffuse;
varying lowp float light0_Specular;
varying lowp float light1_Diffuse;
varying lowp float light1_Specular;
+varying vec2 varTex0;
void main() {
vec2 t0 = varTex0.xy;
- lowp vec4 col = texture2D(uni_Tex0, t0).rgba;
+ lowp vec4 col = texture2D(UNI_Tex0, t0).rgba;
col.xyz = col.xyz * (light0_Diffuse * UNI_light0_DiffuseColor + light1_Diffuse * UNI_light1_DiffuseColor);
col.xyz += light0_Specular * UNI_light0_SpecularColor;
col.xyz += light1_Specular * UNI_light1_SpecularColor;
diff --git a/libs/rs/java/Samples/res/raw/shaderv.glsl b/libs/rs/java/Samples/res/raw/shaderv.glsl
index 7f61197..867589c 100644
--- a/libs/rs/java/Samples/res/raw/shaderv.glsl
+++ b/libs/rs/java/Samples/res/raw/shaderv.glsl
@@ -2,24 +2,12 @@ varying float light0_Diffuse;
varying float light0_Specular;
varying float light1_Diffuse;
varying float light1_Specular;
-
-/*
-rs_matrix4x4 model;
- float3 light0_Posision;
- float light0_Diffuse;
- float light0_Specular;
- float light0_CosinePower;
-
- float3 light1_Posision;
- float light1_Diffuse;
- float light1_Specular;
- float light1_CosinePower;
-*/
+varying vec2 varTex0;
// This is where actual shader code begins
void main() {
vec4 worldPos = UNI_model * ATTRIB_position;
- gl_Position = UNI_MVP * worldPos;
+ gl_Position = UNI_proj * worldPos;
mat3 model3 = mat3(UNI_model[0].xyz, UNI_model[1].xyz, UNI_model[2].xyz);
vec3 worldNorm = model3 * ATTRIB_normal;
diff --git a/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesRS.java b/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesRS.java
index e76e740..d920527 100644
--- a/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesRS.java
+++ b/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesRS.java
@@ -67,7 +67,6 @@ public class RsRenderStatesRS {
// Custom shaders
private ProgramVertex mProgVertexCustom;
- private ProgramVertex.MatrixAllocation mPVACustom;
private ProgramFragment mProgFragmentCustom;
private ScriptField_VertexShaderConstants_s mVSConst;
private ScriptField_FragentShaderConstants_s mFSConst;
@@ -202,9 +201,7 @@ public class RsRenderStatesRS {
pvbCustom.addConstant(mVSConst.getAllocation().getType());
mProgVertexCustom = pvbCustom.create();
// Bind the source of constant data
- mProgVertexCustom.bindConstants(mVSConst.getAllocation(), 1);
- mPVACustom = new ProgramVertex.MatrixAllocation(mRS);
- mProgVertexCustom.bindAllocation(mPVACustom);
+ mProgVertexCustom.bindConstants(mVSConst.getAllocation(), 0);
ProgramFragment.ShaderBuilder pfbCustom = new ProgramFragment.ShaderBuilder(mRS);
// Specify the resource that contains the shader string
@@ -215,7 +212,7 @@ public class RsRenderStatesRS {
pfbCustom.addConstant(mFSConst.getAllocation().getType());
mProgFragmentCustom = pfbCustom.create();
// Bind the source of constant data
- mProgFragmentCustom.bindConstants(mFSConst.getAllocation(), 1);
+ mProgFragmentCustom.bindConstants(mFSConst.getAllocation(), 0);
mScript.set_gProgVertexCustom(mProgVertexCustom);
mScript.set_gProgFragmentCustom(mProgFragmentCustom);
diff --git a/libs/rs/java/Samples/src/com/android/samples/rsrenderstates.rs b/libs/rs/java/Samples/src/com/android/samples/rsrenderstates.rs
index 4bcf7f5..c7bea93 100644
--- a/libs/rs/java/Samples/src/com/android/samples/rsrenderstates.rs
+++ b/libs/rs/java/Samples/src/com/android/samples/rsrenderstates.rs
@@ -395,14 +395,12 @@ void displayCustomShaderSamples() {
rsMatrixLoadTranslate(&gVSConstants->model, 0.0f, 0.0f, -10.0f);
rsMatrixRotate(&gVSConstants->model, gTorusRotation, 1.0f, 0.0f, 0.0f);
rsMatrixRotate(&gVSConstants->model, gTorusRotation, 0.0f, 0.0f, 1.0f);
+ // Setup the projectioni matrix
+ float aspect = (float)rsgGetWidth() / (float)rsgGetHeight();
+ rsMatrixLoadPerspective(&gVSConstants->proj, 30.0f, aspect, 0.1f, 100.0f);
setupCustomShaderLights();
rsgBindProgramVertex(gProgVertexCustom);
- // Setup the projectioni matrix with 60 degree field of view
- rs_matrix4x4 proj;
- float aspect = (float)rsgGetWidth() / (float)rsgGetHeight();
- rsMatrixLoadPerspective(&proj, 30.0f, aspect, 0.1f, 100.0f);
- rsgProgramVertexLoadProjectionMatrix(&proj);
// Fragment shader with texture
rsgBindProgramStore(gProgStoreBlendNoneDepth);
@@ -416,7 +414,7 @@ void displayCustomShaderSamples() {
rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f);
rsgBindFont(gFontMono);
- rsgDrawText("Custom shader sample", 10, rsgGetHeight() - 10);
+ //rsgDrawText("Custom shader sample", 10, rsgGetHeight() - 10);
}
int root(int launchID) {
diff --git a/libs/rs/java/Samples/src/com/android/samples/shader_def.rsh b/libs/rs/java/Samples/src/com/android/samples/shader_def.rsh
index 1b697ca..e3f6206 100644
--- a/libs/rs/java/Samples/src/com/android/samples/shader_def.rsh
+++ b/libs/rs/java/Samples/src/com/android/samples/shader_def.rsh
@@ -18,6 +18,7 @@
typedef struct VertexShaderConstants_s {
rs_matrix4x4 model;
+ rs_matrix4x4 proj;
float3 light0_Posision;
float light0_Diffuse;
float light0_Specular;
@@ -27,7 +28,6 @@ typedef struct VertexShaderConstants_s {
float light1_Diffuse;
float light1_Specular;
float light1_CosinePower;
-
} VertexShaderConstants;
typedef struct FragentShaderConstants_s {
@@ -42,6 +42,6 @@ typedef struct FragentShaderConstants_s {
typedef struct VertexShaderInputs_s {
float4 position;
float3 normal;
- float4 texture0;
+ float2 texture0;
} VertexShaderInputs;