BsScriptRenderTarget.h 1.5 KB

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