diff options
Diffstat (limited to 'graphics/skin.cpp')
-rw-r--r-- | graphics/skin.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/graphics/skin.cpp b/graphics/skin.cpp index caef41da1f..bc6ae971b5 100644 --- a/graphics/skin.cpp +++ b/graphics/skin.cpp @@ -149,6 +149,23 @@ namespace graphics return packID(m_dynamicPage, m_pages[m_dynamicPage]->mapCircleInfo(circleInfo)); } + uint32_t Skin::mapImageInfo(ImageInfo const & imageInfo) + { + uint32_t res = invalidPageHandle(); + + for (uint8_t i = 0; i < m_pages.size(); ++i) + { + res = m_pages[i]->findImageInfo(imageInfo); + if (res != invalidPageHandle()) + return packID(i, res); + } + + if (!m_pages[m_dynamicPage]->hasRoom(imageInfo)) + flushDynamicPage(); + + return packID(m_dynamicPage, m_pages[m_dynamicPage]->mapImageInfo(imageInfo)); + } + bool Skin::mapPenInfo(PenInfo const * penInfos, uint32_t * styleIDS, size_t count) { int startDynamicPage = m_dynamicPage; |