#ifndef ITextureSampler_h__ #define ITextureSampler_h__ #include "IResource.h" #include "render/Enums.h" namespace LifeGraphics { enum TextureFilter { MinMagMipPoint = 0, MinMagPointMipLinear = 1, MinPointMagLinearMipPoint = 4, MinPointMagMipLinear = 5, MinLinearMagMipPoint = 16, MinLinearMagPointMipLinear = 17, MinMagLinearMipPoint = 20, MinMagMipLinear = 21, Anisotropic = 85, ComparisonMinMagMipPoint = 128, ComparisonMinMagPointMipLinear = 129, ComparisonMinPointMagLinearMipPoint = 132, ComparisonMinPointMagMipLinear = 133, ComparisonMinLinearMagMipPoint = 144, ComparisonMinLinearMagPointMipLinear = 145, ComparisonMinMagLinearMipPoint = 148, ComparisonMinMagMipLinear = 149, ComparisonAnisotropic = 213, }; enum TextureAddressMode { Wrap = 1, Mirror = 2, Clamp = 3, Border = 4, MirrorOnce = 5, }; struct ISamplerDescription { TextureAddressMode AddressU; TextureAddressMode AddressV; TextureAddressMode AddressW; TextureFilter Filter; COMPARISON_FUNC CmpFunc; ISamplerDescription(TextureAddressMode _aU, TextureAddressMode _aV, TextureAddressMode _aW, TextureFilter _f) { AddressU = _aU; AddressV = _aV; AddressW = _aW; Filter = _f; CmpFunc = COMPARISON_ALWAYS; } ISamplerDescription(TextureAddressMode _aU, TextureAddressMode _aV, TextureAddressMode _aW, TextureFilter _f, COMPARISON_FUNC cmp) { AddressU = _aU; AddressV = _aV; AddressW = _aW; Filter = _f; CmpFunc = cmp; } ISamplerDescription() { } }; class ITextureSampler : public IResource { public: ISamplerDescription Description; ITextureSampler() { } virtual ~ITextureSampler() { } }; } #endif // ITextureSampler_h__