//---------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
// This file is automatically generated.  Please do not edit it directly.
//
// File name: D2DBaseTypes.h
//---------------------------------------------------------------------------
#pragma once


#ifndef _D2DBASETYPES_INCLUDED
#define _D2DBASETYPES_INCLUDED

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#endif // #ifndef COM_NO_WINDOWS_H

#if _MSC_VER >= 1200
#pragma warning(push)
#endif
#pragma warning(disable:4201) // anonymous unions warning

#ifndef D3DCOLORVALUE_DEFINED

//+-----------------------------------------------------------------------------
//
//  Struct:
//      D3DCOLORVALUE
//
//------------------------------------------------------------------------------
typedef struct D3DCOLORVALUE
{
    FLOAT r;
    FLOAT g;
    FLOAT b;
    FLOAT a;

} D3DCOLORVALUE;

#define D3DCOLORVALUE_DEFINED
#endif


//+-----------------------------------------------------------------------------
//
//  Struct:
//      D2D_POINT_2U
//
//------------------------------------------------------------------------------
typedef struct D2D_POINT_2U
{
    UINT32 x;
    UINT32 y;

} D2D_POINT_2U;


//+-----------------------------------------------------------------------------
//
//  Struct:
//      D2D_POINT_2F
//
//------------------------------------------------------------------------------
typedef struct D2D_POINT_2F
{
    FLOAT x;
    FLOAT y;

} D2D_POINT_2F;

typedef POINT D2D_POINT_2L;

//+-----------------------------------------------------------------------------
//
//  Struct:
//      D2D_VECTOR_2F
//
//------------------------------------------------------------------------------
typedef struct D2D_VECTOR_2F
{
    FLOAT x;
    FLOAT y;

} D2D_VECTOR_2F;


//+-----------------------------------------------------------------------------
//
//  Struct:
//      D2D_VECTOR_3F
//
//------------------------------------------------------------------------------
typedef struct D2D_VECTOR_3F
{
    FLOAT x;
    FLOAT y;
    FLOAT z;

} D2D_VECTOR_3F;


//+-----------------------------------------------------------------------------
//
//  Struct:
//      D2D_VECTOR_4F
//
//------------------------------------------------------------------------------
typedef struct D2D_VECTOR_4F
{
    FLOAT x;
    FLOAT y;
    FLOAT z;
    FLOAT w;

} D2D_VECTOR_4F;


//+-----------------------------------------------------------------------------
//
//  Struct:
//      D2D_RECT_F
//
//------------------------------------------------------------------------------
typedef struct D2D_RECT_F
{
    FLOAT left;
    FLOAT top;
    FLOAT right;
    FLOAT bottom;

} D2D_RECT_F;


//+-----------------------------------------------------------------------------
//
//  Struct:
//      D2D_RECT_U
//
//------------------------------------------------------------------------------
typedef struct D2D_RECT_U
{
    UINT32 left;
    UINT32 top;
    UINT32 right;
    UINT32 bottom;

} D2D_RECT_U;

typedef RECT D2D_RECT_L;

//+-----------------------------------------------------------------------------
//
//  Struct:
//      D2D_SIZE_F
//
//------------------------------------------------------------------------------
typedef struct D2D_SIZE_F
{
    FLOAT width;
    FLOAT height;

} D2D_SIZE_F;


//+-----------------------------------------------------------------------------
//
//  Struct:
//      D2D_SIZE_U
//
//------------------------------------------------------------------------------
typedef struct D2D_SIZE_U
{
    UINT32 width;
    UINT32 height;

} D2D_SIZE_U;

typedef D3DCOLORVALUE D2D_COLOR_F;

//+-----------------------------------------------------------------------------
//
//  Struct:
//      D2D_MATRIX_3X2_F
//
//------------------------------------------------------------------------------
typedef struct D2D_MATRIX_3X2_F
{
    FLOAT _11;
    FLOAT _12;
    FLOAT _21;
    FLOAT _22;
    FLOAT _31;
    FLOAT _32;

} D2D_MATRIX_3X2_F;


//+-----------------------------------------------------------------------------
//
//  Struct:
//      D2D_MATRIX_4X3_F
//
//------------------------------------------------------------------------------
typedef struct D2D_MATRIX_4X3_F
{
    
    union
    {
        struct 
        {
            FLOAT _11, _12, _13;
            FLOAT _21, _22, _23;
            FLOAT _31, _32, _33;
            FLOAT _41, _42, _43;
        
        } ;
        
        FLOAT m[4][3];
    };


} D2D_MATRIX_4X3_F;


//+-----------------------------------------------------------------------------
//
//  Struct:
//      D2D_MATRIX_4X4_F
//
//------------------------------------------------------------------------------
typedef struct D2D_MATRIX_4X4_F
{
    
    union
    {
        struct 
        {
            FLOAT _11, _12, _13, _14;
            FLOAT _21, _22, _23, _24;
            FLOAT _31, _32, _33, _34;
            FLOAT _41, _42, _43, _44;
        
        } ;
        
        FLOAT m[4][4];
    };


} D2D_MATRIX_4X4_F;


//+-----------------------------------------------------------------------------
//
//  Struct:
//      D2D_MATRIX_5X4_F
//
//------------------------------------------------------------------------------
typedef struct D2D_MATRIX_5X4_F
{
    
    union
    {
        struct 
        {
            FLOAT _11, _12, _13, _14;
            FLOAT _21, _22, _23, _24;
            FLOAT _31, _32, _33, _34;
            FLOAT _41, _42, _43, _44;
            FLOAT _51, _52, _53, _54;
        
        } ;
        
        FLOAT m[5][4];
    };


} D2D_MATRIX_5X4_F;


#if _MSC_VER >= 1200
#pragma warning(pop)
#else
#pragma warning(default:4201)
#endif
#endif // #ifndef _D2DBASETYPES_INCLUDED
