diff options
author | Frederico Linhares <fred@linhares.blue> | 2022-11-09 16:11:15 -0300 |
---|---|---|
committer | Frederico Linhares <fred@linhares.blue> | 2022-11-09 17:19:06 -0300 |
commit | bde8c8bd073abeb314748d66d6402f951ecb2902 (patch) | |
tree | 69c91317baf62a0ad9e36d8e35969fd82a02e91d /src/vk/rectangle.hpp | |
parent | 7e9107cb1c5012fef900dfa03408e2179f1f9915 (diff) |
feat create method Rectangle#draw
Diffstat (limited to 'src/vk/rectangle.hpp')
-rw-r--r-- | src/vk/rectangle.hpp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/vk/rectangle.hpp b/src/vk/rectangle.hpp new file mode 100644 index 0000000..fc21135 --- /dev/null +++ b/src/vk/rectangle.hpp @@ -0,0 +1,66 @@ +/* + * Copyright 2022 Frederico de Oliveira Linhares + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef CANDY_GEAR_VK_RECTANGLE_H +#define CANDY_GEAR_VK_RECTANGLE_H 1 + +#include <vector> + +#include "core.hpp" +#include "destination_buffer.hpp" +#include "queue_family.hpp" +#include "uniform_buffer.hpp" + +namespace VK +{ + +struct Rectangle +{ + static const uint32_t vertex_count{4}; + + float x{0}; + float y{0}; + float width{1}; + float height{1}; + + QueueFamily *queue_family; + + std::vector<SourceBuffer> source_buffers; + std::vector<DestinationBuffer> vertex_buffers; + + std::vector<UniformBuffer> ub_rectangle; + + VkDescriptorPool descriptor_pool; + std::vector<VkDescriptorSet> descriptor_sets; + + Rectangle() = default; + Rectangle(float x, float y, float width, float height); + ~Rectangle(); + + bool + align_vertically(const Rectangle &that) const; + bool + align_horizontally(const Rectangle &that) const; + bool + collide(const Rectangle &that) const; + + void + update_vertex_buffer(); +}; + +} + +#endif /* CANDY_GEAR_VK_RECTANGLE_H */ |