summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2011-01-19 09:25:15 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2011-01-19 09:25:15 -0800
commitbcc3172edc6b13653037da5803891109d2fd000f (patch)
tree94e0fddf7b0973ce2cbcbb76962f362ae8bc900c
parent5577d11fbbea6acf733d3d9d588c7f40484a0e66 (diff)
parent8d57c78704797dff5df2df2b10a08dec885fe489 (diff)
downloadandroid_packages_wallpapers_MagicSmoke-bcc3172edc6b13653037da5803891109d2fd000f.tar.gz
android_packages_wallpapers_MagicSmoke-bcc3172edc6b13653037da5803891109d2fd000f.tar.bz2
android_packages_wallpapers_MagicSmoke-bcc3172edc6b13653037da5803891109d2fd000f.zip
am 8d57c787: Fix horizontal and vertical panning.
* commit '8d57c78704797dff5df2df2b10a08dec885fe489': Fix horizontal and vertical panning.
-rw-r--r--res/raw/pv4tex.glslv14
-rw-r--r--res/raw/pv5tex.glslv16
-rw-r--r--src/com/android/magicsmoke/MagicSmokeRS.java5
-rw-r--r--src/com/android/magicsmoke/RenderScriptScene.java2
-rw-r--r--src/com/android/magicsmoke/RenderScriptWallpaper.java2
-rw-r--r--src/com/android/magicsmoke/clouds.rs15
6 files changed, 31 insertions, 23 deletions
diff --git a/res/raw/pv4tex.glslv b/res/raw/pv4tex.glslv
index 9fd1f04..5634efe 100644
--- a/res/raw/pv4tex.glslv
+++ b/res/raw/pv4tex.glslv
@@ -3,18 +3,18 @@ varying vec2 varTex1;
varying vec2 varTex2;
varying vec2 varTex3;
-vec2 mul(vec4 uni, vec2 attr, float idx)
+vec2 mul(vec4 uni, vec2 attr, float idx, vec2 offset)
{
float invz = 0.35 + idx*0.05;
return vec2(
- 0.5 + 0.5 * invz * (uni.z * ( uni.y * attr.x + uni.x * attr.y)) + uni.w,
- 0.5 + 0.5 * invz * (uni.z * (-uni.x * attr.x + uni.y * attr.y)));
+ 0.5 + 0.5 * invz * (uni.z * ( uni.y * (attr.x + offset.x) + uni.x * (attr.y + offset.y))) + uni.w,
+ 0.5 + 0.5 * invz * (uni.z * (-uni.x * (attr.x + offset.x) + uni.y * (attr.y + offset.y))));
}
void main() {
- varTex0 = mul(UNI_layer0, ATTRIB_position.xy, 1.0);
- varTex1 = mul(UNI_layer1, ATTRIB_position.xy, 2.0);
- varTex2 = mul(UNI_layer2, ATTRIB_position.xy, 3.0);
- varTex3 = mul(UNI_layer3, ATTRIB_position.xy, 4.0);
+ varTex0 = mul(UNI_layer0, ATTRIB_position.xy, 1.0, UNI_panoffset);
+ varTex1 = mul(UNI_layer1, ATTRIB_position.xy, 2.0, UNI_panoffset);
+ varTex2 = mul(UNI_layer2, ATTRIB_position.xy, 3.0, UNI_panoffset);
+ varTex3 = mul(UNI_layer3, ATTRIB_position.xy, 4.0, UNI_panoffset);
gl_Position = ATTRIB_position;
}
diff --git a/res/raw/pv5tex.glslv b/res/raw/pv5tex.glslv
index 998f209..bb190e8 100644
--- a/res/raw/pv5tex.glslv
+++ b/res/raw/pv5tex.glslv
@@ -4,19 +4,19 @@ varying vec2 varTex2;
varying vec2 varTex3;
varying vec2 varTex4;
-vec2 mul(vec4 uni, vec2 attr, float idx)
+vec2 mul(vec4 uni, vec2 attr, float idx, vec2 offset)
{
float invz = 0.5 + idx*0.05;
return vec2(
- 0.5 + 0.5 * invz * (uni.z * ( uni.y * attr.x + uni.x * attr.y)) + uni.w,
- 0.5 + 0.5 * invz * (uni.z * (-uni.x * attr.x + uni.y * attr.y)));
+ 0.5 + 0.5 * invz * (uni.z * ( uni.y * (attr.x + offset.x) + uni.x * (attr.y + offset.y))) + uni.w,
+ 0.5 + 0.5 * invz * (uni.z * (-uni.x * (attr.x + offset.x) + uni.y * (attr.y + offset.y))));
}
void main() {
- varTex0 = mul(UNI_layer0, ATTRIB_position.xy, 1.0);
- varTex1 = mul(UNI_layer1, ATTRIB_position.xy, 2.0);
- varTex2 = mul(UNI_layer2, ATTRIB_position.xy, 3.0);
- varTex3 = mul(UNI_layer3, ATTRIB_position.xy, 4.0);
- varTex4 = mul(UNI_layer4, ATTRIB_position.xy, 5.0);
+ varTex0 = mul(UNI_layer0, ATTRIB_position.xy, 1.0, UNI_panoffset);
+ varTex1 = mul(UNI_layer1, ATTRIB_position.xy, 2.0, UNI_panoffset);
+ varTex2 = mul(UNI_layer2, ATTRIB_position.xy, 3.0, UNI_panoffset);
+ varTex3 = mul(UNI_layer3, ATTRIB_position.xy, 4.0, UNI_panoffset);
+ varTex4 = mul(UNI_layer4, ATTRIB_position.xy, 5.0, UNI_panoffset);
gl_Position = ATTRIB_position;
}
diff --git a/src/com/android/magicsmoke/MagicSmokeRS.java b/src/com/android/magicsmoke/MagicSmokeRS.java
index 6b0e8ff..201aacd 100644
--- a/src/com/android/magicsmoke/MagicSmokeRS.java
+++ b/src/com/android/magicsmoke/MagicSmokeRS.java
@@ -44,6 +44,7 @@ class MagicSmokeRS extends RenderScriptScene implements OnSharedPreferenceChange
static class WorldState {
public float mXOffset;
+ public float mYOffset;
public int mPreset;
public int mTextureMask;
public int mRotate;
@@ -226,10 +227,12 @@ class MagicSmokeRS extends RenderScriptScene implements OnSharedPreferenceChange
}*/
@Override
- public void setOffset(float xOffset, float yOffset, int xPixels, int yPixels) {
+ public void setOffset(float xOffset, float yOffset, float xStep, float yStep, int xPixels, int yPixels) {
// update our state, then push it to the renderscript
mWorldState.mXOffset = xOffset;
+ mWorldState.mYOffset = yOffset;
mScript.set_gXOffset(mWorldState.mXOffset);
+ mScript.set_gYOffset(mWorldState.mYOffset);
}
@Override
diff --git a/src/com/android/magicsmoke/RenderScriptScene.java b/src/com/android/magicsmoke/RenderScriptScene.java
index 9f3859e..fdf4935 100644
--- a/src/com/android/magicsmoke/RenderScriptScene.java
+++ b/src/com/android/magicsmoke/RenderScriptScene.java
@@ -83,7 +83,7 @@ public abstract class RenderScriptScene {
}
@SuppressWarnings({"UnusedDeclaration"})
- public void setOffset(float xOffset, float yOffset, int xPixels, int yPixels) {
+ public void setOffset(float xOffset, float yOffset, float xStep, float yStep, int xPixels, int yPixels) {
}
@SuppressWarnings({"UnusedDeclaration"})
diff --git a/src/com/android/magicsmoke/RenderScriptWallpaper.java b/src/com/android/magicsmoke/RenderScriptWallpaper.java
index 28c68af..c9bbdd9 100644
--- a/src/com/android/magicsmoke/RenderScriptWallpaper.java
+++ b/src/com/android/magicsmoke/RenderScriptWallpaper.java
@@ -93,7 +93,7 @@ public abstract class RenderScriptWallpaper<T extends RenderScriptScene> extends
@Override
public void onOffsetsChanged(float xOffset, float yOffset,
float xStep, float yStep, int xPixels, int yPixels) {
- mRenderer.setOffset(xOffset, yOffset, xPixels, yPixels);
+ mRenderer.setOffset(xOffset, yOffset, xStep, yStep, xPixels, yPixels);
}
@Override
diff --git a/src/com/android/magicsmoke/clouds.rs b/src/com/android/magicsmoke/clouds.rs
index cc81e57..b0d55bf 100644
--- a/src/com/android/magicsmoke/clouds.rs
+++ b/src/com/android/magicsmoke/clouds.rs
@@ -31,6 +31,7 @@
// State set from java
float gXOffset;
+float gYOffset;
int gPreset;
int gTextureMask;
int gRotate;
@@ -48,6 +49,7 @@ typedef struct VertexShaderConstants_s {
float4 layer2;
float4 layer3;
float4 layer4;
+ float2 panoffset;
} VertexShaderConstants;
VertexShaderConstants *gVSConstants;
@@ -136,11 +138,11 @@ static void update()
rotate(gVSConstants->layer3, rotation[3]);
rotate(gVSConstants->layer4, rotation[4]);
- gVSConstants->layer0.w = -gXOffset * 0 + xshift[0];
- gVSConstants->layer1.w = -gXOffset * 8 + xshift[1];
- gVSConstants->layer2.w = -gXOffset * 16 + xshift[2];
- gVSConstants->layer3.w = -gXOffset * 24 + xshift[3];
- gVSConstants->layer4.w = -gXOffset * 32 + xshift[4];
+ gVSConstants->layer0.w = xshift[0];
+ gVSConstants->layer1.w = xshift[1];
+ gVSConstants->layer2.w = xshift[2];
+ gVSConstants->layer3.w = xshift[3];
+ gVSConstants->layer4.w = xshift[4];
float m = 0.35f;
gVSConstants->layer0.z = m * scale[0];
@@ -149,6 +151,9 @@ static void update()
gVSConstants->layer3.z = m * scale[3];
gVSConstants->layer4.z = m * scale[4];
+ gVSConstants->panoffset.x = gXOffset;
+ gVSConstants->panoffset.y = -gYOffset;
+
gFSConstants->clearColor = clearColor;
int pos = 0;