summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2011-01-19 09:19:39 -0800
committerMarco Nelissen <marcone@google.com>2011-01-19 09:19:39 -0800
commit8d57c78704797dff5df2df2b10a08dec885fe489 (patch)
tree94e0fddf7b0973ce2cbcbb76962f362ae8bc900c /src
parentf50de7e2660498d0c606597982639090ac1a8235 (diff)
downloadandroid_packages_wallpapers_MagicSmoke-8d57c78704797dff5df2df2b10a08dec885fe489.tar.gz
android_packages_wallpapers_MagicSmoke-8d57c78704797dff5df2df2b10a08dec885fe489.tar.bz2
android_packages_wallpapers_MagicSmoke-8d57c78704797dff5df2df2b10a08dec885fe489.zip
Fix horizontal and vertical panning.
Change-Id: I5177f3f3424233371136bdcbf358ce7056ea055d
Diffstat (limited to 'src')
-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
4 files changed, 16 insertions, 8 deletions
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;