21 #include <freerdp/types.h>
22 #include <freerdp/event.h>
23 #include <freerdp/client/disp.h>
25 #include "sdl_types.hpp"
41 BOOL init(DispClientContext* disp);
42 BOOL uninit(DispClientContext* disp);
44 #if SDL_VERSION_ATLEAST(2, 0, 10)
45 BOOL handle_display_event(
const SDL_DisplayEvent* ev);
48 BOOL handle_window_event(
const SDL_WindowEvent* ev);
51 UINT DisplayControlCaps(UINT32 maxNumMonitors, UINT32 maxMonitorAreaFactorA,
52 UINT32 maxMonitorAreaFactorB);
53 BOOL set_window_resizable();
56 BOOL settings_changed();
57 BOOL update_last_sent();
58 UINT sendLayout(
const rdpMonitor* monitors,
size_t nmonitors);
62 static UINT DisplayControlCaps(DispClientContext* disp, UINT32 maxNumMonitors,
63 UINT32 maxMonitorAreaFactorA, UINT32 maxMonitorAreaFactorB);
64 static void OnActivated(
void* context,
const ActivatedEventArgs* e);
65 static void OnGraphicsReset(
void* context,
const GraphicsResetEventArgs* e);
66 static Uint32 SDLCALL OnTimer(Uint32 interval,
void* param);
69 DispClientContext* _disp =
nullptr;
70 int _lastSentWidth = -1;
71 int _lastSentHeight = -1;
72 UINT64 _lastSentDate = 0;
73 int _targetWidth = -1;
74 int _targetHeight = -1;
75 BOOL _activated = FALSE;
76 BOOL _waitingResize = FALSE;
77 UINT16 _lastSentDesktopOrientation = 0;
78 UINT32 _lastSentDesktopScaleFactor = 0;
79 UINT32 _lastSentDeviceScaleFactor = 0;
80 SDL_TimerID _timer = 0;
81 unsigned _timer_retries = 0;