1$#include "Graphics/Texture.h"
2
3class Texture : public ResourceWithMetadata
4{
5    void SetNumLevels(unsigned levels);
6    void SetFilterMode(TextureFilterMode filter);
7    void SetAddressMode(TextureCoordinate coord, TextureAddressMode address);
8    void SetAnisotropy(unsigned level);
9    void SetBorderColor(const Color& color);
10    void SetSRGB(bool enable);
11    void SetBackupTexture(Texture* texture);
12    void SetMipsToSkip(int quality, int toSkip);
13
14    unsigned GetFormat() const;
15    bool IsCompressed() const;
16    unsigned GetLevels() const;
17    int GetWidth() const;
18    int GetHeight() const;
19    TextureFilterMode GetFilterMode() const;
20    TextureAddressMode GetAddressMode(TextureCoordinate coord) const;
21    unsigned GetAnisotropy() const;
22    const Color& GetBorderColor() const;
23    bool GetSRGB() const;
24    int GetMultiSample() const;
25    bool GetAutoResolve() const;
26    bool IsResolveDirty() const;
27    bool GetLevelsDirty() const;
28    Texture* GetBackupTexture() const;
29    int GetMipsToSkip(int quality) const;
30    int GetLevelWidth(unsigned level) const;
31    int GetLevelHeight(unsigned level) const;
32    TextureUsage GetUsage() const;
33    unsigned GetDataSize(int width, int height) const;
34    unsigned GetRowDataSize(int width) const;
35    unsigned GetComponents() const;
36
37    tolua_readonly tolua_property__get_set unsigned format;
38    tolua_readonly tolua_property__is_set bool compressed;
39    tolua_readonly tolua_property__get_set unsigned levels;
40    tolua_readonly tolua_property__get_set int width;
41    tolua_readonly tolua_property__get_set int height;
42    tolua_readonly tolua_property__get_set unsigned components;
43    tolua_property__get_set TextureFilterMode filterMode;
44    tolua_property__get_set unsigned anisotropy;
45    tolua_property__get_set Color& borderColor;
46    tolua_property__get_set bool sRGB;
47    tolua_readonly tolua_property__get_set int multiSample;
48    tolua_readonly tolua_property__get_set bool autoResolve;
49    tolua_readonly tolua_property__is_set bool resolveDirty;
50    tolua_readonly tolua_property__get_set bool levelsDirty;
51    tolua_property__get_set Texture* backupTexture;
52    tolua_readonly tolua_property__get_set TextureUsage usage;
53};
54