• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //+--------------------------------------------------------------------------
2 //
3 //  Copyright (c) Microsoft Corporation.  All rights reserved.
4 //
5 //  Abstract:
6 //     Public API definitions for DWrite and D2D
7 //
8 //----------------------------------------------------------------------------
9 
10 #ifndef DCOMMON_H_INCLUDED
11 #define DCOMMON_H_INCLUDED
12 
13 //
14 //These macros are defined in the Windows 7 SDK, however to enable development using the technical preview,
15 //they are included here temporarily.
16 //
17 #ifndef DEFINE_ENUM_FLAG_OPERATORS
18 #define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE) \
19 extern "C++" { \
20 inline ENUMTYPE operator | (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((int)a) | ((int)b)); } \
21 inline ENUMTYPE &operator |= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((int &)a) |= ((int)b)); } \
22 inline ENUMTYPE operator & (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((int)a) & ((int)b)); } \
23 inline ENUMTYPE &operator &= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((int &)a) &= ((int)b)); } \
24 inline ENUMTYPE operator ~ (ENUMTYPE a) { return ENUMTYPE(~((int)a)); } \
25 inline ENUMTYPE operator ^ (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((int)a) ^ ((int)b)); } \
26 inline ENUMTYPE &operator ^= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((int &)a) ^= ((int)b)); } \
27 }
28 #endif
29 
30 #ifndef __field_ecount_opt
31 #define __field_ecount_opt(x)
32 #endif
33 
34 #ifndef __range
35 #define __range(x,y)
36 #endif
37 
38 #ifndef __field_ecount
39 #define __field_ecount(x)
40 #endif
41 
42 /// <summary>
43 /// The measuring method used for text layout.
44 /// </summary>
45 typedef enum DWRITE_MEASURING_MODE
46 {
47     /// <summary>
48     /// Text is measured using glyph ideal metrics whose values are independent to the current display resolution.
49     /// </summary>
50     DWRITE_MEASURING_MODE_NATURAL,
51 
52     /// <summary>
53     /// Text is measured using glyph display compatible metrics whose values tuned for the current display resolution.
54     /// </summary>
55     DWRITE_MEASURING_MODE_GDI_CLASSIC,
56 
57     /// <summary>
58     /// Text is measured using the same glyph display metrics as text measured by GDI using a font
59     /// created with CLEARTYPE_NATURAL_QUALITY.
60     /// </summary>
61     DWRITE_MEASURING_MODE_GDI_NATURAL
62 
63 } DWRITE_MEASURING_MODE;
64 
65 #endif /* DCOMMON_H_INCLUDED */
66