#include "ui/ozone/demo/vulkan_renderer.h"
#include <vulkan/vulkan.h>
#include <memory>
#include <utility>
#include "base/functional/bind.h"
#include "base/location.h"
#include "base/logging.h"
#include "base/task/single_thread_task_runner.h"
#include "base/trace_event/trace_event.h"
#include "gpu/vulkan/init/vulkan_factory.h"
#include "gpu/vulkan/vulkan_command_buffer.h"
#include "gpu/vulkan/vulkan_command_pool.h"
#include "gpu/vulkan/vulkan_device_queue.h"
#include "gpu/vulkan/vulkan_function_pointers.h"
#include "gpu/vulkan/vulkan_implementation.h"
#include "gpu/vulkan/vulkan_surface.h"
#include "gpu/vulkan/vulkan_swap_chain.h"
#include "ui/ozone/public/platform_window_surface.h"
namespace ui {
namespace {
VkPipelineStageFlags GetPipelineStageFlags(const VkImageLayout layout) { … }
VkAccessFlags GetAccessMask(const VkImageLayout layout) { … }
}
VulkanRenderer::VulkanRenderer(
std::unique_ptr<PlatformWindowSurface> window_surface,
std::unique_ptr<gpu::VulkanSurface> vulkan_surface,
gpu::VulkanImplementation* vulkan_implementation,
gfx::AcceleratedWidget widget,
const gfx::Size& size)
: … { … }
VulkanRenderer::~VulkanRenderer() { … }
bool VulkanRenderer::Initialize() { … }
void VulkanRenderer::DestroyRenderPass() { … }
void VulkanRenderer::DestroyFramebuffers() { … }
void VulkanRenderer::RecreateFramebuffers() { … }
void VulkanRenderer::RenderFrame() { … }
void VulkanRenderer::PostRenderFrameTask() { … }
VulkanRenderer::Framebuffer::Framebuffer(
VkImageView vk_image_view,
VkFramebuffer vk_framebuffer,
std::unique_ptr<gpu::VulkanCommandBuffer> command_buffer)
: … { … }
VulkanRenderer::Framebuffer::~Framebuffer() { … }
std::unique_ptr<VulkanRenderer::Framebuffer>
VulkanRenderer::Framebuffer::Create(gpu::VulkanDeviceQueue* vulkan_device_queue,
gpu::VulkanCommandPool* vulkan_command_pool,
VkRenderPass vk_render_pass,
gpu::VulkanSurface* vulkan_surface,
VkImage image) { … }
}