1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2020 Google LLC 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #ifndef TestSurface_DEFINED 9*c8dee2aaSAndroid Build Coastguard Worker #define TestSurface_DEFINED 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkColorSpace.h" 12*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkRefCnt.h" 13*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkSize.h" 14*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/GpuTypes.h" 15*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/GrTypes.h" 16*c8dee2aaSAndroid Build Coastguard Worker #include "include/private/SkColorData.h" 17*c8dee2aaSAndroid Build Coastguard Worker 18*c8dee2aaSAndroid Build Coastguard Worker class GrDirectContext; 19*c8dee2aaSAndroid Build Coastguard Worker class SkSurface; 20*c8dee2aaSAndroid Build Coastguard Worker class SkSurfaceProps; 21*c8dee2aaSAndroid Build Coastguard Worker enum SkColorType : int; 22*c8dee2aaSAndroid Build Coastguard Worker struct SkImageInfo; 23*c8dee2aaSAndroid Build Coastguard Worker 24*c8dee2aaSAndroid Build Coastguard Worker #ifdef SK_GRAPHITE 25*c8dee2aaSAndroid Build Coastguard Worker namespace skgpu::graphite { 26*c8dee2aaSAndroid Build Coastguard Worker class Recorder; 27*c8dee2aaSAndroid Build Coastguard Worker } 28*c8dee2aaSAndroid Build Coastguard Worker #endif 29*c8dee2aaSAndroid Build Coastguard Worker 30*c8dee2aaSAndroid Build Coastguard Worker namespace sk_gpu_test { 31*c8dee2aaSAndroid Build Coastguard Worker 32*c8dee2aaSAndroid Build Coastguard Worker sk_sp<SkSurface> MakeBackendTextureSurface(GrDirectContext*, 33*c8dee2aaSAndroid Build Coastguard Worker const SkImageInfo&, 34*c8dee2aaSAndroid Build Coastguard Worker GrSurfaceOrigin, 35*c8dee2aaSAndroid Build Coastguard Worker int sampleCnt, 36*c8dee2aaSAndroid Build Coastguard Worker skgpu::Mipmapped = skgpu::Mipmapped::kNo, 37*c8dee2aaSAndroid Build Coastguard Worker GrProtected = GrProtected::kNo, 38*c8dee2aaSAndroid Build Coastguard Worker const SkSurfaceProps* = nullptr); 39*c8dee2aaSAndroid Build Coastguard Worker 40*c8dee2aaSAndroid Build Coastguard Worker sk_sp<SkSurface> MakeBackendTextureSurface(GrDirectContext*, 41*c8dee2aaSAndroid Build Coastguard Worker SkISize, 42*c8dee2aaSAndroid Build Coastguard Worker GrSurfaceOrigin, 43*c8dee2aaSAndroid Build Coastguard Worker int sampleCnt, 44*c8dee2aaSAndroid Build Coastguard Worker SkColorType, 45*c8dee2aaSAndroid Build Coastguard Worker sk_sp<SkColorSpace> = nullptr, 46*c8dee2aaSAndroid Build Coastguard Worker skgpu::Mipmapped = skgpu::Mipmapped::kNo, 47*c8dee2aaSAndroid Build Coastguard Worker GrProtected = GrProtected::kNo, 48*c8dee2aaSAndroid Build Coastguard Worker const SkSurfaceProps* = nullptr); 49*c8dee2aaSAndroid Build Coastguard Worker 50*c8dee2aaSAndroid Build Coastguard Worker /** Creates an SkSurface backed by a non-textureable render target. */ 51*c8dee2aaSAndroid Build Coastguard Worker sk_sp<SkSurface> MakeBackendRenderTargetSurface(GrDirectContext*, 52*c8dee2aaSAndroid Build Coastguard Worker const SkImageInfo&, 53*c8dee2aaSAndroid Build Coastguard Worker GrSurfaceOrigin, 54*c8dee2aaSAndroid Build Coastguard Worker int sampleCnt, 55*c8dee2aaSAndroid Build Coastguard Worker GrProtected = GrProtected::kNo, 56*c8dee2aaSAndroid Build Coastguard Worker const SkSurfaceProps* = nullptr); 57*c8dee2aaSAndroid Build Coastguard Worker 58*c8dee2aaSAndroid Build Coastguard Worker sk_sp<SkSurface> MakeBackendRenderTargetSurface(GrDirectContext*, 59*c8dee2aaSAndroid Build Coastguard Worker SkISize, 60*c8dee2aaSAndroid Build Coastguard Worker GrSurfaceOrigin, 61*c8dee2aaSAndroid Build Coastguard Worker int sampleCnt, 62*c8dee2aaSAndroid Build Coastguard Worker SkColorType, 63*c8dee2aaSAndroid Build Coastguard Worker sk_sp<SkColorSpace> = nullptr, 64*c8dee2aaSAndroid Build Coastguard Worker GrProtected = GrProtected::kNo, 65*c8dee2aaSAndroid Build Coastguard Worker const SkSurfaceProps* = nullptr); 66*c8dee2aaSAndroid Build Coastguard Worker 67*c8dee2aaSAndroid Build Coastguard Worker #ifdef SK_GRAPHITE 68*c8dee2aaSAndroid Build Coastguard Worker /* 69*c8dee2aaSAndroid Build Coastguard Worker * Graphite version of MakeBackendTextureSurface 70*c8dee2aaSAndroid Build Coastguard Worker */ 71*c8dee2aaSAndroid Build Coastguard Worker sk_sp<SkSurface> MakeBackendTextureSurface(skgpu::graphite::Recorder*, 72*c8dee2aaSAndroid Build Coastguard Worker const SkImageInfo&, 73*c8dee2aaSAndroid Build Coastguard Worker skgpu::Mipmapped = skgpu::Mipmapped::kNo, 74*c8dee2aaSAndroid Build Coastguard Worker skgpu::Protected = skgpu::Protected::kNo, 75*c8dee2aaSAndroid Build Coastguard Worker const SkSurfaceProps* = nullptr); 76*c8dee2aaSAndroid Build Coastguard Worker 77*c8dee2aaSAndroid Build Coastguard Worker #if defined(SK_DAWN) 78*c8dee2aaSAndroid Build Coastguard Worker /* 79*c8dee2aaSAndroid Build Coastguard Worker * Variation that wraps a WGPUTextureView. Only supported on Dawn backend. 80*c8dee2aaSAndroid Build Coastguard Worker */ 81*c8dee2aaSAndroid Build Coastguard Worker sk_sp<SkSurface> MakeBackendTextureViewSurface(skgpu::graphite::Recorder*, 82*c8dee2aaSAndroid Build Coastguard Worker const SkImageInfo&, 83*c8dee2aaSAndroid Build Coastguard Worker skgpu::Mipmapped = skgpu::Mipmapped::kNo, 84*c8dee2aaSAndroid Build Coastguard Worker skgpu::Protected = skgpu::Protected::kNo, 85*c8dee2aaSAndroid Build Coastguard Worker const SkSurfaceProps* = nullptr); 86*c8dee2aaSAndroid Build Coastguard Worker #endif // SK_DAWN 87*c8dee2aaSAndroid Build Coastguard Worker 88*c8dee2aaSAndroid Build Coastguard Worker #endif // SK_GRAPHITE 89*c8dee2aaSAndroid Build Coastguard Worker 90*c8dee2aaSAndroid Build Coastguard Worker } // namespace sk_gpu_test 91*c8dee2aaSAndroid Build Coastguard Worker 92*c8dee2aaSAndroid Build Coastguard Worker #endif 93