{"id":13621814,"url":"https://github.com/basysKom/RiveQtQuickPlugin","last_synced_at":"2025-04-15T05:32:31.322Z","repository":{"id":169150996,"uuid":"627503493","full_name":"basysKom/RiveQtQuickPlugin","owner":"basysKom","description":"A Qt / QtQuick Renderer to draw Rive Animations in QML.","archived":false,"fork":false,"pushed_at":"2025-02-03T10:03:47.000Z","size":8114,"stargazers_count":54,"open_issues_count":3,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-03T11:21:57.230Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/basysKom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/BSD-3-Clause.txt","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":"2023-04-13T15:47:57.000Z","updated_at":"2025-02-03T10:03:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"35c8843e-dbf0-41e1-b936-df4a4774db0c","html_url":"https://github.com/basysKom/RiveQtQuickPlugin","commit_stats":null,"previous_names":["jebos/riveqtquickplugin"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basysKom%2FRiveQtQuickPlugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basysKom%2FRiveQtQuickPlugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basysKom%2FRiveQtQuickPlugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basysKom%2FRiveQtQuickPlugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basysKom","download_url":"https://codeload.github.com/basysKom/RiveQtQuickPlugin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249015684,"owners_count":21198823,"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-08-01T21:01:10.816Z","updated_at":"2025-04-15T05:32:31.315Z","avatar_url":"https://github.com/basysKom.png","language":"C","funding_links":[],"categories":["Runtime Documentation"],"sub_categories":[],"readme":"\u003c!--\n// SPDX-FileCopyrightText: 2024 Jeremias Bosch \u003cjeremias.bosch@basyskom.com\u003e\n// SPDX-FileCopyrightText: 2023 Jeremias Bosch \u003cjeremias.bosch@basyskom.com\u003e\n// SPDX-FileCopyrightText: 2023 Jonas Kalinka \u003cjonas.kalinka@basyskom.com\u003e\n// SPDX-FileCopyrightText: 2023 basysKom GmbH\n//\n// SPDX-License-Identifier: LGPL-3.0-or-later\n--\u003e\n# RiveQtQuickPlugin\n\nRiveQtQuickPlugin is a Qt/QtQuick renderer that enables the integration of Rive animations in QtQuick / QML. \nFor more information on Rive, visit [https://www.rive.app](https://www.rive.app).\n\nThe QML API Documentation can be found here: https://basyskom.github.io/RiveQtQuickPlugin/index.html\n\nThis plugin allows you to display Rive animations, interact with them, and bind data to and from the animations in your Qt Quick applications.\n\nhttps://user-images.githubusercontent.com/1797537/233192955-7360403b-b51b-422a-8770-20d504c130c0.mp4\n\n## State of Implementation\n| Platform            | OpenGL                 | Direct3D    |Vulkan    |Metal    |SoftwareRendering    |\n|----------------     |-----------             |-----------  |-----------|-----------|-----------|\n| Qt5.15.2 Windows    | -   |-|-|-|✅(no texture meshes)\n| Qt5.15.2 Linux      | -   |-|-|-|✅(no texture meshes)\n| Qt5.15.2 macOS      | -   |-|-|-|✅(no texture meshes)\n| Qt6.5+ Windows    | ✅   |✅|✅|-|✅(no texture meshes)\n| Qt6.5+ Linux      | ✅   |-|✅|-|✅(no texture meshes)\n| Qt6.5+ macOS      | ✅   |-|-|✅|✅(no texture meshes)\n| Qt6.8+ Windows    | ✅   |✅|✅|-|✅(no texture meshes)\n| Qt6.8+ Linux      | ✅   |-|✅|-|✅(no texture meshes)\n| Qt6.8+ macOS      | ✅   |-|-|✅|✅(no texture meshes)\n\nLines noted with - are not implemented (and wont be) since they are not possible (like Direct3D on Mac). As for Qt5 support, this is maintained by keeping the Software Rendering compatible, but there wont be any extra effort to have native opengl rendering in Qt5.\n\n## Features\n\n- Display Rive animations in QML\n- All Rive Features are supported. (State November 2023)\n- Windows, Linux, MacOS\n- Hardware Rendering in OpenGL, Metal, Vulkan, Direct3D\n- Software Rendering\n- Interactive animations with support for user input and triggers\n- Data bindings for reading and writing data to and from Rive animations\n- Support for managing multiple artboards, animations, and state machines\n\n## Compatibility\nThe plugin has been tested on:\n\n- Windows using the MSVC 2019 compiler and Qt 5.15.2+, Qt6.5+, Qt6.8+\n\n- Linux (Ubuntu 22.04 LTS) and Qt 5.15.2+, Qt 6.5+, Qt6.8+ \n  - Clang14 and gcc 11.4 (or newer versions) are supported\n\n  - If you are using Clang14, ensure that all clang dependencies are installed \n\n  - `apt-get install clang-format clang-tidy clang-tools clang clangd libc++-dev libc++1 libc++abi-dev libc++abi1 libclang-dev libclang1 liblldb-dev libllvm-ocaml-dev libomp-dev libomp5 lld lldb llvm-dev llvm-runtime llvm python3-clang`\n\n  - Use the automatic installation script if you get issues: https://apt.llvm.org/ \n  - `chmod +x llvm.sh` and `sudo ./llvm.sh 14`\n  \nWe recommend to build the plugin with Clang14, as it includes the Clang vector builtins.\n\n## Dependencies\n\n- Qt 5.15.2+ or Qt 6.5+, or Qt6.8+\n- Rive C++ Runtime (available at [https://github.com/rive-app/rive-cpp](https://github.com/rive-app/rive-runtime))\n  * **Hint:** You don't have to compile the it from the repo. Rive-runtime and its dependencies are added as Git-Submodules and you build them using cmake. The result is a static lib the plugin links against.\n\n## Building\n\n- `git clone git@github.com:basysKom/RiveQtQuickPlugin.git`\n- `git submodule update --init --recursive`\n- Install missing dependencies (`libxkbcommon-dev` might be missing on Ubuntu 22.04)\n- Building using cmake and make should work just fine\n\n```example\ncd /path/to/repo/\n\n# Remove comment if you're building with Clang14\n# export CC=clang\n# export CXX=clang++\n\nmkdir build\ncd build\ncmake -DCMAKE_PREFIX_PATH=~/.Qt/6.5.1/gcc_64 -S .. -B .\nmake\n```\n\n## Usage\n\nThe QML API Documentation can be found here: https://basyskom.github.io/RiveQtQuickPlugin/index.html\n\nHere's a short example of how to use the RiveQtQuickItem in your QML code:\n\n```\nimport RiveQtQuickPlugin 1.0\n\n...\n\nRiveQtQuickItem {\n    id: riveItem\n\n    width: 800\n    height: 800\n\n    fileSource: \"YOUR_RIVE_FILE\"\n\n    stateMachineInterface: RiveStateMachineInput {\n        property real level: slider.value\n    }\n}\n\n```\n\n## Logging\n\nThere are 4 logging categories, so it is easy to filter relevant output:\n\n- **rqqpItem:** Logs related to the RiveQtQuickItem, like file loading, properties, etc.\n- **rqqpFactory:** Logs related to the Rive Factory Wrapper classes\n- **rqqpRendering:** Logs related to rendering and the rendering classes\n- **rqqpInspection:** Logs related to the content of the rive file like artboards, animations, statemachine info.\n- **rqqpInteraction:** Logs related to user interaction with the item and rive content\n\n### Examples\n\nCheck out the \"example\" folder in this repository for a complete example project demonstrating how to use the `RiveQtQuickPlugin`.\nAlso take a look in our blog at https://blog.basyskom.com \n\n### Linux\n\nIn order to run the example project, set the import path correctly\n\nQt 5.15.2:\n\n`export QML2_IMPORT_PATH=YOUR/BUILD/DIR/binary/`\n\nQt 6.5.x, Qt 6.8.x:\n\n`export QML_IMPORT_PATH=YOUR/BUILD/DIR/binary/`\n\n**Hint:** In QtCreator you can set the variable(s) in the project settings under \"Environment\"\n\n### Windows\n\nEverything is deployed in your build directory into a directory called \"binary\"\n\n## Contributing\n\nContributions are welcome! If you encounter any issues or would like to request a feature, feel free to open an issue or submit a pull request.\n\n## License\n\nThis project is released under the LGPLv3.0-or-later License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FbasysKom%2FRiveQtQuickPlugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FbasysKom%2FRiveQtQuickPlugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FbasysKom%2FRiveQtQuickPlugin/lists"}