Graphics v0.0.0
A simple abstraction layer for the modern graphics APIs.
载入中...
搜索中...
未找到
VKCommandBuffer.h
1// Copyright 2022 ShenMian
2// License(Apache-2.0)
3
4#pragma once
5
6#include "../CommandBuffer.h"
7#include <vector>
8#include <vulkan/vulkan.h>
9
11{
12public:
14 virtual ~VKCommandBuffer();
15
16 void begin() override;
17 void end() override;
18
19 void begin_render_pass() override;
20 void end_render_pass() override;
21
22 void set_viewport(const Viewport& viewport) override;
23
24 void set_pipeline(std::shared_ptr<Pipeline> pipeline) override;
25
26 void set_vertex_buffer(std::shared_ptr<VertexBuffer> vertex_buffer) override;
27 void set_index_buffer(std::shared_ptr<IndexBuffer> index_buffer) override;
28 void set_texture(std::shared_ptr<Texture> texture, unsigned int slot) override;
29
30 void clear(uint8_t flags) override;
31 void set_clear_color(const Vector4& color) override;
32 void set_clear_depth(float depth) override;
33 void set_clear_stencil(uint32_t value) override;
34
35 void draw(uint32_t vertex_count, uint32_t first_vertex) override;
36 void draw_indexed(uint32_t index_count, uint32_t first_index) override;
37
38 operator VkCommandBuffer() const;
39
40private:
41 std::vector<VkCommandBuffer> handles_;
42 size_t index_ = 0;
43
44 VkClearColorValue clear_color_ = {};
45};
命令缓冲区.
Definition: CommandBuffer.h:31
Definition: VKCommandBuffer.h:11
void set_clear_color(const Vector4 &color) override
设置清空颜色缓冲区的默认值.
Definition: VKCommandBuffer.cpp:130
void end() override
结束记录命令.
Definition: VKCommandBuffer.cpp:44
void set_clear_stencil(uint32_t value) override
设置清空模板缓冲区的默认值.
Definition: VKCommandBuffer.cpp:142
void begin() override
开始记录命令.
Definition: VKCommandBuffer.cpp:36
void set_clear_depth(float depth) override
设置清空深度缓冲区的默认值.
Definition: VKCommandBuffer.cpp:138
void clear(uint8_t flags) override
清空缓冲区.
Definition: VKCommandBuffer.cpp:116
视口.
Definition: Viewport.hpp:12