diff options
author | Marco Nelissen <marcone@google.com> | 2010-02-12 11:26:33 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-02-12 11:26:33 -0800 |
commit | ae9ba5758133ba753bd4a749a81267e08a3ee811 (patch) | |
tree | a126ed0f2b6147d4f835b14d8fbbcf7c4e35c683 | |
parent | e2bb5c459608224989dd3f9d5c462790c5f92332 (diff) | |
parent | b7cac95f928bf5b02f4a2a914c3a43014c2469f8 (diff) | |
download | android_packages_wallpapers_MagicSmoke-ae9ba5758133ba753bd4a749a81267e08a3ee811.tar.gz android_packages_wallpapers_MagicSmoke-ae9ba5758133ba753bd4a749a81267e08a3ee811.tar.bz2 android_packages_wallpapers_MagicSmoke-ae9ba5758133ba753bd4a749a81267e08a3ee811.zip |
am b7cac95f: DO NOT MERGE. Port live wallpaper changes from Froyo to Eclair for Droid support.
Merge commit 'b7cac95f928bf5b02f4a2a914c3a43014c2469f8' into eclair-plus-aosp
* commit 'b7cac95f928bf5b02f4a2a914c3a43014c2469f8':
DO NOT MERGE. Port live wallpaper changes from Froyo to Eclair for Droid support.
-rw-r--r-- | AndroidManifest.xml | 2 | ||||
-rw-r--r-- | res/raw/clouds.rs | 7 | ||||
-rw-r--r-- | src/com/android/magicsmoke/MagicSmokeRS.java | 31 |
3 files changed, 21 insertions, 19 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 5e79225..7df637e 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -21,6 +21,8 @@ xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.magicsmoke"> + <uses-feature android:name="android.software.live_wallpaper" /> + <uses-permission android:name="android.permission.SET_WALLPAPER_COMPONENT" /> <uses-permission android:name="android.permission.BIND_WALLPAPER" /> diff --git a/res/raw/clouds.rs b/res/raw/clouds.rs index a6ab846..a1f3b18 100644 --- a/res/raw/clouds.rs +++ b/res/raw/clouds.rs @@ -288,9 +288,10 @@ int main(int launchID) { int now = uptimeMillis(); timedelta = ((float)(now - lastuptime)) / 44.f; lastuptime = now; - if (timedelta > 100) { - // If we didn't render anything for several seconds, just pretend time stopped. - timedelta = 1; + if (timedelta > 3) { + // Limit the step adjustment factor to 3, so we don't get a sudden jump + // after coming back from sleep. + timedelta = 3; } i = State->mPreset; diff --git a/src/com/android/magicsmoke/MagicSmokeRS.java b/src/com/android/magicsmoke/MagicSmokeRS.java index 03a1106..f11b704 100644 --- a/src/com/android/magicsmoke/MagicSmokeRS.java +++ b/src/com/android/magicsmoke/MagicSmokeRS.java @@ -16,7 +16,6 @@ package com.android.magicsmoke; -import static android.renderscript.ProgramFragment.EnvMode.REPLACE; import static android.renderscript.Sampler.Value.LINEAR; import static android.renderscript.Sampler.Value.WRAP; @@ -76,7 +75,7 @@ class MagicSmokeRS extends RenderScriptScene implements OnSharedPreferenceChange private Sampler mSampler; private Allocation[] mSourceTextures; private Allocation[] mRealTextures; - + private ProgramVertex mPVBackground; private ProgramVertex.MatrixAllocation mPVAlloc; @@ -95,7 +94,7 @@ class MagicSmokeRS extends RenderScriptScene implements OnSharedPreferenceChange private Context mContext; private SharedPreferences mSharedPref; - + static class Preset { Preset(int processmode, int backcol, int locol, int hicol, float mul, int mask, boolean rot, int blend, boolean texswap, boolean premul) { @@ -146,9 +145,9 @@ class MagicSmokeRS extends RenderScriptScene implements OnSharedPreferenceChange new Preset(2, 0x6060ff, 0x000070, 0xffffff, 2.5f, 0x1f, true, 0, false, false), new Preset(3, 0x0000f0, 0x000000, 0xffffff, 2.0f, 0x0f, true, 0, true, false), }; - + private float mTouchY; - + MagicSmokeRS(Context context, int width, int height) { super(width, height); mWidth = width; @@ -182,7 +181,7 @@ class MagicSmokeRS extends RenderScriptScene implements OnSharedPreferenceChange mWorldState.mPreMul = mPreset[p].mPreMul ? 1 : 0; mWorldState.mBlendFunc = mPreset[p].mBlendFunc; } - + @Override public void resize(int width, int height) { super.resize(width, height); @@ -211,7 +210,7 @@ class MagicSmokeRS extends RenderScriptScene implements OnSharedPreferenceChange mState.data(mWorldState); } } - + @Override public void setOffset(float xOffset, float yOffset, float xStep, float yStep, int xPixels, int yPixels) { @@ -233,10 +232,10 @@ class MagicSmokeRS extends RenderScriptScene implements OnSharedPreferenceChange makeNewState(); mState.data(mWorldState); } - + float alphafactor; Type mTextureType; - + void loadBitmap(int id, int index, String name, float alphamul, int lowcol, int highcol) { BitmapFactory.Options opts = new BitmapFactory.Options(); opts.inPreferredConfig = Bitmap.Config.ARGB_8888; @@ -259,7 +258,7 @@ class MagicSmokeRS extends RenderScriptScene implements OnSharedPreferenceChange int highcol = mPreset[mWorldState.mPreset].mHighColor; //Log.i("@@@@", "preset " + mWorldState.mPreset + ", mul: " + alphamul + // ", colors: " + Integer.toHexString(lowcol) + "/" + Integer.toHexString(highcol)); - + // TODO: using different high and low colors for each layer offers some cool effects too loadBitmap(R.drawable.noise1, 0, "Tnoise1", alphamul, lowcol, highcol); loadBitmap(R.drawable.noise2, 1, "Tnoise2", alphamul, lowcol, highcol); @@ -267,7 +266,7 @@ class MagicSmokeRS extends RenderScriptScene implements OnSharedPreferenceChange loadBitmap(R.drawable.noise4, 3, "Tnoise4", alphamul, lowcol, highcol); loadBitmap(R.drawable.noise5, 4, "Tnoise5", alphamul, lowcol, highcol); } - + @Override protected ScriptC createScript() { @@ -289,13 +288,13 @@ class MagicSmokeRS extends RenderScriptScene implements OnSharedPreferenceChange mSourceTextures = new Allocation[5]; mRealTextures = new Allocation[5]; - + Type.Builder tb = new Type.Builder(mRS, Element.RGBA_8888(mRS)); tb.add(Dimension.X, 256); tb.add(Dimension.Y, 256); mTextureType = tb.create(); loadBitmaps(); - + Sampler.Builder samplerBuilder = new Sampler.Builder(mRS); samplerBuilder.setMin(LINEAR); samplerBuilder.setMag(LINEAR); @@ -304,9 +303,9 @@ class MagicSmokeRS extends RenderScriptScene implements OnSharedPreferenceChange mSampler = samplerBuilder.create(); { - ProgramFragment.Builder builder = new ProgramFragment.Builder(mRS, null, null); - builder.setTexEnable(true, 0); - builder.setTexEnvMode(ProgramFragment.EnvMode.MODULATE, 0); + ProgramFragment.Builder builder = new ProgramFragment.Builder(mRS); + builder.setTexture(ProgramFragment.Builder.EnvMode.REPLACE, + ProgramFragment.Builder.Format.RGBA, 0); mPfBackground = builder.create(); mPfBackground.setName("PFBackground"); mPfBackground.bindSampler(mSampler, 0); |