MacOpenGLWindow.cpp 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. #ifndef B3_USE_GLFW
  2. #ifdef __APPLE__
  3. #include "MacOpenGLWindow.h"
  4. #include "OpenGLInclude.h"
  5. #include "MacOpenGLWindowObjC.h"
  6. #include <stdlib.h>
  7. #include <stdio.h>
  8. #include <stddef.h>
  9. #include <string.h>
  10. MacOpenGLWindow::MacOpenGLWindow()
  11. : m_internalData(0)
  12. {
  13. m_internalData = Mac_createData();
  14. }
  15. MacOpenGLWindow::~MacOpenGLWindow()
  16. {
  17. Mac_destroyData(m_internalData);
  18. }
  19. void MacOpenGLWindow::closeWindow()
  20. {
  21. Mac_destroyData(m_internalData);
  22. m_internalData = Mac_createData();
  23. }
  24. bool MacOpenGLWindow::isModifierKeyPressed(int key)
  25. {
  26. return Mac_isModifierKeyPressed(m_internalData, key);
  27. }
  28. float MacOpenGLWindow::getTimeInSeconds()
  29. {
  30. return 0.f;
  31. }
  32. void MacOpenGLWindow::setRenderCallback(b3RenderCallback renderCallback)
  33. {
  34. }
  35. void MacOpenGLWindow::setWindowTitle(const char* windowTitle)
  36. {
  37. Mac_setWindowTitle(m_internalData, windowTitle);
  38. }
  39. void MacOpenGLWindow::createWindow(const b3gWindowConstructionInfo& ci)
  40. {
  41. MacWindowConstructionInfo windowCI;
  42. windowCI.m_width = ci.m_width;
  43. windowCI.m_height = ci.m_height;
  44. windowCI.m_fullscreen = ci.m_fullscreen;
  45. windowCI.m_colorBitsPerPixel = ci.m_colorBitsPerPixel;
  46. windowCI.m_windowHandle = ci.m_windowHandle;
  47. windowCI.m_title = ci.m_title;
  48. windowCI.m_openglVersion = ci.m_openglVersion;
  49. windowCI.m_allowRetina = true;
  50. Mac_createWindow(m_internalData, &windowCI);
  51. }
  52. void MacOpenGLWindow::runMainLoop()
  53. {
  54. }
  55. void MacOpenGLWindow::startRendering()
  56. {
  57. Mac_updateWindow(m_internalData);
  58. }
  59. void MacOpenGLWindow::endRendering()
  60. {
  61. Mac_swapBuffer(m_internalData);
  62. }
  63. bool MacOpenGLWindow::requestedExit() const
  64. {
  65. return Mac_requestedExit(m_internalData);
  66. }
  67. void MacOpenGLWindow::setRequestExit()
  68. {
  69. Mac_setRequestExit(m_internalData);
  70. }
  71. int MacOpenGLWindow::fileOpenDialog(char* filename, int maxNameLength)
  72. {
  73. return Mac_fileOpenDialog(filename, maxNameLength);
  74. }
  75. void MacOpenGLWindow::getMouseCoordinates(int& x, int& y)
  76. {
  77. int* xPtr = &x;
  78. int* yPtr = &y;
  79. Mac_getMouseCoordinates(m_internalData, xPtr, yPtr);
  80. }
  81. int MacOpenGLWindow::getWidth() const
  82. {
  83. return Mac_getWidth(m_internalData);
  84. }
  85. int MacOpenGLWindow::getHeight() const
  86. {
  87. return Mac_getHeight(m_internalData);
  88. }
  89. void MacOpenGLWindow::setResizeCallback(b3ResizeCallback resizeCallback)
  90. {
  91. Mac_setResizeCallback(m_internalData, resizeCallback);
  92. }
  93. b3ResizeCallback MacOpenGLWindow::getResizeCallback()
  94. {
  95. return Mac_getResizeCallback(m_internalData);
  96. }
  97. void MacOpenGLWindow::setMouseButtonCallback(b3MouseButtonCallback mouseCallback)
  98. {
  99. Mac_setMouseButtonCallback(m_internalData, mouseCallback);
  100. }
  101. void MacOpenGLWindow::setMouseMoveCallback(b3MouseMoveCallback mouseCallback)
  102. {
  103. Mac_setMouseMoveCallback(m_internalData, mouseCallback);
  104. }
  105. void MacOpenGLWindow::setKeyboardCallback(b3KeyboardCallback keyboardCallback)
  106. {
  107. Mac_setKeyboardCallback(m_internalData, keyboardCallback);
  108. }
  109. b3MouseMoveCallback MacOpenGLWindow::getMouseMoveCallback()
  110. {
  111. return Mac_getMouseMoveCallback(m_internalData);
  112. }
  113. b3MouseButtonCallback MacOpenGLWindow::getMouseButtonCallback()
  114. {
  115. return Mac_getMouseButtonCallback(m_internalData);
  116. }
  117. void MacOpenGLWindow::setWheelCallback(b3WheelCallback wheelCallback)
  118. {
  119. Mac_setWheelCallback(m_internalData, wheelCallback);
  120. }
  121. b3WheelCallback MacOpenGLWindow::getWheelCallback()
  122. {
  123. return Mac_getWheelCallback(m_internalData);
  124. }
  125. b3KeyboardCallback MacOpenGLWindow::getKeyboardCallback()
  126. {
  127. return Mac_getKeyboardCallback(m_internalData);
  128. }
  129. float MacOpenGLWindow::getRetinaScale() const
  130. {
  131. return Mac_getRetinaScale(m_internalData);
  132. }
  133. void MacOpenGLWindow::setAllowRetina(bool allow)
  134. {
  135. Mac_setAllowRetina(m_internalData, allow);
  136. }
  137. #endif //__APPLE__
  138. #endif //B3_USE_GLFW