ProgramParam.lua 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. class "ProgramParam"
  2. ProgramParam.PARAM_UNKNOWN = 0
  3. ProgramParam.PARAM_NUMBER = 1
  4. ProgramParam.PARAM_VECTOR2 = 2
  5. ProgramParam.PARAM_VECTOR3 = 3
  6. ProgramParam.PARAM_COLOR = 4
  7. ProgramParam.PARAM_MATRIX = 5
  8. ProgramParam.PARAM_TEXTURE = 6
  9. ProgramParam.PARAM_CUBEMAP = 7
  10. function ProgramParam:__getvar(name)
  11. if name == "name" then
  12. return Polycode.ProgramParam_get_name(self.__ptr)
  13. elseif name == "type" then
  14. return Polycode.ProgramParam_get_type(self.__ptr)
  15. end
  16. end
  17. function ProgramParam:__setvar(name,value)
  18. if name == "name" then
  19. Polycode.ProgramParam_set_name(self.__ptr, value)
  20. return true
  21. elseif name == "type" then
  22. Polycode.ProgramParam_set_type(self.__ptr, value)
  23. return true
  24. end
  25. return false
  26. end
  27. function ProgramParam:ProgramParam(...)
  28. local arg = {...}
  29. for k,v in pairs(arg) do
  30. if type(v) == "table" then
  31. if v.__ptr ~= nil then
  32. arg[k] = v.__ptr
  33. end
  34. end
  35. end
  36. if self.__ptr == nil and arg[1] ~= "__skip_ptr__" then
  37. self.__ptr = Polycode.ProgramParam(unpack(arg))
  38. end
  39. end
  40. function ProgramParam:__delete()
  41. if self then Polycode.delete_ProgramParam(self.__ptr) end
  42. end