SceneRendererSample.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include "SceneRendererSample.h"
  2. #include "SamplesGame.h"
  3. #if defined(ADD_SAMPLE)
  4. ADD_SAMPLE("Scene", "SceneRenderer", SceneRendererSample, 3);
  5. #endif
  6. SceneRendererSample::SceneRendererSample() : _font(NULL), _scene(NULL), _visibleSet(NULL)
  7. {
  8. }
  9. void SceneRendererSample::initialize()
  10. {
  11. setMultiTouch(true);
  12. _font = Font::create("res/common/arial.gpb");
  13. _scene = Scene::load("res/common/sample.scene");
  14. _visibleSet = VisibleSetDefault::create(_scene);
  15. _renderer = SceneRendererForward::create();
  16. _scene->getActiveCamera()->setAspectRatio(getAspectRatio());
  17. }
  18. void SceneRendererSample::finalize()
  19. {
  20. SAFE_RELEASE(_font);
  21. }
  22. void SceneRendererSample::update(float elapsedTime)
  23. {
  24. }
  25. void SceneRendererSample::render(float elapsedTime)
  26. {
  27. clear(CLEAR_COLOR_DEPTH, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0);
  28. _renderer->render(_visibleSet);
  29. drawFrameRate(_font, Vector4(0, 0.5f, 1, 1), 5, 1, getFrameRate());
  30. }
  31. void SceneRendererSample::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
  32. {
  33. switch (evt)
  34. {
  35. case Touch::TOUCH_PRESS:
  36. if (x < 75 && y < 50)
  37. {
  38. // Toggle Vsync if the user touches the top left corner
  39. setVsync(!isVsync());
  40. return;
  41. }
  42. break;
  43. case Touch::TOUCH_RELEASE:
  44. break;
  45. case Touch::TOUCH_MOVE:
  46. break;
  47. };
  48. }
  49. void SceneRendererSample::keyEvent(Keyboard::KeyEvent evt, int key)
  50. {
  51. }