sprite: Add some sanity checks (nw)

This commit is contained in:
AJR 2019-10-18 20:35:53 -04:00
parent d991043cea
commit dd46572f6d
2 changed files with 4 additions and 4 deletions

View File

@ -98,7 +98,7 @@ sparse_dirty_rect *sparse_dirty_bitmap::first_dirty_rect(const rectangle &clipre
{ {
// if what we have is valid, just return it again // if what we have is valid, just return it again
if (m_rect_list_bounds == cliprect) if (m_rect_list_bounds == cliprect)
return m_rect_list.first(); return m_rect_list.empty() ? nullptr : m_rect_list.first();
// reclaim the dirty list and start over // reclaim the dirty list and start over
m_rect_allocator.reclaim_all(m_rect_list); m_rect_allocator.reclaim_all(m_rect_list);
@ -153,5 +153,5 @@ sparse_dirty_rect *sparse_dirty_bitmap::first_dirty_rect(const rectangle &clipre
// mark the list as valid // mark the list as valid
m_rect_list_bounds = cliprect; m_rect_list_bounds = cliprect;
return m_rect_list.first(); return m_rect_list.empty() ? nullptr : m_rect_list.first();
} }

View File

@ -105,13 +105,13 @@ public:
_SpriteRAMType *buffer() { return &m_buffer[0]; } _SpriteRAMType *buffer() { return &m_buffer[0]; }
// configuration // configuration
void set_spriteram(_SpriteRAMType *base, uint32_t bytes) { m_spriteram = base; m_spriteram_bytes = bytes; m_buffer.resize(m_spriteram_bytes / sizeof(_SpriteRAMType)); } void set_spriteram(_SpriteRAMType *base, uint32_t bytes) { assert(base != nullptr && bytes != 0); m_spriteram = base; m_spriteram_bytes = bytes; m_buffer.resize(m_spriteram_bytes / sizeof(_SpriteRAMType)); }
void set_origin(int32_t xorigin = 0, int32_t yorigin = 0) { m_xorigin = xorigin; m_yorigin = yorigin; } void set_origin(int32_t xorigin = 0, int32_t yorigin = 0) { m_xorigin = xorigin; m_yorigin = yorigin; }
void set_xorigin(int32_t xorigin) { m_xorigin = xorigin; } void set_xorigin(int32_t xorigin) { m_xorigin = xorigin; }
void set_yorigin(int32_t yorigin) { m_yorigin = yorigin; } void set_yorigin(int32_t yorigin) { m_yorigin = yorigin; }
// buffering // buffering
void copy_to_buffer() { memcpy(m_buffer, m_spriteram, m_spriteram_bytes); } void copy_to_buffer() { assert(m_spriteram != nullptr); memcpy(m_buffer, m_spriteram, m_spriteram_bytes); }
// clearing // clearing
void clear() { clear(m_bitmap.cliprect()); } void clear() { clear(m_bitmap.cliprect()); }