Texture.lua 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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 Polycore.Texture_get_clamp(self.__ptr)
  8. elseif name == "textureData" then
  9. local retVal = Polycore.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 Polycore.Texture_get_type(self.__ptr)
  16. elseif name == "filteringMode" then
  17. return Polycore.Texture_get_filteringMode(self.__ptr)
  18. elseif name == "createMipmaps" then
  19. return Polycore.Texture_get_createMipmaps(self.__ptr)
  20. elseif name == "anisotropy" then
  21. return Polycore.Texture_get_anisotropy(self.__ptr)
  22. elseif name == "framebufferTexture" then
  23. return Polycore.Texture_get_framebufferTexture(self.__ptr)
  24. elseif name == "depthTexture" then
  25. return Polycore.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. Polycore.Texture_set_clamp(self.__ptr, value)
  34. return true
  35. elseif name == "type" then
  36. Polycore.Texture_set_type(self.__ptr, value)
  37. return true
  38. elseif name == "filteringMode" then
  39. Polycore.Texture_set_filteringMode(self.__ptr, value)
  40. return true
  41. elseif name == "createMipmaps" then
  42. Polycore.Texture_set_createMipmaps(self.__ptr, value)
  43. return true
  44. elseif name == "anisotropy" then
  45. Polycore.Texture_set_anisotropy(self.__ptr, value)
  46. return true
  47. elseif name == "framebufferTexture" then
  48. Polycore.Texture_set_framebufferTexture(self.__ptr, value)
  49. return true
  50. elseif name == "depthTexture" then
  51. Polycore.Texture_set_depthTexture(self.__ptr, value)
  52. return true
  53. end
  54. if Resource["__setvar"] ~= nil then
  55. return Resource.__setvar(self, name, value)
  56. else
  57. return false
  58. end
  59. end
  60. function Texture:reloadResource()
  61. local retVal = Polycore.Texture_reloadResource(self.__ptr)
  62. end
  63. function Texture:setImageData(data)
  64. local retVal = Polycore.Texture_setImageData(self.__ptr, data.__ptr)
  65. end
  66. function Texture:getTextureData()
  67. local retVal = Polycore.Texture_getTextureData(self.__ptr)
  68. if retVal == nil then return nil end
  69. local __c = _G["char"]("__skip_ptr__")
  70. __c.__ptr = retVal
  71. return __c
  72. end
  73. function Texture:getWidth()
  74. local retVal = Polycore.Texture_getWidth(self.__ptr)
  75. return retVal
  76. end
  77. function Texture:getHeight()
  78. local retVal = Polycore.Texture_getHeight(self.__ptr)
  79. return retVal
  80. end
  81. function Texture:setCreateMipmaps(createMipmapsIn)
  82. local retVal = Polycore.Texture_setCreateMipmaps(self.__ptr, createMipmapsIn)
  83. end
  84. function Texture:getCreateMipmaps()
  85. local retVal = Polycore.Texture_getCreateMipmaps(self.__ptr)
  86. return retVal
  87. end
  88. function Texture:__delete()
  89. if self then Polycore.delete_Texture(self.__ptr) end
  90. end