Add SDL3 macOS and Linux desktop ports - #307
Closed
douglasjv wants to merge 3 commits into
Closed
Conversation
* Integrate clang-format into the build * Replaced Butterworth.cpp with Iir library. * Move aubio to vcpkg * Made ImageLoader use stb_image * WIP - tried ogg conversion with ffmpeg documentation but it doesn't work. trying a different way. * Got ffmpeg .ogg conversion working. * Remove oggenc2 from build. * Update the CREDITS file. * oh no a weird cmake edge case * Manually specify source files, and split out formatting CI. * WIP--half-pass of converting code * It builds, but doesn't work. * The OpenGL context works, but input and frame handling is not working yet. * Rebase attempt with beta * Rebase attempt. * Rebase: The OpenGL context works, but input and frame handling is not working yet. * Rebase: Working on file dialogs. * Rebase cleanup. * Finished conversion except doing display scaling. * Add monitor scaling support, sans some complicated issues * vector icons text glyphs * wip - mixer * WIP - the mixer plays audio, but offsets and sound effects don't work. * ported Windows mixer to SDL_Audio * Fix scaling for sprites and remaining display elements. * Cleanup/bugfix mixer. * Fix cmakelists.txt for build * Update vcpkg baseline version * Revert vcpkg baseline * Fix audio conversion dialogs. * Fix again * Fix launch directory on Windows * i am going crazy * It works, kinda sorta. Vector->std::vector, various multiplatform fixes. * finish refactoring * Starting OpenGL menu bar (bar is printed to top.) * Menu bar is functional, but overlaps active window * separate editor from menu bar * Make Windows functionality work. * Make .yml work on Linux * Make clang-tidy work again. * Try another .yml * again * again.. * test... * try6 * try7 * try8 * try9 * try10 * try11 * try12, get all packages * try13, remove libudev-dev * try14 * try15, fix clang-format * try16 * try17 * last edit. * one more build cleanup * fix vector allocation and backport termination from sdl3 branch * update latest beta fixes * update codeql * fix alignment code * Made builds work on Fedora. Fix file dialog and scaling bugs. Documentation. * format. * oh no x2 * oh nox3 * oh no x4 * try once more * i gave up * replace menu bar ifdefs with common define, cmakelists.txt cleanup * per LetalexAlex: correctly handle mouse position with SDL functions * Fix text edit rendering bugs from vector/clamp conversion * Fixed sessions on linux (non portable installations) and added .desktop file for install convenience (uvcat7#291) * Added arrowvortex.desktop for installation * fixed settings directory to be on the user's {XDG_CONFIG_HOME}/arrowvortex/ instead of just 'settings' locally, fallback to /home/user/.config/arowvortex/ * forgot to update the desktop file I copied without looking * reformat * try fixing missing packages again * try3 * try again * Fix portable aggregate and DWI containers * Fix Ubuntu 22.04 C++20 portability * Avoid aggregate emplace on older clang * Include vector in texture interface * Make vector-using headers self-contained * Include menubar declaration in editor actions --------- Co-authored-by: uvcat <theultravioletcatastrophe10@gmail.com> Co-authored-by: uvcat7 <152119638+uvcat7@users.noreply.github.com> Co-authored-by: Psycast <jonathanjwhite@hotmail.com> Co-authored-by: Alex <97258001+LetalexAlex@users.noreply.github.com>
* Integrate clang-format into the build * Replaced Butterworth.cpp with Iir library. * Move aubio to vcpkg * Made ImageLoader use stb_image * WIP - tried ogg conversion with ffmpeg documentation but it doesn't work. trying a different way. * Got ffmpeg .ogg conversion working. * Remove oggenc2 from build. * Update the CREDITS file. * oh no a weird cmake edge case * Manually specify source files, and split out formatting CI. * WIP--half-pass of converting code * It builds, but doesn't work. * The OpenGL context works, but input and frame handling is not working yet. * Rebase attempt with beta * Rebase attempt. * Rebase: The OpenGL context works, but input and frame handling is not working yet. * Rebase: Working on file dialogs. * Rebase cleanup. * Finished conversion except doing display scaling. * Add monitor scaling support, sans some complicated issues * vector icons text glyphs * wip - mixer * WIP - the mixer plays audio, but offsets and sound effects don't work. * ported Windows mixer to SDL_Audio * Fix scaling for sprites and remaining display elements. * Cleanup/bugfix mixer. * Fix cmakelists.txt for build * Update vcpkg baseline version * Revert vcpkg baseline * Fix audio conversion dialogs. * Fix again * Fix launch directory on Windows * i am going crazy * It works, kinda sorta. Vector->std::vector, various multiplatform fixes. * finish refactoring * Starting OpenGL menu bar (bar is printed to top.) * Menu bar is functional, but overlaps active window * separate editor from menu bar * Make Windows functionality work. * Make .yml work on Linux * Make clang-tidy work again. * Try another .yml * again * again.. * test... * try6 * try7 * try8 * try9 * try10 * try11 * try12, get all packages * try13, remove libudev-dev * try14 * try15, fix clang-format * try16 * try17 * last edit. * one more build cleanup * fix vector allocation and backport termination from sdl3 branch * update latest beta fixes * update codeql * fix alignment code * Made builds work on Fedora. Fix file dialog and scaling bugs. Documentation. * format. * oh no x2 * oh nox3 * oh no x4 * try once more * i gave up * replace menu bar ifdefs with common define, cmakelists.txt cleanup * per LetalexAlex: correctly handle mouse position with SDL functions * Fix text edit rendering bugs from vector/clamp conversion * Fixed sessions on linux (non portable installations) and added .desktop file for install convenience (uvcat7#291) * Added arrowvortex.desktop for installation * fixed settings directory to be on the user's {XDG_CONFIG_HOME}/arrowvortex/ instead of just 'settings' locally, fallback to /home/user/.config/arowvortex/ * forgot to update the desktop file I copied without looking * reformat * try fixing missing packages again * try3 * try again * Add native macOS SDL3 application support * Fix portable aggregate and DWI containers * Fix Ubuntu 22.04 C++20 portability * Avoid aggregate emplace on older clang * Include vector in texture interface * Support macOS 12 thread cancellation * Make vector-using headers self-contained * Include menubar declaration in editor actions * Fix portable FFmpeg and integer limit discovery * Make integer limit dependencies explicit * Include short integer limits in waveform code --------- Co-authored-by: uvcat <theultravioletcatastrophe10@gmail.com> Co-authored-by: uvcat7 <152119638+uvcat7@users.noreply.github.com> Co-authored-by: Psycast <jonathanjwhite@hotmail.com> Co-authored-by: Alex <97258001+LetalexAlex@users.noreply.github.com>
* Integrate clang-format into the build * Replaced Butterworth.cpp with Iir library. * Move aubio to vcpkg * Made ImageLoader use stb_image * WIP - tried ogg conversion with ffmpeg documentation but it doesn't work. trying a different way. * Got ffmpeg .ogg conversion working. * Remove oggenc2 from build. * Update the CREDITS file. * oh no a weird cmake edge case * Manually specify source files, and split out formatting CI. * WIP--half-pass of converting code * It builds, but doesn't work. * The OpenGL context works, but input and frame handling is not working yet. * Rebase attempt with beta * Rebase attempt. * Rebase: The OpenGL context works, but input and frame handling is not working yet. * Rebase: Working on file dialogs. * Rebase cleanup. * Finished conversion except doing display scaling. * Add monitor scaling support, sans some complicated issues * vector icons text glyphs * wip - mixer * WIP - the mixer plays audio, but offsets and sound effects don't work. * ported Windows mixer to SDL_Audio * Fix scaling for sprites and remaining display elements. * Cleanup/bugfix mixer. * Fix cmakelists.txt for build * Update vcpkg baseline version * Revert vcpkg baseline * Fix audio conversion dialogs. * Fix again * Fix launch directory on Windows * i am going crazy * It works, kinda sorta. Vector->std::vector, various multiplatform fixes. * finish refactoring * Starting OpenGL menu bar (bar is printed to top.) * Menu bar is functional, but overlaps active window * separate editor from menu bar * Make Windows functionality work. * Make .yml work on Linux * Make clang-tidy work again. * Try another .yml * again * again.. * test... * try6 * try7 * try8 * try9 * try10 * try11 * try12, get all packages * try13, remove libudev-dev * try14 * try15, fix clang-format * try16 * try17 * last edit. * one more build cleanup * fix vector allocation and backport termination from sdl3 branch * update latest beta fixes * update codeql * fix alignment code * Made builds work on Fedora. Fix file dialog and scaling bugs. Documentation. * format. * oh no x2 * oh nox3 * oh no x4 * try once more * i gave up * replace menu bar ifdefs with common define, cmakelists.txt cleanup * per LetalexAlex: correctly handle mouse position with SDL functions * Fix text edit rendering bugs from vector/clamp conversion * Fixed sessions on linux (non portable installations) and added .desktop file for install convenience (uvcat7#291) * Added arrowvortex.desktop for installation * fixed settings directory to be on the user's {XDG_CONFIG_HOME}/arrowvortex/ instead of just 'settings' locally, fallback to /home/user/.config/arowvortex/ * forgot to update the desktop file I copied without looking * reformat * try fixing missing packages again * try3 * try again * Add native macOS SDL3 application support * Add desktop packaging tests and release automation * Scope formatting checks to changed sources * Fix portable aggregate and DWI containers * Fetch formatting comparison parent in CI * Install NASM on macOS CI runners * Fix Ubuntu 22.04 C++20 portability * Avoid aggregate emplace on older clang * Add headless simfile round-trip tests * Include vector in texture interface * Support macOS 12 thread cancellation * Verify macOS smoke tests through LaunchServices * Make vector-using headers self-contained * Include menubar declaration in editor actions * Fix portable FFmpeg and integer limit discovery * Make integer limit dependencies explicit * Include short integer limits in waveform code * Fix Linux round-trip test static linking * Use deterministic Linux CI audio * Make round-trip path separator portable * Use MSVC for Windows static dependencies * Keep SDL entrypoint out of reusable system library --------- Co-authored-by: uvcat <theultravioletcatastrophe10@gmail.com> Co-authored-by: uvcat7 <152119638+uvcat7@users.noreply.github.com> Co-authored-by: Psycast <jonathanjwhite@hotmail.com> Co-authored-by: Alex <97258001+LetalexAlex@users.noreply.github.com>
Author
|
Sorry, did not intend to create this PR! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This work builds on the platform layer from #275, the active Linux port in #281, and relevant concepts from the older macOS proposal in #228. The commits are mirrored from focused, reviewed pull requests in the fork and do not include fork-specific CODEOWNERS or repository governance.
Validation
The exact source tree passed formatting, Windows x64, Ubuntu 22.04 x86_64, macOS arm64, macOS x86_64, and Universal 2 packaging in the fork CI:
https://github.com/douglasjv/ArrowVortex/actions/runs/33198806854
The run includes four simfile load/save round-trip tests, bounded SDL/OpenGL/audio smoke tests, Mach-O slice and dependency validation, Linux dependency validation, and uploaded artifacts for every supported target.
Scope
This keeps the existing simfile model and legacy OpenGL renderer. It does not introduce a renderer rewrite, file-format migration, updater, AppImage, Flatpak, or Mac App Store packaging.