aboutsummaryrefslogtreecommitdiff
path: root/contrib/DirectX-Headers-1.618.2/include/composition/dcomp-preview.h
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2025-12-02 16:39:36 -0800
committer3gg <3gg@shellblade.net>2025-12-02 16:39:36 -0800
commit6c8ae19be66cee247980a48e736a4e05d14de179 (patch)
treed860767907bf0cbe17ec66422e11bea700cf56d9 /contrib/DirectX-Headers-1.618.2/include/composition/dcomp-preview.h
parent8f594c8ebd11f0e5f8a0c6369c3fe7383d250cbe (diff)
Immediate-mode renderer, triangle demo, shader compilation in cmake, Agility SDKHEADmain
Diffstat (limited to 'contrib/DirectX-Headers-1.618.2/include/composition/dcomp-preview.h')
-rw-r--r--contrib/DirectX-Headers-1.618.2/include/composition/dcomp-preview.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/contrib/DirectX-Headers-1.618.2/include/composition/dcomp-preview.h b/contrib/DirectX-Headers-1.618.2/include/composition/dcomp-preview.h
new file mode 100644
index 0000000..303567a
--- /dev/null
+++ b/contrib/DirectX-Headers-1.618.2/include/composition/dcomp-preview.h
@@ -0,0 +1,85 @@
1/*-------------------------------------------------------------------------------------
2 *
3 * Copyright (c) Microsoft Corporation
4 * Licensed under the MIT license
5 *
6 * dcomp-preview.h - Preview versions of upcoming DirectComposition interfaces.
7 *
8 * This file provides preview versions of DirectComposition interfaces that may eventually
9 * be integrated into the official dcomp.h header of the Windows SDK. The inclusion of an
10 * interface in this file does not guarantee its future adoption. However, if an interface is
11 * adopted exactly as defined here, the official definition—including its GUID—will be identical
12 * to the preview version.
13 *
14 * If any modifications are made to an interface prior to its official release, the GUID will be
15 * updated accordingly. This guarantees that a QueryInterface (QI) call for a PREVIEW_ interface
16 * is safe: a QI will only succeed if the GUID matches, and will gracefully fail if the official
17 * version differs.
18 *
19 * Developers can transition to the official interfaces by removing the "PREVIEW_" prefix, provided
20 * that the GUIDs remain the same. Note that some PREVIEW_ interfaces may eventually be deprecated
21 * and removed from this file. For a smooth migration, it is recommended to adopt the official
22 * interfaces as soon as they become available in the Windows SDK. The preview interfaces will
23 * remain available long enough to support this transition.
24 *
25 * Always query for these interfaces using QueryInterface and validate the results, rather than
26 * assuming that the target Windows system supports the required features.
27 *
28 *-------------------------------------------------------------------------------------*/
29#pragma once
30
31#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
32
33//+-----------------------------------------------------------------------------
34//
35// Interface:
36// PREVIEW_IDCompositionDynamicTexture
37//
38// Synopsis:
39// An interface representing a dynamically changing texture that can be
40// bound to a dcomp visual as content.
41//
42//------------------------------------------------------------------------------
43#undef INTERFACE
44#define INTERFACE PREVIEW_IDCompositionDynamicTexture
45DECLARE_INTERFACE_IID_(PREVIEW_IDCompositionDynamicTexture, IUnknown, "A1DE1D3F-6405-447F-8E95-1383A34B0277")
46{
47 // Set the current texture, assuming that every pixel has changed.
48 STDMETHOD(SetTexture)(THIS_
49 _In_ IDCompositionTexture* pTexture) PURE;
50
51 // Set the current texture, assuming that only the pixels within the specified dirty rects
52 // have changed.
53 //
54 // DWM will use these dirty rects to optimize redrawing the texture on the screen.
55 // However, it does not verify the accuracy of the provided rects, so the caller must ensure
56 // that every changed pixel is covered by at least one rect. There are no guarantees regarding
57 // the redrawing of pixels outside the specified dirty rects; DWM may choose to redraw
58 // additional areas if necessary.
59 //
60 // If the provided array is empty or if the dirty rects are empty, this method treats the
61 // texture as unchanged, allowing DWM to skip redrawing.
62 STDMETHOD(SetTexture)(THIS_
63 _In_ IDCompositionTexture* pTexture,
64 _In_count_(rectCount) const D2D_RECT_L *pRects,
65 _In_ size_t rectCount) PURE;
66};
67
68//+-----------------------------------------------------------------------------
69//
70// Interface:
71// PREVIEW_IDCompositionDevice5
72//
73// Synopsis:
74// Serves as the root factory for composition dynamic textures
75//
76//------------------------------------------------------------------------------
77#undef INTERFACE
78#define INTERFACE PREVIEW_IDCompositionDevice5
79DECLARE_INTERFACE_IID_(PREVIEW_IDCompositionDevice5, IDCompositionDevice4, "2C6BEBFE-A603-472F-AF34-D2443356E61B")
80{
81 STDMETHOD(CreateDynamicTexture)(THIS_
82 _Outptr_ PREVIEW_IDCompositionDynamicTexture** compositionDynamicTexture) PURE;
83};
84
85#endif // #if (NTDDI_VERSION >= NTDDI_WIN11_GE)