ProfilerOverlayInternal.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. using System;
  4. using System.Runtime.CompilerServices;
  5. namespace BansheeEngine
  6. {
  7. /** @cond INTEROP */
  8. /// <summary>
  9. /// Wrapper around the native ProfilerOverlay class.
  10. /// <see cref="ProfilerOverlay"/>
  11. /// </summary>
  12. internal class ProfilerOverlayInternal : ScriptObject
  13. {
  14. internal ProfilerOverlayInternal(Camera camera)
  15. {
  16. IntPtr ptr = IntPtr.Zero;
  17. if (camera != null)
  18. ptr = camera.GetCachedPtr();
  19. Internal_CreateInstance(this, ptr);
  20. }
  21. public void SetType(ProfilerOverlayType type)
  22. {
  23. Internal_SetType(mCachedPtr, type);
  24. }
  25. internal void Update()
  26. {
  27. Internal_Update(mCachedPtr);
  28. }
  29. internal void Destroy()
  30. {
  31. Internal_DestroyInstance(mCachedPtr);
  32. }
  33. [MethodImpl(MethodImplOptions.InternalCall)]
  34. private static extern void Internal_CreateInstance(ProfilerOverlayInternal instance, IntPtr camera);
  35. [MethodImpl(MethodImplOptions.InternalCall)]
  36. private static extern void Internal_SetType(IntPtr instance, ProfilerOverlayType type);
  37. [MethodImpl(MethodImplOptions.InternalCall)]
  38. private static extern void Internal_Update(IntPtr instance);
  39. [MethodImpl(MethodImplOptions.InternalCall)]
  40. private static extern void Internal_DestroyInstance(IntPtr instance);
  41. }
  42. /** @endcond */
  43. }