{"id":16187059,"url":"https://github.com/robloach/fission","last_synced_at":"2025-04-02T03:31:18.930Z","repository":{"id":66036276,"uuid":"130852040","full_name":"RobLoach/Fission","owner":"RobLoach","description":"A C++-ish wrapper for nuklear","archived":true,"fork":false,"pushed_at":"2020-10-15T10:40:27.000Z","size":29,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T18:02:00.821Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RobLoach.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-04-24T12:38:53.000Z","updated_at":"2024-03-16T17:39:26.000Z","dependencies_parsed_at":"2023-02-21T21:16:01.494Z","dependency_job_id":null,"html_url":"https://github.com/RobLoach/Fission","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobLoach%2FFission","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobLoach%2FFission/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobLoach%2FFission/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobLoach%2FFission/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobLoach","download_url":"https://codeload.github.com/RobLoach/Fission/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246746916,"owners_count":20827062,"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":"2024-10-10T07:20:11.812Z","updated_at":"2025-04-02T03:31:18.497Z","avatar_url":"https://github.com/RobLoach.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fission [![Build Status](https://travis-ci.org/XAMPP/Fission.svg?branch=master)](https://travis-ci.org/XAMPP/Fission)\nFission is a C++-ish wrapper around the [nuklear](https://github.com/vurtun/nuklear) GUI library.\n\nFission comes with several rendering backends, see the table below:\n|  | OpenGL3 | Vulkan |\n| -| ------- | ------ |\n| X11     | ✓ | ✗ |\n| Wayland | ✗ | ✗ |\n\nAnything with a ✓ is supported and (mostly) implemented, everything with ✗ is planned but not yet worked on / done.\n\n\n## Building\nTo build Fission you need a few things, the first is `git`, `meson`, `ninja`, and a C++ compiler.\nnext are the libraries that are needed, these all depend on what backend you're building so it's broken down into the following list.\n\nX11 OpenGL3 (Default):\n\n * libxcb\n * libgl\n * libglu\n\nX11 Vulkan:\n\n * libxcb\n * Vulkan SDK\n\nWayland OpenGL:\n\n * wayland-client\n * libgl\n * libglu\n\n\nWayland Vulkan:\n\n * wayland-client\n * Vulkan SDK\n\nNext, to build simply just do the following:\n```\n$ git clone https://github.com/XAMPP/Fission.git\n$ cd Fission \u0026\u0026 meson build\n$ cd build \u0026\u0026 ninja\n```\n\nThis will by default build the X11 OpenGL3 backend, to specify the backend do the following:\n```\n$ cd build\n$ meson configure -Dgfxbackend=\u003cBACKEND\u003e\n```\n\nThe values for `\u003cBACKEND\u003e` are as follows:\n\n * X11GL3 (Default)\n * X11VULKAN\n * WAYGL3\n * WAYVULKAN\n\n\n## FAQ\n\n**Q**: Why? There is already QT, Wx, GTK, etc...\n\n**A**: Because I wasn't really happy with the API those had to provide.\n\n\n**Q**: Why wrap the library? Just use it as is.\n\n**A**: Because I don't like the [nuklear](https://github.com/vurtun/nuklear) API either, but it's small and manageable.\n\n\n**Q**: Will there be Windows™ support?\n\n**A**: The library should be written in such a way that adding support for Direct3D is easy. But I don't use Windows™, so I see no need to implement it myself.\n\n\n\n## Example\nThe following is an example application that uses Fission, if you want a more in-depth example then take a look at the [Fission Tutorial](doc/FissionTutorial.md)\n\n```cpp\n#include \u003ciostream\u003e\n\n#include \u003cFission/Fission.hh\u003e\n#include \u003cFission/Utility/Event.hh\u003e\n#include \u003cFission/FissionWindow.hh\u003e\n#include \u003cFission/Widgets/AllWidgets.hh\u003e\n\nusing Fission::FissionWindow;\nusing Fission::Utility::Event;\nusing Fission::Utility::BaseEvent;\nusing WindowResize = Fission::FissionWindow::WindowResize;\nusing Fission::Widgets;\n\nint main(int argc, char** argv) {\n\t// Some basic setup\n\tFission::Initialize(argc, argv);\n\n\tEvent::Register\u003cWindowResize\u003e([](const BaseEvent\u0026 e) {\n\t\tauto\u0026 ev = static_cast\u003cconst WindowResize\u0026\u003e(e);\n\t\tstd::cout \u003c\u003c \"New Window Size: \" \u003c\u003c ev.NewSize.Width \u003c\u003c \"x\" \u003c\u003c ev.NewSize.Height \u003c\u003c std::endl;\n\t});\n\n\tFissionWindow mainWindow(\"Fission Demo\", {800, 600});\n\n\tmainWindow.AddWidgets({\n\t\tnew StaticRow(30, 80, 1),\n\t\tnew Button(\"Demo\", [](const BaseEvent\u0026 e) {\n\t\t\tstd::cout \u003c\u003c \"Button clicked!\" \u003c\u003c std::endl;\n\t\t}),\n\t\tnew Label(\"Demo\", Label::TextLeft)\n\t});\n\n\t// Wait for all the application windows to close\n\treturn Fission::WaitExit();\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobloach%2Ffission","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobloach%2Ffission","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobloach%2Ffission/lists"}