11 #include "threads/CriticalSection.h"    12 #include "threads/SystemClock.h"    13 #include "threads/Timer.h"    14 #include "windowing/WinSystem.h"    21 typedef struct _CGLContextObject* CGLContextObj;
    22 typedef struct CGRect NSRect;
    26 @class NSWindowController;
    34 struct NSWindowController;
    46     bool interlaced{
false};
    50     size_t pixelHeight{0};
    51     double refreshrate{0.0};
    55   void OnTimeout() 
override;
    58   bool InitWindowSystem() 
override;
    59   bool DestroyWindowSystem() 
override;
    60   bool CreateNewWindow(
const std::string& name, 
bool fullScreen, 
RESOLUTION_INFO& res) 
override;
    61   bool DestroyWindow() 
override;
    62   bool ResizeWindow(
int newWidth, 
int newHeight, 
int newLeft, 
int newTop) 
override;
    63   bool SetFullScreen(
bool fullScreen, 
RESOLUTION_INFO& res, 
bool blankOtherDisplays) 
override;
    64   void UpdateResolutions() 
override;
    65   bool Minimize() 
override;
    66   bool Restore() 
override;
    68   bool HasCursor() 
override;
    69   bool Show(
bool raise = 
true) 
override;
    70   unsigned int GetScreenId(
const std::string& screen) 
override;
    72   void OnMove(
int x, 
int y) 
override;
    74   bool HasValidResolution() 
const;
    76   std::string GetClipboardText() 
override;
    83   void WindowChangedScreen();
    85   void AnnounceOnLostDevice();
    86   void AnnounceOnResetDevice();
    87   void HandleOnResetDevice();
    88   void StartLostDeviceTimer();
    89   void StopLostDeviceTimer();
    91   int CheckDisplayChanging(uint32_t flags);
    92   void SetFullscreenWillToggle(
bool toggle) { m_fullscreenWillToggle = toggle; }
    93   bool GetFullscreenWillToggle() { 
return m_fullscreenWillToggle; }
    94   void SignalFullScreenStateChanged(
bool fullscreenState);
    96   CGLContextObj GetCGLContextObj();
    98   std::vector<std::string> GetConnectedOutputs() 
override;
   101   bool MessagePump() 
override;
   103   NSRect GetWindowDimensions();
   104   void enableInputEvents();
   105   void disableInputEvents();
   107   void signalMouseEntered();
   108   void signalMouseExited();
   109   void SendInputEvent(NSEvent* nsEvent);
   112   std::unique_ptr<KODI::WINDOWING::IOSScreenSaver> GetOSScreenSaverImpl() 
override;
   115   void EnableVSync(
bool enable);
   117   void FillInVideoModes();
   120   bool DestroyWindowInternal();
   122   std::unique_ptr<CWinEventsOSX> m_winEvents;
   125   NSWindow* m_appWindow;
   127   unsigned long m_lastDisplayNr;
   128   double m_refreshRate;
   130   CCriticalSection m_resourceSection;
   131   std::vector<IDispResource*> m_resources;
   133   bool m_delayDispReset;
   135   bool m_fullscreenWillToggle;
   136   bool m_hasCursor{
false};
   139   CCriticalSection m_critSection;
   142   NSWindowController* m_appWindowController;
 Definition: WinEventsOSX.h:20
std::optional< unsigned long > m_fullScreenMovingToScreen
Set while moving the fullscreen window to another screen. Stores the target screen id...
Definition: WinSystemOSX.h:138
Definition: WinSystemOSX.h:38
Definition: WinSystem.h:49
void MoveToScreen(unsigned int screenIdx) override
Window was requested to move to the given screen. 
Definition: WinSystemOSX.mm:1253
Definition: SystemClock.h:31
Definition: OSXGLView.h:13
unsigned int GetScreenId(const std::string &screen) override
Get the screen ID provided the screen name. 
Definition: WinSystemOSX.mm:1248
Definition: DispResource.h:14
Provide info of a resolution. 
Definition: Resolution.h:66
Definition: WinSystemOSX.h:44
Definition: VideoReferenceClock.h:19
void OnChangeScreen(unsigned int screenIdx) override
Used to signal the windowing system about the change of the current screen. 
Definition: WinSystemOSX.mm:1231