Core.lua 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401
  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:createThread(target)
  106. local retVal = Polycode.Core_createThread(self.__ptr, target.__ptr)
  107. end
  108. function Core:lockMutex(mutex)
  109. local retVal = Polycode.Core_lockMutex(self.__ptr, mutex.__ptr)
  110. end
  111. function Core:unlockMutex(mutex)
  112. local retVal = Polycode.Core_unlockMutex(self.__ptr, mutex.__ptr)
  113. end
  114. function Core:createMutex()
  115. local retVal = Polycode.Core_createMutex(self.__ptr)
  116. if retVal == nil then return nil end
  117. local __c = _G["CoreMutex"]("__skip_ptr__")
  118. __c.__ptr = retVal
  119. return __c
  120. end
  121. function Core:copyStringToClipboard(str)
  122. local retVal = Polycode.Core_copyStringToClipboard(self.__ptr, str)
  123. end
  124. function Core:getClipboardString()
  125. local retVal = Polycode.Core_getClipboardString(self.__ptr)
  126. return retVal
  127. end
  128. function Core:getServices()
  129. local retVal = Polycode.Core_getServices(self.__ptr)
  130. if retVal == nil then return nil end
  131. local __c = _G["CoreServices"]("__skip_ptr__")
  132. __c.__ptr = retVal
  133. return __c
  134. end
  135. function Core:getFPS()
  136. local retVal = Polycode.Core_getFPS(self.__ptr)
  137. return retVal
  138. end
  139. function Core:Shutdown()
  140. local retVal = Polycode.Core_Shutdown(self.__ptr)
  141. end
  142. function Core:isFullscreen()
  143. local retVal = Polycode.Core_isFullscreen(self.__ptr)
  144. return retVal
  145. end
  146. function Core:getAALevel()
  147. local retVal = Polycode.Core_getAALevel(self.__ptr)
  148. return retVal
  149. end
  150. function Core:getInput()
  151. local retVal = Polycode.Core_getInput(self.__ptr)
  152. if retVal == nil then return nil end
  153. local __c = _G["CoreInput"]("__skip_ptr__")
  154. __c.__ptr = retVal
  155. return __c
  156. end
  157. function Core:getXRes()
  158. local retVal = Polycode.Core_getXRes(self.__ptr)
  159. return retVal
  160. end
  161. function Core:getYRes()
  162. local retVal = Polycode.Core_getYRes(self.__ptr)
  163. return retVal
  164. end
  165. function Core:getBackingXRes()
  166. local retVal = Polycode.Core_getBackingXRes(self.__ptr)
  167. return retVal
  168. end
  169. function Core:getBackingYRes()
  170. local retVal = Polycode.Core_getBackingYRes(self.__ptr)
  171. return retVal
  172. end
  173. function Core:getScreenInfo(width, height, hz)
  174. local retVal = Polycode.Core_getScreenInfo(self.__ptr, width.__ptr, height.__ptr, hz.__ptr)
  175. end
  176. function Core:getScreenWidth()
  177. local retVal = Polycode.Core_getScreenWidth(self.__ptr)
  178. return retVal
  179. end
  180. function Core:getScreenHeight()
  181. local retVal = Polycode.Core_getScreenHeight(self.__ptr)
  182. return retVal
  183. end
  184. function Core:createFolder(folderPath)
  185. local retVal = Polycode.Core_createFolder(self.__ptr, folderPath)
  186. end
  187. function Core:copyDiskItem(itemPath, destItemPath)
  188. local retVal = Polycode.Core_copyDiskItem(self.__ptr, itemPath, destItemPath)
  189. end
  190. function Core:moveDiskItem(itemPath, destItemPath)
  191. local retVal = Polycode.Core_moveDiskItem(self.__ptr, itemPath, destItemPath)
  192. end
  193. function Core:removeDiskItem(itemPath)
  194. local retVal = Polycode.Core_removeDiskItem(self.__ptr, itemPath)
  195. end
  196. function Core:openFolderPicker()
  197. local retVal = Polycode.Core_openFolderPicker(self.__ptr)
  198. return retVal
  199. end
  200. function Core:setFramerate(frameRate, maxFixedCycles)
  201. local retVal = Polycode.Core_setFramerate(self.__ptr, frameRate, maxFixedCycles)
  202. end
  203. function Core:openFilePicker(extensions, allowMultiple)
  204. local retVal = Polycode.Core_openFilePicker(self.__ptr, extensions.__ptr, allowMultiple)
  205. if retVal == nil then return nil end
  206. for i=1,count(retVal) do
  207. local __c = _G["String"]("__skip_ptr__")
  208. __c.__ptr = retVal[i]
  209. retVal[i] = __c
  210. end
  211. return retVal
  212. end
  213. function Core:saveFilePicker(extensions)
  214. local retVal = Polycode.Core_saveFilePicker(self.__ptr, extensions.__ptr)
  215. return retVal
  216. end
  217. function Core:handleVideoModeChange(modeInfo)
  218. local retVal = Polycode.Core_handleVideoModeChange(self.__ptr, modeInfo.__ptr)
  219. end
  220. function Core:flushRenderContext()
  221. local retVal = Polycode.Core_flushRenderContext(self.__ptr)
  222. end
  223. function Core:prepareRenderContext()
  224. local retVal = Polycode.Core_prepareRenderContext(self.__ptr)
  225. end
  226. function Core:openFile(fileName, opts)
  227. local retVal = Polycode.Core_openFile(self.__ptr, fileName, opts)
  228. if retVal == nil then return nil end
  229. local __c = _G["CoreFile"]("__skip_ptr__")
  230. __c.__ptr = retVal
  231. return __c
  232. end
  233. function Core:closeFile(file)
  234. local retVal = Polycode.Core_closeFile(self.__ptr, file.__ptr)
  235. end
  236. function Core:addFileSource(type, source)
  237. local retVal = Polycode.Core_addFileSource(self.__ptr, type, source)
  238. end
  239. function Core:removeFileSource(type, source)
  240. local retVal = Polycode.Core_removeFileSource(self.__ptr, type, source)
  241. end
  242. function Core:parseFolder(pathString, showHidden)
  243. local retVal = Polycode.Core_parseFolder(self.__ptr, pathString, showHidden)
  244. if retVal == nil then return nil end
  245. for i=1,count(retVal) do
  246. local __c = _G["OSFileEntry"]("__skip_ptr__")
  247. __c.__ptr = retVal[i]
  248. retVal[i] = __c
  249. end
  250. return retVal
  251. end
  252. function Core:systemParseFolder(pathString, showHidden, targetVector)
  253. local retVal = Polycode.Core_systemParseFolder(self.__ptr, pathString, showHidden, targetVector.__ptr)
  254. return retVal
  255. end
  256. function Core:getResourcePathForFile(fileName)
  257. local retVal = Polycode.Core_getResourcePathForFile(self.__ptr, fileName)
  258. return retVal
  259. end
  260. function Core:setVideoMode(xRes, yRes, fullScreen, vSync, aaLevel, anisotropyLevel, retinaSupport)
  261. local retVal = Polycode.Core_setVideoMode(self.__ptr, xRes, yRes, fullScreen, vSync, aaLevel, anisotropyLevel, retinaSupport)
  262. end
  263. function Core:resizeTo(xRes, yRes)
  264. local retVal = Polycode.Core_resizeTo(self.__ptr, xRes, yRes)
  265. end
  266. function Core:doSleep()
  267. local retVal = Polycode.Core_doSleep(self.__ptr)
  268. end
  269. function Core:openURL(url)
  270. local retVal = Polycode.Core_openURL(self.__ptr, url)
  271. end
  272. function Core:getElapsed()
  273. local retVal = Polycode.Core_getElapsed(self.__ptr)
  274. return retVal
  275. end
  276. function Core:getTicks()
  277. local retVal = Polycode.Core_getTicks(self.__ptr)
  278. return retVal
  279. end
  280. function Core:getRefreshIntervalMs()
  281. local retVal = Polycode.Core_getRefreshIntervalMs(self.__ptr)
  282. return retVal
  283. end
  284. function Core:getTimeSleptMs()
  285. local retVal = Polycode.Core_getTimeSleptMs(self.__ptr)
  286. return retVal
  287. end
  288. function Core:getFixedTimestep()
  289. local retVal = Polycode.Core_getFixedTimestep(self.__ptr)
  290. return retVal
  291. end
  292. function Core:getTicksFloat()
  293. local retVal = Polycode.Core_getTicksFloat(self.__ptr)
  294. return retVal
  295. end
  296. function Core:setUserPointer(ptr)
  297. local retVal = Polycode.Core_setUserPointer(self.__ptr, ptr.__ptr)
  298. end
  299. function Core:getUserPointer()
  300. local retVal = Polycode.Core_getUserPointer(self.__ptr)
  301. if retVal == nil then return nil end
  302. local __c = _G["void"]("__skip_ptr__")
  303. __c.__ptr = retVal
  304. return __c
  305. end
  306. function Core:executeExternalCommand(command, args, inDirectory)
  307. local retVal = Polycode.Core_executeExternalCommand(self.__ptr, command, args, inDirectory)
  308. return retVal
  309. end
  310. function Core:getDefaultWorkingDirectory()
  311. local retVal = Polycode.Core_getDefaultWorkingDirectory(self.__ptr)
  312. return retVal
  313. end
  314. function Core:getUserHomeDirectory()
  315. local retVal = Polycode.Core_getUserHomeDirectory(self.__ptr)
  316. return retVal
  317. end
  318. function Core:makeApplicationMain()
  319. local retVal = Polycode.Core_makeApplicationMain(self.__ptr)
  320. end
  321. function Core:getEventMutex()
  322. local retVal = Polycode.Core_getEventMutex(self.__ptr)
  323. if retVal == nil then return nil end
  324. local __c = _G["CoreMutex"]("__skip_ptr__")
  325. __c.__ptr = retVal
  326. return __c
  327. end
  328. function Core:removeThread(thread)
  329. local retVal = Polycode.Core_removeThread(self.__ptr, thread.__ptr)
  330. end
  331. function Core:__delete()
  332. if self then Polycode.delete_Core(self.__ptr) end
  333. end