2
0

lua_gui.cpp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*
  2. * Copyright (c) 2012-2014 Daniele Bartolini and individual contributors.
  3. * License: https://github.com/taylor001/crown/blob/master/LICENSE
  4. */
  5. #include "gui.h"
  6. #include "lua_environment.h"
  7. #include "lua_stack.h"
  8. #include "vector3.h"
  9. #include "quaternion.h"
  10. #include "color4.h"
  11. #include "device.h"
  12. #include "resource_manager.h"
  13. #include "font_resource.h"
  14. namespace crown
  15. {
  16. static int gui_resolution(lua_State* L)
  17. {
  18. LuaStack stack(L);
  19. const Vector2 resolution = stack.get_gui(1)->resolution();
  20. stack.push_int32((uint32_t)resolution.x);
  21. stack.push_int32((uint32_t)resolution.y);
  22. return 2;
  23. }
  24. static int gui_move(lua_State* L)
  25. {
  26. LuaStack stack(L);
  27. stack.get_gui(1)->move(stack.get_vector2(2));
  28. return 0;
  29. }
  30. static int gui_screen_to_gui(lua_State* L)
  31. {
  32. LuaStack stack(L);
  33. stack.push_vector2(stack.get_gui(1)->screen_to_gui(stack.get_vector2(2)));
  34. return 1;
  35. }
  36. static int gui_draw_rectangle(lua_State* L)
  37. {
  38. LuaStack stack(L);
  39. stack.get_gui(1)->draw_rectangle(stack.get_vector3(2), stack.get_vector2(3),
  40. stack.get_color4(4));
  41. return 0;
  42. }
  43. static int gui_draw_image(lua_State* L)
  44. {
  45. LuaStack stack(L);
  46. stack.get_gui(1)->draw_image(stack.get_string(2), stack.get_vector3(3),
  47. stack.get_vector2(4), stack.get_color4(5));
  48. return 0;
  49. }
  50. static int gui_draw_image_uv(lua_State* L)
  51. {
  52. LuaStack stack(L);
  53. stack.get_gui(1)->draw_image_uv(stack.get_string(2), stack.get_vector3(3),
  54. stack.get_vector2(4), stack.get_vector2(5), stack.get_vector2(6), stack.get_color4(7));
  55. return 0;
  56. }
  57. static int gui_draw_text(lua_State* L)
  58. {
  59. LuaStack stack(L);
  60. stack.get_gui(1)->draw_text(stack.get_string(2), stack.get_string(3), stack.get_int(4),
  61. stack.get_vector3(5), stack.get_color4(6));
  62. return 0;
  63. }
  64. void load_gui(LuaEnvironment& env)
  65. {
  66. env.load_module_function("Gui", "resolution", gui_resolution);
  67. env.load_module_function("Gui", "move", gui_move);
  68. env.load_module_function("Gui", "screen_to_gui", gui_screen_to_gui);
  69. env.load_module_function("Gui", "draw_rectangle", gui_draw_rectangle);
  70. env.load_module_function("Gui", "draw_image", gui_draw_image);
  71. env.load_module_function("Gui", "draw_image_uv", gui_draw_image_uv);
  72. env.load_module_function("Gui", "draw_text", gui_draw_text);
  73. }
  74. } // namespace crown