/* ZSamplerBase.hpp Author: James Russell Created: 7/1/2012 Purpose: TODO License: TODO */ #pragma once #ifndef _ZSAMPLERBASE_HPP #define _ZSAMPLERBASE_HPP #include //Base implementation of ZSampler Interface class ZSamplerBase : public ZSampler { private: DISABLE_COPY_AND_ASSIGN(ZSamplerBase); protected: //Current sampler state ZSamplerState State; //Flag indicating values have changed bool bIsDirty; //Default Constructor, which initializes with some sane default settings ZSamplerBase(); public: //Virtual Destructor virtual ~ZSamplerBase() { } /* public ZSamplerBase::GetSamplerStateResetDirty Gets the sampler state for this device. This will return NULL if the sampler has not been modified since the last call to this function, and in the case it has been modified, a call to this resets the 'dirty' flag for the buffer. @return (ZSamplerState*) @context (all) */ ZSamplerState* GetSamplerStateResetDirty(); //Subclass Getter Implementations virtual ZSamplerWrapMode GetSWrapMode(); virtual ZSamplerWrapMode GetTWrapMode(); virtual ZSamplerWrapMode GetRWrapMode(); virtual ZSamplerMinFilter GetMinFilter(); virtual ZSamplerMagFilter GetMagFilter(); virtual float GetMaxAnisotropy(); virtual float GetMinLOD(); virtual float GetMaxLOD(); virtual float GetLODBias(); virtual const float* GetBorderColor(); virtual ZSamplerCompareMode GetCompareMode(); virtual ZSamplerCompareFunc GetCompareFunc(); virtual const ZSamplerState& GetSamplerState(); //Subclass Setter Implementations virtual bool SetSWrapMode( ZSamplerWrapMode _mode ); virtual bool SetTWrapMode( ZSamplerWrapMode _mode ); virtual bool SetRWrapMode( ZSamplerWrapMode _mode ); virtual bool SetMinFilter( ZSamplerMinFilter _filter ); virtual bool SetMagFilter( ZSamplerMagFilter _filter ); virtual bool SetMaxAnisotropy( float _max ); virtual bool SetMinLOD( float _min ); virtual bool SetMaxLOD( float _max ); virtual bool SetLODBias( float _bias ); virtual bool SetBorderColor( float _r, float _g, float _b, float _a ); virtual bool SetCompareMode(ZSamplerCompareMode _mode); virtual bool SetCompareFunc(ZSamplerCompareFunc _func); virtual bool SetSamplerState(const ZSamplerState& _state); }; #endif