| 170 | } |
| 171 | |
| 172 | Viewport* RenderTarget::addViewport(Camera* cam, int ZOrder, FloatRect rect) |
| 173 | { |
| 174 | // Check no existing viewport with this Z-order |
| 175 | ViewportList::iterator it = mViewportList.find(ZOrder); |
| 176 | |
| 177 | if (it != mViewportList.end()) |
| 178 | { |
| 179 | StringStream str; |
| 180 | str << "Can't create another viewport for " |
| 181 | << mName << " with Z-order " << ZOrder |
| 182 | << " because a viewport exists with this Z-order already."; |
| 183 | OGRE_EXCEPT(Exception::ERR_INVALIDPARAMS, str.str(), "RenderTarget::addViewport"); |
| 184 | } |
| 185 | // Add viewport to list |
| 186 | // Order based on Z-order |
| 187 | Viewport* vp = OGRE_NEW Viewport(cam, this, rect, ZOrder); |
| 188 | |
| 189 | mViewportList.emplace(ZOrder, vp); |
| 190 | |
| 191 | fireViewportAdded(vp); |
| 192 | |
| 193 | return vp; |
| 194 | } |
| 195 | //----------------------------------------------------------------------- |
| 196 | void RenderTarget::removeViewport(int ZOrder) |
| 197 | { |