2
0

RenderThread.lua 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. class "RenderThread"
  2. RenderThread.JOB_REQUEST_CONTEXT_CHANGE = 0
  3. RenderThread.JOB_CREATE_TEXTURE = 1
  4. RenderThread.JOB_PROCESS_DRAW_BUFFER = 2
  5. RenderThread.JOB_END_FRAME = 3
  6. RenderThread.JOB_CREATE_PROGRAM = 4
  7. RenderThread.JOB_CREATE_SHADER = 5
  8. RenderThread.JOB_BEGIN_FRAME = 6
  9. RenderThread.JOB_DESTROY_TEXTURE = 8
  10. RenderThread.JOB_DESTROY_SHADER = 9
  11. RenderThread.JOB_DESTROY_PROGRAM = 10
  12. RenderThread.JOB_DESTROY_SUBMESH_BUFFER = 11
  13. RenderThread.JOB_CREATE_RENDER_BUFFER = 12
  14. RenderThread.JOB_DESTROY_RENDER_BUFFER = 13
  15. RenderThread.JOB_SET_TEXTURE_PARAM = 14
  16. RenderThread.JOB_DESTROY_SHADER_BINDING = 16
  17. RenderThread.JOB_DESTROY_SHADER_PARAM = 17
  18. function RenderThread:RenderThread(...)
  19. local arg = {...}
  20. for k,v in pairs(arg) do
  21. if type(v) == "table" then
  22. if v.__ptr ~= nil then
  23. arg[k] = v.__ptr
  24. end
  25. end
  26. end
  27. if self.__ptr == nil and arg[1] ~= "__skip_ptr__" then
  28. self.__ptr = Polycode.RenderThread(unpack(arg))
  29. end
  30. end
  31. function RenderThread:setGraphicsInterface(core, graphicsInterface)
  32. local retVal = Polycode.RenderThread_setGraphicsInterface(self.__ptr, core.__ptr, graphicsInterface.__ptr)
  33. end
  34. function RenderThread:runThread()
  35. local retVal = Polycode.RenderThread_runThread(self.__ptr)
  36. end
  37. function RenderThread:enqueueFrame(frame)
  38. local retVal = Polycode.RenderThread_enqueueFrame(self.__ptr, frame.__ptr)
  39. end
  40. function RenderThread:enqueueJob(jobType, data, data2)
  41. local retVal = Polycode.RenderThread_enqueueJob(self.__ptr, jobType, data.__ptr, data2.__ptr)
  42. end
  43. function RenderThread:processJob(job)
  44. local retVal = Polycode.RenderThread_processJob(self.__ptr, job.__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:clearFrameQueue()
  67. local retVal = Polycode.RenderThread_clearFrameQueue(self.__ptr)
  68. end
  69. function RenderThread:initGlobals()
  70. local retVal = Polycode.RenderThread_initGlobals(self.__ptr)
  71. end
  72. function RenderThread:lockRenderMutex()
  73. local retVal = Polycode.RenderThread_lockRenderMutex(self.__ptr)
  74. end
  75. function RenderThread:unlockRenderMutex()
  76. local retVal = Polycode.RenderThread_unlockRenderMutex(self.__ptr)
  77. end
  78. function RenderThread:__delete()
  79. if self then Polycode.delete_RenderThread(self.__ptr) end
  80. end