BsRenderTarget.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #include "BsRenderTarget.h"
  2. #include "BsViewport.h"
  3. #include "BsException.h"
  4. #include "BsRenderSystem.h"
  5. #include "BsCoreThread.h"
  6. namespace BansheeEngine
  7. {
  8. RenderTargetCore::RenderTargetCore(RenderTarget* parent, RenderTargetProperties* properties)
  9. :mProperties(properties), mParent(parent)
  10. {
  11. }
  12. RenderTargetCore::~RenderTargetCore()
  13. {
  14. bs_delete(mProperties);
  15. }
  16. void RenderTargetCore::getCustomAttribute(const String& name, void* pData) const
  17. {
  18. BS_EXCEPT(InvalidParametersException, "Attribute not found.");
  19. }
  20. const RenderTargetProperties& RenderTargetCore::getProperties() const
  21. {
  22. THROW_IF_NOT_CORE_THREAD;
  23. return *mProperties;
  24. }
  25. RenderTarget::RenderTarget()
  26. :mCore(nullptr), mProperties(nullptr)
  27. {
  28. }
  29. RenderTarget::~RenderTarget()
  30. {
  31. bs_delete(mProperties);
  32. }
  33. const RenderTargetProperties& RenderTarget::getProperties() const
  34. {
  35. THROW_IF_CORE_THREAD;
  36. // DEBUG ONLY
  37. if (mCore != nullptr)
  38. *mProperties = *mCore->mProperties;
  39. return *mProperties;
  40. }
  41. RenderTargetCore* RenderTarget::getCore() const
  42. {
  43. return mCore;
  44. }
  45. void RenderTarget::initialize_internal()
  46. {
  47. CoreObject::initialize_internal();
  48. mCore = createCore();
  49. }
  50. void RenderTarget::destroy_internal()
  51. {
  52. bs_delete(mCore);
  53. mCore = nullptr;
  54. CoreObject::destroy_internal();
  55. }
  56. void RenderTarget::getCustomAttribute(const String& name, void* pData) const
  57. {
  58. BS_EXCEPT(InvalidParametersException, "Attribute not found.");
  59. }
  60. }