ProfilerOverlayInternal.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Runtime.CompilerServices;
  5. using System.Text;
  6. namespace BansheeEngine
  7. {
  8. internal class ProfilerOverlayInternal : ScriptObject
  9. {
  10. internal ProfilerOverlayInternal(Camera camera)
  11. {
  12. IntPtr ptr = IntPtr.Zero;
  13. if (camera != null)
  14. ptr = camera.Handler.GetCachedPtr();
  15. Internal_CreateInstance(this, ptr);
  16. }
  17. public void SetType(ProfilerOverlayType type)
  18. {
  19. Internal_SetType(mCachedPtr, type);
  20. }
  21. internal void Update()
  22. {
  23. Internal_Update(mCachedPtr);
  24. }
  25. internal void Destroy()
  26. {
  27. Internal_DestroyInstance(mCachedPtr);
  28. }
  29. [MethodImpl(MethodImplOptions.InternalCall)]
  30. private static extern void Internal_CreateInstance(ProfilerOverlayInternal instance, IntPtr cameraHandler);
  31. [MethodImpl(MethodImplOptions.InternalCall)]
  32. private static extern void Internal_SetType(IntPtr instance, ProfilerOverlayType type);
  33. [MethodImpl(MethodImplOptions.InternalCall)]
  34. private static extern void Internal_Update(IntPtr instance);
  35. [MethodImpl(MethodImplOptions.InternalCall)]
  36. private static extern void Internal_DestroyInstance(IntPtr instance);
  37. }
  38. }