BsSamplerState.cpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #include "BsSamplerState.h"
  2. #include "BsSamplerStateRTTI.h"
  3. #include "BsRenderStateManager.h"
  4. #include "BsRenderAPI.h"
  5. #include "BsException.h"
  6. #include "BsResources.h"
  7. namespace BansheeEngine
  8. {
  9. SamplerProperties::SamplerProperties(const SAMPLER_STATE_DESC& desc)
  10. :mData(desc)
  11. { }
  12. FilterOptions SamplerProperties::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& SamplerProperties::getBorderColor() const
  26. {
  27. return mData.borderColor;
  28. }
  29. SamplerStateCore::SamplerStateCore(const SAMPLER_STATE_DESC& desc)
  30. :mProperties(desc)
  31. {
  32. }
  33. const SamplerProperties& SamplerStateCore::getProperties() const
  34. {
  35. return mProperties;
  36. }
  37. const SPtr<SamplerStateCore>& SamplerStateCore::getDefault()
  38. {
  39. return RenderStateCoreManager::instance().getDefaultSamplerState();
  40. }
  41. SamplerState::SamplerState(const SAMPLER_STATE_DESC& desc)
  42. :mProperties(desc)
  43. {
  44. }
  45. SPtr<SamplerStateCore> SamplerState::getCore() const
  46. {
  47. return std::static_pointer_cast<SamplerStateCore>(mCoreSpecific);
  48. }
  49. SPtr<CoreObjectCore> SamplerState::createCore() const
  50. {
  51. return RenderStateCoreManager::instance().createSamplerStateInternal(mProperties.mData);
  52. }
  53. HSamplerState SamplerState::create(const SAMPLER_STATE_DESC& desc)
  54. {
  55. SamplerStatePtr samplerPtr = RenderStateManager::instance().createSamplerState(desc);
  56. return static_resource_cast<SamplerState>(gResources()._createResourceHandle(samplerPtr));
  57. }
  58. const SamplerStatePtr& SamplerState::getDefault()
  59. {
  60. return RenderStateManager::instance().getDefaultSamplerState();
  61. }
  62. const SamplerProperties& SamplerState::getProperties() const
  63. {
  64. return mProperties;
  65. }
  66. /************************************************************************/
  67. /* RTTI */
  68. /************************************************************************/
  69. RTTITypeBase* SamplerState::getRTTIStatic()
  70. {
  71. return SamplerStateRTTI::instance();
  72. }
  73. RTTITypeBase* SamplerState::getRTTI() const
  74. {
  75. return SamplerState::getRTTIStatic();
  76. }
  77. }