summaryrefslogtreecommitdiff
path: root/java/tests
diff options
context:
space:
mode:
authorJohn Hoford <hoford@google.com>2015-02-28 01:10:50 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-02-28 01:10:50 +0000
commit72632a9113398547891f33d40c941e95ee72f179 (patch)
treefaa78362257469f5856e16ce46c5fae0147a7dc0 /java/tests
parentd2b14a75e1eb9eeadb94ef919fbba93e2e3a0624 (diff)
parent63060734ef7f8f8a3980178174decdd27e1d7f03 (diff)
downloadrs-72632a9113398547891f33d40c941e95ee72f179.tar.gz
am 63060734: am 97b5ebf6: am 640279e7: Merge "add better support for landscape mode + minor cleanups"
* commit '63060734ef7f8f8a3980178174decdd27e1d7f03': add better support for landscape mode + minor cleanups
Diffstat (limited to 'java/tests')
-rw-r--r--java/tests/VrDemo/res/layout-land/activity_vr.xml30
-rw-r--r--java/tests/VrDemo/src/com/example/android/rs/vr/VrActivity.java7
-rw-r--r--java/tests/VrDemo/src/com/example/android/rs/vr/engine/vr.rs44
-rw-r--r--java/tests/VrDemo/src/com/example/android/rs/vr/loaders/Mandelbulb.java10
4 files changed, 44 insertions, 47 deletions
diff --git a/java/tests/VrDemo/res/layout-land/activity_vr.xml b/java/tests/VrDemo/res/layout-land/activity_vr.xml
index 3ab5662f..67039238 100644
--- a/java/tests/VrDemo/res/layout-land/activity_vr.xml
+++ b/java/tests/VrDemo/res/layout-land/activity_vr.xml
@@ -23,34 +23,36 @@
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".VrActivity">
<view
- android:layout_width="0dp"
android:layout_height="match_parent"
+ android:layout_width="0dp"
class="com.example.android.rs.vr.VrView"
android:id="@+id/view"
android:layout_weight="1"/>
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
android:orientation="vertical">
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
<TextView
android:id="@+id/title"
android:text="@string/volume_name"
- android:layout_width="0dp"
- android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
android:layout_weight="1.0"
android:gravity="center" />
- </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:layout_weight="1.0"
+ >
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="horizontal">
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
<ToggleButton
android:layout_width="wrap_content"
@@ -106,6 +108,6 @@
android:text="@string/save"
android:onClick="saveClick" />
</LinearLayout>
-
+ </LinearLayout>
</LinearLayout>
</LinearLayout>
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/VrActivity.java b/java/tests/VrDemo/src/com/example/android/rs/vr/VrActivity.java
index aa64d2ac..4fe8f8e2 100644
--- a/java/tests/VrDemo/src/com/example/android/rs/vr/VrActivity.java
+++ b/java/tests/VrDemo/src/com/example/android/rs/vr/VrActivity.java
@@ -18,6 +18,8 @@ package com.example.android.rs.vr;
import android.app.Activity;
import android.app.ProgressDialog;
+import android.content.pm.ActivityInfo;
+import android.content.res.Configuration;
import android.os.AsyncTask;
import android.os.Bundle;
import android.renderscript.RenderScript;
@@ -103,6 +105,11 @@ public class VrActivity extends Activity {
Log.v(LOGTAG,"done");
mVrView.setVolume(mRs, v);
progressDialog.dismiss();
+ if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+ } else {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ }
}
}
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/vr.rs b/java/tests/VrDemo/src/com/example/android/rs/vr/engine/vr.rs
index 997bb102..43fb794c 100644
--- a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/vr.rs
+++ b/java/tests/VrDemo/src/com/example/android/rs/vr/engine/vr.rs
@@ -19,7 +19,7 @@
#pragma rs_fp_relaxed
#define FLOAT_MAX 3.4028234E30f
-#define JITTER_LENGTH 3456
+#define JITTER_LENGTH 3457
float jitter[JITTER_LENGTH];
float3 s;
@@ -31,6 +31,7 @@ rs_matrix4x4 matrix4;
rs_matrix3x3 matrix3;
uchar4 base_color;
static float3 mLight;
+static float rscale;
// material color
rs_allocation opacity;
@@ -38,7 +39,7 @@ rs_allocation color_map;
static void fillJitter() {
for (int i = 0; i < JITTER_LENGTH; i++) {
- jitter[i] = rsRand(1.0f);
+ jitter[i] = (rsRand(rscale)+rsRand(rscale)+rsRand(rscale))/3;
}
}
@@ -53,28 +54,15 @@ void setup_vectors() {
base_color.g = 0;
base_color.b = 0;
base_color.a = 255;
- fillJitter();
- float3 mLightRelitvePos = (float3) {0, 0.7071f, -0.7071f}; // light relitve to camera
+
+ float3 mLightRelitvePos = (float3) {0.f, 0.7071f, -0.7071f}; // light relitve to camera
mLight = mLightRelitvePos.x + dx + mLightRelitvePos.y * dy + mLightRelitvePos.z * dz;
mLight = normalize(mLight);
+ rscale = 1.5f/length(dz);
+ fillJitter();
}
-// old simple version
-static float triLinear_old(short v_0_0_0, short v_0_0_1, short v_0_1_0, short v_0_1_1,
- short v_1_0_0, short v_1_0_1, short v_1_1_0, short v_1_1_1,
- float3 delta) {
- float v_0_0 = v_0_0_0 + delta.x * (v_0_0_1 - v_0_0_0);
- float v_0_1 = v_0_1_0 + delta.x * (v_0_1_1 - v_0_1_0);
- float v_1_0 = v_1_0_0 + delta.x * (v_1_0_1 - v_1_0_0);
- float v_1_1 = v_1_1_0 + delta.x * (v_1_1_1 - v_1_1_0);
- float v_0 = v_0_0 + delta.y * (v_0_1 - v_0_0);
- float v_1 = v_1_0 + delta.y * (v_1_1 - v_1_0);
- float v = v_0 + delta.z * (v_1 - v_0);
- return v;
-}
-
-// This seemed to improve over above
-static float triLinear(float v_0_0_0, float v_0_0_1, float v_0_1_0, short v_0_1_1,
+static float triLinear(float v_0_0_0, float v_0_0_1, float v_0_1_0, float v_0_1_1,
float v_1_0_0, float v_1_0_1, float v_1_1_0, float v_1_1_1,
float3 delta) {
float v_0_0 = mix(v_0_0_0, v_0_0_1, delta.x);
@@ -173,14 +161,14 @@ uchar4 __attribute__ ((kernel)) draw_z_buffer(float2 in, uint32_t x, uint32_t y)
float sdx = rsGetElementAt_float2(zbuff, max(0, (int) x - 1), y).x - in.x;
float sdy = rsGetElementAt_float2(zbuff, x, max(0, (int) y - 1)).x - in.x;
float dot_prod = sqrt(1 / (1 + (sdy * sdy + sdx * sdx) * zoomFactor));
- float opf = op / 255.f;
+ float opf = op * (1/255.f);
uchar4 color = rsGetElementAt_uchar4(color_map, intensity * 2);
uchar4 mat = rsGetElementAt_uchar4(color_map, intensity * 2 + 1);
float4 fcolor = convert_float4(color);;
- float ambient = mat.x / 255.f;
- float specular = mat.y / 255.f;
- float diffuse = mat.z / 255.f;
+ float ambient = mat.x * (1/255.f);
+ float specular = mat.y * (1/255.f);
+ float diffuse = mat.z * (1/255.f);
float lop = (ambient + diffuse * dot_prod) * light * opf;
light -= opf;
total_color += fcolor * lop;
@@ -189,7 +177,7 @@ uchar4 __attribute__ ((kernel)) draw_z_buffer(float2 in, uint32_t x, uint32_t y)
}
}
}
- p += dz * rsRand(2.f);
+ p += dz * jitter[(x+(y<<11))%JITTER_LENGTH];
if (light > 0) {
for (int k = 0; k < izlen - 1; k++) {
@@ -281,9 +269,9 @@ uchar4 __attribute__ ((kernel)) draw_z_buffer(float2 in, uint32_t x, uint32_t y)
// Eye point in this space is in the direction (0,0,-1)
// Spec * Math.pow(R_z , P) lets use power == 2 (cheap)
- float ambient = mat.x / 255.f; // ambient
- float specular = mat.y / 255.f; // specular not used right now
- float diffuse = mat.z / 255.f; // diffuse
+ float ambient = mat.x * (1/255.f); // ambient
+ float specular = mat.y * (1/255.f); // specular not used right now
+ float diffuse = mat.z * (1/255.f);// diffuse
float lop = (ambient + diffuse * dot_prod + specular * pow(spec, 10)) * light * opf;
light -= opf;
total_color += fcolor * lop;
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/loaders/Mandelbulb.java b/java/tests/VrDemo/src/com/example/android/rs/vr/loaders/Mandelbulb.java
index 7d058914..9b160396 100644
--- a/java/tests/VrDemo/src/com/example/android/rs/vr/loaders/Mandelbulb.java
+++ b/java/tests/VrDemo/src/com/example/android/rs/vr/loaders/Mandelbulb.java
@@ -31,13 +31,13 @@ import com.example.android.rs.vr.engine.Volume;
public class Mandelbulb {
private static final String LOGTAG = "RawLoader";
private static final String simpleLook = "simple";
- private static final int[][] simpleOpacity = {{120, 0x0}, {126, 0xFF}};
+ private static final int[][] simpleOpacity = {{120, 0x0}, {140, 0xFF}};
private static final int[][] simpleColor = {
- {200, 0x44AA44, 30, 70, 0},
- {230, 0xAA44AA, 30, 70, 0},
- {255, 0xAAAAAA, 30, 70, 0}};
+ {200, 0x44AA44, 70, 30, 0},
+ {230, 0xAA44AA, 70, 30, 0},
+ {255, 0xAAAAAA, 70, 30, 0}};
- private static final int SIZE = 512;
+ private static final int SIZE = 256;
public static final String NAME = "A Mandelbulb";
public static Volume buildRSVolume(RenderScript rs,