ShaderBinding.lua 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. class "ShaderBinding"
  2. function ShaderBinding:ShaderBinding(...)
  3. for k,v in pairs(arg) do
  4. if type(v) == "table" then
  5. if v.__ptr ~= nil then
  6. arg[k] = v.__ptr
  7. end
  8. end
  9. end
  10. if self.__ptr == nil and arg[1] ~= "__skip_ptr__" then
  11. self.__ptr = Polycore.ShaderBinding(unpack(arg))
  12. end
  13. end
  14. function ShaderBinding:clearTexture(name)
  15. local retVal = Polycore.ShaderBinding_clearTexture(self.__ptr, name)
  16. end
  17. function ShaderBinding:addTexture(name, texture)
  18. local retVal = Polycore.ShaderBinding_addTexture(self.__ptr, name, texture.__ptr)
  19. end
  20. function ShaderBinding:addParam(type, name, value)
  21. local retVal = Polycore.ShaderBinding_addParam(self.__ptr, type, name, value)
  22. end
  23. function ShaderBinding:addCubemap(name, cubemap)
  24. local retVal = Polycore.ShaderBinding_addCubemap(self.__ptr, name, cubemap.__ptr)
  25. end
  26. function ShaderBinding:getNumLocalParams()
  27. local retVal = Polycore.ShaderBinding_getNumLocalParams(self.__ptr)
  28. return retVal
  29. end
  30. function ShaderBinding:getLocalParam(index)
  31. local retVal = Polycore.ShaderBinding_getLocalParam(self.__ptr, index)
  32. if Polycore.__ptr_lookup[retVal] ~= nil then
  33. return Polycore.__ptr_lookup[retVal]
  34. else
  35. Polycore.__ptr_lookup[retVal] = LocalShaderParam("__skip_ptr__")
  36. Polycore.__ptr_lookup[retVal].__ptr = retVal
  37. return Polycore.__ptr_lookup[retVal]
  38. end
  39. end
  40. function ShaderBinding:getLocalParamByName(name)
  41. local retVal = Polycore.ShaderBinding_getLocalParamByName(self.__ptr, name)
  42. if Polycore.__ptr_lookup[retVal] ~= nil then
  43. return Polycore.__ptr_lookup[retVal]
  44. else
  45. Polycore.__ptr_lookup[retVal] = LocalShaderParam("__skip_ptr__")
  46. Polycore.__ptr_lookup[retVal].__ptr = retVal
  47. return Polycore.__ptr_lookup[retVal]
  48. end
  49. end
  50. function ShaderBinding:addRenderTargetBinding(binding)
  51. local retVal = Polycore.ShaderBinding_addRenderTargetBinding(self.__ptr, binding.__ptr)
  52. end
  53. function ShaderBinding:getNumRenderTargetBindings()
  54. local retVal = Polycore.ShaderBinding_getNumRenderTargetBindings(self.__ptr)
  55. return retVal
  56. end
  57. function ShaderBinding:getRenderTargetBinding(index)
  58. local retVal = Polycore.ShaderBinding_getRenderTargetBinding(self.__ptr, index)
  59. if Polycore.__ptr_lookup[retVal] ~= nil then
  60. return Polycore.__ptr_lookup[retVal]
  61. else
  62. Polycore.__ptr_lookup[retVal] = RenderTargetBinding("__skip_ptr__")
  63. Polycore.__ptr_lookup[retVal].__ptr = retVal
  64. return Polycore.__ptr_lookup[retVal]
  65. end
  66. end
  67. function ShaderBinding:getNumInTargetBindings()
  68. local retVal = Polycore.ShaderBinding_getNumInTargetBindings(self.__ptr)
  69. return retVal
  70. end
  71. function ShaderBinding:getInTargetBinding(index)
  72. local retVal = Polycore.ShaderBinding_getInTargetBinding(self.__ptr, index)
  73. if Polycore.__ptr_lookup[retVal] ~= nil then
  74. return Polycore.__ptr_lookup[retVal]
  75. else
  76. Polycore.__ptr_lookup[retVal] = RenderTargetBinding("__skip_ptr__")
  77. Polycore.__ptr_lookup[retVal].__ptr = retVal
  78. return Polycore.__ptr_lookup[retVal]
  79. end
  80. end
  81. function ShaderBinding:getNumOutTargetBindings()
  82. local retVal = Polycore.ShaderBinding_getNumOutTargetBindings(self.__ptr)
  83. return retVal
  84. end
  85. function ShaderBinding:getOutTargetBinding(index)
  86. local retVal = Polycore.ShaderBinding_getOutTargetBinding(self.__ptr, index)
  87. if Polycore.__ptr_lookup[retVal] ~= nil then
  88. return Polycore.__ptr_lookup[retVal]
  89. else
  90. Polycore.__ptr_lookup[retVal] = RenderTargetBinding("__skip_ptr__")
  91. Polycore.__ptr_lookup[retVal].__ptr = retVal
  92. return Polycore.__ptr_lookup[retVal]
  93. end
  94. end