#ifndef XNA_GRAPHICS_SAMPLERSTATE_HPP #define XNA_GRAPHICS_SAMPLERSTATE_HPP #include "../default.hpp" #include "gresource.hpp" namespace xna { class SamplerState : GraphicsResource { public: SamplerState(); SamplerState(sptr<GraphicsDevice> const& device); ~SamplerState() override; bool Initialize(); bool Apply(); void Filter(TextureFilter value); void AddressU(TextureAddressMode value); void AddressV(TextureAddressMode value); void AddressW(TextureAddressMode value); void Comparison(ComparisonFunction value); void MipLODBias(float value); void MinLOD(float value); void MaxLOD(float value); void MaxAnisotropy(Uint value); TextureFilter Filter() const; TextureAddressMode AddressU() const; TextureAddressMode AddressV() const; TextureAddressMode AddressW() const; ComparisonFunction Comparison() const; float MipLODBias() const; float MinLOD() const; float MaxLOD() const; Uint MaxAnisotropy() const; static uptr<SamplerState> PoinWrap(); static uptr<SamplerState> PointClamp(); static uptr<SamplerState> LinearWrap(); static uptr<SamplerState> LinearClamp(); static uptr<SamplerState> AnisotropicWrap(); static uptr<SamplerState> AnisotropicClamp(); public: struct PlatformImplementation; uptr<PlatformImplementation> impl = nullptr; }; } #endif