1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2023 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 #include "include/gpu/ganesh/vk/GrVkDirectContext.h" 9*c8dee2aaSAndroid Build Coastguard Worker 10*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/GrContextOptions.h" 11*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/GrContextThreadSafeProxy.h" 12*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/GrDirectContext.h" 13*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/GrTypes.h" 14*c8dee2aaSAndroid Build Coastguard Worker #include "src/gpu/ganesh/GrDirectContextPriv.h" 15*c8dee2aaSAndroid Build Coastguard Worker #include "src/gpu/ganesh/vk/GrVkContextThreadSafeProxy.h" 16*c8dee2aaSAndroid Build Coastguard Worker #include "src/gpu/ganesh/vk/GrVkGpu.h" 17*c8dee2aaSAndroid Build Coastguard Worker 18*c8dee2aaSAndroid Build Coastguard Worker namespace GrDirectContexts { MakeVulkan(const skgpu::VulkanBackendContext & backendContext)19*c8dee2aaSAndroid Build Coastguard Workersk_sp<GrDirectContext> MakeVulkan(const skgpu::VulkanBackendContext& backendContext) { 20*c8dee2aaSAndroid Build Coastguard Worker GrContextOptions defaultOptions; 21*c8dee2aaSAndroid Build Coastguard Worker return MakeVulkan(backendContext, defaultOptions); 22*c8dee2aaSAndroid Build Coastguard Worker } 23*c8dee2aaSAndroid Build Coastguard Worker MakeVulkan(const skgpu::VulkanBackendContext & backendContext,const GrContextOptions & options)24*c8dee2aaSAndroid Build Coastguard Workersk_sp<GrDirectContext> MakeVulkan(const skgpu::VulkanBackendContext& backendContext, 25*c8dee2aaSAndroid Build Coastguard Worker const GrContextOptions& options) { 26*c8dee2aaSAndroid Build Coastguard Worker auto direct = GrDirectContextPriv::Make( 27*c8dee2aaSAndroid Build Coastguard Worker GrBackendApi::kVulkan, options, sk_make_sp<GrVkContextThreadSafeProxy>(options)); 28*c8dee2aaSAndroid Build Coastguard Worker 29*c8dee2aaSAndroid Build Coastguard Worker GrDirectContextPriv::SetGpu(direct, 30*c8dee2aaSAndroid Build Coastguard Worker GrVkGpu::Make(backendContext, options, direct.get())); 31*c8dee2aaSAndroid Build Coastguard Worker if (!GrDirectContextPriv::Init(direct)) { 32*c8dee2aaSAndroid Build Coastguard Worker return nullptr; 33*c8dee2aaSAndroid Build Coastguard Worker } 34*c8dee2aaSAndroid Build Coastguard Worker 35*c8dee2aaSAndroid Build Coastguard Worker return direct; 36*c8dee2aaSAndroid Build Coastguard Worker } 37*c8dee2aaSAndroid Build Coastguard Worker } // namespace GrDirectContexts 38