VulkanEngine 0.1
Graphics engine using Vulkan
Loading...
Searching...
No Matches
GraphicsPipeline.h
1// Copyright (c) 2024 Michael Carlie. All Rights Reserved.
2//
3// This software is released under the MIT License.
4// https://opensource.org/licenses/MIT
5
6#ifndef INCLUDE_VULKANENGINE_GRAPHICSPIPELINE_H_
7#define INCLUDE_VULKANENGINE_GRAPHICSPIPELINE_H_
8
9#include <memory>
10#include <vulkan/vulkan.hpp>
11
12namespace VulkanEngine {
13
14class Shader;
15class MeshBase;
16
20 public:
23
26
28 void bindPipeline();
29
38 void setViewPort(float x, float y, float width, float height, float min_depth,
39 float max_depth);
40
46 void setScissor(int32_t offset_x, int32_t offset_y, int32_t width,
47 int32_t height);
48
52 void createGraphicsPipeline(const std::shared_ptr<MeshBase> mesh,
53 const std::shared_ptr<Shader> shader);
54
55 private:
57 vk::Pipeline vk_graphics_pipeline;
58
60 vk::Viewport vk_viewport;
61
63 vk::Rect2D vk_scissor;
64};
65
66} // namespace VulkanEngine
67
68#endif // INCLUDE_VULKANENGINE_GRAPHICSPIPELINE_H_
Definition: GraphicsPipeline.h:19
void bindPipeline()
Bind the graphics pipeline to the current command buffer.
Definition: GraphicsPipeline.cpp:39
void setViewPort(float x, float y, float width, float height, float min_depth, float max_depth)
Definition: GraphicsPipeline.cpp:47
void setScissor(int32_t offset_x, int32_t offset_y, int32_t width, int32_t height)
Definition: GraphicsPipeline.cpp:59
GraphicsPipeline()
Contructor.
Definition: GraphicsPipeline.cpp:29
void createGraphicsPipeline(const std::shared_ptr< MeshBase > mesh, const std::shared_ptr< Shader > shader)
Definition: GraphicsPipeline.cpp:67
~GraphicsPipeline()
Destructor.
Definition: GraphicsPipeline.cpp:31
TODO development of this class is in progress.
Definition: Attribute.h:13