Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[sdl] update to SDL3 #9387

Merged
merged 5 commits into from May 16, 2024
Merged

[sdl] update to SDL3 #9387

merged 5 commits into from May 16, 2024

Conversation

akallabeth
Copy link
Member

@akallabeth akallabeth commented Sep 14, 2023

  • port sdl client to upcoming sdl3, sdl3_image and sdl3_ttf
  • add basic clipboard support
  • make both, SDL2 and SDL3 client installable side by side or replacing each other (configurable)
  • default to OFF for SDL3 client build

@akallabeth akallabeth added this to the next milestone Sep 14, 2023
@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/10373/

@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/10377/

@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/10797/

@AkechiShiro
Copy link

AkechiShiro commented Feb 15, 2024

Hi @akallabeth, thanks a lot for your work on this feature, is this port still on going as of right now ? It seems you are most likely busy working on other features at the moment ?

Is there any way someone that has no prior knowledge in this codebase help move this forward ? I have little experience with CMake (more with CMake than with C++)

I've seen this : https://github.com/libsdl-org/SDL/blob/main/docs/README-migration.md that might be helpful

@akallabeth
Copy link
Member Author

@AkechiShiro well, waiting for SDL3 to become a real thing (as in some release)
as you can see the port is not compatible with SDL2 so and maintaining both will become quite a pain, so this is on hold until that time.

@AkechiShiro
Copy link

@akallabeth A prerelease was done for SDL3 recently was done : https://github.com/libsdl-org/SDL/releases/tag/prerelease-3.1.0

Just thought you might want to get this news !

@akallabeth akallabeth force-pushed the sdl3 branch 2 times, most recently from 5c3ce4e to 616f2e0 Compare May 7, 2024 09:36
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy made some suggestions

There were too many comments to post at once. Showing the first 25 out of 39. Check the log or trigger a new build to see more.

client/SDL/dialogs/res/sdl_resource_manager.hpp Outdated Show resolved Hide resolved
client/SDL/dialogs/sdl_button.cpp Outdated Show resolved Hide resolved
client/SDL/dialogs/sdl_buttons.cpp Outdated Show resolved Hide resolved
client/SDL/dialogs/sdl_connection_dialog.cpp Outdated Show resolved Hide resolved
client/SDL/dialogs/sdl_connection_dialog.hpp Outdated Show resolved Hide resolved
client/SDL/sdl_freerdp.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_freerdp.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_freerdp.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_freerdp.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_freerdp.cpp Outdated Show resolved Hide resolved
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy made some suggestions

client/SDL/sdl_freerdp.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_freerdp.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_freerdp.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_freerdp.hpp Outdated Show resolved Hide resolved
client/SDL/sdl_freerdp.hpp Outdated Show resolved Hide resolved
client/SDL/sdl_monitor.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_pointer.hpp Outdated Show resolved Hide resolved
client/SDL/sdl_touch.hpp Outdated Show resolved Hide resolved
client/SDL/sdl_utils.hpp Outdated Show resolved Hide resolved
client/SDL/sdl_window.hpp Outdated Show resolved Hide resolved
@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/11927/

@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/11928/

@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/11929/

@AkechiShiro
Copy link

Any progress so far, I've seen new preview release for SDL3, thanks also for working on this !

@akallabeth akallabeth linked an issue May 7, 2024 that may be closed by this pull request
@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/11930/

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy made some suggestions

There were too many comments to post at once. Showing the first 25 out of 158. Check the log or trigger a new build to see more.

client/SDL/sdl_clip.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_clip.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_clip.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_clip.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_clip.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_clip.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_clip.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_clip.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_clip.cpp Outdated Show resolved Hide resolved
client/SDL/sdl_clip.cpp Outdated Show resolved Hide resolved
@akallabeth akallabeth modified the milestones: next, next-3.0 May 7, 2024
@akallabeth akallabeth marked this pull request as ready for review May 7, 2024 16:10
@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/11931/

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy made some suggestions

There were too many comments to post at once. Showing the first 25 out of 1197. Check the log or trigger a new build to see more.

client/SDL3/aad/qt/webview_impl.cpp Show resolved Hide resolved
client/SDL3/aad/qt/webview_impl.cpp Show resolved Hide resolved
client/SDL3/aad/qt/webview_impl.cpp Show resolved Hide resolved
client/SDL3/aad/qt/webview_impl.cpp Show resolved Hide resolved
client/SDL3/aad/qt/webview_impl.cpp Show resolved Hide resolved
client/SDL3/aad/sdl_webview.cpp Show resolved Hide resolved
client/SDL3/aad/sdl_webview.cpp Show resolved Hide resolved
client/SDL3/aad/sdl_webview.cpp Show resolved Hide resolved
client/SDL3/aad/sdl_webview.cpp Show resolved Hide resolved
client/SDL3/aad/sdl_webview.cpp Show resolved Hide resolved
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy made some suggestions

