/*!
    \qmltype ColorOverlay
    \inherits Item
    \inqmlmodule org.deepin.dtk
    \keyword DColorOverlay
    \brief 一个同时支持软件和硬件渲染的颜色覆盖控件.

    这是一种同时支持软件渲染和硬件渲染的颜色覆盖控件，其作用是为源控件
    覆盖用户想要的自定义颜色。其同时支持软件渲染和硬件渲染两种模式，在
    硬件渲染下，其和 Qt Graphical Effects 模块的 ColorOverlay 用法
    一致，软件渲染模式下，其只能做到对单一颜色的覆盖，无法做到 alpha 的
    像素点混合这种效果。

    ColorOverlay 在 DTK 中被用在 BusyIndicator 的颜色覆盖上，如自定义
    不同颜色的 BusyIndicator，应用使用该控件控制例如需要被高亮色进行颜色
    覆盖的场景。

    \image images/coloroverlay_Spinner.png

    它可以对一般控件进行颜色覆盖，其使用方式如下所示：
    \qml
    import org.deepin.dtk 1.0

    Rectangle {
        id: rect

        width: 100
        height: 100
        color: "gray"
        visible: false
    }

    ColorOverlay {
        anchors.fill: rect
        source: rect
        color: "red"
    }
    \endqml
    其效果如下：
    \image images/renderRedRect.png

    也可以对图片进行颜色覆盖，其使用方式如下所示：
    \qml
    import org.deepin.dtk 1.0

    Image {
        id: img
        sourceSize {
            width: 100
            height: 100
        }
        source: "/path/to/image.png"
        visible: false
    }

    ColorOverlay {
        anchors.fill: img
        source: img
        color: "red"
    }
    \endqml

    其效果如下：
    \table
    \header
          \li 原图
          \li 对比图
    \row
        \li \image images/coloroverlay_imageSouce.png
        \li \image images/coloroverlay_imageOverlay.png
    \endtable
 */

/*!
    \qmlproperty bool org.deepin.dtk::ColorOverlay::cached

    该属性用于指定是否启用缓存，当源数据的状态不会发生动态改变时，开启缓存
    能够大幅提高渲染性能。该属性在硬件渲染（GPU渲染）模式下默认为 false,
    在软件渲染（CPU渲染）模式下为 true.
 */

/*!
    \qmlproperty color org.deepin.dtk::ColorOverlay::color

    该属性用于指定覆盖的颜色，未指定即表示不覆盖任何颜色。

    在硬件渲染（GPU渲染）模式下，\c color 能够跟每个像素点的颜色进行
    alpha通道混合，保证每个像素点在混合后的多样化。软件渲染模式下，该
    颜色混合通常使用 Qt 的混合模式进行混合。
 */

/*!
    \qmlproperty color org.deepin.dtk::ColorOverlay::source

    该属性用于指定颜色覆盖的源,它可以是一个一般控件,也可以是图片等资源数据.
    但不支持将自身作为源进行眼哦色覆盖.
 */
