blob: b5b340291705129c31e045b980ccfb48a71eb73e [file]
/*
* 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