aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/wintermute/BRenderSDL.cpp14
-rw-r--r--engines/wintermute/wintermute.cpp2
2 files changed, 11 insertions, 5 deletions
diff --git a/engines/wintermute/BRenderSDL.cpp b/engines/wintermute/BRenderSDL.cpp
index 1daf2aafc8..a8e18c74d2 100644
--- a/engines/wintermute/BRenderSDL.cpp
+++ b/engines/wintermute/BRenderSDL.cpp
@@ -161,7 +161,7 @@ HRESULT CBRenderSDL::InitRenderer(int width, int height, bool windowed) {
if (!_renderer) return E_FAIL;
#endif
_renderSurface = new Graphics::Surface();
- _renderSurface->create(640,480, g_system->getScreenFormat()); // TODO: Unhardcode this.
+ _renderSurface->create(g_system->getWidth(), g_system->getHeight(), g_system->getScreenFormat());
_active = true;
@@ -210,8 +210,7 @@ HRESULT CBRenderSDL::Flip() {
}
}
#endif
- // TODO, unhardcode.
- g_system->copyRectToScreen((byte*)_renderSurface->pixels, _renderSurface->pitch, 0, 0, 640, 480);
+ g_system->copyRectToScreen((byte*)_renderSurface->pixels, _renderSurface->pitch, 0, 0, _renderSurface->w, _renderSurface->h);
g_system->updateScreen();
//SDL_RenderPresent(_renderer);
@@ -277,7 +276,14 @@ void CBRenderSDL::drawFromSurface(Graphics::Surface *surf, Common::Rect *srcRect
for (int i = 0; i < srcRect->height(); i++) {
void *destPtr = _renderSurface->getBasePtr(dstRect->left, dstRect->top + i);
void *srcPtr = surf->getBasePtr(srcRect->left, srcRect->top + i);
- memcpy(destPtr, srcPtr, _renderSurface->format.bytesPerPixel * srcRect->width());
+ for (int j = 0; j < srcRect->width(); j++) {
+ // TODO: Replace this with something less ugly, and more portable.
+ if (((byte*)srcPtr)[0] == 255) {
+ memcpy(destPtr, srcPtr, _renderSurface->format.bytesPerPixel);
+ }
+ ((byte*)srcPtr)+=_renderSurface->format.bytesPerPixel;
+ ((byte*)destPtr)+=_renderSurface->format.bytesPerPixel;
+ }
}
}
//////////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/wintermute.cpp b/engines/wintermute/wintermute.cpp
index 298e4a97c6..e6b273b291 100644
--- a/engines/wintermute/wintermute.cpp
+++ b/engines/wintermute/wintermute.cpp
@@ -72,7 +72,7 @@ namespace WinterMute {
Common::Error WinterMuteEngine::run() {
// Initialize graphics using following:
Graphics::PixelFormat format(4, 8, 8, 8, 8, 24, 16, 8, 0);
- initGraphics(640, 480, false, &format);
+ initGraphics(800, 600, false, &format);
// You could use backend transactions directly as an alternative,
// but it isn't recommended, until you want to handle the error values