// Copyright (C) 2019 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
    \page qtlottieanimation-index.html
    \title Qt Lottie Animation
    \brief Display Lottie format vector graphics animations.

    \e {Qt Lottie Animation} provides QML APIs for rendering graphics and animations in Lottie
    format files. These are typically exported from the \l Lottie plugins for Adobe After Effects.

    The \l{LottieAnimation} item renders animations into an intermediate buffer using the
    \l{QPainter} software renderer. This may impose some performance restrictions on the sizes of
    illustrations, as well as on the target hardware. As an alternative, a tool called
    \l{lottietoqml} is included. This tool converts Lottie animations to QML. As a result,
    they can be rendered using the hardware-accelerated renderer in Qt Quick.

    If the Lottie files are known at compile time, you can also convert them to QML using the
    \l lottietoqml tool, or the \l{qt_target_qml_from_lottie} CMake command that wraps the tool.

    Finally, the \l{VectorImage} Qt Quick item can load Lottie format files directly. It converts
    them to QML at runtime using the \l lottietoqml functionality in a plugin.

    \section1 Getting Started

//! [usage]
    Import the types using the the following statement:

    \qml
    import Qt.labs.lottieqt
    \endqml
//! [usage]

    \section1 Limitations

    The implementation follows the \l {Lottie Specification}{master specification for lottie}.
    Deviations in exported Lottie files compared to the specification are
    taken into account as much as possible when differences are noticed.

    \section2 General limitations

    \list
    \li expressions are not supported
    \li the timeline only supports frame-mode, not time-mode
    \endlist

    \warning The input files for Qt Lottie Animation are assumed to be trusted
    content. Application developers are advised to never pass in data from untrusted sources.

    \section2 Animation level limitations

    The following properties are not supported:

    \list
    \li \c assets - reusable text and images
    \li \c chars text
    \endlist

    \section2 Layers

    The following properties are not supported:

    \list
    \li \c bm (blend mode)
    \endlist

    \section2 Shapes

    Some more rarely used elements and shapes are not supported, including:

    \list
    \li Nested Repeater shapes
    \endlist

    Also note that the behavior when using multiple active trim paths (e.g. trim
    paths in nested groups) is unpredictable.

    \section2 Effects

    The only supported effects are \c Slide and \c {Layer Fill}.

    \section2 Examples

    \list

    \li The \l{qtlottieviewer Example} demonstrates how to use the \l{LottieAnimation} item to
    load, display and control a Lottie file in a Qt Quick application.

    \li The \l{lottietoqml Example} demonstrates how the \l{lottietoqml} tool can be used to
    convert Lottie files into Qt Quick scenes and load these in an application.

    \endlist

    \section1 Licenses

    Qt Lottie Animation is available under commercial licenses from \l{The Qt Company}.
    In addition, it is available under the \l{GNU General Public License, version 3}.
    See \l{Qt Licensing} for further details.

    \section1 Reference
    \list
        \li \l {Qt Lottie Animation QML Types}{QML Types}
        \li \l {lottietoqml}{lottietoqml Tool}
        \li \l {qt_target_qml_from_lottie}{qt_target_qml_from_lottie CMake Command}
    \endlist

    \section1 Related Information
    \list
        \li \l {Lottie Source}{Lottie on GitHub}
    \endlist
*/

/*!
    \qmlmodule Qt.labs.lottieqt 1.0
    \title Qt Lottie Animation QML Types
    \ingroup qmlmodules
    \brief Provides QML types to display Lottie graphics and animations.

    \include qtlottie.qdoc usage

    \section1 QML Types
*/
