TestAppViewpublic class TestAppView extends android.renderscript.RSSurfaceView
Fields Summary |
---|
private android.renderscript.RenderScriptGL | mRS | TestAppRS | mRender | private android.view.ScaleGestureDetector | mScaleDetector | private static final int | INVALID_POINTER_ID | private int | mActivePointerId |
Constructors Summary |
---|
public TestAppView(android.content.Context context)
super(context);
mScaleDetector = new ScaleGestureDetector(context, new ScaleListener());
|
Methods Summary |
---|
protected void | onDetachedFromWindow()
if (mRS != null) {
mRender = null;
mRS = null;
destroyRenderScriptGL();
}
| public boolean | onKeyDown(int keyCode, android.view.KeyEvent event)
// break point at here
// this method doesn't work when 'extends View' include 'extends ScrollView'.
return super.onKeyDown(keyCode, event);
| public boolean | onTouchEvent(android.view.MotionEvent ev)
mScaleDetector.onTouchEvent(ev);
boolean ret = false;
float x = ev.getX();
float y = ev.getY();
final int action = ev.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: {
mRender.onActionDown(x, y);
mActivePointerId = ev.getPointerId(0);
ret = true;
break;
}
case MotionEvent.ACTION_MOVE: {
if (!mScaleDetector.isInProgress()) {
mRender.onActionMove(x, y);
}
mRender.onActionDown(x, y);
ret = true;
break;
}
case MotionEvent.ACTION_UP: {
mActivePointerId = INVALID_POINTER_ID;
break;
}
case MotionEvent.ACTION_CANCEL: {
mActivePointerId = INVALID_POINTER_ID;
break;
}
case MotionEvent.ACTION_POINTER_UP: {
final int pointerIndex = (ev.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK)
>> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
final int pointerId = ev.getPointerId(pointerIndex);
if (pointerId == mActivePointerId) {
// This was our active pointer going up. Choose a new
// active pointer and adjust accordingly.
final int newPointerIndex = pointerIndex == 0 ? 1 : 0;
x = ev.getX(newPointerIndex);
y = ev.getY(newPointerIndex);
mRender.onActionDown(x, y);
mActivePointerId = ev.getPointerId(newPointerIndex);
}
break;
}
}
return ret;
| public void | surfaceChanged(android.view.SurfaceHolder holder, int format, int w, int h)
super.surfaceChanged(holder, format, w, h);
if (mRS == null) {
RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig();
sc.setDepth(16, 24);
sc.setSamples(1, 2, 1);
mRS = createRenderScriptGL(sc);
mRS.setSurface(holder, w, h);
mRender = new TestAppRS();
mRender.init(mRS, getResources(), w, h);
}
|
|