BsSamplerState.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //__________________________ Banshee Project - A modern game development toolkit _________________________________//
  2. //_____________________________________ www.banshee-project.com __________________________________________________//
  3. //________________________ Copyright (c) 2014 Marko Pintera. All rights reserved. ________________________________//
  4. #include "BsSamplerState.h"
  5. #include "BsSamplerStateRTTI.h"
  6. #include "BsRenderStateManager.h"
  7. #include "BsRenderSystem.h"
  8. #include "BsException.h"
  9. #include "BsResources.h"
  10. namespace BansheeEngine
  11. {
  12. void SamplerState::initialize(const SAMPLER_STATE_DESC& desc)
  13. {
  14. mData = desc;
  15. Resource::initialize();
  16. }
  17. const SamplerStatePtr& SamplerState::getDefault()
  18. {
  19. return RenderStateManager::instance().getDefaultSamplerState();
  20. }
  21. FilterOptions SamplerState::getTextureFiltering(FilterType ft) const
  22. {
  23. switch (ft)
  24. {
  25. case FT_MIN:
  26. return mData.minFilter;
  27. case FT_MAG:
  28. return mData.magFilter;
  29. case FT_MIP:
  30. return mData.mipFilter;
  31. }
  32. return mData.minFilter;
  33. }
  34. const Color& SamplerState::getBorderColor() const
  35. {
  36. return mData.borderColor;
  37. }
  38. HSamplerState SamplerState::create(const SAMPLER_STATE_DESC& desc)
  39. {
  40. SamplerStatePtr samplerPtr = RenderStateManager::instance().createSamplerState(desc);
  41. return static_resource_cast<SamplerState>(gResources()._createResourceHandle(samplerPtr));
  42. }
  43. /************************************************************************/
  44. /* RTTI */
  45. /************************************************************************/
  46. RTTITypeBase* SamplerState::getRTTIStatic()
  47. {
  48. return SamplerStateRTTI::instance();
  49. }
  50. RTTITypeBase* SamplerState::getRTTI() const
  51. {
  52. return SamplerState::getRTTIStatic();
  53. }
  54. }