BsScriptPixelUtility.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. #include "Image/BsPixelData.h"
  7. #include "Image/BsPixelUtil.h"
  8. namespace bs
  9. {
  10. /** @addtogroup ScriptInteropEngine
  11. * @{
  12. */
  13. /** Interop class between C++ & CLR for PixelUtility. */
  14. class BS_SCR_BE_EXPORT ScriptPixelUtility : public ScriptObject <ScriptPixelUtility>
  15. {
  16. public:
  17. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "PixelUtility")
  18. private:
  19. ScriptPixelUtility(MonoObject* instance);
  20. /************************************************************************/
  21. /* CLR HOOKS */
  22. /************************************************************************/
  23. static void internal_getMemorySize(UINT32 width, UINT32 height, UINT32 depth, PixelFormat format, UINT32* value);
  24. static void internal_hasAlpha(PixelFormat format, bool* value);
  25. static void internal_isFloatingPoint(PixelFormat format, bool* value);
  26. static void internal_isCompressed(PixelFormat format, bool* value);
  27. static void internal_isDepth(PixelFormat format, bool* value);
  28. static void internal_getMaxMipmaps(UINT32 width, UINT32 height, UINT32 depth, PixelFormat format, UINT32* value);
  29. static MonoObject* internal_convertFormat(MonoObject* source, PixelFormat newFormat);
  30. static MonoObject* internal_compress(MonoObject* source, CompressionOptions* options);
  31. static MonoArray* internal_generateMipmaps(MonoObject* source, MipMapGenOptions* options);
  32. static MonoObject* internal_scale(MonoObject* source, PixelVolume* newSize, PixelUtil::Filter filter);
  33. static void internal_linearToSRGB(MonoObject* source);
  34. static void internal_SRGBToLinear(MonoObject* source);
  35. };
  36. /** @} */
  37. }