BSWin32PlatformData.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. NativeDropTargetData mDropTargets;
  32. bool mRequiresStartUp = false;
  33. bool mRequiresShutDown = false;
  34. BS_MUTEX(mSync);
  35. };
  36. /** @} */
  37. /** @endcond */
  38. }