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 bs
  7. {
  8. /** @addtogroup ScriptInteropEngine
  9. * @{
  10. */
  11. /** Base interop class for any types deriving from RenderTarget. */
  12. class BS_SCR_BE_EXPORT ScriptRenderTargetBase : public ScriptObjectBase
  13. {
  14. public:
  15. /** Returns the native render target this object wraps. */
  16. virtual SPtr<RenderTarget> getNativeValue() const = 0;
  17. protected:
  18. friend class ScriptResourceManager;
  19. ScriptRenderTargetBase(MonoObject* instance)
  20. :ScriptObjectBase(instance)
  21. { }
  22. virtual ~ScriptRenderTargetBase() {}
  23. };
  24. /** Interop class between C++ & CLR for RenderTarget. */
  25. class BS_SCR_BE_EXPORT ScriptRenderTarget : public ScriptObject<ScriptRenderTarget, ScriptRenderTargetBase>
  26. {
  27. public:
  28. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "RenderTarget")
  29. private:
  30. ScriptRenderTarget(MonoObject* instance);
  31. /************************************************************************/
  32. /* CLR HOOKS */
  33. /************************************************************************/
  34. static void internal_getWidth(ScriptRenderTarget* thisPtr, int* value);
  35. static void internal_getHeight(ScriptRenderTarget* thisPtr, int* value);
  36. static void internal_getGammaCorrection(ScriptRenderTarget* thisPtr, bool* value);
  37. static void internal_getSampleCount(ScriptRenderTarget* thisPtr, int* value);
  38. static void internal_getPriority(ScriptRenderTarget* thisPtr, int* value);
  39. static void internal_setPriority(ScriptRenderTarget* thisPtr, int value);
  40. };
  41. /** @} */
  42. }