triangle.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include "Crown.h"
  2. #include "OS.h"
  3. #include <jni.h>
  4. #include <GLES/gl.h>
  5. namespace crown
  6. {
  7. extern "C"
  8. {
  9. JNIEXPORT void JNICALL Java_crown_android_CrownLib_frame(JNIEnv* env, jobject obj);
  10. };
  11. void draw_triangle()
  12. {
  13. static GLfloat vertices[] = { -1.0f, -1.0f, -2.0f,
  14. 1.0f, -1.0f, -2.0f,
  15. 0.0f, 1.0f, -2.0f};
  16. GetDevice()->GetRenderer()->SetMatrix(MT_MODEL, Mat4::IDENTITY);
  17. Mat4 projection;
  18. projection.build_projection_perspective_rh(90.0f, 800.0f/480.0f, 0.1f, 100.0f);
  19. GetDevice()->GetRenderer()->SetMatrix(MT_PROJECTION, projection);
  20. GetDevice()->GetRenderer()->SetClearColor(Color4::RED);
  21. glEnableClientState(GL_VERTEX_ARRAY);
  22. glVertexPointer(3, GL_FLOAT, 0, vertices);
  23. glDrawArrays(GL_TRIANGLES, 0, 9);
  24. glDisableClientState(GL_VERTEX_ARRAY);
  25. }
  26. void frame()
  27. {
  28. Device* mDevice = GetDevice();
  29. os::event_loop();
  30. GetInputManager()->EventLoop();
  31. GetDevice()->GetRenderer()->_BeginFrame();
  32. draw_triangle();
  33. GetDevice()->GetRenderer()->_EndFrame();
  34. os::swap_buffers();
  35. }
  36. JNIEXPORT void JNICALL Java_crown_android_CrownLib_frame(JNIEnv* env, jobject obj)
  37. {
  38. Log::I("Render frame.");
  39. frame();
  40. }
  41. } // namespace crown