MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / mergeFrom

Method mergeFrom

Source/Surface.cpp:256–278  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

254}
255
256void 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/**

Callers 1

Phase_PausedMethod · 0.80

Calls 2

GetSurfaceBufferMethod · 0.80
GetSurfaceBufferSizeMethod · 0.80

Tested by

no test coverage detected