Shader.lua 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. require "Polycode/Resource"
  2. class "Shader" (Resource)
  3. function Shader:__getvar(name)
  4. if name == "numSpotLights" then
  5. return Polycore.Shader_get_numSpotLights(self.__ptr)
  6. elseif name == "numPointLights" then
  7. return Polycore.Shader_get_numPointLights(self.__ptr)
  8. elseif name == "screenShader" then
  9. return Polycore.Shader_get_screenShader(self.__ptr)
  10. elseif name == "vertexProgram" then
  11. local retVal = Polycore.Shader_get_vertexProgram(self.__ptr)
  12. if retVal == nil then return nil end
  13. local __c = _G["ShaderProgram"]("__skip_ptr__")
  14. __c.__ptr = retVal
  15. return __c
  16. elseif name == "fragmentProgram" then
  17. local retVal = Polycore.Shader_get_fragmentProgram(self.__ptr)
  18. if retVal == nil then return nil end
  19. local __c = _G["ShaderProgram"]("__skip_ptr__")
  20. __c.__ptr = retVal
  21. return __c
  22. elseif name == "name" then
  23. return Polycore.Shader_get_name(self.__ptr)
  24. end
  25. if Resource["__getvar"] ~= nil then
  26. return Resource.__getvar(self, name)
  27. end
  28. end
  29. function Shader:__setvar(name,value)
  30. if name == "numSpotLights" then
  31. Polycore.Shader_set_numSpotLights(self.__ptr, value)
  32. return true
  33. elseif name == "numPointLights" then
  34. Polycore.Shader_set_numPointLights(self.__ptr, value)
  35. return true
  36. elseif name == "screenShader" then
  37. Polycore.Shader_set_screenShader(self.__ptr, value)
  38. return true
  39. elseif name == "name" then
  40. Polycore.Shader_set_name(self.__ptr, value)
  41. return true
  42. end
  43. if Resource["__setvar"] ~= nil then
  44. return Resource.__setvar(self, name, value)
  45. else
  46. return false
  47. end
  48. end
  49. function Shader:getType()
  50. local retVal = Polycore.Shader_getType(self.__ptr)
  51. return retVal
  52. end
  53. function Shader:setName(name)
  54. local retVal = Polycore.Shader_setName(self.__ptr, name)
  55. end
  56. function Shader:getName()
  57. local retVal = Polycore.Shader_getName(self.__ptr)
  58. if retVal == nil then return nil end
  59. local __c = _G["String"]("__skip_ptr__")
  60. __c.__ptr = retVal
  61. return __c
  62. end
  63. function Shader:getParamPointer(name)
  64. local retVal = Polycore.Shader_getParamPointer(self.__ptr, name)
  65. if retVal == nil then return nil end
  66. local __c = _G["ProgramParam"]("__skip_ptr__")
  67. __c.__ptr = retVal
  68. return __c
  69. end
  70. function Shader:getAttribPointer(name)
  71. local retVal = Polycore.Shader_getAttribPointer(self.__ptr, name)
  72. if retVal == nil then return nil end
  73. local __c = _G["ProgramAttribute"]("__skip_ptr__")
  74. __c.__ptr = retVal
  75. return __c
  76. end
  77. function Shader:reload()
  78. local retVal = Polycore.Shader_reload(self.__ptr)
  79. end
  80. function Shader:getExpectedParamType(name)
  81. local retVal = Polycore.Shader_getExpectedParamType(self.__ptr, name)
  82. return retVal
  83. end
  84. function Shader:setVertexProgram(vp)
  85. local retVal = Polycore.Shader_setVertexProgram(self.__ptr, vp.__ptr)
  86. end
  87. function Shader:setFragmentProgram(fp)
  88. local retVal = Polycore.Shader_setFragmentProgram(self.__ptr, fp.__ptr)
  89. end
  90. function Shader:__delete()
  91. if self then Polycore.delete_Shader(self.__ptr) end
  92. end