CmSamplerState.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include "CmSamplerState.h"
  2. #include "CmSamplerStateRTTI.h"
  3. #include "CmRenderStateManager.h"
  4. #include "CmException.h"
  5. namespace CamelotEngine
  6. {
  7. SamplerState SamplerState::DEFAULT;
  8. void SamplerState::initialize(const SAMPLER_STATE_DESC& desc)
  9. {
  10. mData = desc;
  11. }
  12. FilterOptions SamplerState::getTextureFiltering(FilterType ft) const
  13. {
  14. switch (ft)
  15. {
  16. case FT_MIN:
  17. return mData.minFilter;
  18. case FT_MAG:
  19. return mData.magFilter;
  20. case FT_MIP:
  21. return mData.mipFilter;
  22. }
  23. return mData.minFilter;
  24. }
  25. const Color& SamplerState::getBorderColor(UINT32 idx)
  26. {
  27. assert(idx >= 0 && idx < 4);
  28. return mData.borderColor[idx];
  29. }
  30. SamplerStatePtr SamplerState::create(const SAMPLER_STATE_DESC& desc)
  31. {
  32. return RenderStateManager::instance().createSamplerState(desc);
  33. }
  34. /************************************************************************/
  35. /* RTTI */
  36. /************************************************************************/
  37. RTTITypeBase* SamplerState::getRTTIStatic()
  38. {
  39. return SamplerStateRTTI::instance();
  40. }
  41. RTTITypeBase* SamplerState::getRTTI() const
  42. {
  43. return SamplerState::getRTTIStatic();
  44. }
  45. }