Quartz driver: Correctly handle SDL_DOUBLEBUF|SDL_FULLSCREEN when the

resolution is too small and thus emulated by SDL.

  Fixes http://www.devolution.com/pipermail/sdl/2005-December/071765.html ...

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401222
This commit is contained in:
Ryan C. Gordon 2006-01-02 12:37:40 +00:00
parent 22cfa5480b
commit ca9a638c42

View file

@ -975,8 +975,14 @@ static int QZ_ThreadFlip (_THIS) {
if (quit_thread)
return 0;
dst = CGDisplayBaseAddress (display_id);
src = current_buffer;
/*
* We have to add SDL_VideoSurface->offset here, since we might be a
* smaller surface in the center of the framebuffer (you asked for
* a fullscreen resolution smaller than the hardware could supply
* so SDL is centering it in a bigger resolution)...
*/
dst = CGDisplayBaseAddress (display_id) + SDL_VideoSurface->offset;
src = current_buffer + SDL_VideoSurface->offset;
len = SDL_VideoSurface->w * SDL_VideoSurface->format->BytesPerPixel;
h = SDL_VideoSurface->h;
skip = SDL_VideoSurface->pitch;