HoviTron Video Pipeline
RVSVulkan
RVSVulkan
SourcesVulkan
BuffersControllerAbstract.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
#pragma once
16
/*****************************************************************/
22
#include "
commonVulkan.h
"
23
#include "InputProvider.h"
24
25
class
VulkanContext
;
26
class
VulkanPipelineAbstract;
27
class
VulkanRenderPass
;
28
29
36
class
BuffersController
{
37
38
public
:
39
41
virtual
void
init
() = 0;
43
virtual
void
cleanUp
()= 0;
45
virtual
void
bindBuffers
(vk::CommandBuffer& commandBuffer,
int
index,
InputProvider::StreamFrameInfo
& frameInfos,
int
view) = 0;
47
virtual
void
updateAllUniformBuffer
(uint32_t currentImage,
int
view) = 0;
49
virtual
void
updateUniformBuffer
(uint32_t currentImage,
int
view) = 0;
51
virtual
void
update
(std::span<InputProvider::StreamFrameInfo> infos,
int
inputView
) = 0;
52
54
virtual
vk::VertexInputBindingDescription
getBindingDescription
() = 0;
56
virtual
std::vector<vk::VertexInputAttributeDescription>
getAttributeDescription
() = 0;
58
virtual
uint32_t
getIndiceCount
() = 0;
59
protected
:
61
int
inputView
= 0;
63
virtual
void
createVertexBuffer
() = 0;
65
virtual
void
createIndexBuffer
() = 0;
67
virtual
void
createUniformBuffer
(
int
size) = 0;
69
virtual
void
createDescriptorPool
()= 0;
71
virtual
void
createDescriptorSets
()= 0;
72
74
void
copyBuffer
(vk::Buffer srcBuffer, vk::Buffer dstBuffer, vk::DeviceSize size);
75
77
VulkanContext
*
context
=
nullptr
;
79
VulkanRenderPass
*
renderpass
=
nullptr
;
80
81
82
};
BuffersController
abstract class for the management of the buffers, descriptors, ...
Definition:
BuffersControllerAbstract.h:36
BuffersController::createDescriptorPool
virtual void createDescriptorPool()=0
BuffersController::getIndiceCount
virtual uint32_t getIndiceCount()=0
BuffersController::init
virtual void init()=0
BuffersController::cleanUp
virtual void cleanUp()=0
BuffersController::context
VulkanContext * context
Definition:
BuffersControllerAbstract.h:77
BuffersController::inputView
int inputView
Definition:
BuffersControllerAbstract.h:61
BuffersController::bindBuffers
virtual void bindBuffers(vk::CommandBuffer &commandBuffer, int index, InputProvider::StreamFrameInfo &frameInfos, int view)=0
BuffersController::copyBuffer
void copyBuffer(vk::Buffer srcBuffer, vk::Buffer dstBuffer, vk::DeviceSize size)
Definition:
BuffersControllerAbstract.cpp:24
BuffersController::createDescriptorSets
virtual void createDescriptorSets()=0
BuffersController::createVertexBuffer
virtual void createVertexBuffer()=0
BuffersController::createIndexBuffer
virtual void createIndexBuffer()=0
BuffersController::getBindingDescription
virtual vk::VertexInputBindingDescription getBindingDescription()=0
BuffersController::createUniformBuffer
virtual void createUniformBuffer(int size)=0
BuffersController::update
virtual void update(std::span< InputProvider::StreamFrameInfo > infos, int inputView)=0
BuffersController::updateAllUniformBuffer
virtual void updateAllUniformBuffer(uint32_t currentImage, int view)=0
BuffersController::updateUniformBuffer
virtual void updateUniformBuffer(uint32_t currentImage, int view)=0
BuffersController::getAttributeDescription
virtual std::vector< vk::VertexInputAttributeDescription > getAttributeDescription()=0
BuffersController::renderpass
VulkanRenderPass * renderpass
Definition:
BuffersControllerAbstract.h:79
VulkanContext
class that manages tasks related to Vulkan context (Vulkan Instance, Vulkan Physical device,...
Definition:
VulkanContext.h:59
VulkanRenderPass
Class that manage the renderPass containing the synthesis and blending steps.
Definition:
VulkanRenderPass.h:41
commonVulkan.h
file that contains the common include for the Vulkan part
InputProvider::StreamFrameInfo
Definition:
InputProvider.h:93
Generated by
1.9.6