#pragma once #include #include "cve_device.hpp" #define GLM_FORCE_RADIANS #define GLM_FORCE_DEPTH_ZERO_TO_ONE #include namespace cve { class CveModel { public: struct Vertex { glm::vec2 position; glm::vec3 color; static std::vector getBindingDescriptions(); static std::vector getAttributeDescriptions(); }; CveModel(CveDevice &device, const std::vector &verticies); ~CveModel(); CveModel(const CveModel &) = delete; CveModel &operator=(const CveModel &) = delete; void bind(VkCommandBuffer commandBuffer); void draw(VkCommandBuffer commandBuffer); private: void createVertexBuffers(const std::vector &verticies); CveDevice &cveDevice; VkBuffer vertexBuffer; VkDeviceMemory vertexBufferMemory; uint32_t vertexCount; }; }