BsScriptRenderTarget.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsScriptEnginePrerequisites.h"
  5. #include "BsScriptObject.h"
  6. namespace BansheeEngine
  7. {
  8. /**
  9. * @brief Base interop class for any types deriving from RenderTarget.
  10. */
  11. class BS_SCR_BE_EXPORT ScriptRenderTargetBase : public ScriptObjectBase
  12. {
  13. public:
  14. /**
  15. * @brief Returns the native render target this object wraps.
  16. */
  17. virtual RenderTargetPtr getNativeValue() const = 0;
  18. protected:
  19. friend class ScriptResourceManager;
  20. ScriptRenderTargetBase(MonoObject* instance)
  21. :ScriptObjectBase(instance)
  22. { }
  23. virtual ~ScriptRenderTargetBase() {}
  24. };
  25. /**
  26. * @brief Interop class between C++ & CLR for RenderTarget.
  27. */
  28. class BS_SCR_BE_EXPORT ScriptRenderTarget : public ScriptObject<ScriptRenderTarget, ScriptRenderTargetBase>
  29. {
  30. public:
  31. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "RenderTarget")
  32. private:
  33. ScriptRenderTarget(MonoObject* instance);
  34. /************************************************************************/
  35. /* CLR HOOKS */
  36. /************************************************************************/
  37. static void internal_getWidth(ScriptRenderTarget* thisPtr, int* value);
  38. static void internal_getHeight(ScriptRenderTarget* thisPtr, int* value);
  39. static void internal_getGammaCorrection(ScriptRenderTarget* thisPtr, bool* value);
  40. static void internal_getSampleCount(ScriptRenderTarget* thisPtr, int* value);
  41. static void internal_getPriority(ScriptRenderTarget* thisPtr, int* value);
  42. static void internal_setPriority(ScriptRenderTarget* thisPtr, int value);
  43. };
  44. }