27 #include <freerdp/freerdp.h>
28 #include <freerdp/client/rdpei.h>
29 #include <freerdp/client/rail.h>
30 #include <freerdp/client/cliprdr.h>
31 #include <freerdp/client/rdpgfx.h>
34 #include <SDL_video.h>
36 #include "sdl_types.hpp"
37 #include "sdl_disp.hpp"
38 #include "sdl_kbd.hpp"
39 #include "sdl_utils.hpp"
40 #include "sdl_window.hpp"
41 #include "dialogs/sdl_connection_dialog.hpp"
43 using SDLSurfacePtr = std::unique_ptr<SDL_Surface, decltype(&SDL_FreeSurface)>;
44 using SDLPixelFormatPtr = std::unique_ptr<SDL_PixelFormat, decltype(&SDL_FreeFormat)>;
63 bool fullscreen =
false;
64 bool resizeable =
false;
65 bool grab_mouse =
false;
66 bool grab_kbd =
false;
67 bool grab_kbd_enabled =
true;
69 std::map<Uint32, SdlWindow> windows;
82 SDLSurfacePtr primary;
83 SDLPixelFormatPtr primary_format;
85 Uint32 sdl_pixel_format = 0;
87 std::unique_ptr<SDLConnectionDialog> connection_dialog;
89 std::atomic<bool> rdp_thread_running;
91 BOOL update_resizeable(BOOL enable);
92 BOOL update_fullscreen(BOOL enter);
93 BOOL update_minimize();
95 [[nodiscard]] rdpContext* context()
const;
96 [[nodiscard]] rdpClientContext* common()
const;