1 module directx.dcomptypes;
2 //---------------------------------------------------------------------------
3 // Copyright (c) Microsoft Corporation.  All rights reserved.
4 //---------------------------------------------------------------------------
5 
6 version(Windows):
7 
8 public import directx.dxgitype, directx.dxgi1_5;
9 
10 //
11 // DirectComposition types
12 //
13 
14 enum DCOMPOSITION_BITMAP_INTERPOLATION_MODE : uint
15 {
16     DCOMPOSITION_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
17     DCOMPOSITION_BITMAP_INTERPOLATION_MODE_LINEAR           = 1,
18 
19     DCOMPOSITION_BITMAP_INTERPOLATION_MODE_INHERIT          = 0xffffffff
20 }
21 
22 enum DCOMPOSITION_BORDER_MODE : uint
23 {
24     DCOMPOSITION_BORDER_MODE_SOFT       = 0,
25     DCOMPOSITION_BORDER_MODE_HARD       = 1,
26 
27     DCOMPOSITION_BORDER_MODE_INHERIT    = 0xffffffff
28 }
29 
30 enum DCOMPOSITION_COMPOSITE_MODE : uint
31 {
32     DCOMPOSITION_COMPOSITE_MODE_SOURCE_OVER        = 0,
33     DCOMPOSITION_COMPOSITE_MODE_DESTINATION_INVERT = 1,
34     DCOMPOSITION_COMPOSITE_MODE_MIN_BLEND          = 2,
35 
36     DCOMPOSITION_COMPOSITE_MODE_INHERIT            = 0xffffffff
37 }
38 
39 enum DCOMPOSITION_BACKFACE_VISIBILITY : uint
40 {
41     DCOMPOSITION_BACKFACE_VISIBILITY_VISIBLE    = 0,
42     DCOMPOSITION_BACKFACE_VISIBILITY_HIDDEN     = 1,
43 
44     DCOMPOSITION_BACKFACE_VISIBILITY_INHERIT    = 0xffffffff
45 }
46 
47 enum DCOMPOSITION_OPACITY_MODE : uint
48 {
49     DCOMPOSITION_OPACITY_MODE_LAYER     = 0,
50     DCOMPOSITION_OPACITY_MODE_MULTIPLY  = 1,
51 
52     DCOMPOSITION_OPACITY_MODE_INHERIT   = 0xffffffff
53 }
54 
55 enum DCOMPOSITION_DEPTH_MODE : uint
56 {
57     DCOMPOSITION_DEPTH_MODE_TREE    = 0,
58     DCOMPOSITION_DEPTH_MODE_SPATIAL = 1,
59 
60     DCOMPOSITION_DEPTH_MODE_INHERIT = 0xffffffff
61 }
62 
63 struct DCOMPOSITION_FRAME_STATISTICS
64 {
65     LARGE_INTEGER lastFrameTime;
66     DXGI_RATIONAL currentCompositionRate;
67     LARGE_INTEGER currentTime;
68     LARGE_INTEGER timeFrequency;
69     LARGE_INTEGER nextEstimatedFrameTime;
70 }
71 
72 
73 //
74 // Composition object specific access flags
75 //
76 
77 enum COMPOSITIONOBJECT_READ          = 0x0001L;
78 enum COMPOSITIONOBJECT_WRITE         = 0x0002L;
79 
80 enum COMPOSITIONOBJECT_ALL_ACCESS    = COMPOSITIONOBJECT_READ | COMPOSITIONOBJECT_WRITE;