/*
 * Copyright 2022 Ziqing Hui for CodeWeavers
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

import "d2d1effects.idl";

cpp_quote("DEFINE_GUID(CLSID_D2D1YCbCr, 0x99503cc1,0x66c7,0x45c9,0xa8,0x75,0x8a,0xd8,0xa7,0x91,0x44,0x01);")

typedef enum D2D1_YCBCR_PROP
{
    D2D1_YCBCR_PROP_CHROMA_SUBSAMPLING = 0x0,
    D2D1_YCBCR_PROP_TRANSFORM_MATRIX   = 0x1,
    D2D1_YCBCR_PROP_INTERPOLATION_MODE = 0x2,
    D2D1_YCBCR_PROP_FORCE_DWORD = 0xffffffff
} D2D1_YCBCR_PROP;

typedef enum D2D1_YCBCR_CHROMA_SUBSAMPLING
{
    D2D1_YCBCR_CHROMA_SUBSAMPLING_AUTO = 0x0,
    D2D1_YCBCR_CHROMA_SUBSAMPLING_420  = 0x1,
    D2D1_YCBCR_CHROMA_SUBSAMPLING_422  = 0x2,
    D2D1_YCBCR_CHROMA_SUBSAMPLING_444  = 0x3,
    D2D1_YCBCR_CHROMA_SUBSAMPLING_440  = 0x4,
    D2D1_YCBCR_CHROMA_SUBSAMPLING_FORCE_DWORD = 0xffffffff
} D2D1_YCBCR_CHROMA_SUBSAMPLING;

typedef enum D2D1_YCBCR_INTERPOLATION_MODE
{
    D2D1_YCBCR_INTERPOLATION_MODE_NEAREST_NEIGHBOR    = 0x0,
    D2D1_YCBCR_INTERPOLATION_MODE_LINEAR              = 0x1,
    D2D1_YCBCR_INTERPOLATION_MODE_CUBIC               = 0x2,
    D2D1_YCBCR_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 0x3,
    D2D1_YCBCR_INTERPOLATION_MODE_ANISOTROPIC         = 0x4,
    D2D1_YCBCR_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC  = 0x5,
    D2D1_YCBCR_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_YCBCR_INTERPOLATION_MODE;