-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRenderObject.h
33 lines (26 loc) · 913 Bytes
/
RenderObject.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
#include <vector>
#define GLM_FORCE_RADIANS
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
#include <glm/glm.hpp>
#include "Vertex.h"
struct RenderObject {
std::vector<Vertex> vertices;
std::vector<uint32_t> indices;
VkBuffer vertexBuffer;
VkDeviceMemory vertexBufferMemory; // gpu memory for vertexBuffer
VkBuffer indexBuffer;
VkDeviceMemory indexBufferMemory;
std::vector<VkBuffer> uniformBuffers;
std::vector<VkDeviceMemory> uniformBuffersMemory;
VkDescriptorPool descriptorPool;
std::vector<VkDescriptorSet> descriptorSets; // specifies uniforms for rendering object (MVP and texture) / implicitly freed
VkImage textureImage; // more efficient to use image than buffer for textures
VkDeviceMemory textureImageMemory;
VkImageView textureImageView;
VkSampler textureSampler;
glm::mat4 modelMatrix;
bool shouldRender = false;
};