BSWin32PlatformData.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsPlatform.h"
  4. #include "Win32/BsWin32Defs.h"
  5. #include "Win32/BsWin32DropTarget.h"
  6. namespace BansheeEngine
  7. {
  8. /** @cond INTERNAL */
  9. /** @addtogroup Platform
  10. * @{
  11. */
  12. /** Encapsulate native cursor data so we can avoid including windows.h as it pollutes the global namespace. */
  13. struct BS_CORE_EXPORT NativeCursorData
  14. {
  15. HCURSOR cursor;
  16. };
  17. /** Encapsulate drop target data so we can avoid including windows.h as it pollutes the global namespace. */
  18. struct BS_CORE_EXPORT NativeDropTargetData
  19. {
  20. Map<const RenderWindow*, Win32DropTarget*> dropTargetsPerWindow;
  21. Vector<Win32DropTarget*> dropTargetsToInitialize;
  22. Vector<Win32DropTarget*> dropTargetsToDestroy;
  23. };
  24. struct Platform::Pimpl
  25. {
  26. bool mIsCursorHidden = false;
  27. NativeCursorData mCursor;
  28. bool mUsingCustomCursor = false;
  29. Map<const RenderWindowCore*, WindowNonClientAreaData> mNonClientAreas;
  30. bool mIsTrackingMouse = false;
  31. Vector<RenderWindowCore*> mModalWindowStack;
  32. NativeDropTargetData mDropTargets;
  33. bool mRequiresStartUp = false;
  34. bool mRequiresShutDown = false;
  35. BS_MUTEX(mSync);
  36. };
  37. /** @} */
  38. /** @endcond */
  39. }