diff --git a/src/Nazara/Renderer/Texture.cpp b/src/Nazara/Renderer/Texture.cpp index 4b645481f..15135ae0b 100644 --- a/src/Nazara/Renderer/Texture.cpp +++ b/src/Nazara/Renderer/Texture.cpp @@ -57,54 +57,81 @@ namespace Nz std::shared_ptr Texture::LoadFromFile(const std::filesystem::path& filePath, const TextureParams& params) { std::shared_ptr image = Image::LoadFromFile(filePath, params); + if (!image) + return {}; + return CreateFromImage(*image, params); } std::shared_ptr Texture::LoadFromMemory(const void* data, std::size_t size, const TextureParams& params) { std::shared_ptr image = Image::LoadFromMemory(data, size, params); + if (!image) + return {}; + return CreateFromImage(*image, params); } std::shared_ptr Texture::LoadFromStream(Stream& stream, const TextureParams& params) { std::shared_ptr image = Image::LoadFromStream(stream, params); + if (!image) + return {}; + return CreateFromImage(*image, params); } std::shared_ptr Texture::LoadArrayFromFile(const std::filesystem::path& filePath, const TextureParams& textureParams, const Vector2ui& atlasSize) { std::shared_ptr image = Image::LoadArrayFromFile(filePath, textureParams, atlasSize); + if (!image) + return {}; + return CreateFromImage(*image, textureParams); } std::shared_ptr Texture::LoadArrayFromMemory(const void* data, std::size_t size, const TextureParams& textureParams, const Vector2ui& atlasSize) { std::shared_ptr image = Image::LoadArrayFromMemory(data, size, textureParams, atlasSize); + if (!image) + return {}; + return CreateFromImage(*image, textureParams); } std::shared_ptr Texture::LoadArrayFromStream(Stream& stream, const TextureParams& textureParams, const Vector2ui& atlasSize) { std::shared_ptr image = Image::LoadArrayFromStream(stream, textureParams, atlasSize); + if (!image) + return {}; + return CreateFromImage(*image, textureParams); } std::shared_ptr Texture::LoadCubemapFromFile(const std::filesystem::path& filePath, const TextureParams& textureParams, const CubemapParams& cubemapParams) { std::shared_ptr image = Image::LoadCubemapFromFile(filePath, textureParams, cubemapParams); + if (!image) + return {}; + return CreateFromImage(*image, textureParams); } std::shared_ptr Texture::LoadCubemapFromMemory(const void* data, std::size_t size, const TextureParams& textureParams, const CubemapParams& cubemapParams) { std::shared_ptr image = Image::LoadCubemapFromMemory(data, size, textureParams, cubemapParams); + if (!image) + return {}; + return CreateFromImage(*image, textureParams); } std::shared_ptr Texture::LoadCubemapFromStream(Stream& stream, const TextureParams& textureParams, const CubemapParams& cubemapParams) { std::shared_ptr image = Image::LoadCubemapFromStream(stream, textureParams, cubemapParams); + if (!image) + return {}; + return CreateFromImage(*image, textureParams); } }