mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2024-11-23 22:25:41 +00:00
61 lines
1 KiB
C++
61 lines
1 KiB
C++
|
#include "Model.h"
|
||
|
|
||
|
namespace New3D {
|
||
|
|
||
|
NodeAttributes::NodeAttributes()
|
||
|
{
|
||
|
currentTexOffsetX = 0;
|
||
|
currentTexOffsetY = 0;
|
||
|
currentTexOffset = 0;
|
||
|
}
|
||
|
|
||
|
bool NodeAttributes::Push()
|
||
|
{
|
||
|
//=============
|
||
|
NodeAttribs na;
|
||
|
//=============
|
||
|
|
||
|
// check for overflow
|
||
|
if (m_vecAttribs.size() >= 128) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
na.texOffset = currentTexOffset;
|
||
|
na.texOffsetX = currentTexOffsetX;
|
||
|
na.texOffsetY = currentTexOffsetY;
|
||
|
|
||
|
m_vecAttribs.push_back(na);
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
bool NodeAttributes::Pop()
|
||
|
{
|
||
|
if (m_vecAttribs.empty()) {
|
||
|
return false; // check for underflow
|
||
|
}
|
||
|
|
||
|
currentTexOffset = m_vecAttribs.back().texOffset;
|
||
|
currentTexOffsetX = m_vecAttribs.back().texOffsetX;
|
||
|
currentTexOffsetY = m_vecAttribs.back().texOffsetY;
|
||
|
|
||
|
m_vecAttribs.pop_back();
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
bool NodeAttributes::StackLimit()
|
||
|
{
|
||
|
return m_vecAttribs.size() >= 1024;
|
||
|
}
|
||
|
|
||
|
void NodeAttributes::Reset()
|
||
|
{
|
||
|
currentTexOffset = 0;
|
||
|
currentTexOffsetX = 0;
|
||
|
currentTexOffsetY = 0;
|
||
|
m_vecAttribs.clear();
|
||
|
}
|
||
|
|
||
|
} // New3D
|