// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "flutter/vulkan/vulkan_provider.h"

namespace vulkan {

vulkan::VulkanHandle<VkFence> VulkanProvider::CreateFence() {
  const VkFenceCreateInfo create_info = {
      .sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
      .pNext = nullptr,
      .flags = 0,
  };
  VkFence fence;
  if (VK_CALL_LOG_ERROR(vk().CreateFence(vk_device(), &create_info, nullptr,
                                         &fence)) != VK_SUCCESS)
    return vulkan::VulkanHandle<VkFence>();

  return {fence, [this](VkFence fence) {
            vk().DestroyFence(vk_device(), fence, nullptr);
          }};
}

}  // namespace vulkan
