blob: 27c628eeb18207f7254dcdab53c4fbcdd523dd08 [file] [log] [blame]
package com.example.android.rs.nbody_gl;
import android.content.Context;
import android.opengl.GLSurfaceView;
import android.util.AttributeSet;
import android.util.Log;
import android.view.InputDevice;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
public class BasicGLSurfaceView extends GLSurfaceView {
private static final String TAG = "BasicGLSurfaceView";
private final BasicGLRenderer mRenderer;
public BasicGLSurfaceView(Context context, AttributeSet attrs) {
super(context, attrs);
setEGLContextClientVersion(2);
mRenderer = new BasicGLRenderer(context, this);
setup();
}
public BasicGLSurfaceView(Context context) {
super(context);
setEGLContextClientVersion(2);
mRenderer = new BasicGLRenderer(context, this);
setup();
}
private void setup() {
setRenderer(mRenderer);
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
setFocusable(true);
setFocusableInTouchMode(true);
requestFocus();
}
private final float TOUCH_SCALE_FACTOR = 180.0f / 320;
private float mPreviousX;
private float mPreviousY;
@Override
public void onResume() {
super.onResume();
mRenderer.onResume();
}
@Override
public void onPause() {
mRenderer.onPause();
super.onPause();
}
@Override
public boolean onTouchEvent(MotionEvent e) {
mRenderer.onTouchEvent(e);
return true;
}
@Override
public boolean onGenericMotionEvent(MotionEvent event) {
Log.v(TAG,"onGenericMotionEvent ");
if (event.isFromSource(InputDevice.SOURCE_CLASS_JOYSTICK)) {
if (event.getAction() == MotionEvent.ACTION_MOVE) {
float x = event.getAxisValue(MotionEvent.AXIS_X);
float y = event.getAxisValue(MotionEvent.AXIS_Y);
mRenderer.onJoystick(x,y);
return true;
}
}
return super.onGenericMotionEvent(event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
mRenderer.onKeyDown(keyCode, event);
return super.onKeyDown(keyCode, event);
}
}