Shader.lua 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. require "Polycode/Resource"
  2. class "Shader" (Resource)
  3. function Shader:__getvar(name)
  4. if name == "numSpotLights" then
  5. return Polycode.Shader_get_numSpotLights(self.__ptr)
  6. elseif name == "numPointLights" then
  7. return Polycode.Shader_get_numPointLights(self.__ptr)
  8. elseif name == "screenShader" then
  9. return Polycode.Shader_get_screenShader(self.__ptr)
  10. elseif name == "vertexProgram" then
  11. local retVal = Polycode.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 = Polycode.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 Polycode.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. Polycode.Shader_set_numSpotLights(self.__ptr, value)
  32. return true
  33. elseif name == "numPointLights" then
  34. Polycode.Shader_set_numPointLights(self.__ptr, value)
  35. return true
  36. elseif name == "screenShader" then
  37. Polycode.Shader_set_screenShader(self.__ptr, value)
  38. return true
  39. elseif name == "vertexProgram" then
  40. Polycode.Shader_set_vertexProgram(self.__ptr, value.__ptr)
  41. return true
  42. elseif name == "fragmentProgram" then
  43. Polycode.Shader_set_fragmentProgram(self.__ptr, value.__ptr)
  44. return true
  45. elseif name == "name" then
  46. Polycode.Shader_set_name(self.__ptr, value)
  47. return true
  48. end
  49. if Resource["__setvar"] ~= nil then
  50. return Resource.__setvar(self, name, value)
  51. else
  52. return false
  53. end
  54. end
  55. function Shader:getType()
  56. local retVal = Polycode.Shader_getType(self.__ptr)
  57. return retVal
  58. end
  59. function Shader:setName(name)
  60. local retVal = Polycode.Shader_setName(self.__ptr, name)
  61. end
  62. function Shader:getName()
  63. local retVal = Polycode.Shader_getName(self.__ptr)
  64. return retVal
  65. end
  66. function Shader:getParamPointer(name)
  67. local retVal = Polycode.Shader_getParamPointer(self.__ptr, name)
  68. if retVal == nil then return nil end
  69. local __c = _G["ProgramParam"]("__skip_ptr__")
  70. __c.__ptr = retVal
  71. return __c
  72. end
  73. function Shader:getAttribPointer(name)
  74. local retVal = Polycode.Shader_getAttribPointer(self.__ptr, name)
  75. if retVal == nil then return nil end
  76. local __c = _G["ProgramAttribute"]("__skip_ptr__")
  77. __c.__ptr = retVal
  78. return __c
  79. end
  80. function Shader:reload()
  81. local retVal = Polycode.Shader_reload(self.__ptr)
  82. end
  83. function Shader:getExpectedParamType(name)
  84. local retVal = Polycode.Shader_getExpectedParamType(self.__ptr, name)
  85. return retVal
  86. end
  87. function Shader:setVertexProgram(vp)
  88. local retVal = Polycode.Shader_setVertexProgram(self.__ptr, vp.__ptr)
  89. end
  90. function Shader:setFragmentProgram(fp)
  91. local retVal = Polycode.Shader_setFragmentProgram(self.__ptr, fp.__ptr)
  92. end
  93. function Shader:__delete()
  94. if self then Polycode.delete_Shader(self.__ptr) end
  95. end