There were too many comments to post at once. Showing the first 25 out of 1057. Check the log or trigger a new build to see more.

client/SDL3/dialogs/res/convert_res_to_c.cpp Show resolved Hide resolved
client/SDL3/dialogs/res/convert_res_to_c.cpp Show resolved Hide resolved
client/SDL3/dialogs/res/convert_res_to_c.cpp Show resolved Hide resolved
client/SDL3/dialogs/res/convert_res_to_c.cpp Show resolved Hide resolved
client/SDL3/dialogs/res/convert_res_to_c.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_button.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_button.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_button.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_button.hpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_button.hpp Show resolved Hide resolved
@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/11942/

@AkechiShiro
Copy link

Can this be used yet or tested in any way? Just would like to know if users could beta test and report issues on SDL3's preview version for FreeRDP ?

@akallabeth
Copy link
Member Author

Can this be used yet or tested in any way? Just would like to know if users could beta test and report issues on SDL3's preview version for FreeRDP ?

yes.

  1. install SDL, SDL_ttf and SDL_image from their git main branch to some location (/tmp/freerdp if you don´t want a permanent location that is gone after reboot)
  2. install FreeRDP to the same location (use cmake -DCMAKE_INSTALL_PREFIX=/tmp/freerdp ...
  3. start sdl3-freerdp (that is the name of the SDL3 client vs sdl-freerdp as the name of the SDL2 client)

@AkechiShiro
Copy link

@LDprg @oskardotglobal any of you could do some testing with winapps with this experimental SDL3 backend ? If you cannot, I'll see if I can take some time to do so and report back my findings here so we can squash bugs in advance.

@akallabeth
Copy link
Member Author

@hardening @mfleisz @bmiklautz @pnowack I´d appreciate a review (does not have to be thorough) of this pr.
as it only introduces a (new) client based on SDL3 (with the required CMake glue and extended by clipboard, with at least text working) I consider merging this early and fix issues in follow up pull requests.

this way we can get (at least some) feedback from interested parties.

Copy link
Contributor

@hardening hardening left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like a good start. There's probably things that are common between the SDL2 and SDL3 client but this is something we can make common later.

client/SDL3/sdl_clip.cpp Show resolved Hide resolved
client/SDL3/sdl_clip.cpp Outdated Show resolved Hide resolved
client/SDL3/sdl_clip.cpp Outdated Show resolved Hide resolved
client/SDL3/sdl_clip.hpp Outdated Show resolved Hide resolved
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy made some suggestions

There were too many comments to post at once. Showing the first 25 out of 1032. Check the log or trigger a new build to see more.

client/SDL3/dialogs/sdl_button.hpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_buttons.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_buttons.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_buttons.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_buttons.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/11969/

@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/11970/

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy made some suggestions

There were too many comments to post at once. Showing the first 25 out of 1007. Check the log or trigger a new build to see more.

client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
@akallabeth
Copy link
Member Author

@freerdp-bot test again please...

@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/11971/

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy made some suggestions

There were too many comments to post at once. Showing the first 25 out of 982. Check the log or trigger a new build to see more.

client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_connection_dialog.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/11972/

* Copy SDL2 client to SDL3 as the new version is not API compatible
* Move existing SDL2 client to SDL2 directory
* Move fonts from SDL client to resources folder in top level directory
update client for SDL3. Not compatible with SDL2
Allow SDL2 and SDL3 client to be installed side by side as well as an
option to only install one and name it accordingly
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy made some suggestions

There were too many comments to post at once. Showing the first 25 out of 961. Check the log or trigger a new build to see more.

client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
client/SDL3/dialogs/sdl_dialogs.cpp Show resolved Hide resolved
@freerdp-bot
Copy link

Refer to this link for build results (access rights to CI server needed):
https://ci.freerdp.com//job/PullRequestTester/11987/

@akallabeth akallabeth merged commit 6ddc7d3 into FreeRDP:master May 16, 2024
7 checks passed
@akallabeth akallabeth deleted the sdl3 branch May 16, 2024 17:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[SDL] add clipboard support
5 participants