FBOSyncViewpublic class FBOSyncView extends android.renderscript.RSSurfaceView
Fields Summary |
---|
private android.renderscript.RenderScriptGL | mRS | private FBOSyncRS | mRender | private android.view.ScaleGestureDetector | mScaleDetector | private static final int | INVALID_POINTER_ID | private int | mActivePointerId |
Constructors Summary |
---|
public FBOSyncView(android.content.Context context)
super(context);
ensureRenderScript();
mScaleDetector = new ScaleGestureDetector(context, new ScaleListener());
|
Methods Summary |
---|
private void | ensureRenderScript()
if (mRS == null) {
RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig();
sc.setDepth(16, 24);
mRS = createRenderScriptGL(sc);
mRender = new FBOSyncRS();
mRender.init(mRS, getResources());
}
| public void | loadA3DFile(java.lang.String path)
mRender.loadA3DFile(path);
| protected void | onAttachedToWindow()
super.onAttachedToWindow();
ensureRenderScript();
| protected void | onDetachedFromWindow()
mRender = null;
if (mRS != null) {
mRS = null;
destroyRenderScriptGL();
}
| 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);
mRender.surfaceChanged();
|
|