1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 //! Mappings for the contents of dcomptypes.h
7 use shared::dxgitype::DXGI_RATIONAL;
8 use shared::minwindef::DWORD;
9 use um::winnt::LARGE_INTEGER;
10 ENUM!{enum DCOMPOSITION_BITMAP_INTERPOLATION_MODE {
11     DCOMPOSITION_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
12     DCOMPOSITION_BITMAP_INTERPOLATION_MODE_LINEAR = 1,
13     DCOMPOSITION_BITMAP_INTERPOLATION_MODE_INHERIT = 0xffffffff,
14 }}
15 ENUM!{enum DCOMPOSITION_BORDER_MODE {
16     DCOMPOSITION_BORDER_MODE_SOFT = 0,
17     DCOMPOSITION_BORDER_MODE_HARD = 1,
18     DCOMPOSITION_BORDER_MODE_INHERIT = 0xffffffff,
19 }}
20 ENUM!{enum DCOMPOSITION_COMPOSITE_MODE {
21     DCOMPOSITION_COMPOSITE_MODE_SOURCE_OVER = 0,
22     DCOMPOSITION_COMPOSITE_MODE_DESTINATION_INVERT = 1,
23     DCOMPOSITION_COMPOSITE_MODE_MIN_BLEND = 2,
24     DCOMPOSITION_COMPOSITE_MODE_INHERIT = 0xffffffff,
25 }}
26 ENUM!{enum DCOMPOSITION_BACKFACE_VISIBILITY {
27     DCOMPOSITION_BACKFACE_VISIBILITY_VISIBLE = 0,
28     DCOMPOSITION_BACKFACE_VISIBILITY_HIDDEN = 1,
29     DCOMPOSITION_BACKFACE_VISIBILITY_INHERIT = 0xffffffff,
30 }}
31 ENUM!{enum DCOMPOSITION_OPACITY_MODE {
32     DCOMPOSITION_OPACITY_MODE_LAYER = 0,
33     DCOMPOSITION_OPACITY_MODE_MULTIPLY = 1,
34     DCOMPOSITION_OPACITY_MODE_INHERIT = 0xffffffff,
35 }}
36 ENUM!{enum DCOMPOSITION_DEPTH_MODE {
37     DCOMPOSITION_DEPTH_MODE_TREE = 0,
38     DCOMPOSITION_DEPTH_MODE_SPATIAL = 1,
39     DCOMPOSITION_DEPTH_MODE_INHERIT = 0xffffffff,
40 }}
41 STRUCT!{struct DCOMPOSITION_FRAME_STATISTICS {
42     lastFrameTime: LARGE_INTEGER,
43     currentCompositionRate: DXGI_RATIONAL,
44     currentTime: LARGE_INTEGER,
45     timeFrequency: LARGE_INTEGER,
46     nextEstimatedFrameTime: LARGE_INTEGER,
47 }}
48 pub const COMPOSITIONOBJECT_READ: DWORD = 0x0001;
49 pub const COMPOSITIONOBJECT_WRITE: DWORD = 0x0002;
50 pub const COMPOSITIONOBJECT_ALL_ACCESS: DWORD = COMPOSITIONOBJECT_READ | COMPOSITIONOBJECT_WRITE;
51