BSWin32PlatformData.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. /** @addtogroup Platform-Internal
  9. * @{
  10. */
  11. /** Encapsulate native cursor data so we can avoid including windows.h as it pollutes the global namespace. */
  12. struct BS_CORE_EXPORT NativeCursorData
  13. {
  14. HCURSOR cursor;
  15. };
  16. /** Encapsulate drop target data so we can avoid including windows.h as it pollutes the global namespace. */
  17. struct BS_CORE_EXPORT NativeDropTargetData
  18. {
  19. Map<const RenderWindow*, Win32DropTarget*> dropTargetsPerWindow;
  20. Vector<Win32DropTarget*> dropTargetsToInitialize;
  21. Vector<Win32DropTarget*> dropTargetsToDestroy;
  22. };
  23. struct Platform::Pimpl
  24. {
  25. bool mIsCursorHidden = false;
  26. NativeCursorData mCursor;
  27. bool mUsingCustomCursor = false;
  28. Map<const RenderWindowCore*, WindowNonClientAreaData> mNonClientAreas;
  29. bool mIsTrackingMouse = false;
  30. NativeDropTargetData mDropTargets;
  31. bool mRequiresStartUp = false;
  32. bool mRequiresShutDown = false;
  33. Mutex mSync;
  34. };
  35. /** @} */
  36. }