moved screen mutex from smush into SDL backend (other backends have to make sure they are thread safe by themselves)
svn-id: r7230
This commit is contained in:
parent
7093694781
commit
feab6f904f
5 changed files with 30 additions and 17 deletions
|
@ -230,6 +230,8 @@ void OSystem_SDL::hotswap_gfx_mode() {
|
|||
void OSystem_SDL::update_screen() {
|
||||
assert(_hwscreen != NULL);
|
||||
|
||||
StackLock lock(_mutex); // Lock the mutex until this function ends
|
||||
|
||||
// If the shake position changed, fill the dirty area with blackness
|
||||
if (_currentShakePos != _newShakePos) {
|
||||
SDL_Rect blackrect = {0, 0, _screenWidth * _scaleFactor, _newShakePos * _scaleFactor};
|
||||
|
@ -277,12 +279,12 @@ void OSystem_SDL::update_screen() {
|
|||
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 (_scaler_proc == Normal1x) {
|
||||
if (SDL_BlitSurface(_screen, r, _hwscreen, &dst) != 0)
|
||||
error("SDL_BlitSurface failed: %s", SDL_GetError());
|
||||
} else {
|
||||
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)
|
||||
error("SDL_BlitSurface failed: %s", SDL_GetError());
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue