do not crash for missing images

This commit is contained in:
Konstantin Käfer
2014-10-29 16:09:42 -04:00
parent 414ccaaf93
commit 7a13db9a86
3 changed files with 5 additions and 1 deletions

View File

@@ -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;
};

View File

@@ -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);

View File

@@ -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;
}