diff options
| author | 3gg <3gg@shellblade.net> | 2025-12-02 16:39:36 -0800 |
|---|---|---|
| committer | 3gg <3gg@shellblade.net> | 2025-12-02 16:39:36 -0800 |
| commit | 6c8ae19be66cee247980a48e736a4e05d14de179 (patch) | |
| tree | d860767907bf0cbe17ec66422e11bea700cf56d9 /contrib/DirectX-Headers-1.618.2/include/composition | |
| parent | 8f594c8ebd11f0e5f8a0c6369c3fe7383d250cbe (diff) | |
Diffstat (limited to 'contrib/DirectX-Headers-1.618.2/include/composition')
| -rw-r--r-- | contrib/DirectX-Headers-1.618.2/include/composition/dcomp-preview.h | 85 |
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 | ||
| 45 | DECLARE_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 | ||
| 79 | DECLARE_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) | ||
