2
0

RenderThread.lua 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. class "RenderThread"
  2. RenderThread.JOB_REQUEST_CONTEXT_CHANGE = 0
  3. RenderThread.JOB_PROCESS_DRAW_BUFFER = 2
  4. RenderThread.JOB_END_FRAME = 3
  5. RenderThread.JOB_BEGIN_FRAME = 6
  6. RenderThread.JOB_DESTROY_TEXTURE = 8
  7. RenderThread.JOB_DESTROY_SHADER = 9
  8. RenderThread.JOB_DESTROY_PROGRAM = 10
  9. RenderThread.JOB_DESTROY_SUBMESH_BUFFER = 11
  10. RenderThread.JOB_DESTROY_RENDER_BUFFER = 13
  11. RenderThread.JOB_SET_TEXTURE_PARAM = 14
  12. function RenderThread:RenderThread(...)
  13. local arg = {...}
  14. for k,v in pairs(arg) do
  15. if type(v) == "table" then
  16. if v.__ptr ~= nil then
  17. arg[k] = v.__ptr
  18. end
  19. end
  20. end
  21. if self.__ptr == nil and arg[1] ~= "__skip_ptr__" then
  22. self.__ptr = Polycode.RenderThread(unpack(arg))
  23. end
  24. end
  25. function RenderThread:setGraphicsInterface(core, graphicsInterface)
  26. local retVal = Polycode.RenderThread_setGraphicsInterface(self.__ptr, core.__ptr, graphicsInterface.__ptr)
  27. end
  28. function RenderThread:runThread()
  29. local retVal = Polycode.RenderThread_runThread(self.__ptr)
  30. end
  31. function RenderThread:updateRenderThread()
  32. local retVal = Polycode.RenderThread_updateRenderThread(self.__ptr)
  33. end
  34. function RenderThread:enqueueFrame(frame)
  35. local retVal = Polycode.RenderThread_enqueueFrame(self.__ptr, frame.__ptr)
  36. end
  37. function RenderThread:enqueueJob(jobType, data, data2)
  38. local retVal = Polycode.RenderThread_enqueueJob(self.__ptr, jobType, data.__ptr, data2.__ptr)
  39. end
  40. function RenderThread:processJob(job)
  41. local retVal = Polycode.RenderThread_processJob(self.__ptr, job.__ptr)
  42. end
  43. function RenderThread:clearFrameQueue()
  44. local retVal = Polycode.RenderThread_clearFrameQueue(self.__ptr)
  45. end
  46. function RenderThread:getShaderBinding()
  47. local retVal = Polycode.RenderThread_getShaderBinding(self.__ptr)
  48. if retVal == nil then return nil end
  49. local __c = _G["ShaderBinding"]("__skip_ptr__")
  50. __c.__ptr = retVal
  51. return __c
  52. end
  53. function RenderThread:processDrawBufferLights(buffer)
  54. local retVal = Polycode.RenderThread_processDrawBufferLights(self.__ptr, buffer.__ptr)
  55. end
  56. function RenderThread:processDrawBuffer(buffer)
  57. local retVal = Polycode.RenderThread_processDrawBuffer(self.__ptr, buffer.__ptr)
  58. end
  59. function RenderThread:getFrameInfo()
  60. local retVal = Polycode.RenderThread_getFrameInfo(self.__ptr)
  61. if retVal == nil then return nil end
  62. local __c = _G["RenderThreadDebugInfo"]("__skip_ptr__")
  63. __c.__ptr = retVal
  64. return __c
  65. end
  66. function RenderThread:initGlobals()
  67. local retVal = Polycode.RenderThread_initGlobals(self.__ptr)
  68. end
  69. function RenderThread:lockRenderMutex()
  70. local retVal = Polycode.RenderThread_lockRenderMutex(self.__ptr)
  71. end
  72. function RenderThread:unlockRenderMutex()
  73. local retVal = Polycode.RenderThread_unlockRenderMutex(self.__ptr)
  74. end
  75. function RenderThread:__delete()
  76. if self then Polycode.delete_RenderThread(self.__ptr) end
  77. end