Texture.lua 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. require "Polycode/Resource"
  2. class "Texture" (Resource)
  3. Texture.FILTERING_NEAREST = 0
  4. Texture.FILTERING_LINEAR = 1
  5. function Texture:__getvar(name)
  6. if name == "clamp" then
  7. return Polycode.Texture_get_clamp(self.__ptr)
  8. elseif name == "textureData" then
  9. local retVal = Polycode.Texture_get_textureData(self.__ptr)
  10. if retVal == nil then return nil end
  11. local __c = _G["char"]("__skip_ptr__")
  12. __c.__ptr = retVal
  13. return __c
  14. elseif name == "type" then
  15. return Polycode.Texture_get_type(self.__ptr)
  16. elseif name == "filteringMode" then
  17. return Polycode.Texture_get_filteringMode(self.__ptr)
  18. elseif name == "createMipmaps" then
  19. return Polycode.Texture_get_createMipmaps(self.__ptr)
  20. elseif name == "anisotropy" then
  21. return Polycode.Texture_get_anisotropy(self.__ptr)
  22. elseif name == "framebufferTexture" then
  23. return Polycode.Texture_get_framebufferTexture(self.__ptr)
  24. elseif name == "depthTexture" then
  25. return Polycode.Texture_get_depthTexture(self.__ptr)
  26. end
  27. if Resource["__getvar"] ~= nil then
  28. return Resource.__getvar(self, name)
  29. end
  30. end
  31. function Texture:__setvar(name,value)
  32. if name == "clamp" then
  33. Polycode.Texture_set_clamp(self.__ptr, value)
  34. return true
  35. elseif name == "textureData" then
  36. Polycode.Texture_set_textureData(self.__ptr, value.__ptr)
  37. return true
  38. elseif name == "type" then
  39. Polycode.Texture_set_type(self.__ptr, value)
  40. return true
  41. elseif name == "filteringMode" then
  42. Polycode.Texture_set_filteringMode(self.__ptr, value)
  43. return true
  44. elseif name == "createMipmaps" then
  45. Polycode.Texture_set_createMipmaps(self.__ptr, value)
  46. return true
  47. elseif name == "anisotropy" then
  48. Polycode.Texture_set_anisotropy(self.__ptr, value)
  49. return true
  50. elseif name == "framebufferTexture" then
  51. Polycode.Texture_set_framebufferTexture(self.__ptr, value)
  52. return true
  53. elseif name == "depthTexture" then
  54. Polycode.Texture_set_depthTexture(self.__ptr, value)
  55. return true
  56. end
  57. if Resource["__setvar"] ~= nil then
  58. return Resource.__setvar(self, name, value)
  59. else
  60. return false
  61. end
  62. end
  63. function Texture:reloadResource()
  64. local retVal = Polycode.Texture_reloadResource(self.__ptr)
  65. end
  66. function Texture:setImageData(data)
  67. local retVal = Polycode.Texture_setImageData(self.__ptr, data.__ptr)
  68. end
  69. function Texture:getTextureData()
  70. local retVal = Polycode.Texture_getTextureData(self.__ptr)
  71. if retVal == nil then return nil end
  72. local __c = _G["char"]("__skip_ptr__")
  73. __c.__ptr = retVal
  74. return __c
  75. end
  76. function Texture:getWidth()
  77. local retVal = Polycode.Texture_getWidth(self.__ptr)
  78. return retVal
  79. end
  80. function Texture:getHeight()
  81. local retVal = Polycode.Texture_getHeight(self.__ptr)
  82. return retVal
  83. end
  84. function Texture:setCreateMipmaps(createMipmapsIn)
  85. local retVal = Polycode.Texture_setCreateMipmaps(self.__ptr, createMipmapsIn)
  86. end
  87. function Texture:getCreateMipmaps()
  88. local retVal = Polycode.Texture_getCreateMipmaps(self.__ptr)
  89. return retVal
  90. end
  91. function Texture:__delete()
  92. if self then Polycode.delete_Texture(self.__ptr) end
  93. end