BSWin32PlatformData.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "BsPlatform.h"
  2. #include "Win32/BsWin32Defs.h"
  3. #include "Win32/BsWin32DropTarget.h"
  4. namespace BansheeEngine
  5. {
  6. /**
  7. * @brief Encapsulate native cursor data so we can avoid including windows.h as it pollutes the global namespace
  8. */
  9. struct BS_CORE_EXPORT NativeCursorData
  10. {
  11. HCURSOR cursor;
  12. };
  13. /**
  14. * @brief Encapsulate drop target data so we can avoid including windows.h as it pollutes the global namespace
  15. */
  16. struct BS_CORE_EXPORT NativeDropTargetData
  17. {
  18. Map<const RenderWindow*, Win32DropTarget*> dropTargetsPerWindow;
  19. Vector<Win32DropTarget*> dropTargetsToInitialize;
  20. Vector<Win32DropTarget*> dropTargetsToDestroy;
  21. };
  22. struct Platform::Pimpl
  23. {
  24. bool mIsCursorHidden = false;
  25. NativeCursorData mCursor;
  26. bool mUsingCustomCursor = false;
  27. Map<const RenderWindowCore*, WindowNonClientAreaData> mNonClientAreas;
  28. bool mIsTrackingMouse = false;
  29. Vector<RenderWindowCore*> mModalWindowStack;
  30. NativeDropTargetData mDropTargets;
  31. bool mRequiresStartUp = false;
  32. bool mRequiresShutDown = false;
  33. BS_MUTEX(mSync);
  34. };
  35. }