79 lines
1.7 KiB
C++
79 lines
1.7 KiB
C++
#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__
|