summaryrefslogtreecommitdiffstats
path: root/src/com/android/wallpaper/nexus/NexusRS.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/wallpaper/nexus/NexusRS.java')
-rw-r--r--src/com/android/wallpaper/nexus/NexusRS.java198
1 files changed, 0 insertions, 198 deletions
diff --git a/src/com/android/wallpaper/nexus/NexusRS.java b/src/com/android/wallpaper/nexus/NexusRS.java
deleted file mode 100644
index c59fdef..0000000
--- a/src/com/android/wallpaper/nexus/NexusRS.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.wallpaper.nexus;
-
-import static android.renderscript.Element.RGBA_8888;
-import static android.renderscript.Element.RGB_565;
-import static android.renderscript.ProgramStore.DepthFunc.ALWAYS;
-import static android.renderscript.Sampler.Value.LINEAR;
-import static android.renderscript.Sampler.Value.CLAMP;
-import static android.renderscript.Sampler.Value.WRAP;
-
-import com.android.wallpaper.R;
-import com.android.wallpaper.RenderScriptScene;
-
-import android.app.WallpaperManager;
-import android.content.res.Resources;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.Rect;
-import android.os.Bundle;
-import android.renderscript.*;
-import android.renderscript.ProgramStore.BlendDstFunc;
-import android.renderscript.ProgramStore.BlendSrcFunc;
-import android.view.SurfaceHolder;
-
-import java.util.TimeZone;
-
-class NexusRS extends RenderScriptScene {
- private final BitmapFactory.Options mOptionsARGB = new BitmapFactory.Options();
-
- private ProgramVertexFixedFunction.Constants mPvOrthoAlloc;
-
- private int mInitialWidth;
- private int mInitialHeight;
- private float mWorldScaleX;
- private float mWorldScaleY;
- private float mXOffset;
- private ScriptC_nexus mScript;
-
- public NexusRS(int width, int height) {
- super(width, height);
-
- mInitialWidth = width;
- mInitialHeight = height;
- mWorldScaleX = 1.0f;
- mWorldScaleY = 1.0f;
-
- mOptionsARGB.inScaled = false;
- mOptionsARGB.inPreferredConfig = Bitmap.Config.ARGB_8888;
- }
-
- @Override
- public void setOffset(float xOffset, float yOffset, int xPixels, int yPixels) {
- mXOffset = xOffset;
- mScript.set_gXOffset(xOffset);
- }
-
- @Override
- public void start() {
- super.start();
- }
-
- @Override
- public void resize(int width, int height) {
- super.resize(width, height); // updates mWidth, mHeight
-
- // android.util.Log.d("NexusRS", String.format("resize(%d, %d)", width, height));
-
- mWorldScaleX = (float)mInitialWidth / width;
- mWorldScaleY = (float)mInitialHeight / height;
- mScript.set_gWorldScaleX(mWorldScaleX);
- mScript.set_gWorldScaleY(mWorldScaleY);
- }
-
- @Override
- protected ScriptC createScript() {
- mScript = new ScriptC_nexus(mRS, mResources, R.raw.nexus);
-
- createProgramFragmentStore();
- createProgramFragment();
- createProgramVertex();
- createState();
-
- mScript.set_gTBackground(loadTexture(R.drawable.pyramid_background));
- mScript.set_gTPulse(loadTextureARGB(R.drawable.pulse));
- mScript.set_gTGlow(loadTextureARGB(R.drawable.glow));
- mScript.setTimeZone(TimeZone.getDefault().getID());
- mScript.invoke_initPulses();
- return mScript;
- }
-
- private void createState() {
- int mode;
- try {
- mode = mResources.getInteger(R.integer.nexus_mode);
- } catch (Resources.NotFoundException exc) {
- mode = 0; // standard nexus mode
- }
-
- mScript.set_gIsPreview(isPreview() ? 1 : 0);
- mScript.set_gMode(mode);
- mScript.set_gXOffset(0.f);
- mScript.set_gWorldScaleX(mWorldScaleX);
- mScript.set_gWorldScaleY(mWorldScaleY);
- }
-
- private Allocation loadTexture(int id) {
- return Allocation.createFromBitmapResource(mRS, mResources, id,
- Allocation.MipmapControl.MIPMAP_NONE,
- Allocation.USAGE_GRAPHICS_TEXTURE);
- }
-
- private Allocation loadTextureARGB(int id) {
- Bitmap b = BitmapFactory.decodeResource(mResources, id, mOptionsARGB);
- return Allocation.createFromBitmap(mRS, b,
- Allocation.MipmapControl.MIPMAP_NONE,
- Allocation.USAGE_GRAPHICS_TEXTURE);
- }
-
-
- private void createProgramFragment() {
- // sampler and program fragment for pulses
- ProgramFragmentFixedFunction.Builder builder = new ProgramFragmentFixedFunction.Builder(mRS);
- builder.setTexture(ProgramFragmentFixedFunction.Builder.EnvMode.MODULATE,
- ProgramFragmentFixedFunction.Builder.Format.RGBA, 0);
- ProgramFragment pft = builder.create();
- pft.bindSampler(Sampler.WRAP_LINEAR(mRS), 0);
- mScript.set_gPFTexture(pft);
-
- // sampler and program fragment for background image
- builder = new ProgramFragmentFixedFunction.Builder(mRS);
- builder.setTexture(ProgramFragmentFixedFunction.Builder.EnvMode.MODULATE,
- ProgramFragmentFixedFunction.Builder.Format.RGB, 0);
- ProgramFragment pft565 = builder.create();
- pft565.bindSampler(Sampler.CLAMP_NEAREST(mRS), 0);
- mScript.set_gPFTexture565(pft565);
- }
-
- private void createProgramFragmentStore() {
- ProgramStore.Builder builder = new ProgramStore.Builder(mRS);
- builder.setDepthFunc(ALWAYS);
- builder.setBlendFunc(BlendSrcFunc.ONE, BlendDstFunc.ONE);
- builder.setDitherEnabled(false);
- ProgramStore solid = builder.create();
- mRS.bindProgramStore(solid);
-
- builder.setBlendFunc(BlendSrcFunc.SRC_ALPHA, BlendDstFunc.ONE);
- mScript.set_gPSBlend(builder.create());
- }
-
- private void createProgramVertex() {
- mPvOrthoAlloc = new ProgramVertexFixedFunction.Constants(mRS);
- Matrix4f proj = new Matrix4f();
- proj.loadOrthoWindow(mWidth, mHeight);
- mPvOrthoAlloc.setProjection(proj);
-
- ProgramVertexFixedFunction.Builder pvb = new ProgramVertexFixedFunction.Builder(mRS);
- pvb.setTextureMatrixEnable(true);
- ProgramVertex pv = pvb.create();
- ((ProgramVertexFixedFunction)pv).bindConstants(mPvOrthoAlloc);
- mRS.bindProgramVertex(pv);
- }
-
- @Override
- public Bundle onCommand(String action, int x, int y, int z, Bundle extras,
- boolean resultRequested) {
-
- if (mWidth < mHeight) {
- // nexus.rs ignores the xOffset when rotated; we shall endeavor to do so as well
- x = (int) (x + mXOffset * mWidth / mWorldScaleX);
- }
-
- // android.util.Log.d("NexusRS", String.format(
- // "dw=%d, bw=%d, xOffset=%g, x=%d",
- // dw, bw, mWorldState.xOffset, x));
-
- if (WallpaperManager.COMMAND_TAP.equals(action)
- || WallpaperManager.COMMAND_SECONDARY_TAP.equals(action)
- || WallpaperManager.COMMAND_DROP.equals(action)) {
- mScript.invoke_addTap(x, y);
- }
- return null;
- }
-}