do not crash for missing images
This commit is contained in:
@@ -17,6 +17,7 @@ public:
|
||||
inline const char *getData() const { return img.get(); }
|
||||
inline uint32_t getWidth() const { return width; }
|
||||
inline uint32_t getHeight() const { return height; }
|
||||
inline operator bool() const { return img && width && height; }
|
||||
|
||||
private:
|
||||
// loaded image dimensions
|
||||
@@ -24,7 +25,6 @@ private:
|
||||
|
||||
// the raw image data
|
||||
std::unique_ptr<char[]> img;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -158,6 +158,7 @@ void SpriteAtlas::allocate() {
|
||||
void SpriteAtlas::copy(const Rect<dimension>& dst, const SpritePosition& src) {
|
||||
if (!sprite->raster) return;
|
||||
const uint32_t *src_img = reinterpret_cast<const uint32_t *>(sprite->raster->getData());
|
||||
if (!src_img) return;
|
||||
allocate();
|
||||
uint32_t *dst_img = reinterpret_cast<uint32_t *>(data);
|
||||
|
||||
|
||||
@@ -102,6 +102,9 @@ bool Sprite::isLoaded() const {
|
||||
|
||||
void Sprite::parseImage() {
|
||||
raster = std::make_unique<util::Image>(image);
|
||||
if (!*raster) {
|
||||
raster.reset();
|
||||
}
|
||||
image.clear();
|
||||
loadedImage = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user