CmSamplerState.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #include "CmSamplerState.h"
  2. #include "CmSamplerStateRTTI.h"
  3. #include "CmRenderStateManager.h"
  4. #include "CmRenderSystem.h"
  5. #include "CmException.h"
  6. #include "CmResources.h"
  7. namespace CamelotFramework
  8. {
  9. void SamplerState::initialize(const SAMPLER_STATE_DESC& desc)
  10. {
  11. mData = desc;
  12. Resource::initialize();
  13. }
  14. const SamplerStatePtr& SamplerState::getDefault()
  15. {
  16. return RenderStateManager::instance().getDefaultSamplerState();
  17. }
  18. FilterOptions SamplerState::getTextureFiltering(FilterType ft) const
  19. {
  20. switch (ft)
  21. {
  22. case FT_MIN:
  23. return mData.minFilter;
  24. case FT_MAG:
  25. return mData.magFilter;
  26. case FT_MIP:
  27. return mData.mipFilter;
  28. }
  29. return mData.minFilter;
  30. }
  31. const Color& SamplerState::getBorderColor() const
  32. {
  33. return mData.borderColor;
  34. }
  35. HSamplerState SamplerState::create(const SAMPLER_STATE_DESC& desc)
  36. {
  37. SamplerStatePtr samplerPtr = RenderStateManager::instance().createSamplerState(desc);
  38. return static_resource_cast<SamplerState>(gResources().createResourceHandle(samplerPtr));
  39. }
  40. /************************************************************************/
  41. /* RTTI */
  42. /************************************************************************/
  43. RTTITypeBase* SamplerState::getRTTIStatic()
  44. {
  45. return SamplerStateRTTI::instance();
  46. }
  47. RTTITypeBase* SamplerState::getRTTI() const
  48. {
  49. return SamplerState::getRTTIStatic();
  50. }
  51. }