#pragma once #include #include struct AssetData {}; template concept Asset = std::derived_from; struct AssetBinary : AssetData { uint8_t* content = nullptr; size_t size = 0; AssetBinary(uint8_t* &source, const size_t &sourceSize); ~AssetBinary(); }; struct AssetVulkanShader : AssetData { uint32_t* content = nullptr; size_t size = 0; AssetVulkanShader(uint8_t* &source, const size_t &sourceSize); ~AssetVulkanShader(); }; struct AssetVulkanMaterial : AssetData { uint32_t vertexShaderAssetID; uint32_t fragmentShaderAssetID; uint32_t renderType; uint32_t renderStage; // Vertex shader params // // Fragment shader params // };