#ifndef PKE_ENTITIES_HPP #define PKE_ENTITIES_HPP #include "vendor/cgltf-include.hpp" #include "vendor/stb_image_include.hpp" #include "ecs.hpp" #include "components.hpp" #include "asset-manager.hpp" #include "memory.hpp" #include "window.hpp" #include struct EntityType { const char *modelsDir = nullptr; const char *modelFile = nullptr; const char *entityTypeCode = nullptr; EntityHandle entityHandle = EntityHandle_MAX; GrBindsHandle grBindsHandle = GrBindsHandle_MAX; VkDeviceMemory deviceMemoryVert = VK_NULL_HANDLE; VkDeviceMemory deviceMemoryInst = VK_NULL_HANDLE; VkDeviceMemory deviceMemoryTexture = VK_NULL_HANDLE; VkImage textureImage = VK_NULL_HANDLE; VkImageView textureImageView = VK_NULL_HANDLE; VkDescriptorPool vkDescriptorPool = VK_NULL_HANDLE; uint32_t startingInstanceCount = 1024; struct Importer_GLTF { int16_t AccessorIndexVertex = -1; int16_t AccessorIndexNormal = -1; int16_t AccessorIndexUV = -1; int16_t AccessorIndexIndex = -1; } Importer_GLTF; }; extern DynArray GlobalEntityTypes; void EntityType_Init(); int64_t EntityType_FindByTypeCode(const char *typeCode); void EntityType_Load(EntityType &et); void EntityType_Teardown(); #endif /* PKE_ENTITIES_HPP */