1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 
6  * d2dbasetypes.h - Header file for the Direct2D API
7  * No original Microsoft headers were used in the creation of this
8  * file.
9  *API docs available at: http://msdn.microsoft.com/en-us/library/dd372349%28v=VS.85%29.aspx
10  */
11 
12 #ifndef _D2DBASETYPES_H
13 #define _D2DBASETYPES_H
14 
15 #include <d3d9types.h>
16 
17 typedef D3DCOLORVALUE D2D_COLOR_F;
18 
19 struct D2D_MATRIX_3X2_F {
20   FLOAT _11;
21   FLOAT _12;
22   FLOAT _21;
23   FLOAT _22;
24   FLOAT _31;
25   FLOAT _32;
26 };
27 
28 typedef struct D2D_MATRIX_4X3_F {
29     __C89_NAMELESS union {
30         __C89_NAMELESS struct {
31             FLOAT _11, _12, _13;
32             FLOAT _21, _22, _23;
33             FLOAT _31, _32, _33;
34             FLOAT _41, _42, _43;
35         };
36         FLOAT m[4][3];
37     };
38 } D2D_MATRIX_4X3_F;
39 
40 typedef struct D2D_MATRIX_4X4_F {
41     __C89_NAMELESS union {
42         __C89_NAMELESS struct {
43             FLOAT _11, _12, _13, _14;
44             FLOAT _21, _22, _23, _24;
45             FLOAT _31, _32, _33, _34;
46             FLOAT _41, _42, _43, _44;
47         };
48         FLOAT m[4][4];
49     };
50 } D2D_MATRIX_4X4_F;
51 
52 typedef struct D2D_MATRIX_5X4_F {
53     __C89_NAMELESS union {
54         __C89_NAMELESS struct {
55             FLOAT _11, _12, _13, _14;
56             FLOAT _21, _22, _23, _24;
57             FLOAT _31, _32, _33, _34;
58             FLOAT _41, _42, _43, _44;
59             FLOAT _51, _52, _53, _54;
60         };
61         FLOAT m[5][4];
62     };
63 } D2D_MATRIX_5X4_F;
64 
65 struct D2D_POINT_2F {
66   FLOAT x;
67   FLOAT y;
68 };
69 
70 struct D2D_POINT_2U {
71   UINT32 x;
72   UINT32 y;
73 };
74 
75 struct D2D_RECT_F {
76   FLOAT left;
77   FLOAT top;
78   FLOAT right;
79   FLOAT bottom;
80 };
81 
82 struct D2D_RECT_U {
83   UINT32 left;
84   UINT32 top;
85   UINT32 right;
86   UINT32 bottom;
87 };
88 
89 typedef RECT D2D_RECT_L;
90 
91 struct D2D_SIZE_F {
92   FLOAT width;
93   FLOAT height;
94 };
95 
96 typedef D2D_COLOR_F D2D1_COLOR_F;
97 
98 typedef struct D2D_POINT_2F D2D1_POINT_2F;
99 
100 typedef struct D2D_POINT_2U D2D1_POINT_2U;
101 
102 typedef struct D2D_RECT_F D2D1_RECT_F;
103 
104 typedef struct D2D_RECT_U D2D1_RECT_U;
105 
106 typedef struct D2D_SIZE_F D2D1_SIZE_F;
107 
108 typedef struct D2D_VECTOR_2F {
109     FLOAT x;
110     FLOAT y;
111 } D2D_VECTOR_2F;
112 
113 typedef struct D2D_VECTOR_3F {
114     FLOAT x;
115     FLOAT y;
116     FLOAT z;
117 } D2D_VECTOR_3F;
118 
119 typedef struct D2D_VECTOR_4F {
120     FLOAT x;
121     FLOAT y;
122     FLOAT z;
123     FLOAT w;
124 } D2D_VECTOR_4F;
125 
126 #endif /* _D2DBASETYPES_H */
127