| 144 | } |
| 145 | |
| 146 | RenderItem* LayerNode::addToRenderItemFirstQueue(ITexture* _texture, bool _manualRender) |
| 147 | { |
| 148 | if (mFirstRenderItems.empty() || _manualRender) |
| 149 | { |
| 150 | RenderItem* item = new RenderItem(); |
| 151 | item->setTexture(_texture); |
| 152 | item->setManualRender(_manualRender); |
| 153 | mLastNotEmptyItem = mFirstRenderItems.size(); |
| 154 | mFirstRenderItems.push_back(item); |
| 155 | |
| 156 | return item; |
| 157 | } |
| 158 | |
| 159 | mOutOfDateCompression = true; |
| 160 | mOutOfDate = true; |
| 161 | |
| 162 | // first queue keep order |
| 163 | |
| 164 | // use either last non-empty buffer if it have same texture |
| 165 | // or empty buffer (if found in the end) |
| 166 | if (mLastNotEmptyItem < mFirstRenderItems.size()) |
| 167 | { |
| 168 | RenderItem* item = mFirstRenderItems[mLastNotEmptyItem]; |
| 169 | if (!item->getManualRender() && item->getTexture() == _texture) |
| 170 | { |
| 171 | return item; |
| 172 | } |
| 173 | } |
| 174 | |
| 175 | if (mLastNotEmptyItem + 1 < mFirstRenderItems.size()) |
| 176 | { |
| 177 | ++mLastNotEmptyItem; |
| 178 | mFirstRenderItems[mLastNotEmptyItem]->setTexture(_texture); |
| 179 | return mFirstRenderItems[mLastNotEmptyItem]; |
| 180 | } |
| 181 | |
| 182 | // not found, create new |
| 183 | RenderItem* item = new RenderItem(); |
| 184 | item->setTexture(_texture); |
| 185 | item->setManualRender(_manualRender); |
| 186 | mLastNotEmptyItem = mFirstRenderItems.size(); |
| 187 | mFirstRenderItems.push_back(item); |
| 188 | |
| 189 | return item; |
| 190 | } |
| 191 | |
| 192 | RenderItem* LayerNode::addToRenderItemSecondQueue(ITexture* _texture, bool _manualRender) |
| 193 | { |
nothing calls this directly
no test coverage detected