| 2136 | } |
| 2137 | |
| 2138 | void DXRenderDevice::FrameEnd() |
| 2139 | { |
| 2140 | for (int renderWindowIdx = 0; renderWindowIdx < (int)mRenderWindowList.size(); renderWindowIdx++) |
| 2141 | { |
| 2142 | RenderWindow* aRenderWindow = mRenderWindowList[renderWindowIdx]; |
| 2143 | if (aRenderWindow->mHasBeenTargeted) |
| 2144 | { |
| 2145 | PhysSetRenderState(mDefaultRenderState); |
| 2146 | PhysSetRenderWindow(aRenderWindow); |
| 2147 | |
| 2148 | for (int drawLayerIdx = 0; drawLayerIdx < (int)aRenderWindow->mDrawLayerList.size(); drawLayerIdx++) |
| 2149 | { |
| 2150 | DrawLayer* drawLayer = aRenderWindow->mDrawLayerList[drawLayerIdx]; |
| 2151 | drawLayer->Draw(); |
| 2152 | } |
| 2153 | |
| 2154 | aRenderWindow->Present(); |
| 2155 | } |
| 2156 | } |
| 2157 | |
| 2158 | RenderDevice::FrameEnd(); |
| 2159 | |
| 2160 | // Do 'clear' after frame end so we allocate new (and valid) vtx/idx draw buffers |
| 2161 | for (int renderWindowIdx = 0; renderWindowIdx < (int)mRenderWindowList.size(); renderWindowIdx++) |
| 2162 | { |
| 2163 | RenderWindow* aRenderWindow = mRenderWindowList[renderWindowIdx]; |
| 2164 | if (aRenderWindow->mHasBeenTargeted) |
| 2165 | { |
| 2166 | for (int drawLayerIdx = 0; drawLayerIdx < (int)aRenderWindow->mDrawLayerList.size(); drawLayerIdx++) |
| 2167 | { |
| 2168 | DrawLayer* drawLayer = aRenderWindow->mDrawLayerList[drawLayerIdx]; |
| 2169 | drawLayer->Clear(); |
| 2170 | } |
| 2171 | } |
| 2172 | } |
| 2173 | } |
| 2174 | |
| 2175 | Texture* DXRenderDevice::LoadTexture(const StringImpl& fileName, int flags) |
| 2176 | { |