| /* |
| * Copyright 2026 Google LLC |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| #ifndef GrD3DBackendSurface_DEFINED |
| #define GrD3DBackendSurface_DEFINED |
| |
| #include "include/private/SkAPI.h" |
| #include "include/private/gpu/ganesh/GrD3DTypesMinimal.h" |
| |
| #include <string_view> |
| |
| class GrBackendFormat; |
| class GrBackendTexture; |
| class GrBackendRenderTarget; |
| |
| namespace GrBackendFormats { |
| |
| SK_API GrBackendFormat MakeD3D(DXGI_FORMAT); |
| SK_API DXGI_FORMAT AsDxgiFormat(const GrBackendFormat&); |
| |
| } // namespace GrBackendFormats |
| |
| namespace GrBackendTextures { |
| |
| SK_API GrBackendTexture MakeD3D(int width, |
| int height, |
| const GrD3DTextureResourceInfo& d3dInfo, |
| std::string_view label = {}); |
| |
| // Return a snapshot of the GrD3DTextureResourceInfo struct. |
| // This snapshot will set the fResourceState to the current resource state. |
| SK_API GrD3DTextureResourceInfo GetD3DTextureResourceInfo(const GrBackendTexture&); |
| |
| // Anytime the client changes the D3D12_RESOURCE_STATES of the D3D12_RESOURCE captured by this |
| // GrBackendTexture, they must call this function to notify Skia of the changed layout. |
| SK_API void SetD3DResourceState(GrBackendTexture*, GrD3DResourceStateEnum); |
| |
| } // namespace GrBackendTextures |
| |
| namespace GrBackendRenderTargets { |
| |
| SK_API GrBackendRenderTarget MakeD3D(int width, |
| int height, |
| const GrD3DTextureResourceInfo& d3dInfo); |
| |
| // Return a snapshot of the GrD3DTextureResourceInfo struct. |
| // This snapshot will set the fResourceState to the current resource state. |
| SK_API GrD3DTextureResourceInfo GetD3DTextureResourceInfo(const GrBackendRenderTarget&); |
| |
| // Anytime the client changes the D3D12_RESOURCE_STATES of the D3D12_RESOURCE captured by this |
| // GrBackendRenderTarget, they must call this function to notify Skia of the changed layout. |
| SK_API void SetD3DResourceState(GrBackendRenderTarget*, GrD3DResourceStateEnum); |
| |
| } // namespace GrBackendRenderTargets |
| |
| #endif |