| 254 | } |
| 255 | |
| 256 | void cSurface::mergeFrom(const cSurface* pFrom) { |
| 257 | auto SourceSurface = pFrom->GetSurfaceBuffer(); |
| 258 | auto SourceSize = pFrom->GetSurfaceBufferSize(); |
| 259 | |
| 260 | uint32* bufferTarget = (uint32*)mSurfaceBuffer; |
| 261 | uint32* bufferTargetMax = (uint32*)((uint8*)mSurfaceBuffer + mSurfaceBufferSize); |
| 262 | |
| 263 | const uint32* bufferCurrent = ((uint32*)SourceSurface); |
| 264 | const uint32* bufferCurrentMax = (uint32*)(((uint8*)SourceSurface) + SourceSize); |
| 265 | |
| 266 | while (bufferTarget < bufferTargetMax) { |
| 267 | |
| 268 | if (*bufferCurrent) { |
| 269 | |
| 270 | // Value in palette range? |
| 271 | *bufferTarget = *bufferCurrent; |
| 272 | } |
| 273 | |
| 274 | // Next Source/Destination |
| 275 | ++bufferCurrent; |
| 276 | ++bufferTarget; |
| 277 | } |
| 278 | } |
| 279 | |
| 280 | |
| 281 | /** |
no test coverage detected