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

/*!
\page lottietoqml.html
\title lottietoqml
\brief A tool that converts a Lottie document to a QML file.

\c lottietoqml is a command line tool shipped with Qt that converts a Lottie document
to a QML file. This QML file can then be used as a component in Qt Quick
applications.

You can use \c lottietoqml directly, or via the \l{qt_target_qml_from_lottie} CMake command.

For a demonstration of how \c lottietoqml can be used in an application, see the
\l{lottietoqml Example}.

\section1 Overview
The \c lottietoqml tool will convert a Lottie file to a QML file which uses Qt Quick primitives.
Since the Qt Quick is hardware-accelerated, rendering the animation may perform and consume less
CPU time than using the built-in software renderer in \l {Qt Lottie Animation}. In addition,
Qt Quick supports scalable vector graphics, so the resulting item will be smoothly transformable
as far as this is possible.

\section1 Usage
The basic usage of \c lottietoqml is to provide an input file and an output file:
\c{lottietoqml input.json output.qml}. This will read the \c{input.json} file and convert it into
the corresponding Qt Quick scene in \c{output.qml}, which can then be used as part of a Qt Quick
application.

In addition, it supports the following options:

\table
\header
    \li Option
    \li Description
\row
    \li --copyright-statement <string>
    \li Adds <string> as a comment at the beginning of the generated file.
\row
    \li -c, --curve-renderer
    \li Enables the curve renderer backend for \l{Qt Quick Shapes}. This enables smooth, antialiased
    shapes in the scene without multi-sampling, but at some extra cost.
\row
    \li \c{-a}, \c{--asynchronous-shapes}
    \li Enables the {QtQuick.Shapes::Shape::asynchronous}{asynchronous} mode on all \l{Shape}
    elements in the generated scene. This may improve CPU utilization and responsiveness.
\row
    \li -p, --optimize-paths
    \li Enables optimization of paths before committing them to the QML file, potentially making
    them faster to load and render later.
\row
    \li --outline-stroke-mode
    \li Stroke the outline (contour) of the filled shape instead of the original path.
\row
    \li -t, --type-name <string>
    \li In place of \l{Shape}, the output will use the type name <string> instead. This is
    enables using a custom item to override the default behavior of \l{Shape} items.
\row
    \li -v, --view
    \li Display a preview of the Qt Quick item as it will be generated.
\endtable

*/
