{"id":23845837,"url":"https://github.com/asmwarrior/magnum-wx","last_synced_at":"2025-07-09T07:06:31.481Z","repository":{"id":152210665,"uuid":"387133692","full_name":"asmwarrior/magnum-wx","owner":"asmwarrior","description":"a sample wxWidgets + Magnum project","archived":false,"fork":false,"pushed_at":"2022-03-22T08:02:13.000Z","size":1509,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-09T07:03:35.098Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asmwarrior.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-18T09:04:57.000Z","updated_at":"2023-04-14T02:05:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4514d06-5351-4fcc-b30d-ff15974b23e8","html_url":"https://github.com/asmwarrior/magnum-wx","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/asmwarrior/magnum-wx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmwarrior%2Fmagnum-wx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmwarrior%2Fmagnum-wx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmwarrior%2Fmagnum-wx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmwarrior%2Fmagnum-wx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asmwarrior","download_url":"https://codeload.github.com/asmwarrior/magnum-wx/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmwarrior%2Fmagnum-wx/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264411142,"owners_count":23603801,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-02T20:48:17.274Z","updated_at":"2025-07-09T07:06:31.474Z","avatar_url":"https://github.com/asmwarrior.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A sample Magnum + wxWidgets C++ project\n\nThose packages and tools are used to build this project.\n\n- [mosra/magnum: Lightweight and modular C++11 graphics middleware for games and data visualization](https://github.com/mosra/magnum)\n\n- [wxWidgets/wxWidgets: Cross-Platform GUI Library](https://github.com/wxWidgets/wxWidgets)\n\n- [MSYS2](https://www.msys2.org/), this contains the compiler suite(mingw-w64 gcc compiler), and many prebuild libraries.\n\n- [eranif/wx-config-msys2: wx-config tool for MSYS2 based installation of wxWidgets using the mingw64 repository](https://github.com/eranif/wx-config-msys2)\n\n- [Code::Blocks IDE](https://www.codeblocks.org/), the `.cbp` file should be opened by this IDE.\n\n# How to build\n\nFirst, you have [MSYS2](https://www.msys2.org/) installed in your Windows.\n\nThe wxWidgets library could be installed by such commands in the msys2 shell.\n\n~~~~\npacman -S mingw-w64-x86_64-wxmsw3.1\n~~~~\n\nAnd the Magnum library should also be installed by the commands\n\n~~~~\npacman -S mingw-w64-x86_64-magnum\n~~~~\n\nIn the root folder, there is a file named `wx-config-msys2.exe`, which I built from the project: [eranif/wx-config-msys2: wx-config tool for MSYS2 based installation of wxWidgets using the mingw64 repository](https://github.com/eranif/wx-config-msys2). The `wx-config-msys2.exe` will be called when you click the \"Build\" button in Code::Blocks to generate the correct build options.\n\nThe source code is mainly modified from this magnum example code:\n\nhttps://github.com/mosra/magnum-examples/blob/master/src/mouseinteraction/MouseInteractionExample.cpp\n\nAlso, the wxWidgets code is modified and redesigned from magnum's wxWidgets bootstrap code:\n\nhttps://github.com/mosra/magnum-bootstrap/tree/base-wxwidgets\n\n# The result application\n\n![The main GUI](images/main-gui.png)\n\n# The current issue(as 2021-08-01, this issue is fixed now by using the arcball example code from magnum example)\n\nThe mouse scroll event works OK(see `void GLPanel::OnMouseScroll(wxMouseEvent \u0026event)` function), so when you scroll up/down with the mouse's wheel, you can zoom in/out the scene.\n\nThe key press handling works OK(see `void GLPanel::OnKeyDown(wxKeyEvent \u0026event)` function), when you press the \"0\" key, the scene/camera will get reset, when you press the \"1\", \"3\" or \"7\" key, the scene/camera will go to the preset positions.\n\nBut it looks like the mouse left button drag does not rotate the scene correctly(see `void GLPanel::OnMouseMove(wxMouseEvent \u0026event)` function), compared with Magnum's official webgl demos here: [Mouse In­ter­ac­tion Ex­am­ple](https://magnum.graphics/showcase/mouseinteraction/), also the right mouse button drag is not working, it should translate the screne/camera.\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasmwarrior%2Fmagnum-wx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasmwarrior%2Fmagnum-wx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasmwarrior%2Fmagnum-wx/lists"}