Refactor FrameBuffer blit/flip source.
Pass a surface to the blit/flip functions, instead of a raw pointer.
This puts the FrameBuffer in control of locking and unlocking.
Change-Id: I55335b3beef8d7083aae7687bd25392964261bde
Reviewed-on: https://swiftshader-review.googlesource.com/4482
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Main/FrameBufferDD.cpp b/src/Main/FrameBufferDD.cpp
index 1f87bdf..46ed89f 100644
--- a/src/Main/FrameBufferDD.cpp
+++ b/src/Main/FrameBufferDD.cpp
@@ -250,9 +250,9 @@
updateBounds(windowHandle);
}
- void FrameBufferDD::flip(void *source, Format sourceFormat, size_t sourceStride)
+ void FrameBufferDD::flip(sw::Surface *source)
{
- copy(source, sourceFormat, sourceStride);
+ copy(source);
if(!readySurfaces())
{
@@ -281,9 +281,9 @@
}
}
- void FrameBufferDD::blit(void *source, const Rect *sourceRect, const Rect *destRect, Format sourceFormat, size_t sourceStride)
+ void FrameBufferDD::blit(sw::Surface *source, const Rect *sourceRect, const Rect *destRect)
{
- copy(source, sourceFormat, sourceStride);
+ copy(source);
if(!readySurfaces())
{
@@ -320,20 +320,20 @@
}
}
- void FrameBufferDD::flip(HWND windowOverride, void *source, Format sourceFormat, size_t sourceStride)
+ void FrameBufferDD::flip(HWND windowOverride, sw::Surface *source)
{
updateClipper(windowOverride);
updateBounds(windowOverride);
- flip(source, sourceFormat, sourceStride);
+ flip(source);
}
- void FrameBufferDD::blit(HWND windowOverride, void *source, const Rect *sourceRect, const Rect *destRect, Format sourceFormat, size_t sourceStride)
+ void FrameBufferDD::blit(HWND windowOverride, sw::Surface *source, const Rect *sourceRect, const Rect *destRect)
{
updateClipper(windowOverride);
updateBounds(windowOverride);
- blit(source, sourceRect, destRect, sourceFormat, sourceStride);
+ blit(source, sourceRect, destRect);
}
void FrameBufferDD::screenshot(void *destBuffer)