HoviTron Video Pipeline
RVSVulkan
RVSVulkan
SourcesVulkan
VulkanPipelineAbstract.h
Go to the documentation of this file.
1
/* ----------------------
2
* Copyright 2023 Université Libre de Bruxelles(ULB), Universidad Politécnica de Madrid(UPM), CREAL, Deutsches Zentrum für Luft - und Raumfahrt(DLR)
3
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at < http://www.apache.org/licenses/LICENSE-2.0>
7
8
* Unless required by applicable law or agreed to in writing, software
9
* distributed under the License is distributed on an "AS IS" BASIS,
10
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
* See the License for the specific language governing permissionsand
12
* limitations under the License.
13
---------------------- */
14
15
/*****************************************************************/
23
#pragma once
24
25
#include "
commonVulkan.h
"
26
27
#include"
BuffersControllerAbstract.h
"
28
#include <memory>
29
30
class
VulkanContext
;
31
class
Shader
;
32
class
VulkanRenderPass
;
33
class
VulkanWrapper
;
34
35
36
44
class
VulkanPipelineAbsract
{
45
public
:
47
virtual
void
init
() = 0;
49
virtual
void
cleanUp
() = 0;
51
void
cmdBufferBindBuffer
(vk::CommandBuffer& cmdBuffer,
int
index,
InputProvider::StreamFrameInfo
& frameInfo,
int
view);
52
54
void
updateAllBuffer
(uint32_t currentImage,
int
view);
56
void
updateBuffer
(uint32_t currentImage,
int
view);
58
virtual
void
createDescriptorSetLayout
() = 0;
60
uint32_t
getIndexNumber
();
61
63
vk::Pipeline
pipeline
;
65
vk::DescriptorSetLayout
descriptorSetLayout
;
67
vk::PipelineLayout
pipelineLayout
;
68
69
70
71
protected
:
73
VulkanContext
*
context
=
nullptr
;
75
VulkanRenderPass
*
renderPass
=
nullptr
;
77
VulkanWrapper
*
wrapper
=
nullptr
;
79
std::unique_ptr<BuffersController>
bufferController
;
80
82
int
subPass
= 0;
84
int
inputId
= 0;
86
int
colorAttachmentNb
= 0;
88
bool
depthTest
=
true
;
90
bool
depthWrite
=
true
;
91
93
virtual
void
createGraphicsPipeline
() = 0;
95
vk::ShaderModule
createShaderModule
(
const
Shader
& shader);
97
void
createPipeline
(std::vector<vk::PipelineShaderStageCreateInfo>& arr);
98
};
BuffersControllerAbstract.h
Abstract class that contains common functionnalities to manage the buffer for synthesis and blending ...
Shader
Class that represents SPIR-V shader.
Definition:
Shader.h:42
VulkanContext
class that manages tasks related to Vulkan context (Vulkan Instance, Vulkan Physical device,...
Definition:
VulkanContext.h:59
VulkanPipelineAbsract
The abstract class that encapsulate vk::Pipeline object and contains common code between the two pipe...
Definition:
VulkanPipelineAbstract.h:44
VulkanPipelineAbsract::cleanUp
virtual void cleanUp()=0
VulkanPipelineAbsract::createGraphicsPipeline
virtual void createGraphicsPipeline()=0
VulkanPipelineAbsract::depthTest
bool depthTest
Definition:
VulkanPipelineAbstract.h:88
VulkanPipelineAbsract::inputId
int inputId
Definition:
VulkanPipelineAbstract.h:84
VulkanPipelineAbsract::pipeline
vk::Pipeline pipeline
Definition:
VulkanPipelineAbstract.h:63
VulkanPipelineAbsract::bufferController
std::unique_ptr< BuffersController > bufferController
Definition:
VulkanPipelineAbstract.h:79
VulkanPipelineAbsract::updateBuffer
void updateBuffer(uint32_t currentImage, int view)
Definition:
VulkanPipelineAbstract.cpp:205
VulkanPipelineAbsract::init
virtual void init()=0
VulkanPipelineAbsract::createDescriptorSetLayout
virtual void createDescriptorSetLayout()=0
VulkanPipelineAbsract::createPipeline
void createPipeline(std::vector< vk::PipelineShaderStageCreateInfo > &arr)
Definition:
VulkanPipelineAbstract.cpp:34
VulkanPipelineAbsract::subPass
int subPass
Definition:
VulkanPipelineAbstract.h:82
VulkanPipelineAbsract::renderPass
VulkanRenderPass * renderPass
Definition:
VulkanPipelineAbstract.h:75
VulkanPipelineAbsract::colorAttachmentNb
int colorAttachmentNb
Definition:
VulkanPipelineAbstract.h:86
VulkanPipelineAbsract::createShaderModule
vk::ShaderModule createShaderModule(const Shader &shader)
Definition:
VulkanPipelineAbstract.cpp:22
VulkanPipelineAbsract::wrapper
VulkanWrapper * wrapper
Definition:
VulkanPipelineAbstract.h:77
VulkanPipelineAbsract::getIndexNumber
uint32_t getIndexNumber()
Definition:
VulkanPipelineAbstract.cpp:188
VulkanPipelineAbsract::depthWrite
bool depthWrite
Definition:
VulkanPipelineAbstract.h:90
VulkanPipelineAbsract::context
VulkanContext * context
Definition:
VulkanPipelineAbstract.h:73
VulkanPipelineAbsract::descriptorSetLayout
vk::DescriptorSetLayout descriptorSetLayout
Definition:
VulkanPipelineAbstract.h:65
VulkanPipelineAbsract::updateAllBuffer
void updateAllBuffer(uint32_t currentImage, int view)
Definition:
VulkanPipelineAbstract.cpp:200
VulkanPipelineAbsract::cmdBufferBindBuffer
void cmdBufferBindBuffer(vk::CommandBuffer &cmdBuffer, int index, InputProvider::StreamFrameInfo &frameInfo, int view)
Definition:
VulkanPipelineAbstract.cpp:194
VulkanPipelineAbsract::pipelineLayout
vk::PipelineLayout pipelineLayout
Definition:
VulkanPipelineAbstract.h:67
VulkanRenderPass
Class that manage the renderPass containing the synthesis and blending steps.
Definition:
VulkanRenderPass.h:41
VulkanWrapper
Class that manages the classes related to Vulkan code and act as a wrapper around them.
Definition:
VulkanWrapper.h:66
commonVulkan.h
file that contains the common include for the Vulkan part
InputProvider::StreamFrameInfo
Definition:
InputProvider.h:93
Generated by
1.9.6