summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-10-01 03:34:08 +0300
committerAndrei Karas <akaras@inbox.ru>2012-10-01 03:34:08 +0300
commit5adcad73b15aafa56ef77c794bf7ebfeff28049b (patch)
tree2cfe32eade47b7a84375cc7a3c60085b147183fe
parentf5ed6062017598fbdf9c3a7e4c53b5eeeddfe3ad (diff)
downloadplus-5adcad73b15aafa56ef77c794bf7ebfeff28049b.tar.gz
plus-5adcad73b15aafa56ef77c794bf7ebfeff28049b.tar.bz2
plus-5adcad73b15aafa56ef77c794bf7ebfeff28049b.tar.xz
plus-5adcad73b15aafa56ef77c794bf7ebfeff28049b.zip
Improve emotes window draw speed.
-rw-r--r--src/gui/widgets/emoteshortcutcontainer.cpp2
-rw-r--r--src/gui/widgets/itemcontainer.cpp32
2 files changed, 22 insertions, 12 deletions
diff --git a/src/gui/widgets/emoteshortcutcontainer.cpp b/src/gui/widgets/emoteshortcutcontainer.cpp
index a7bb46433..9e1206a4c 100644
--- a/src/gui/widgets/emoteshortcutcontainer.cpp
+++ b/src/gui/widgets/emoteshortcutcontainer.cpp
@@ -117,6 +117,7 @@ void EmoteShortcutContainer::draw(gcn::Graphics *graphics)
}
}
+ graphics->setColor(mForegroundColor);
for (unsigned i = 0; i < mMaxItems; i++)
{
const int emoteX = (i % mGridWidth) * mBoxWidth;
@@ -126,7 +127,6 @@ void EmoteShortcutContainer::draw(gcn::Graphics *graphics)
const std::string key = inputManager.getKeyValueString(
Input::KEY_EMOTE_1 + i);
- graphics->setColor(mForegroundColor);
g->drawText(key, emoteX + 2, emoteY + 2, gcn::Graphics::LEFT);
}
const unsigned sz = static_cast<unsigned>(mEmoteImg.size());
diff --git a/src/gui/widgets/itemcontainer.cpp b/src/gui/widgets/itemcontainer.cpp
index 854d055d2..4ccfb566f 100644
--- a/src/gui/widgets/itemcontainer.cpp
+++ b/src/gui/widgets/itemcontainer.cpp
@@ -263,6 +263,27 @@ void ItemContainer::draw(gcn::Graphics *graphics)
image->setAlpha(1.0f); // ensure the image if fully drawn...
g->drawImage(image, itemX, itemY);
}
+ }
+ }
+
+ for (int j = 0; j < mGridRows; j++)
+ {
+ const int intY0 = j * BOX_HEIGHT;
+ int itemIndex = j * mGridColumns - 1;
+ for (int i = 0; i < mGridColumns; i++)
+ {
+ int itemX = i * BOX_WIDTH;
+ int itemY = intY0;
+ itemIndex ++;
+ if (mShowMatrix[itemIndex] < 0)
+ continue;
+
+ const Item *const item = mInventory->getItem(
+ mShowMatrix[itemIndex]);
+
+ if (!item || item->getId() == 0)
+ continue;
+
// Draw item caption
std::string caption;
if (item->getQuantity() > 1 || mForceQuantity)
@@ -279,17 +300,6 @@ void ItemContainer::draw(gcn::Graphics *graphics)
itemY + BOX_HEIGHT - 14, gcn::Graphics::CENTER);
}
}
-
-/*
- // Draw an orange box around the selected item
- if (isFocused() && mHighlightedIndex != -1 && mGridColumns)
- {
- const int itemX = (mHighlightedIndex % mGridColumns) * BOX_WIDTH;
- const int itemY = (mHighlightedIndex / mGridColumns) * BOX_HEIGHT;
- g->setColor(gcn::Color(255, 128, 0));
- g->drawRectangle(gcn::Rectangle(itemX, itemY, BOX_WIDTH, BOX_HEIGHT));
- }
-*/
}
void ItemContainer::selectNone()