blob: dea25a15a3ba5ab86245f7c0b4e11d1dce7cefb0 [file] [log] [blame]
/*
* Copyright 2022 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "include/gpu/graphite/vk/VulkanGraphiteUtils.h"
#include "include/gpu/graphite/Context.h"
#include "include/gpu/vk/VulkanBackendContext.h"
#include "src/gpu/graphite/ContextPriv.h"
#include "src/gpu/graphite/vk/VulkanQueueManager.h"
#include "src/gpu/graphite/vk/VulkanSharedContext.h"
namespace skgpu::graphite::ContextFactory {
std::unique_ptr<Context> MakeVulkan(const VulkanBackendContext& backendContext,
const ContextOptions& options) {
sk_sp<SharedContext> sharedContext = VulkanSharedContext::Make(backendContext, options);
if (!sharedContext) {
return nullptr;
}
std::unique_ptr<QueueManager> queueManager(new VulkanQueueManager(backendContext.fQueue,
sharedContext.get()));
if (!queueManager) {
return nullptr;
}
return ContextCtorAccessor::MakeContext(std::move(sharedContext),
std::move(queueManager),
options);
}
} // namespace skgpu::graphite::ContextFactory