/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); gestureDetector = new GestureDetector(this, new GlAppGestureListener(this)); surface = new GLSurfaceView(this); renderer = new GlRenderer(this); Bundle extras = getIntent().getExtras(); renderer.SetExampleNum(extras.getInt(EXAMPLE_NAME)); if ((renderer.GetExampleNum() == 5) || (renderer.GetExampleNum() == 7) || (renderer.GetExampleNum() == 6)) { Context context = getApplicationContext(); Toast toast = Toast.makeText(context, "Используйте двойной клик", Toast.LENGTH_LONG); toast.setGravity(Gravity.BOTTOM, 0, 50); toast.show(); } if (renderer.GetExampleNum() == 4) { Context context = getApplicationContext(); Toast toast = Toast.makeText(context, "Нажмите и проведите", Toast.LENGTH_LONG); toast.setGravity(Gravity.BOTTOM, 0, 50); toast.show(); } surface.setRenderer(renderer); setContentView(surface); }
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_L: GlRenderer.toggleLighting(); break; case KeyEvent.KEYCODE_F: GlRenderer.switchToNextFilter(); break; case KeyEvent.KEYCODE_B: GlRenderer.toggleBlending(); break; case KeyEvent.KEYCODE_DPAD_CENTER: GlRenderer.xSpeed = GlRenderer.ySpeed = 0; break; case KeyEvent.KEYCODE_DPAD_LEFT: GlRenderer.ySpeed -= 0.1f; break; case KeyEvent.KEYCODE_DPAD_RIGHT: GlRenderer.ySpeed += 0.1f; break; case KeyEvent.KEYCODE_DPAD_UP: GlRenderer.xSpeed -= 0.1f; break; case KeyEvent.KEYCODE_DPAD_DOWN: GlRenderer.xSpeed += 0.1f; break; } return super.onKeyDown(keyCode, event); }
@Override void setup(int width, int height) { super.setup(width, height); if (mVsyncDisabled) { disableVsync(); } }
@Override void destroy(boolean full) { try { super.destroy(full); } finally { if (full && mGlCanvas != null) { mGlCanvas = null; } } }
@Override public boolean onTouchEvent(MotionEvent event) { if (gestureDetector.onTouchEvent(event)) { return true; } int action = event.getAction(); if (renderer.GetExampleNum() == 4) { if ((action == MotionEvent.ACTION_DOWN) | (action == MotionEvent.ACTION_UP)) { tx = event.getX(); ty = event.getY(); } if (action == MotionEvent.ACTION_MOVE) { renderer.ChangeLightPosition(0.5f * (event.getX() - tx), 0.5f * (event.getY() - ty)); tx = event.getX(); ty = event.getY(); } } return super.onTouchEvent(event); }