master
 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
 7#ifndef _DCOMPTYPES_H_
 8#define _DCOMPTYPES_H_
 9
10#include <dxgitype.h>
11#include <dxgi1_2.h>
12#include <winapifamily.h>
13
14#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
15
16enum DCOMPOSITION_BITMAP_INTERPOLATION_MODE {
17    DCOMPOSITION_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
18    DCOMPOSITION_BITMAP_INTERPOLATION_MODE_LINEAR = 1,
19    DCOMPOSITION_BITMAP_INTERPOLATION_MODE_INHERIT = 0xffffffff
20};
21
22enum DCOMPOSITION_BORDER_MODE {
23    DCOMPOSITION_BORDER_MODE_SOFT = 0,
24    DCOMPOSITION_BORDER_MODE_HARD = 1,
25    DCOMPOSITION_BORDER_MODE_INHERIT = 0xffffffff
26};
27
28enum DCOMPOSITION_COMPOSITE_MODE {
29    DCOMPOSITION_COMPOSITE_MODE_SOURCE_OVER = 0,
30    DCOMPOSITION_COMPOSITE_MODE_DESTINATION_INVERT = 1,
31#if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE
32    DCOMPOSITION_COMPOSITE_MODE_MIN_BLEND = 2,
33#endif
34    DCOMPOSITION_COMPOSITE_MODE_INHERIT = 0xffffffff
35};
36
37#if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE
38enum DCOMPOSITION_BACKFACE_VISIBILITY {
39    DCOMPOSITION_BACKFACE_VISIBILITY_VISIBLE = 0,
40    DCOMPOSITION_BACKFACE_VISIBILITY_HIDDEN = 1,
41    DCOMPOSITION_BACKFACE_VISIBILITY_INHERIT = 0xffffffff
42};
43
44enum DCOMPOSITION_OPACITY_MODE {
45    DCOMPOSITION_OPACITY_MODE_LAYER = 0,
46    DCOMPOSITION_OPACITY_MODE_MULTIPLY = 1,
47    DCOMPOSITION_OPACITY_MODE_INHERIT = 0xffffffff
48};
49#endif
50
51#if _WIN32_WINNT >= _WIN32_WINNT_WINTHRESHOLD
52enum DCOMPOSITION_DEPTH_MODE {
53    DCOMPOSITION_DEPTH_MODE_TREE = 0,
54    DCOMPOSITION_DEPTH_MODE_SPATIAL = 1,
55    DCOMPOSITION_DEPTH_MODE_SORTED = 3,
56    DCOMPOSITION_DEPTH_MODE_INHERIT = 0xffffffff
57};
58#endif
59
60typedef struct {
61    LARGE_INTEGER lastFrameTime;
62    DXGI_RATIONAL currentCompositionRate;
63    LARGE_INTEGER currentTime;
64    LARGE_INTEGER timeFrequency;
65    LARGE_INTEGER nextEstimatedFrameTime;
66} DCOMPOSITION_FRAME_STATISTICS;
67
68#define COMPOSITIONOBJECT_READ 0x01
69#define COMPOSITIONOBJECT_WRITE 0x02
70#define COMPOSITIONOBJECT_ALL_ACCESS (COMPOSITIONOBJECT_READ | COMPOSITIONOBJECT_WRITE)
71
72#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
73
74#endif /* _DCOMPTYPES_H_ */