1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2021 Google LLC 3cb93a386Sopenharmony_ci * 4cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be 5cb93a386Sopenharmony_ci * found in the LICENSE file. 6cb93a386Sopenharmony_ci */ 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ci#include "include/gpu/GrSurfaceInfo.h" 9cb93a386Sopenharmony_ci 10cb93a386Sopenharmony_ci#ifdef SK_DIRECT3D 11cb93a386Sopenharmony_ci#include "include/gpu/d3d/GrD3DTypes.h" 12cb93a386Sopenharmony_ci#endif 13cb93a386Sopenharmony_ci 14cb93a386Sopenharmony_ci#ifdef SK_DIRECT3D 15cb93a386Sopenharmony_ciGrSurfaceInfo::GrSurfaceInfo(const GrD3DSurfaceInfo& d3dInfo) 16cb93a386Sopenharmony_ci : fBackend(GrBackendApi::kDirect3D) 17cb93a386Sopenharmony_ci , fValid(true) 18cb93a386Sopenharmony_ci , fSampleCount(d3dInfo.fSampleCount) 19cb93a386Sopenharmony_ci , fLevelCount(d3dInfo.fLevelCount) 20cb93a386Sopenharmony_ci , fProtected(d3dInfo.fProtected) 21cb93a386Sopenharmony_ci , fD3DSpec(d3dInfo) {} 22cb93a386Sopenharmony_ci#endif 23cb93a386Sopenharmony_ci 24cb93a386Sopenharmony_ciGrSurfaceInfo::~GrSurfaceInfo() { 25cb93a386Sopenharmony_ci#ifdef SK_DIRECT3D 26cb93a386Sopenharmony_ci if (this->isValid() && fBackend == GrBackendApi::kDirect3D) { 27cb93a386Sopenharmony_ci fD3DSpec.cleanup(); 28cb93a386Sopenharmony_ci } 29cb93a386Sopenharmony_ci#endif 30cb93a386Sopenharmony_ci} 31cb93a386Sopenharmony_ci 32cb93a386Sopenharmony_ci#ifdef SK_DIRECT3D 33cb93a386Sopenharmony_cibool GrSurfaceInfo::getD3DSurfaceInfo(GrD3DSurfaceInfo* outSpec) const { 34cb93a386Sopenharmony_ci if (!this->isValid() || fBackend != GrBackendApi::kDirect3D) { 35cb93a386Sopenharmony_ci return false; 36cb93a386Sopenharmony_ci } 37cb93a386Sopenharmony_ci *outSpec = fD3DSpec.getSurfaceInfo(fSampleCount, fLevelCount, fProtected); 38cb93a386Sopenharmony_ci return true; 39cb93a386Sopenharmony_ci} 40cb93a386Sopenharmony_ci#endif 41