there used to be a black border at the top/left side with the 1x scaler: fixed!

svn-id: r8065
This commit is contained in:
Max Horn 2003-05-28 21:57:22 +00:00
parent 78ef0ea5b5
commit 6a8bd23d02

View file

@ -275,33 +275,34 @@ void OSystem_SDL::update_screen() {
if (_num_dirty_rects > 0) { if (_num_dirty_rects > 0) {
SDL_Rect *r; SDL_Rect *r;
SDL_Rect dst;
uint32 srcPitch, dstPitch; uint32 srcPitch, dstPitch;
SDL_Rect *last_rect = _dirty_rect_list + _num_dirty_rects; SDL_Rect *last_rect = _dirty_rect_list + _num_dirty_rects;
// Convert appropriate parts of the 8bpp image into 16bpp if (_scaler_proc == Normal1x) {
SDL_Rect dst; SDL_Surface *target = _overlayVisible ? _tmpscreen : _screen;
if (!_overlayVisible) {
for(r = _dirty_rect_list; r != last_rect; ++r) { for(r = _dirty_rect_list; r != last_rect; ++r) {
dst = *r; dst = *r;
dst.x++; // Shift rect by one since 2xSai needs to acces the data around
dst.y++; // any pixel to scale it, and we want to avoid mem access crashes. if (_overlayVisible) {
if (_scaler_proc == Normal1x) { // FIXME: I don't understand why this is necessary...
if (SDL_BlitSurface(_screen, r, _hwscreen, &dst) != 0) dst.x--;
error("SDL_BlitSurface failed: %s", SDL_GetError()); dst.y--;
} else { }
if (SDL_BlitSurface(target, r, _hwscreen, &dst) != 0)
error("SDL_BlitSurface failed: %s", SDL_GetError());
}
} else {
if (!_overlayVisible) {
for(r = _dirty_rect_list; r != last_rect; ++r) {
dst = *r;
dst.x++; // Shift rect by one since 2xSai needs to acces the data around
dst.y++; // any pixel to scale it, and we want to avoid mem access crashes.
if (SDL_BlitSurface(_screen, r, _tmpscreen, &dst) != 0) if (SDL_BlitSurface(_screen, r, _tmpscreen, &dst) != 0)
error("SDL_BlitSurface failed: %s", SDL_GetError()); error("SDL_BlitSurface failed: %s", SDL_GetError());
} }
} }
} else if (_scaler_proc == Normal1x) {
for(r = _dirty_rect_list; r != last_rect; ++r) {
dst = *r;
if (SDL_BlitSurface(_tmpscreen, r, _hwscreen, &dst) != 0)
error("SDL_BlitSurface failed: %s", SDL_GetError());
}
}
if (_scaler_proc != Normal1x) {
SDL_LockSurface(_tmpscreen); SDL_LockSurface(_tmpscreen);
SDL_LockSurface(_hwscreen); SDL_LockSurface(_hwscreen);