blob: b24a7acf67a6cc645e652e41a45ed729496407a2 [file] [log] [blame]
// Copyright 2013 The Flutter 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 "impeller/renderer/backend/vulkan/pipeline_vk.h"
namespace impeller {
PipelineCreateInfoVK::PipelineCreateInfoVK(
vk::UniquePipeline pipeline,
vk::UniqueRenderPass render_pass,
vk::UniquePipelineLayout layout,
vk::UniqueDescriptorSetLayout descriptor_set_layout)
: pipeline_(std::move(pipeline)),
render_pass_(std::move(render_pass)),
pipeline_layout_(std::move(layout)),
descriptor_set_layout_(std::move(descriptor_set_layout)) {
is_valid_ =
pipeline_ && render_pass_ && pipeline_layout_ && descriptor_set_layout_;
}
bool PipelineCreateInfoVK::IsValid() const {
return is_valid_;
}
vk::Pipeline PipelineCreateInfoVK::GetVKPipeline() const {
return *pipeline_;
}
vk::RenderPass PipelineCreateInfoVK::GetRenderPass() const {
return *render_pass_;
}
vk::PipelineLayout PipelineCreateInfoVK::GetPipelineLayout() const {
return *pipeline_layout_;
}
vk::DescriptorSetLayout PipelineCreateInfoVK::GetDescriptorSetLayout() const {
return *descriptor_set_layout_;
}
PipelineVK::PipelineVK(std::weak_ptr<PipelineLibrary> library,
const PipelineDescriptor& desc,
std::unique_ptr<PipelineCreateInfoVK> create_info)
: Pipeline(std::move(library), desc),
pipeline_info_(std::move(create_info)) {}
PipelineVK::~PipelineVK() = default;
bool PipelineVK::IsValid() const {
return pipeline_info_->IsValid();
}
PipelineCreateInfoVK* PipelineVK::GetCreateInfo() const {
return pipeline_info_.get();
}
} // namespace impeller