Core.lua 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410
  1. require "Polycode/EventDispatcher"
  2. class "Core" (EventDispatcher)
  3. Core.EVENTBASE_CORE = 0x200
  4. Core.EVENT_CORE_RESIZE = Core.EVENTBASE_CORE + 0
  5. Core.EVENT_LOST_FOCUS = Core.EVENTBASE_CORE + 1
  6. Core.EVENT_GAINED_FOCUS = Core.EVENTBASE_CORE + 2
  7. Core.EVENT_UNDO = Core.EVENTBASE_CORE + 3
  8. Core.EVENT_REDO = Core.EVENTBASE_CORE + 4
  9. Core.EVENT_COPY = Core.EVENTBASE_CORE + 5
  10. Core.EVENT_CUT = Core.EVENTBASE_CORE + 6
  11. Core.EVENT_SELECT_ALL = Core.EVENTBASE_CORE + 7
  12. Core.EVENT_PASTE = Core.EVENTBASE_CORE + 8
  13. Core.EVENT_GYRO_ROTATION = Core.EVENTBASE_CORE + 9
  14. Core.EVENT_ACCELEROMETER_MOTION = Core.EVENTBASE_CORE + 10
  15. Core.CURSOR_ARROW = 0
  16. Core.CURSOR_TEXT = 1
  17. Core.CURSOR_POINTER = 2
  18. Core.CURSOR_CROSSHAIR = 3
  19. Core.CURSOR_RESIZE_LEFT_RIGHT = 4
  20. Core.CURSOR_RESIZE_UP_DOWN = 5
  21. Core.CURSOR_OPEN_HAND = 6
  22. function Core:__getvar(name)
  23. if name == "eventMutex" then
  24. local retVal = Polycode.Core_get_eventMutex(self.__ptr)
  25. if retVal == nil then return nil end
  26. local __c = _G["CoreMutex"]("__skip_ptr__")
  27. __c.__ptr = retVal
  28. return __c
  29. elseif name == "paused" then
  30. return Polycode.Core_get_paused(self.__ptr)
  31. elseif name == "pauseOnLoseFocus" then
  32. return Polycode.Core_get_pauseOnLoseFocus(self.__ptr)
  33. elseif name == "defaultScreenWidth" then
  34. return Polycode.Core_get_defaultScreenWidth(self.__ptr)
  35. elseif name == "defaultScreenHeight" then
  36. return Polycode.Core_get_defaultScreenHeight(self.__ptr)
  37. elseif name == "deviceAttitude" then
  38. local retVal = Polycode.Core_get_deviceAttitude(self.__ptr)
  39. if retVal == nil then return nil end
  40. local __c = _G["Quaternion"]("__skip_ptr__")
  41. __c.__ptr = retVal
  42. return __c
  43. end
  44. if EventDispatcher["__getvar"] ~= nil then
  45. return EventDispatcher.__getvar(self, name)
  46. end
  47. end
  48. function Core:__setvar(name,value)
  49. if name == "eventMutex" then
  50. Polycode.Core_set_eventMutex(self.__ptr, value.__ptr)
  51. return true
  52. elseif name == "paused" then
  53. Polycode.Core_set_paused(self.__ptr, value)
  54. return true
  55. elseif name == "pauseOnLoseFocus" then
  56. Polycode.Core_set_pauseOnLoseFocus(self.__ptr, value)
  57. return true
  58. elseif name == "defaultScreenWidth" then
  59. Polycode.Core_set_defaultScreenWidth(self.__ptr, value)
  60. return true
  61. elseif name == "defaultScreenHeight" then
  62. Polycode.Core_set_defaultScreenHeight(self.__ptr, value)
  63. return true
  64. elseif name == "deviceAttitude" then
  65. Polycode.Core_set_deviceAttitude(self.__ptr, value.__ptr)
  66. return true
  67. end
  68. if EventDispatcher["__setvar"] ~= nil then
  69. return EventDispatcher.__setvar(self, name, value)
  70. else
  71. return false
  72. end
  73. end
  74. function Core:Update()
  75. local retVal = Polycode.Core_Update(self.__ptr)
  76. return retVal
  77. end
  78. function Core:Render()
  79. local retVal = Polycode.Core_Render(self.__ptr)
  80. end
  81. function Core:fixedUpdate()
  82. local retVal = Polycode.Core_fixedUpdate(self.__ptr)
  83. return retVal
  84. end
  85. function Core:systemUpdate()
  86. local retVal = Polycode.Core_systemUpdate(self.__ptr)
  87. return retVal
  88. end
  89. function Core:updateAndRender()
  90. local retVal = Polycode.Core_updateAndRender(self.__ptr)
  91. return retVal
  92. end
  93. function Core:enableMouse(newval)
  94. local retVal = Polycode.Core_enableMouse(self.__ptr, newval)
  95. end
  96. function Core:captureMouse(newval)
  97. local retVal = Polycode.Core_captureMouse(self.__ptr, newval)
  98. end
  99. function Core:setCursor(cursorType)
  100. local retVal = Polycode.Core_setCursor(self.__ptr, cursorType)
  101. end
  102. function Core:warpCursor(x, y)
  103. local retVal = Polycode.Core_warpCursor(self.__ptr, x, y)
  104. end
  105. function Core:openOnScreenKeyboard(open)
  106. local retVal = Polycode.Core_openOnScreenKeyboard(self.__ptr, open)
  107. end
  108. function Core:createThread(target)
  109. local retVal = Polycode.Core_createThread(self.__ptr, target.__ptr)
  110. end
  111. function Core:lockMutex(mutex)
  112. local retVal = Polycode.Core_lockMutex(self.__ptr, mutex.__ptr)
  113. end
  114. function Core:unlockMutex(mutex)
  115. local retVal = Polycode.Core_unlockMutex(self.__ptr, mutex.__ptr)
  116. end
  117. function Core:createMutex()
  118. local retVal = Polycode.Core_createMutex(self.__ptr)
  119. if retVal == nil then return nil end
  120. local __c = _G["CoreMutex"]("__skip_ptr__")
  121. __c.__ptr = retVal
  122. return __c
  123. end
  124. function Core:copyStringToClipboard(str)
  125. local retVal = Polycode.Core_copyStringToClipboard(self.__ptr, str)
  126. end
  127. function Core:getClipboardString()
  128. local retVal = Polycode.Core_getClipboardString(self.__ptr)
  129. return retVal
  130. end
  131. function Core:getServices()
  132. local retVal = Polycode.Core_getServices(self.__ptr)
  133. if retVal == nil then return nil end
  134. local __c = _G["CoreServices"]("__skip_ptr__")
  135. __c.__ptr = retVal
  136. return __c
  137. end
  138. function Core:getFPS()
  139. local retVal = Polycode.Core_getFPS(self.__ptr)
  140. return retVal
  141. end
  142. function Core:Shutdown()
  143. local retVal = Polycode.Core_Shutdown(self.__ptr)
  144. end
  145. function Core:isFullscreen()
  146. local retVal = Polycode.Core_isFullscreen(self.__ptr)
  147. return retVal
  148. end
  149. function Core:getAALevel()
  150. local retVal = Polycode.Core_getAALevel(self.__ptr)
  151. return retVal
  152. end
  153. function Core:getInput()
  154. local retVal = Polycode.Core_getInput(self.__ptr)
  155. if retVal == nil then return nil end
  156. local __c = _G["CoreInput"]("__skip_ptr__")
  157. __c.__ptr = retVal
  158. return __c
  159. end
  160. function Core:getXRes()
  161. local retVal = Polycode.Core_getXRes(self.__ptr)
  162. return retVal
  163. end
  164. function Core:getYRes()
  165. local retVal = Polycode.Core_getYRes(self.__ptr)
  166. return retVal
  167. end
  168. function Core:getBackingXRes()
  169. local retVal = Polycode.Core_getBackingXRes(self.__ptr)
  170. return retVal
  171. end
  172. function Core:getBackingYRes()
  173. local retVal = Polycode.Core_getBackingYRes(self.__ptr)
  174. return retVal
  175. end
  176. function Core:getScreenInfo(width, height, hz)
  177. local retVal = Polycode.Core_getScreenInfo(self.__ptr, width.__ptr, height.__ptr, hz.__ptr)
  178. end
  179. function Core:getScreenWidth()
  180. local retVal = Polycode.Core_getScreenWidth(self.__ptr)
  181. return retVal
  182. end
  183. function Core:getScreenHeight()
  184. local retVal = Polycode.Core_getScreenHeight(self.__ptr)
  185. return retVal
  186. end
  187. function Core:createFolder(folderPath)
  188. local retVal = Polycode.Core_createFolder(self.__ptr, folderPath)
  189. end
  190. function Core:copyDiskItem(itemPath, destItemPath)
  191. local retVal = Polycode.Core_copyDiskItem(self.__ptr, itemPath, destItemPath)
  192. end
  193. function Core:moveDiskItem(itemPath, destItemPath)
  194. local retVal = Polycode.Core_moveDiskItem(self.__ptr, itemPath, destItemPath)
  195. end
  196. function Core:removeDiskItem(itemPath)
  197. local retVal = Polycode.Core_removeDiskItem(self.__ptr, itemPath)
  198. end
  199. function Core:openFolderPicker()
  200. local retVal = Polycode.Core_openFolderPicker(self.__ptr)
  201. return retVal
  202. end
  203. function Core:setFramerate(frameRate, maxFixedCycles)
  204. local retVal = Polycode.Core_setFramerate(self.__ptr, frameRate, maxFixedCycles)
  205. end
  206. function Core:openFilePicker(extensions, allowMultiple)
  207. local retVal = Polycode.Core_openFilePicker(self.__ptr, extensions.__ptr, allowMultiple)
  208. if retVal == nil then return nil end
  209. for i=1,count(retVal) do
  210. local __c = _G["String"]("__skip_ptr__")
  211. __c.__ptr = retVal[i]
  212. retVal[i] = __c
  213. end
  214. return retVal
  215. end
  216. function Core:saveFilePicker(extensions)
  217. local retVal = Polycode.Core_saveFilePicker(self.__ptr, extensions.__ptr)
  218. return retVal
  219. end
  220. function Core:handleVideoModeChange(modeInfo)
  221. local retVal = Polycode.Core_handleVideoModeChange(self.__ptr, modeInfo.__ptr)
  222. end
  223. function Core:flushRenderContext()
  224. local retVal = Polycode.Core_flushRenderContext(self.__ptr)
  225. end
  226. function Core:prepareRenderContext()
  227. local retVal = Polycode.Core_prepareRenderContext(self.__ptr)
  228. end
  229. function Core:isWindowInitialized()
  230. local retVal = Polycode.Core_isWindowInitialized(self.__ptr)
  231. return retVal
  232. end
  233. function Core:openFile(fileName, opts)
  234. local retVal = Polycode.Core_openFile(self.__ptr, fileName, opts)
  235. if retVal == nil then return nil end
  236. local __c = _G["CoreFile"]("__skip_ptr__")
  237. __c.__ptr = retVal
  238. return __c
  239. end
  240. function Core:closeFile(file)
  241. local retVal = Polycode.Core_closeFile(self.__ptr, file.__ptr)
  242. end
  243. function Core:addFileSource(type, source)
  244. local retVal = Polycode.Core_addFileSource(self.__ptr, type, source)
  245. end
  246. function Core:removeFileSource(type, source)
  247. local retVal = Polycode.Core_removeFileSource(self.__ptr, type, source)
  248. end
  249. function Core:parseFolder(pathString, showHidden)
  250. local retVal = Polycode.Core_parseFolder(self.__ptr, pathString, showHidden)
  251. if retVal == nil then return nil end
  252. for i=1,count(retVal) do
  253. local __c = _G["OSFileEntry"]("__skip_ptr__")
  254. __c.__ptr = retVal[i]
  255. retVal[i] = __c
  256. end
  257. return retVal
  258. end
  259. function Core:systemParseFolder(pathString, showHidden, targetVector)
  260. local retVal = Polycode.Core_systemParseFolder(self.__ptr, pathString, showHidden, targetVector.__ptr)
  261. return retVal
  262. end
  263. function Core:getResourcePathForFile(fileName)
  264. local retVal = Polycode.Core_getResourcePathForFile(self.__ptr, fileName)
  265. return retVal
  266. end
  267. function Core:setVideoMode(xRes, yRes, fullScreen, vSync, aaLevel, anisotropyLevel, retinaSupport)
  268. local retVal = Polycode.Core_setVideoMode(self.__ptr, xRes, yRes, fullScreen, vSync, aaLevel, anisotropyLevel, retinaSupport)
  269. end
  270. function Core:resizeTo(xRes, yRes)
  271. local retVal = Polycode.Core_resizeTo(self.__ptr, xRes, yRes)
  272. end
  273. function Core:doSleep()
  274. local retVal = Polycode.Core_doSleep(self.__ptr)
  275. end
  276. function Core:openURL(url)
  277. local retVal = Polycode.Core_openURL(self.__ptr, url)
  278. end
  279. function Core:getElapsed()
  280. local retVal = Polycode.Core_getElapsed(self.__ptr)
  281. return retVal
  282. end
  283. function Core:getTicks()
  284. local retVal = Polycode.Core_getTicks(self.__ptr)
  285. return retVal
  286. end
  287. function Core:getRefreshIntervalMs()
  288. local retVal = Polycode.Core_getRefreshIntervalMs(self.__ptr)
  289. return retVal
  290. end
  291. function Core:getTimeSleptMs()
  292. local retVal = Polycode.Core_getTimeSleptMs(self.__ptr)
  293. return retVal
  294. end
  295. function Core:getFixedTimestep()
  296. local retVal = Polycode.Core_getFixedTimestep(self.__ptr)
  297. return retVal
  298. end
  299. function Core:getTicksFloat()
  300. local retVal = Polycode.Core_getTicksFloat(self.__ptr)
  301. return retVal
  302. end
  303. function Core:setUserPointer(ptr)
  304. local retVal = Polycode.Core_setUserPointer(self.__ptr, ptr.__ptr)
  305. end
  306. function Core:getUserPointer()
  307. local retVal = Polycode.Core_getUserPointer(self.__ptr)
  308. if retVal == nil then return nil end
  309. local __c = _G["void"]("__skip_ptr__")
  310. __c.__ptr = retVal
  311. return __c
  312. end
  313. function Core:executeExternalCommand(command, args, inDirectory)
  314. local retVal = Polycode.Core_executeExternalCommand(self.__ptr, command, args, inDirectory)
  315. return retVal
  316. end
  317. function Core:getDefaultWorkingDirectory()
  318. local retVal = Polycode.Core_getDefaultWorkingDirectory(self.__ptr)
  319. return retVal
  320. end
  321. function Core:getUserHomeDirectory()
  322. local retVal = Polycode.Core_getUserHomeDirectory(self.__ptr)
  323. return retVal
  324. end
  325. function Core:makeApplicationMain()
  326. local retVal = Polycode.Core_makeApplicationMain(self.__ptr)
  327. end
  328. function Core:getEventMutex()
  329. local retVal = Polycode.Core_getEventMutex(self.__ptr)
  330. if retVal == nil then return nil end
  331. local __c = _G["CoreMutex"]("__skip_ptr__")
  332. __c.__ptr = retVal
  333. return __c
  334. end
  335. function Core:removeThread(thread)
  336. local retVal = Polycode.Core_removeThread(self.__ptr, thread.__ptr)
  337. end
  338. function Core:__delete()
  339. if self then Polycode.delete_Core(self.__ptr) end
  340. end