Preparing for Writeup

This commit is contained in:
2021-10-15 23:12:29 +02:00
parent 2cb70d7b16
commit b1d8ef4120
40 changed files with 284 additions and 192 deletions
+5
View File
@@ -124,6 +124,11 @@ void AssetRegistry::registerMesh(PMeshAsset mesh)
}
}
void AssetRegistry::registerTexture(PTextureAsset texture)
{
textures[texture->getFileName()] = texture;
}
void AssetRegistry::registerMaterial(PMaterialAsset material)
{
materials[material->getFileName()] = material;
+5 -3
View File
@@ -86,8 +86,8 @@ void MeshLoader::loadMaterials(const aiScene* scene, Array<PMaterialAsset>& glob
outMatFile << std::setw(4) << matCode;
outMatFile.flush();
outMatFile.close();
//TODO: let the material loader handle this instead
//std::cout << matCode << std::endl;
std::cout << "writing json to " << outMatFilename << std::endl;
PMaterial result = new Material(outMatFilename);
result->compile();
graphics->getShaderCompiler()->registerMaterial(result);
@@ -225,12 +225,13 @@ void MeshLoader::loadTextures(const aiScene* scene, const std::filesystem::path&
stbi_write_png(texPngPath.string().c_str(), tex->mWidth, tex->mHeight, 4, tex->pcData, tex->mWidth * 32);
delete texData;
}
std::cout << "Loading model texture " << texPngPath.string() << std::endl;
AssetRegistry::importFile(texPngPath.string());
}
}
void MeshLoader::import(PMeshAsset meshAsset, const std::filesystem::path &path)
{
std::cout << "Starting to import "<<path << std::endl;
meshAsset->setStatus(Asset::Status::Loading);
Assimp::Importer importer;
importer.ReadFile(path.string().c_str(),
@@ -262,4 +263,5 @@ void MeshLoader::import(PMeshAsset meshAsset, const std::filesystem::path &path)
}
meshAsset->setStatus(Asset::Status::Ready);
meshAsset->save();
std::cout << "Finished loading " << path << std::endl;
}
+2 -1
View File
@@ -33,7 +33,8 @@ void TextureAsset::load()
{
setStatus(Status::Loading);
ktxTexture2* kTexture;
KTX_error_code result = ktxTexture2_CreateFromNamedFile(getFullPath().c_str(),
// TODO: consider return
ktxTexture2_CreateFromNamedFile(getFullPath().c_str(),
KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT,
&kTexture);
TextureCreateInfo createInfo;
+5 -5
View File
@@ -28,7 +28,8 @@ void TextureLoader::importAsset(const std::filesystem::path& filePath)
PTextureAsset asset = new TextureAsset(assetFileName.replace_extension("asset").filename().generic_string());
asset->setStatus(Asset::Status::Loading);
asset->setTexture(placeholderAsset->getTexture());
AssetRegistry::get().textures[asset->getFileName()] = asset;
std::cout << "Loading texture " << asset->getFileName() << std::endl;
AssetRegistry::get().registerTexture(asset);
futures.add(std::async(std::launch::async, [this, filePath, asset] () mutable {
using namespace std::chrono_literals;
//std::this_thread::sleep_for(5s);
@@ -49,7 +50,6 @@ void TextureLoader::import(const std::filesystem::path& path, PTextureAsset text
unsigned char* data = stbi_load(path.string().c_str(), &x, &y, &n, 4);
ktxTexture2* kTexture;
ktxTextureCreateInfo createInfo;
KTX_error_code result;
createInfo.vkFormat = VK_FORMAT_R8G8B8A8_SRGB;
createInfo.baseWidth = x;
@@ -62,15 +62,15 @@ void TextureLoader::import(const std::filesystem::path& path, PTextureAsset text
createInfo.isArray = false;
createInfo.generateMipmaps = true;
result = ktxTexture2_Create(&createInfo,
ktxTexture2_Create(&createInfo,
KTX_TEXTURE_CREATE_ALLOC_STORAGE,
&kTexture);
result = ktxTexture_SetImageFromMemory(ktxTexture(kTexture),
ktxTexture_SetImageFromMemory(ktxTexture(kTexture),
0, 0, 0, data, x * y * 4 * sizeof(unsigned char));
stbi_image_free(data);
result = ktxTexture_WriteToNamedFile(ktxTexture(kTexture), textureAsset->getFullPath().c_str());
ktxTexture_WriteToNamedFile(ktxTexture(kTexture), textureAsset->getFullPath().c_str());
ktxTexture_Destroy(ktxTexture(kTexture));
}