RenderThread.lua 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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:getShaderBinding()
  44. local retVal = Polycode.RenderThread_getShaderBinding(self.__ptr)
  45. if retVal == nil then return nil end
  46. local __c = _G["ShaderBinding"]("__skip_ptr__")
  47. __c.__ptr = retVal
  48. return __c
  49. end
  50. function RenderThread:processDrawBufferLights(buffer)
  51. local retVal = Polycode.RenderThread_processDrawBufferLights(self.__ptr, buffer.__ptr)
  52. end
  53. function RenderThread:processDrawBuffer(buffer)
  54. local retVal = Polycode.RenderThread_processDrawBuffer(self.__ptr, buffer.__ptr)
  55. end
  56. function RenderThread:getFrameInfo()
  57. local retVal = Polycode.RenderThread_getFrameInfo(self.__ptr)
  58. if retVal == nil then return nil end
  59. local __c = _G["RenderThreadDebugInfo"]("__skip_ptr__")
  60. __c.__ptr = retVal
  61. return __c
  62. end
  63. function RenderThread:initGlobals()
  64. local retVal = Polycode.RenderThread_initGlobals(self.__ptr)
  65. end
  66. function RenderThread:lockRenderMutex()
  67. local retVal = Polycode.RenderThread_lockRenderMutex(self.__ptr)
  68. end
  69. function RenderThread:unlockRenderMutex()
  70. local retVal = Polycode.RenderThread_unlockRenderMutex(self.__ptr)
  71. end
  72. function RenderThread:__delete()
  73. if self then Polycode.delete_RenderThread(self.__ptr) end
  74. end