|
@@ -1288,6 +1288,11 @@ Graphics::Stats Graphics::getStats() const
|
|
|
return stats;
|
|
|
}
|
|
|
|
|
|
+size_t Graphics::getStackDepth() const
|
|
|
+{
|
|
|
+ return stackTypeStack.size();
|
|
|
+}
|
|
|
+
|
|
|
void Graphics::push(StackType type)
|
|
|
{
|
|
|
if (stackTypeStack.size() == MAX_USER_STACK_DEPTH)
|
|
@@ -1303,30 +1308,25 @@ void Graphics::push(StackType type)
|
|
|
stackTypeStack.push_back(type);
|
|
|
}
|
|
|
|
|
|
-void Graphics::pop(PopMode mode)
|
|
|
+void Graphics::pop()
|
|
|
{
|
|
|
- size_t amount = mode == POP_ALL ? stackTypeStack.size() : 1;
|
|
|
-
|
|
|
- if (stackTypeStack.size() < amount)
|
|
|
+ if (stackTypeStack.size() < 1)
|
|
|
throw Exception("Minimum stack depth reached (more pops than pushes?)");
|
|
|
|
|
|
- for (size_t i = 0; i < amount; ++i)
|
|
|
- {
|
|
|
- popTransform();
|
|
|
- pixelScaleStack.pop_back();
|
|
|
-
|
|
|
- if (stackTypeStack.back() == STACK_ALL)
|
|
|
- {
|
|
|
- DisplayState &newstate = states[states.size() - 2];
|
|
|
+ popTransform();
|
|
|
+ pixelScaleStack.pop_back();
|
|
|
|
|
|
- restoreStateChecked(newstate);
|
|
|
+ if (stackTypeStack.back() == STACK_ALL)
|
|
|
+ {
|
|
|
+ DisplayState &newstate = states[states.size() - 2];
|
|
|
|
|
|
- // The last two states in the stack should be equal now.
|
|
|
- states.pop_back();
|
|
|
- }
|
|
|
+ restoreStateChecked(newstate);
|
|
|
|
|
|
- stackTypeStack.pop_back();
|
|
|
+ // The last two states in the stack should be equal now.
|
|
|
+ states.pop_back();
|
|
|
}
|
|
|
+
|
|
|
+ stackTypeStack.pop_back();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1520,16 +1520,6 @@ bool Graphics::getConstant(StackType in, const char *&out)
|
|
|
return stackTypes.find(in, out);
|
|
|
}
|
|
|
|
|
|
-bool Graphics::getConstant(const char *in, PopMode &out)
|
|
|
-{
|
|
|
- return popModes.find(in, out);
|
|
|
-}
|
|
|
-
|
|
|
-bool Graphics::getConstant(PopMode in, const char *&out)
|
|
|
-{
|
|
|
- return popModes.find(in, out);
|
|
|
-}
|
|
|
-
|
|
|
StringMap<Graphics::DrawMode, Graphics::DRAW_MAX_ENUM>::Entry Graphics::drawModeEntries[] =
|
|
|
{
|
|
|
{ "line", DRAW_LINE },
|
|
@@ -1623,13 +1613,5 @@ StringMap<Graphics::StackType, Graphics::STACK_MAX_ENUM>::Entry Graphics::stackT
|
|
|
|
|
|
StringMap<Graphics::StackType, Graphics::STACK_MAX_ENUM> Graphics::stackTypes(Graphics::stackTypeEntries, sizeof(Graphics::stackTypeEntries));
|
|
|
|
|
|
-StringMap<Graphics::PopMode, Graphics::POP_MAX_ENUM>::Entry Graphics::popModeEntries[] =
|
|
|
-{
|
|
|
- { "one", POP_ONE },
|
|
|
- { "all", POP_ALL },
|
|
|
-};
|
|
|
-
|
|
|
-StringMap<Graphics::PopMode, Graphics::POP_MAX_ENUM> Graphics::popModes(Graphics::popModeEntries, sizeof(Graphics::popModeEntries));
|
|
|
-
|
|
|
} // graphics
|
|
|
} // love
|