53 mVertexBuffer =
nullptr;
58 if (mTexture ==
nullptr)
61 mRenderTarget = _target;
63 mCurrentUpdate = _update;
65 if (mOutOfDate || _update)
70 for (VectorDrawItem::iterator iter = mDrawItems.begin(); iter != mDrawItems.end(); ++iter)
73 mCurrentVertex = buffer;
76 (*iter).first->doRender();
80 buffer += mLastVertexCount;
81 mCountVertex += mLastVertexCount;
90 if (0 != mCountVertex)
92 #if MYGUI_DEBUG_MODE == 1
96 MYGUI_EXCEPT(
"texture pointer is not valid, texture name '" << mTextureName <<
"'");
103 for (VectorDrawItem::iterator iter = mDrawItems.begin(); iter != mDrawItems.end(); ++iter)
104 (*iter).first->doManualRender(mVertexBuffer, mTexture, mCountVertex);
108 _target->
doRender(mVertexBuffer, mTexture, mCountVertex);
115 for (VectorDrawItem::iterator iter = mDrawItems.begin(); iter != mDrawItems.end(); ++iter)
117 if ((*iter).first == _item)
119 mNeedVertexCount -= (*iter).second;
120 mDrawItems.erase(iter);
126 if (mDrawItems.empty())
142 #if MYGUI_DEBUG_MODE == 1
143 for (VectorDrawItem::iterator iter = mDrawItems.begin(); iter != mDrawItems.end(); ++iter)
150 mNeedVertexCount += _count;
158 for (VectorDrawItem::iterator iter = mDrawItems.begin(); iter != mDrawItems.end(); ++iter)
160 if ((*iter).first == _item)
163 if ((*iter).second < _count)
165 mNeedVertexCount -= (*iter).second;
166 mNeedVertexCount += _count;
167 (*iter).second = _count;
180 if (mTexture == _value)
188 #if MYGUI_DEBUG_MODE == 1
189 mTextureName = mTexture ==
nullptr ?
"" : mTexture->
getName();
200 bool result = mCompression;
201 mCompression =
false;
207 mManualRender = _value;
212 return mManualRender;
227 return mNeedVertexCount;
237 return mCurrentUpdate;
242 return mCurrentVertex;
247 mLastVertexCount = _count;
252 return mRenderTarget;