summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher2/AllApps3D.java304
-rw-r--r--src/com/android/launcher2/CellLayout.java11
-rw-r--r--src/com/android/launcher2/ScriptC_allapps.java197
-rw-r--r--src/com/android/launcher2/ScriptField_VpConsts.java73
4 files changed, 364 insertions, 221 deletions
diff --git a/src/com/android/launcher2/AllApps3D.java b/src/com/android/launcher2/AllApps3D.java
index b8aa8eccf..0e6994ccb 100644
--- a/src/com/android/launcher2/AllApps3D.java
+++ b/src/com/android/launcher2/AllApps3D.java
@@ -131,27 +131,16 @@ public class AllApps3D extends RSSurfaceView
private boolean mSurrendered;
private int mRestoreFocusIndex = -1;
-
+
@SuppressWarnings({"UnusedDeclaration"})
static class Defines {
- public static final int ALLOC_PARAMS = 0;
- public static final int ALLOC_STATE = 1;
- public static final int ALLOC_ICON_IDS = 3;
- public static final int ALLOC_LABEL_IDS = 4;
- public static final int ALLOC_VP_CONSTANTS = 5;
-
public static final int COLUMNS_PER_PAGE_PORTRAIT = 4;
public static final int ROWS_PER_PAGE_PORTRAIT = 4;
public static final int COLUMNS_PER_PAGE_LANDSCAPE = 6;
public static final int ROWS_PER_PAGE_LANDSCAPE = 3;
- public static final int ICON_WIDTH_PX = 64;
- public static final int ICON_TEXTURE_WIDTH_PX = 74;
public static final int SELECTION_TEXTURE_WIDTH_PX = 74 + 20;
-
- public static final int ICON_HEIGHT_PX = 64;
- public static final int ICON_TEXTURE_HEIGHT_PX = 74;
public static final int SELECTION_TEXTURE_HEIGHT_PX = 74 + 20;
}
@@ -274,15 +263,16 @@ public class AllApps3D extends RSSurfaceView
sRollo.dirtyCheck();
sRollo.resize(w, h);
+ Log.d(TAG, "sc " + sRS);
if (sRS != null) {
sRS.mMessageCallback = mMessageProc = new AAMessage();
}
if (sRollo.mUniformAlloc != null) {
- float tf[] = new float[] {72.f, 72.f,
- 120.f, 120.f, 0.f, 0.f,
+ float tf[] = new float[] {120.f, 120.f, 0.f, 0.f,
+ (2.f / 480.f), 0, -((float)w / 2) - 0.25f, -380.25f,
120.f, 680.f,
- (2.f / 480.f), 0, -((float)w / 2) - 0.25f, -380.25f};
+ 72.f, 72.f,};
if (w > h) {
tf[6] = 40.f;
tf[7] = h - 40.f;
@@ -291,7 +281,7 @@ public class AllApps3D extends RSSurfaceView
tf[11] = -((float)h / 2) - 0.25f;
}
- sRollo.mUniformAlloc.data(tf);
+ sRollo.mUniformAlloc.getAllocation().data(tf);
}
//long endTime = SystemClock.uptimeMillis();
@@ -307,18 +297,17 @@ public class AllApps3D extends RSSurfaceView
if (mArrowNavigation) {
if (!hasWindowFocus) {
// Clear selection when we lose window focus
- mLastSelectedIcon = sRollo.mState.selectedIconIndex;
+ mLastSelectedIcon = sRollo.mScript.get_gSelectedIconIndex();
sRollo.setHomeSelected(SELECTED_NONE);
sRollo.clearSelectedIcon();
- sRollo.mState.save();
} else {
- if (sRollo.mState.iconCount > 0) {
+ if (sRollo.mScript.get_gIconCount() > 0) {
if (mLastSelection == SELECTION_ICONS) {
int selection = mLastSelectedIcon;
final int firstIcon = Math.round(sRollo.mScrollPos) * mColumnsPerPage;
if (selection < 0 || // No selection
selection < firstIcon || // off the top of the screen
- selection >= sRollo.mState.iconCount || // past last icon
+ selection >= sRollo.mScript.get_gIconCount() || // past last icon
selection >= firstIcon + // past last icon on screen
(mColumnsPerPage * mRowsPerPage)) {
selection = firstIcon;
@@ -326,10 +315,8 @@ public class AllApps3D extends RSSurfaceView
// Select the first icon when we gain window focus
sRollo.selectIcon(selection, SELECTED_FOCUSED);
- sRollo.mState.save();
} else if (mLastSelection == SELECTION_HOME) {
sRollo.setHomeSelected(SELECTED_FOCUSED);
- sRollo.mState.save();
}
}
}
@@ -356,7 +343,6 @@ public class AllApps3D extends RSSurfaceView
// Clear selection when we lose focus
sRollo.clearSelectedIcon();
sRollo.setHomeSelected(SELECTED_NONE);
- sRollo.mState.save();
mArrowNavigation = false;
}
} else {
@@ -366,11 +352,10 @@ public class AllApps3D extends RSSurfaceView
}
private void gainFocus() {
- if (!mArrowNavigation && sRollo.mState.iconCount > 0) {
+ if (!mArrowNavigation && sRollo.mScript.get_gIconCount() > 0) {
// Select the first icon when we gain keyboard focus
mArrowNavigation = true;
sRollo.selectIcon(Math.round(sRollo.mScrollPos) * mColumnsPerPage, SELECTED_FOCUSED);
- sRollo.mState.save();
}
}
@@ -382,7 +367,7 @@ public class AllApps3D extends RSSurfaceView
if (!isVisible()) {
return false;
}
- final int iconCount = sRollo.mState.iconCount;
+ final int iconCount = sRollo.mScript.get_gIconCount();
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) {
if (mArrowNavigation) {
@@ -390,7 +375,7 @@ public class AllApps3D extends RSSurfaceView
reallyPlaySoundEffect(SoundEffectConstants.CLICK);
mLauncher.closeAllApps(true);
} else {
- int whichApp = sRollo.mState.selectedIconIndex;
+ int whichApp = sRollo.mScript.get_gSelectedIconIndex();
if (whichApp >= 0) {
ApplicationInfo app = mAllAppsList.get(whichApp);
mLauncher.startActivitySafely(app.intent, app);
@@ -402,10 +387,10 @@ public class AllApps3D extends RSSurfaceView
if (iconCount > 0) {
final boolean isPortrait = getWidth() < getHeight();
-
+
mArrowNavigation = true;
- int currentSelection = sRollo.mState.selectedIconIndex;
+ int currentSelection = sRollo.mScript.get_gSelectedIconIndex();
int currentTopRow = Math.round(sRollo.mScrollPos);
// The column of the current selection, in the range 0..COLUMNS_PER_PAGE_PORTRAIT-1
@@ -511,7 +496,6 @@ public class AllApps3D extends RSSurfaceView
}
if (newSelection != currentSelection) {
sRollo.selectIcon(newSelection, SELECTED_FOCUSED);
- sRollo.mState.save();
}
}
return handled;
@@ -611,7 +595,6 @@ public class AllApps3D extends RSSurfaceView
(!isPortrait && x > mTouchXBorders[mTouchXBorders.length-1])) {
mTouchTracking = TRACKING_HOME;
sRollo.setHomeSelected(SELECTED_PRESSED);
- sRollo.mState.save();
mCurrentIconIndex = -1;
} else {
mTouchTracking = TRACKING_FLING;
@@ -619,8 +602,8 @@ public class AllApps3D extends RSSurfaceView
mMotionDownRawX = (int)ev.getRawX();
mMotionDownRawY = (int)ev.getRawY();
- sRollo.mState.newPositionX = ev.getRawY() / getHeight();
- sRollo.mState.newTouchDown = 1;
+ sRollo.mScript.set_gNewPositionX(ev.getRawY() / getHeight());
+ sRollo.mScript.set_gNewTouchDown(1);
if (!sRollo.checkClickOK()) {
sRollo.clearSelectedIcon();
@@ -632,7 +615,6 @@ public class AllApps3D extends RSSurfaceView
cancelLongPress();
}
}
- sRollo.mState.save();
sRollo.move();
mVelocityTracker = VelocityTracker.obtain();
mVelocityTracker.addMovement(ev);
@@ -646,7 +628,6 @@ public class AllApps3D extends RSSurfaceView
y > mTouchYBorders[mTouchYBorders.length-1]) || (!isPortrait
&& x > mTouchXBorders[mTouchXBorders.length-1])
? SELECTED_PRESSED : SELECTED_NONE);
- sRollo.mState.save();
} else if (mTouchTracking == TRACKING_FLING) {
int rawY = (int)ev.getRawY();
int slop;
@@ -667,14 +648,13 @@ public class AllApps3D extends RSSurfaceView
cancelLongPress();
mCurrentIconIndex = -1;
}
- sRollo.mState.newPositionX = ev.getRawY() / getHeight();
- sRollo.mState.newTouchDown = 1;
+ sRollo.mScript.set_gNewPositionX(ev.getRawY() / getHeight());
+ sRollo.mScript.set_gNewTouchDown(1);
sRollo.move();
mStartedScrolling = true;
sRollo.clearSelectedIcon();
mVelocityTracker.addMovement(ev);
- sRollo.mState.save();
}
}
break;
@@ -688,17 +668,16 @@ public class AllApps3D extends RSSurfaceView
mLauncher.closeAllApps(true);
}
sRollo.setHomeSelected(SELECTED_NONE);
- sRollo.mState.save();
}
mCurrentIconIndex = -1;
} else if (mTouchTracking == TRACKING_FLING) {
- sRollo.mState.newTouchDown = 0;
- sRollo.mState.newPositionX = ev.getRawY() / getHeight();
+ sRollo.mScript.set_gNewTouchDown(0);
+ sRollo.mScript.set_gNewPositionX(ev.getRawY() / getHeight());
mVelocityTracker.computeCurrentVelocity(1000 /* px/sec */, mMaxFlingVelocity);
- sRollo.mState.flingVelocity = mVelocityTracker.getYVelocity() / getHeight();
+ sRollo.mScript.set_gFlingVelocity(mVelocityTracker.getYVelocity() / getHeight());
sRollo.clearSelectedIcon();
- sRollo.mState.save();
+ sRollo.move();
sRollo.fling();
if (mVelocityTracker != null) {
@@ -761,7 +740,7 @@ public class AllApps3D extends RSSurfaceView
int pos = -1;
switch (mLastSelection) {
case SELECTION_ICONS:
- index = sRollo.mState.selectedIconIndex;
+ index = sRollo.mScript.get_gSelectedIconIndex();
if (index >= 0) {
ApplicationInfo info = mAllAppsList.get(index);
if (info.title != null) {
@@ -853,13 +832,12 @@ public class AllApps3D extends RSSurfaceView
if (sRollo != null && reload) {
sRollo.setApps(list);
}
-
+
if (hasFocus() && mRestoreFocusIndex != -1) {
sRollo.selectIcon(mRestoreFocusIndex, SELECTED_FOCUSED);
- sRollo.mState.save();
mRestoreFocusIndex = -1;
}
-
+
mLocks &= ~LOCK_ICONS_PENDING;
}
@@ -876,7 +854,7 @@ public class AllApps3D extends RSSurfaceView
final int N = list.size();
if (sRollo != null) {
sRollo.pause();
- sRollo.reallocAppsList(sRollo.mState.iconCount + N);
+ sRollo.reallocAppsList(sRollo.mScript.get_gIconCount() + N);
}
for (int i=0; i<N; i++) {
@@ -988,14 +966,9 @@ public class AllApps3D extends RSSurfaceView
private int mHeight;
private Resources mRes;
- private Script mScript;
- private Script.Invokable mInvokeMove;
- private Script.Invokable mInvokeMoveTo;
- private Script.Invokable mInvokeFling;
- private Script.Invokable mInvokeResetWAR;
- private Script.Invokable mInvokeSetZoom;
-
- private ProgramStore mPSIcons;
+ ScriptC_allapps mScript;
+
+ //private ProgramStore mPSIcons;
private ProgramFragment mPFTexMip;
private ProgramFragment mPFTexMipAlpha;
private ProgramFragment mPFTexNearest;
@@ -1004,7 +977,7 @@ public class AllApps3D extends RSSurfaceView
private SimpleMesh mMesh;
private ProgramVertex.MatrixAllocation mPVA;
- private Allocation mUniformAlloc;
+ private ScriptField_VpConsts mUniformAlloc;
private Allocation mHomeButtonNormal;
private Allocation mHomeButtonFocused;
@@ -1021,11 +994,8 @@ public class AllApps3D extends RSSurfaceView
private Bitmap mSelectionBitmap;
private Canvas mSelectionCanvas;
-
- private float mScrollPos;
- Params mParams;
- State mState;
+ private float mScrollPos;
AllApps3D mAllApps;
boolean mInitialize;
@@ -1056,41 +1026,6 @@ public class AllApps3D extends RSSurfaceView
}
}
- class Params extends BaseAlloc {
- Params() {
- mType = Type.createFromClass(sRS, Params.class, 1, "ParamsClass");
- mAlloc = Allocation.createTyped(sRS, mType);
- save();
- }
- public int bubbleWidth;
- public int bubbleHeight;
- public int bubbleBitmapWidth;
- public int bubbleBitmapHeight;
-
- public int homeButtonWidth;
- public int homeButtonHeight;
- public int homeButtonTextureWidth;
- public int homeButtonTextureHeight;
- }
-
- class State extends BaseAlloc {
- public float newPositionX;
- public int newTouchDown;
- public float flingVelocity;
- public int iconCount;
- public int selectedIconIndex = -1;
- public int selectedIconTexture;
- public float zoomTarget;
- public int homeButtonId;
- public float targetPos;
-
- State() {
- mType = Type.createFromClass(sRS, State.class, 1, "StateClass");
- mAlloc = Allocation.createTyped(sRS, mType);
- save();
- }
- }
-
public RolloRS(AllApps3D allApps) {
mAllApps = allApps;
}
@@ -1099,12 +1034,17 @@ public class AllApps3D extends RSSurfaceView
mRes = res;
mWidth = width;
mHeight = height;
+ mScript = new ScriptC_allapps(sRS, mRes, R.raw.allapps_bc, true);
+
initProgramVertex();
initProgramFragment();
initProgramStore();
initGl();
initData();
- initRs();
+
+ mScript.bind_gIconIDs(mAllocIconIds);
+ mScript.bind_gLabelIDs(mAllocLabelIds);
+ sRS.contextBindRootScript(mScript);
}
public void initMesh() {
@@ -1120,7 +1060,7 @@ public class AllApps3D extends RSSurfaceView
tm.addTriangle(ct+1, ct+3, ct+2);
}
mMesh = tm.create();
- mMesh.setName("SMCell");
+ mScript.set_gSMCell(mMesh);
}
void resize(int w, int h) {
@@ -1136,17 +1076,10 @@ public class AllApps3D extends RSSurfaceView
ProgramVertex.Builder pvb = new ProgramVertex.Builder(sRS, null, null);
pvb.setTextureMatrixEnable(true);
mPV = pvb.create();
- mPV.setName("PV");
mPV.bindAllocation(mPVA);
- Element.Builder eb = new Element.Builder(sRS);
- eb.add(Element.createVector(sRS, Element.DataType.FLOAT_32, 2), "ImgSize");
- eb.add(Element.createVector(sRS, Element.DataType.FLOAT_32, 4), "Position");
- eb.add(Element.createVector(sRS, Element.DataType.FLOAT_32, 2), "BendPos");
- eb.add(Element.createVector(sRS, Element.DataType.FLOAT_32, 4), "ScaleOffset");
- Element e = eb.create();
-
- mUniformAlloc = Allocation.createSized(sRS, e, 1);
+ mUniformAlloc = new ScriptField_VpConsts(sRS, 1);
+ mScript.bind_vpConstants(mUniformAlloc);
initMesh();
ProgramVertex.ShaderBuilder sb = new ProgramVertex.ShaderBuilder(sRS);
@@ -1210,11 +1143,11 @@ public class AllApps3D extends RSSurfaceView
sb.addConstant(mUniformAlloc.getType());
sb.addInput(mMesh.getVertexType(0).getElement());
mPVCurve = sb.create();
- mPVCurve.setName("PVCurve");
mPVCurve.bindAllocation(mPVA);
- mPVCurve.bindConstants(mUniformAlloc, 1);
+ mPVCurve.bindConstants(mUniformAlloc.getAllocation(), 1);
sRS.contextBindProgramVertex(mPV);
+ mScript.set_gPVCurve(mPVCurve);
}
private void initProgramFragment() {
@@ -1233,19 +1166,19 @@ public class AllApps3D extends RSSurfaceView
bf.setTexture(ProgramFragment.Builder.EnvMode.MODULATE,
ProgramFragment.Builder.Format.RGBA, 0);
mPFTexMip = bf.create();
- mPFTexMip.setName("PFTexMip");
mPFTexMip.bindSampler(linear, 0);
mPFTexNearest = bf.create();
- mPFTexNearest.setName("PFTexNearest");
mPFTexNearest.bindSampler(nearest, 0);
bf.setTexture(ProgramFragment.Builder.EnvMode.MODULATE,
ProgramFragment.Builder.Format.ALPHA, 0);
mPFTexMipAlpha = bf.create();
- mPFTexMipAlpha.setName("PFTexMipAlpha");
mPFTexMipAlpha.bindSampler(linear, 0);
+ mScript.set_gPFTexNearest(mPFTexNearest);
+ mScript.set_gPFTexMip(mPFTexMip);
+ mScript.set_gPFTexMipAlpha(mPFTexMipAlpha);
}
private void initProgramStore() {
@@ -1255,23 +1188,17 @@ public class AllApps3D extends RSSurfaceView
bs.setDitherEnable(true);
bs.setBlendFunc(ProgramStore.BlendSrcFunc.SRC_ALPHA,
ProgramStore.BlendDstFunc.ONE_MINUS_SRC_ALPHA);
- mPSIcons = bs.create();
- mPSIcons.setName("PSIcons");
+ mScript.set_gPS(bs.create());
}
private void initGl() {
}
private void initData() {
- mParams = new Params();
- mState = new State();
-
- final Utilities.BubbleText bubble = new Utilities.BubbleText(mAllApps.getContext());
-
- mParams.bubbleWidth = bubble.getBubbleWidth();
- mParams.bubbleHeight = bubble.getMaxBubbleHeight();
- mParams.bubbleBitmapWidth = bubble.getBitmapWidth();
- mParams.bubbleBitmapHeight = bubble.getBitmapHeight();
+ mScript.set_COLUMNS_PER_PAGE_PORTRAIT(Defines.COLUMNS_PER_PAGE_PORTRAIT);
+ mScript.set_ROWS_PER_PAGE_PORTRAIT(Defines.ROWS_PER_PAGE_PORTRAIT);
+ mScript.set_COLUMNS_PER_PAGE_LANDSCAPE(Defines.COLUMNS_PER_PAGE_LANDSCAPE);
+ mScript.set_ROWS_PER_PAGE_LANDSCAPE(Defines.ROWS_PER_PAGE_LANDSCAPE);
mHomeButtonNormal = Allocation.createFromBitmapResource(sRS, mRes,
R.drawable.home_button_normal, Element.RGBA_8888(sRS), false);
@@ -1282,15 +1209,8 @@ public class AllApps3D extends RSSurfaceView
mHomeButtonPressed = Allocation.createFromBitmapResource(sRS, mRes,
R.drawable.home_button_pressed, Element.RGBA_8888(sRS), false);
mHomeButtonPressed.uploadToTexture(0);
- mParams.homeButtonWidth = 76;
- mParams.homeButtonHeight = 68;
- mParams.homeButtonTextureWidth = 128;
- mParams.homeButtonTextureHeight = 128;
- mState.homeButtonId = mHomeButtonNormal.getID();
-
- mParams.save();
- mState.save();
+ mScript.set_gHomeButton(mHomeButtonNormal);
mSelectionBitmap = Bitmap.createBitmap(Defines.SELECTION_TEXTURE_WIDTH_PX,
Defines.SELECTION_TEXTURE_HEIGHT_PX, Bitmap.Config.ARGB_8888);
@@ -1299,30 +1219,6 @@ public class AllApps3D extends RSSurfaceView
setApps(null);
}
- private void initRs() {
- ScriptC.Builder sb = new ScriptC.Builder(sRS);
- sb.setScript(mRes, R.raw.allapps);
- sb.setRoot(true);
- sb.addDefines(mAllApps.mDefines);
- sb.setType(mParams.mType, "params", Defines.ALLOC_PARAMS);
- sb.setType(mState.mType, "state", Defines.ALLOC_STATE);
- sb.setType(mUniformAlloc.getType(), "vpConstants", Defines.ALLOC_VP_CONSTANTS);
- mInvokeMove = sb.addInvokable("move");
- mInvokeFling = sb.addInvokable("fling");
- mInvokeMoveTo = sb.addInvokable("moveTo");
- mInvokeResetWAR = sb.addInvokable("resetHWWar");
- mInvokeSetZoom = sb.addInvokable("setZoom");
- mScript = sb.create();
- mScript.setClearColor(0.0f, 0.0f, 0.0f, 0.0f);
- mScript.bindAllocation(mParams.mAlloc, Defines.ALLOC_PARAMS);
- mScript.bindAllocation(mState.mAlloc, Defines.ALLOC_STATE);
- mScript.bindAllocation(mAllocIconIds, Defines.ALLOC_ICON_IDS);
- mScript.bindAllocation(mAllocLabelIds, Defines.ALLOC_LABEL_IDS);
- mScript.bindAllocation(mUniformAlloc, Defines.ALLOC_VP_CONSTANTS);
-
- sRS.contextBindRootScript(mScript);
- }
-
void dirtyCheck() {
if (sZoomDirty) {
setZoom(mAllApps.sNextZoom, mAllApps.sAnimateNextZoom);
@@ -1340,20 +1236,21 @@ public class AllApps3D extends RSSurfaceView
mIcons = new Allocation[count];
mIconIds = new int[allocCount];
- mAllocIconIds = Allocation.createSized(sRS, Element.USER_I32(sRS), allocCount);
+ mAllocIconIds = Allocation.createSized(sRS, Element.I32(sRS), allocCount);
mLabels = new Allocation[count];
mLabelIds = new int[allocCount];
- mAllocLabelIds = Allocation.createSized(sRS, Element.USER_I32(sRS), allocCount);
+ mAllocLabelIds = Allocation.createSized(sRS, Element.I32(sRS), allocCount);
- mState.iconCount = count;
- for (int i=0; i < mState.iconCount; i++) {
+ mScript.set_gIconCount(count);
+ for (int i=0; i < count; i++) {
createAppIconAllocations(i, list.get(i));
}
- for (int i=0; i < mState.iconCount; i++) {
+ for (int i=0; i < count; i++) {
uploadAppIcon(i, list.get(i));
}
saveAppsList();
+ android.util.Log.e("rs", "setApps");
sRollo.resume();
}
@@ -1363,13 +1260,12 @@ public class AllApps3D extends RSSurfaceView
sRollo.setHomeSelected(SELECTED_NONE);
}
if (zoom > 0.001f) {
- sRollo.mState.zoomTarget = zoom;
+ sRollo.mScript.set_gZoomTarget(zoom);
} else {
- sRollo.mState.zoomTarget = 0;
+ sRollo.mScript.set_gZoomTarget(0);
}
- sRollo.mState.save();
if (!animate) {
- sRollo.mInvokeSetZoom.execute();
+ sRollo.mScript.invokable_SetZoom();
}
}
@@ -1400,13 +1296,13 @@ public class AllApps3D extends RSSurfaceView
private void reallocAppsList(int count) {
Allocation[] icons = new Allocation[count];
int[] iconIds = new int[count];
- mAllocIconIds = Allocation.createSized(sRS, Element.USER_I32(sRS), count);
+ mAllocIconIds = Allocation.createSized(sRS, Element.I32(sRS), count);
Allocation[] labels = new Allocation[count];
int[] labelIds = new int[count];
- mAllocLabelIds = Allocation.createSized(sRS, Element.USER_I32(sRS), count);
+ mAllocLabelIds = Allocation.createSized(sRS, Element.I32(sRS), count);
- final int oldCount = sRollo.mState.iconCount;
+ final int oldCount = sRollo.mScript.get_gIconCount();
System.arraycopy(mIcons, 0, icons, 0, oldCount);
System.arraycopy(mIconIds, 0, iconIds, 0, oldCount);
@@ -1423,7 +1319,7 @@ public class AllApps3D extends RSSurfaceView
* Handle the allocations for the new app. Make sure you call saveAppsList when done.
*/
private void addApp(int index, ApplicationInfo item) {
- final int count = mState.iconCount - index;
+ final int count = mScript.get_gIconCount() - index;
final int dest = index + 1;
System.arraycopy(mIcons, index, mIcons, dest, count);
@@ -1433,14 +1329,15 @@ public class AllApps3D extends RSSurfaceView
createAppIconAllocations(index, item);
uploadAppIcon(index, item);
- sRollo.mState.iconCount++;
+
+ mScript.set_gIconCount(mScript.get_gIconCount() + 1);
}
/**
* Handle the allocations for the removed app. Make sure you call saveAppsList when done.
*/
private void removeApp(int index) {
- final int count = mState.iconCount - index - 1;
+ final int count = mScript.get_gIconCount() - index - 1;
final int src = index + 1;
System.arraycopy(mIcons, src, mIcons, index, count);
@@ -1448,8 +1345,8 @@ public class AllApps3D extends RSSurfaceView
System.arraycopy(mLabels, src, mLabels, index, count);
System.arraycopy(mLabelIds, src, mLabelIds, index, count);
- sRollo.mState.iconCount--;
- final int last = mState.iconCount;
+ mScript.set_gIconCount(mScript.get_gIconCount() - 1);
+ final int last = mScript.get_gIconCount();
mIcons[last] = null;
mIconIds[last] = 0;
@@ -1466,31 +1363,22 @@ public class AllApps3D extends RSSurfaceView
mAllocIconIds.data(mIconIds);
mAllocLabelIds.data(mLabelIds);
- mScript.bindAllocation(mAllocIconIds, Defines.ALLOC_ICON_IDS);
- mScript.bindAllocation(mAllocLabelIds, Defines.ALLOC_LABEL_IDS);
-
- mState.save();
-
- // Note: mScript may be null if we haven't initialized it yet.
- // In that case, this is a no-op.
- if (mInvokeResetWAR != null) {
- mInvokeResetWAR.execute();
- }
+ mScript.bind_gIconIDs(mAllocIconIds);
+ mScript.bind_gLabelIDs(mAllocLabelIds);
}
}
void fling() {
- mInvokeFling.execute();
+ mScript.invokable_Fling();
}
void move() {
- mInvokeMove.execute();
+ mScript.invokable_Move();
}
void moveTo(float row) {
- mState.targetPos = row;
- mState.save();
- mInvokeMoveTo.execute();
+ mScript.set_gTargetPos(row);
+ mScript.invokable_MoveTo();
}
/**
@@ -1520,7 +1408,7 @@ public class AllApps3D extends RSSurfaceView
if (mAllApps != null) {
mAllApps.mRestoreFocusIndex = index;
}
- mState.selectedIconIndex = -1;
+ mScript.set_gSelectedIconIndex(-1);
if (mAllApps.mLastSelection == SELECTION_ICONS) {
mAllApps.mLastSelection = SELECTION_NONE;
}
@@ -1529,8 +1417,8 @@ public class AllApps3D extends RSSurfaceView
mAllApps.mLastSelection = SELECTION_ICONS;
}
- int prev = mState.selectedIconIndex;
- mState.selectedIconIndex = index;
+ int prev = mScript.get_gSelectedIconIndex();
+ mScript.set_gSelectedIconIndex(index);
ApplicationInfo info = appsList.get(index);
Bitmap selectionBitmap = mSelectionBitmap;
@@ -1542,7 +1430,7 @@ public class AllApps3D extends RSSurfaceView
mSelectedIcon = Allocation.createFromBitmap(sRS, selectionBitmap,
Element.RGBA_8888(sRS), false);
mSelectedIcon.uploadToTexture(0);
- mState.selectedIconTexture = mSelectedIcon.getID();
+ mScript.set_gSelectedIconTexture(mSelectedIcon);
if (prev != index) {
if (info.title != null && info.title.length() > 0) {
@@ -1557,24 +1445,24 @@ public class AllApps3D extends RSSurfaceView
* You need to call save() on mState on your own after calling this.
*/
void clearSelectedIcon() {
- mState.selectedIconIndex = -1;
+ mScript.set_gSelectedIconIndex(-1);
}
void setHomeSelected(int mode) {
final int prev = mAllApps.mLastSelection;
switch (mode) {
case SELECTED_NONE:
- mState.homeButtonId = mHomeButtonNormal.getID();
+ mScript.set_gHomeButton(mHomeButtonNormal);
break;
case SELECTED_FOCUSED:
mAllApps.mLastSelection = SELECTION_HOME;
- mState.homeButtonId = mHomeButtonFocused.getID();
+ mScript.set_gHomeButton(mHomeButtonFocused);
if (prev != SELECTION_HOME) {
mAllApps.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED);
}
break;
case SELECTED_PRESSED:
- mState.homeButtonId = mHomeButtonPressed.getID();
+ mScript.set_gHomeButton(mHomeButtonPressed);
break;
}
}
@@ -1594,23 +1482,15 @@ public class AllApps3D extends RSSurfaceView
Log.d(TAG, "sRollo.mLabelIds.length=" + mLabelIds.length);
}
Log.d(TAG, "sRollo.mLabelIds=" + Arrays.toString(mLabelIds));
- Log.d(TAG, "sRollo.mState.newPositionX=" + mState.newPositionX);
- Log.d(TAG, "sRollo.mState.newTouchDown=" + mState.newTouchDown);
- Log.d(TAG, "sRollo.mState.flingVelocity=" + mState.flingVelocity);
- Log.d(TAG, "sRollo.mState.iconCount=" + mState.iconCount);
- Log.d(TAG, "sRollo.mState.selectedIconIndex=" + mState.selectedIconIndex);
- Log.d(TAG, "sRollo.mState.selectedIconTexture=" + mState.selectedIconTexture);
- Log.d(TAG, "sRollo.mState.zoomTarget=" + mState.zoomTarget);
- Log.d(TAG, "sRollo.mState.homeButtonId=" + mState.homeButtonId);
- Log.d(TAG, "sRollo.mState.targetPos=" + mState.targetPos);
- Log.d(TAG, "sRollo.mParams.bubbleWidth=" + mParams.bubbleWidth);
- Log.d(TAG, "sRollo.mParams.bubbleHeight=" + mParams.bubbleHeight);
- Log.d(TAG, "sRollo.mParams.bubbleBitmapWidth=" + mParams.bubbleBitmapWidth);
- Log.d(TAG, "sRollo.mParams.bubbleBitmapHeight=" + mParams.bubbleBitmapHeight);
- Log.d(TAG, "sRollo.mParams.homeButtonWidth=" + mParams.homeButtonWidth);
- Log.d(TAG, "sRollo.mParams.homeButtonHeight=" + mParams.homeButtonHeight);
- Log.d(TAG, "sRollo.mParams.homeButtonTextureWidth=" + mParams.homeButtonTextureWidth);
- Log.d(TAG, "sRollo.mParams.homeButtonTextureHeight=" + mParams.homeButtonTextureHeight);
+ //Log.d(TAG, "sRollo.mState.newPositionX=" + mState.newPositionX);
+ //Log.d(TAG, "sRollo.mState.newTouchDown=" + mState.newTouchDown);
+ //Log.d(TAG, "sRollo.mState.flingVelocity=" + mState.flingVelocity);
+ //Log.d(TAG, "sRollo.mState.iconCount=" + mState.iconCount);
+ //Log.d(TAG, "sRollo.mState.selectedIconIndex=" + mState.selectedIconIndex);
+ //Log.d(TAG, "sRollo.mState.selectedIconTexture=" + mState.selectedIconTexture);
+ //Log.d(TAG, "sRollo.mState.zoomTarget=" + mState.zoomTarget);
+ //Log.d(TAG, "sRollo.mState.homeButtonId=" + mState.homeButtonId);
+ //Log.d(TAG, "sRollo.mState.targetPos=" + mState.targetPos);
}
}
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 9d39c2ca7..56b62ba91 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -136,8 +136,8 @@ public class CellLayout extends ViewGroup {
public void addView(View child, int index, ViewGroup.LayoutParams params) {
// Generate an id for each view, this assumes we have at most 256x256 cells
// per workspace screen
- final LayoutParams cellParams = (LayoutParams) params;
- cellParams.regenerateId = true;
+ final LayoutParams lp = (LayoutParams) params;
+ child.setId(((getId() & 0xFF) << 16) | (lp.cellX & 0xFF) << 8 | (lp.cellY & 0xFF));
super.addView(child, index, params);
}
@@ -536,11 +536,6 @@ public class CellLayout extends ViewGroup {
shortAxisStartPadding);
}
- if (lp.regenerateId) {
- child.setId(((getId() & 0xFF) << 16) | (lp.cellX & 0xFF) << 8 | (lp.cellY & 0xFF));
- lp.regenerateId = false;
- }
-
int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(lp.width, MeasureSpec.EXACTLY);
int childheightMeasureSpec =
MeasureSpec.makeMeasureSpec(lp.height, MeasureSpec.EXACTLY);
@@ -889,8 +884,6 @@ out: for (int i = x; i < x + spanX - 1 && x < xCount; i++) {
@ViewDebug.ExportedProperty
int y;
- boolean regenerateId;
-
boolean dropped;
public LayoutParams(Context c, AttributeSet attrs) {
diff --git a/src/com/android/launcher2/ScriptC_allapps.java b/src/com/android/launcher2/ScriptC_allapps.java
new file mode 100644
index 000000000..4bd1c3926
--- /dev/null
+++ b/src/com/android/launcher2/ScriptC_allapps.java
@@ -0,0 +1,197 @@
+
+package com.android.launcher2;
+
+import android.content.res.Resources;
+import android.renderscript.*;
+import android.util.Log;
+
+public class ScriptC_allapps
+ extends android.renderscript.ScriptC
+{
+ public ScriptC_allapps(RenderScript rs, Resources resources, int id, boolean isRoot) {
+ super(rs, resources, id, isRoot);
+ }
+
+ private int mField_COLUMNS_PER_PAGE_PORTRAIT;
+ public void set_COLUMNS_PER_PAGE_PORTRAIT(int v) {
+ mField_COLUMNS_PER_PAGE_PORTRAIT = v;
+ setVar(0, v);
+ }
+
+ private int mField_ROWS_PER_PAGE_PORTRAIT;
+ public void set_ROWS_PER_PAGE_PORTRAIT(int v) {
+ mField_ROWS_PER_PAGE_PORTRAIT = v;
+ setVar(1, v);
+ }
+
+ private int mField_COLUMNS_PER_PAGE_LANDSCAPE;
+ public void set_COLUMNS_PER_PAGE_LANDSCAPE(int v) {
+ mField_COLUMNS_PER_PAGE_LANDSCAPE = v;
+ setVar(2, v);
+ }
+
+ private int mField_ROWS_PER_PAGE_LANDSCAPE;
+ public void set_ROWS_PER_PAGE_LANDSCAPE(int v) {
+ mField_ROWS_PER_PAGE_LANDSCAPE = v;
+ setVar(3, v);
+ }
+
+
+ private float mField_gNewPositionX;
+ public void set_gNewPositionX(float v) {
+ mField_gNewPositionX = v;
+ setVar(4, v);
+ }
+
+ private int mField_gNewTouchDown;
+ public void set_gNewTouchDown(int v) {
+ mField_gNewTouchDown = v;
+ setVar(5, v);
+ }
+
+ private float mField_gFlingVelocity;
+ public void set_gFlingVelocity(float v) {
+ mField_gFlingVelocity = v;
+ setVar(6, v);
+ }
+
+ private int mField_gIconCount;
+ public void set_gIconCount(int v) {
+ mField_gIconCount = v;
+ setVar(7, v);
+ }
+ public int get_gIconCount() {
+ return mField_gIconCount;
+ }
+
+ private int mField_gSelectedIconIndex;
+ public void set_gSelectedIconIndex(int v) {
+ mField_gSelectedIconIndex = v;
+ setVar(8, v);
+ }
+ public int get_gSelectedIconIndex() {
+ return mField_gSelectedIconIndex;
+ }
+
+ private Allocation mField_gSelectedIconTexture;
+ public void set_gSelectedIconTexture(Allocation v) {
+ mField_gSelectedIconTexture = v;
+ setVar(9, v.getID());
+ }
+
+ private float mField_gZoomTarget;
+ public void set_gZoomTarget(float v) {
+ mField_gZoomTarget = v;
+ setVar(10, v);
+ }
+
+ private Allocation mField_gHomeButton;
+ public void set_gHomeButton(Allocation v) {
+ mField_gHomeButton = v;
+ setVar(11, v.getID());
+ }
+
+ private float mField_gTargetPos;
+ public void set_gTargetPos(float v) {
+ mField_gTargetPos = v;
+ setVar(12, v);
+ }
+
+
+ private ProgramFragment mField_gPFTexNearest;
+ public void set_gPFTexNearest(ProgramFragment v) {
+ mField_gPFTexNearest = v;
+ setVar(13, v.getID());
+ }
+
+ private ProgramFragment mField_gPFTexMip;
+ public void set_gPFTexMip(ProgramFragment v) {
+ mField_gPFTexMip = v;
+ setVar(14, v.getID());
+ }
+
+ private ProgramFragment mField_gPFTexMipAlpha;
+ public void set_gPFTexMipAlpha(ProgramFragment v) {
+ mField_gPFTexMipAlpha = v;
+ setVar(15, v.getID());
+ }
+
+ private ProgramVertex mField_gPVCurve;
+ public void set_gPVCurve(ProgramVertex v) {
+ mField_gPVCurve = v;
+ setVar(16, v.getID());
+ }
+
+ private ProgramStore mField_gPS;
+ public void set_gPS(ProgramStore v) {
+ mField_gPS = v;
+ setVar(17, v.getID());
+ }
+
+ private SimpleMesh mField_gSMCell;
+ public void set_gSMCell(SimpleMesh v) {
+ mField_gSMCell = v;
+ setVar(18, v.getID());
+ }
+
+
+ // binds
+ private Allocation mField_gIconIDs;
+ public void bind_gIconIDs(Allocation f) {
+ mField_gIconIDs = f;
+ bindAllocation(f, 19);
+ }
+ public Allocation get_gIconIDs() {
+ return mField_gIconIDs;
+ }
+
+ private Allocation mField_gLabelIDs;
+ public void bind_gLabelIDs(Allocation f) {
+ mField_gLabelIDs = f;
+ bindAllocation(f, 20);
+ }
+ public Allocation get_gLabelIDs() {
+ return mField_gLabelIDs;
+ }
+
+ private ScriptField_VpConsts mField_vpConstants;
+ public void bind_vpConstants(ScriptField_VpConsts f) {
+ android.util.Log.e("rs", "bind_vpConstants " + f);
+ mField_vpConstants = f;
+ if (f == null) {
+ bindAllocation(null, 21);
+ } else {
+ bindAllocation(f.getAllocation(), 21);
+ }
+ }
+ public ScriptField_VpConsts get_vpConstants() {
+ return mField_vpConstants;
+ }
+
+
+
+//#pragma rs export_func(resetHWWar, move, moveTo, setZoom, fling)
+
+ public void invokable_Move() {
+ //android.util.Log.e("rs", "invokable_Move");
+ invoke(7); // verified
+ }
+ public void invokable_MoveTo() {
+ //android.util.Log.e("rs", "invokable_MoveTo");
+ invoke(8); // verified
+ }
+ public void invokable_Fling() {
+ //android.util.Log.e("rs", "invokable_Fling");
+ invoke(2);
+ }
+ //public void invokable_ResetWAR() {
+ //android.util.Log.e("rs", "invokable_WAR");
+ //invoke(9); // verified
+ //}
+ public void invokable_SetZoom() {
+ //android.util.Log.e("rs", "invokable_SetZoom");
+ invoke(12);
+ }
+}
+
+
diff --git a/src/com/android/launcher2/ScriptField_VpConsts.java b/src/com/android/launcher2/ScriptField_VpConsts.java
new file mode 100644
index 000000000..c6411fe84
--- /dev/null
+++ b/src/com/android/launcher2/ScriptField_VpConsts.java
@@ -0,0 +1,73 @@
+
+package com.android.launcher2;
+
+import android.content.res.Resources;
+import android.renderscript.*;
+import android.util.Log;
+
+public class ScriptField_VpConsts
+ extends android.renderscript.Script.FieldBase
+{
+
+ static public class Item {
+ Item() {
+ Position = new Float4();
+ ScaleOffset = new Float4();
+ BendPos = new Float2();
+ ImgSize = new Float2();
+ }
+
+ public static final int sizeof = (12*4);
+
+ Float4 Position;
+ Float4 ScaleOffset;
+ Float2 BendPos;
+ Float2 ImgSize;
+ }
+ private Item mItemArray[];
+
+
+ public ScriptField_VpConsts(RenderScript rs, int count) {
+ // Allocate a pack/unpack buffer
+ mIOBuffer = new FieldPacker(Item.sizeof * count);
+ mItemArray = new Item[count];
+
+ Element.Builder eb = new Element.Builder(rs);
+ eb.add(Element.F32_4(rs), "Position");
+ eb.add(Element.F32_4(rs), "ScaleOffset");
+ eb.add(Element.F32_2(rs), "BendPos");
+ eb.add(Element.F32_2(rs), "ImgSize");
+ mElement = eb.create();
+
+ init(rs, count);
+ }
+
+ private void copyToArray(Item i, int index) {
+ mIOBuffer.reset(index * Item.sizeof);
+ mIOBuffer.addF32(i.Position);
+ mIOBuffer.addF32(i.ScaleOffset);
+ mIOBuffer.addF32(i.BendPos);
+ mIOBuffer.addF32(i.ImgSize);
+ }
+
+ public void set(Item i, int index, boolean copyNow) {
+ mItemArray[index] = i;
+ if (copyNow) {
+ copyToArray(i, index);
+ mAllocation.subData1D(index * Item.sizeof, Item.sizeof, mIOBuffer.getData());
+ }
+ }
+
+ public void copyAll() {
+ for (int ct=0; ct < mItemArray.length; ct++) {
+ copyToArray(mItemArray[ct], ct);
+ }
+ mAllocation.data(mIOBuffer.getData());
+ }
+
+
+ private FieldPacker mIOBuffer;
+
+
+}
+