1. 01 Jul, 2009 1 commit
  2. 07 May, 2009 2 commits
    • Sam Lantinga's avatar
      Date: Fri, 24 Apr 2009 17:47:07 +0200 · a220b6ab
      Sam Lantinga authored
      From: Stefan Klug
      Subject: Re: [SDL] SVN doesn't compile for wince
      
      the patch applied for Revision 4483 was seemingly not checked for side
      effects.
      It broke the WinCE build.
      The attached patch should fix these problems. I'm not using SDL 1.2 on
      CE anymore, and therefore haven't tested the patch... but at least it
      compiles ;-)
      
      Regards Stefan
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403602
      a220b6ab
    • Sam Lantinga's avatar
      Fixed dynamic loading on Windows CE · aaf1b51f
      Sam Lantinga authored
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403599
      aaf1b51f
  3. 27 Apr, 2009 1 commit
    • Patrice Mandin's avatar
      Disable debug code · 881a4d07
      Patrice Mandin authored
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403587
      881a4d07
  4. 26 Apr, 2009 2 commits
  5. 24 Apr, 2009 1 commit
  6. 13 Apr, 2009 6 commits
    • Sam Lantinga's avatar
      Fixed bug #421 · df5650a8
      Sam Lantinga authored
      Comment #3 From  esigra@gmail.com   2008-04-09 11:46:46   (-) [reply] -------
      
      This bug also needs to be fixed for SDL_GetRGB and SDL_GetRGBA (those should
      not change the format of the surface either). Until this is fixed, I still need
      to const_cast the format parameter in calls to those functions.
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403581
      df5650a8
    • Sam Lantinga's avatar
      Fixed bug #675 · 3b082cfe
      Sam Lantinga authored
        Description From  maf6@cornell.edu   2009-01-10 14:07:52   (-) [reply]
      
      Assuming the SDL project doesn't just want to pick these up from dinput8.lib or
      whatever instead, the definitions in SDL_dx5video.c should be:
      
      const DIDATAFORMAT c_dfDIKeyboard = { sizeof(DIDATAFORMAT),
      sizeof(DIOBJECTDATAFORMAT), 0x00000002, 256, 256, KBD_fmt };
      const DIDATAFORMAT c_dfDIMouse = { sizeof(DIDATAFORMAT),
      sizeof(DIOBJECTDATAFORMAT), 0x00000002, 16, 7, PTR_fmt };
      const DIDATAFORMAT c_dfDIJoystick = { sizeof(DIDATAFORMAT),
      sizeof(DIOBJECTDATAFORMAT), 0x00000001, 80, 44, JOY_fmt };
      
      This way the call to IDirectInputDevice2_SetDataFormat in SDL_dx5events.c will
      succeed on x64.
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403580
      3b082cfe
    • Sam Lantinga's avatar
      Fixed bug #619 · 86701def
      Sam Lantinga authored
         Description From  Tim Angus   2008-08-31 03:38:36   (-) [reply]
      
      When pressing "system keys" e.g. ALT+F4 etc., the default for the windib driver
      is to ignore them completely, whereas with the directx driver they're handled
      (badly as it turns out).
      
      As the windib driver is the default, I assume its behaviour is considered
      correct, so the following patch makes the directx driver the same in this
      regard.
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403579
      86701def
    • Sam Lantinga's avatar
      Fixed bug #618 · 0cc0d8eb
      Sam Lantinga authored
         Description From  Tim Angus   2008-08-30 12:23:56   (-) [reply]
      
      As we all know SDL 1.2 doesn't handle dead keys well since one key press
      potentially equals two (or more) characters. For example, on many layouts,
      keying <backquote>,<space> results in <no character>,<backquote><space>. Since
      the unicode member of the SDL_keysym struct only has room for one character,
      only one can be returned.
      
      On Linux, the first character is returned. On Windows however, unless the exact
      number of characters generated by the keypress is 1, nothing is returned. The
      following patch addresses this inconsistency.
      
      Updated patch which includes a further fix to the handling of the numpad when
      numlock is on. This further fix is courtesy Amanieu d'Antras.
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403578
      0cc0d8eb
    • Sam Lantinga's avatar
      Fixed bug #611 · 2ff43fab
      Sam Lantinga authored
      Comment #22 From  Tim Angus   2009-04-02 08:45:52   (-) [reply] -------
      
      First of all, thanks for committing this. Unfortunately it seems the patch has
      only partially applied to wincommon/SDL_sysevents.c and currently a clean SDL
      1.2 checkout doesn't build. The new patch here
      (http://bugzilla.libsdl.org/attachment.cgi?id=316) fixes this.
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403577
      2ff43fab
    • Sam Lantinga's avatar
      Fixed bug #526 · 9b8a9304
      Sam Lantinga authored
      Comment #1 From  Simon Howard   2009-03-20 16:50:56
      
      Hi,
      
      I'm the author of Chocolate Doom, one of the other source ports that James
      mentioned.  This is a patch against the current SVN version of SDL 1.2 that
      fixes the bug.  It has been tested and hopefully should be obviously correct
      from examining the changes. I'll give a brief explanation.
      
      When the palette is set with SDL_SetPalette, the IDirectDrawPalette_SetEntries
      DirectX function is invoked. However, when this happens, a WM_PALETTECHANGED
      message is sent to the window.
      
      A WM_PALETTECHANGED message can also be received if the palette is changed for
      some other reason, like if the system palette is changed.  Therefore, the
      palette change handler (DX5_PaletteChanged) has code to deal with this case.
      It distinguishes "expected" palette changes (set with SDL_SetPalette) from
      "unexpected" palette changes using the colorchange_expected variable, which is
      set before calling IDirectDrawPalette_SetEntries.  However, the code to set
      this variable is missing in the fullscreen code path.  By setting this
      variable, the palette change is handled properly and the freezes go away.
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403576
      9b8a9304
  7. 02 Apr, 2009 3 commits
    • Sam Lantinga's avatar
      Fixed bug #611 · 140163c3
      Sam Lantinga authored
      From  Tim Angus   2008-08-12 11:18:06
      
      I'm one of the maintainers of ioquake3.org, an updated version of the
      Quake 3 engine. Relatively recently, we moved ioq3 to use SDL as a
      replacement for 95% of the platform specific code that was there. On the
      whole it's doing a great job but unfortunately since the move we've been
      getting complaints about the quality of the mouse input on the Windows
      platform to the point where for many the game is unplayable. Put in
      other terms, the current stable SDL 1.2 is basically not fit for purpose
      if you need high quality mouse input as you do in a first person shooter.
      
      Over the weekend I decided to pull my finger out and actually figure out
      what's going on. There are basically two major problems. Firstly, when
      using the "windib" driver, mouse input is gathered via the WM_MOUSEMOVE
      message. Googling for this indicates that often this is known to result
      in "spurious" and/or "missing" mouse movement events; this is the
      primary cause of the poor mouse input. The second problem is that the
      "directx" driver does not work at all in combination with OpenGL meaning
      that you can't use DirectInput if your application also uses OpenGL. In
      other words you're locked into using the "windib" driver and its poor
      mouse input.
      
      In order to address these problems I've done the following:
      
      * Remove WM_MOUSEMOVE based motion event generation and replace with
      calls to GetCursorPos which seems much more reliable. In order to
      achieve this I've moved mouse motion out into a separate function that
      is called once per DIB_PumpEvents.
      
      * Remove the restriction on the "directx" driver being inoperable in
      combination with OpenGL. There is a bug for this issues that I've
      hijacked to a certain extent
      (http://bugzilla.libsdl.org/show_bug.cgi?id=265). I'm the first to admit
      I don't really understand why this restriction is there in the first
      place. The commit message for the bug fix that introduced this
      restriction (r581) isn't very elaborate and I couldn't see any other bug
      tracking the issue. If anyone has more information on the bug that was
      avoided by r581 it would be helpful as I/someone could then look into
      addressing the problem without disabling the "directx" driver.
      
      * I've also removed the restriction on not being allowed to use
      DirectInput in windowed mode. I couldn't see any reason for this, at
      least not from our perspective. I have my suspicions that it'll be
      something like matching up the cursor with the mouse coordinates...
      
      * I bumped up the DirectInput API used to version 7 in order to get
      access to mouse buttons 4-7. I've had to inject a little bit of the DX7
      headers into SDL there as the MinGW ones aren't up to date in this respect.
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403572
      140163c3
    • Sam Lantinga's avatar
      Added credits for the PS3 code · f38807a1
      Sam Lantinga authored
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403571
      f38807a1
    • Sam Lantinga's avatar
      Hello. · 253ad714
      Sam Lantinga authored
      This patch provides basic support for video on the Sony PS3
      Linux framebuffer. Scaling, format-conversion, and drawing is
      done from the SPEs, so there is little performance impact to
      PPE applications. This is by no means production quality code,
      but it is a very good start and a good example of how to use the
      PS3's hardware capabilities to accelerate video playback on
      the box.
      
      The driver has been verified to work with ffplay, mplayer and xine.
      This piece of software has been developed at the IBM R&D Lab
      in Boeblingen, Germany and is now returned to the community.
      
      Enjoy !
      
      Signed-off-by: D.Herrendoerfer < d.herrendoerfer [at] de [dot] ibm [dot] com >
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403570
      253ad714
  8. 17 Mar, 2009 1 commit
    • Sam Lantinga's avatar
      Date: Fri, 6 Mar 2009 12:41:17 -0800 · 910c3af8
      Sam Lantinga authored
      From: scott mc
      Subject: Re: [SDL] patch for building on haiku
      
      Ok. I've combined the various Haiku patches for the SDL-1.2 branch
      into one .diff file
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403560
      910c3af8
  9. 17 Feb, 2009 1 commit
    • Sam Lantinga's avatar
      Fixed bug #646 · c413a1c5
      Sam Lantinga authored
         Description From  Pavol Rusnak   2008-11-27 05:51:44   (-) [reply]
      
      src/video/fbcon/SDL_fbvideo.c:283: warning: ordered comparison of pointer with
      integer zero
      
      The source code is
      
                     if (fgets(line,length,f)<=0)
      
      Suggest replace with
      
                     if (fgets(line,length,f) == 0)
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403534
      c413a1c5
  10. 16 Feb, 2009 1 commit
    • Sam Lantinga's avatar
      GAPI fixes from Stefan Klug · 008ece6f
      Sam Lantinga authored
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403531
      008ece6f
  11. 30 Jan, 2009 1 commit
  12. 15 Jan, 2009 1 commit
    • Patrice Mandin's avatar
      Update Email · c2c1b456
      Patrice Mandin authored
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403507
      c2c1b456
  13. 08 Dec, 2008 1 commit
    • Sam Lantinga's avatar
      Updated copyright date · dd8d6a84
      Sam Lantinga authored
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403320
      dd8d6a84
  14. 12 Nov, 2008 1 commit
    • Sam Lantinga's avatar
      Date: Sun, 7 Sep 2008 15:17:00 +0200 · 3e3345c7
      Sam Lantinga authored
      From: c2woody@gmx.net
      Subject: [SDL] SDL 1.2 doube free/pointer zeroing missing
      
      Hello,
      
      this is about a crash/debug breakage for the current SDL 1.2
      source tree (today's svn checkout, same problem in 1.2.13 and
      before as far as relevant).
      In some places memory is free()d but the associated pointer
      is not zeroed, leading to for example double free()s.
      
      For me this happened because SDL_StopEventThread() was executed
      twice (during restart of the subsystems), once for the close
      down in SDL_VideoQuit() and once at the startup, right at the
      beginning of SDL_StartEventLoop(). Thus the code
      SDL_DestroyMutex(SDL_EventQ.lock);
      (see SDL_events.c) was called twice and executed the SDL_free(mutex);
      twice as well, leading to a crash (msvc 64bit for which it was noticed).
      
      I've tried to check all other occurrences of SDL_free and similar
      code in msvc, see the attached patch (udiff against revision 4082).
      Non-windows only codepaths have neither been checked nor touched.
      
      Comments/ideas welcome.
      
      Attached patch: NULLifies some pointers after they have been free()d.
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403237
      3e3345c7
  15. 07 Nov, 2008 1 commit
    • Sam Lantinga's avatar
      Date: Thu, 16 Oct 2008 20:27:34 +0400 · 94a4eda4
      Sam Lantinga authored
      From: "Ilya Kasnacheev" <ilya.kasnacheev@gmail.com>
      To: sdl@lists.libsdl.org
      Subject: [SDL] SDL for Windows CE: a few GAPI patches
      
      Hi *!
      
      I've just ported a POWDER roguelike ( http://www.zincland.com/powder/ ) to
      Windows CE (PDAs, Windows Mobile/Pocket PC). To do that, I had to get libsdl
      working. Thanks for the awesome project files, it built without a hitch.
      
      Nevertheless, I've found quite a few bugs in Windows CE (GAPI) SDL
      implementation, which I've solved and now present as a serie of patches.
      
      I'll try carefully annotate them. Please annotate them so I can work
      toward accepting
      them into the main source tree since without them SDL isn't really working on
      Windows CE (I wonder why nobody fixed them before, btw: why isn't SDL popular as
      a way to develop Windows CE games? Where are no ports?)
      
      These changes can't be considered flawless, but they can be considered working
      because I've yet to hear complains about things I fixed and POWDER build for
      Windows CE is now considered stable.
      
      Note: my comments start with !!, delete them before applying.
      
      diff -bru SDL-1.2.13/src/video/gapi/SDL_gapivideo.c
      SDL-1.2.13-new/src/video/gapi/SDL_gapivideo.c
      --- SDL-1.2.13/src/video/gapi/SDL_gapivideo.c   2007-12-31
      07:48:00.000000000 +0300
      +++ SDL-1.2.13-new/src/video/gapi/SDL_gapivideo.c       2008-10-16
      20:02:11.000000000 +0400
      @@ -643,6 +643,7 @@
              }
      
              gapi->userOrientation = SDL_ORIENTATION_UP;
      +       gapi->systemOrientation = SDL_ORIENTATION_UP;
              video->flags = SDL_FULLSCREEN;  /* Clear flags, GAPI supports
      fullscreen only */
      
              /* GAPI or VGA? */
      @@ -661,18 +662,21 @@
              }
      
              /* detect user landscape mode */
      -       if( (width > height) && (GetSystemMetrics(SM_CXSCREEN) <
      GetSystemMetrics(SM_CYSCREEN)))
      +       if( (width > height) && (gapi->gxProperties.cxWidth <
      gapi->gxProperties.cyHeight))
                      gapi->userOrientation = SDL_ORIENTATION_RIGHT;
      
      +       if(GetSystemMetrics(SM_CYSCREEN) < GetSystemMetrics(SM_CXSCREEN))
      +               gapi->systemOrientation = SDL_ORIENTATION_RIGHT;
      +
              /* shall we apply hires fix? for example when we do not use
      hires resource */
              gapi->hiresFix = 0;
      -       if( gapi->userOrientation == SDL_ORIENTATION_RIGHT )
      +       if( gapi->systemOrientation == gapi->userOrientation )
              {
      -               if( (width > GetSystemMetrics(SM_CYSCREEN)) || (height
      > GetSystemMetrics(SM_CXSCREEN)))
      +               if( (width > GetSystemMetrics(SM_CXSCREEN)) || (height
      > GetSystemMetrics(SM_CYSCREEN)))
                              gapi->hiresFix = 1;
              } else
      -               if( (width > GetSystemMetrics(SM_CXSCREEN)) || (height
      > GetSystemMetrics(SM_CYSCREEN)))
      -                       if( !((width == GetSystemMetrics(SM_CYSCREEN))
      && (height == GetSystemMetrics(SM_CXSCREEN)))) // user portrait,
      device landscape
      +               if( (width > GetSystemMetrics(SM_CYSCREEN)) || (height
      > GetSystemMetrics(SM_CXSCREEN)))
      +//                     if( !((width == gapi->gxProperties.cyHeight)
      && (height == gapi->gxProperties.cxWidth))) // user portrait, device
      landscape
                                      gapi->hiresFix = 1;
      
              switch( gapi->userOrientation )
      !! It used to query system metrics which return dimensions according to screen
      !! orientation, which can really be portrait, left landscape or right landscape.
      !! This is presumably incorrect because we couldn't care less about user mode
      !! dimensions - all we want are the GAPI framebuffer dimensions, which
      only match
      !! user dimensions in one of possible orientations.
      !! There's a fair dose of cargo cult programming involved in this fix, but it
      !! used to work only in one orientation (portrait for PDAs, where frame-buffer
      !! have same orientation as user screen), and now it works on all orientations.
      @@ -742,21 +746,30 @@
              WIN_FlushMessageQueue();
      
              /* Open GAPI display */
      -       if( !gapi->useVga && this->hidden->useGXOpenDisplay )
      +       if( !gapi->useVga && this->hidden->useGXOpenDisplay &&
      !this->hidden->alreadyGXOpened )
      +       {
      +               this->hidden->alreadyGXOpened = 1;
                      if( !gapi->gxFunc.GXOpenDisplay(SDL_Window, GX_FULLSCREEN) )
                      {
                              SDL_SetError("Couldn't initialize GAPI");
                              return(NULL);
                      }
      +       }
      
       #if REPORT_VIDEO_INFO
              printf("Video properties:\n");
              printf("display bpp: %d\n", gapi->gxProperties.cBPP);
              printf("display width: %d\n", gapi->gxProperties.cxWidth);
              printf("display height: %d\n", gapi->gxProperties.cyHeight);
      +       printf("system display width: %d\n", GetSystemMetrics(SM_CXSCREEN));
      +       printf("system display height: %d\n", GetSystemMetrics(SM_CYSCREEN));
              printf("x pitch: %d\n", gapi->gxProperties.cbxPitch);
              printf("y pitch: %d\n", gapi->gxProperties.cbyPitch);
              printf("gapi flags: 0x%x\n", gapi->gxProperties.ffFormat);
      +       printf("user orientation: %d\n", gapi->userOrientation);
      +       printf("system orientation: %d\n", gapi->userOrientation);
      +       printf("gapi orientation: %d\n", gapi->gapiOrientation);
      +
      
              if( !gapi->useVga && this->hidden->useGXOpenDisplay && gapi->needUpdate)
              {
      !! Previous version used to call gapi->gxFunc.GXOpenDisplay each time the video
      !! mode would be changed. You shouldn't, because this call has a
      meaning "Lock the
      !! GAPI framebuffer, designate it as busy", so the second call will fail (it is
      !! already locked/busy).
      !! Testing might not find that because most programs set up the video mode only
      !! once, but POWDER does this once in a while, so it crashed when in
      320x240 mode
      !! (640x480 mode doesn't use that code, it worked fine).
      diff -bru SDL-1.2.13/src/video/gapi/SDL_gapivideo.h
      SDL-1.2.13-new/src/video/gapi/SDL_gapivideo.h
      --- SDL-1.2.13/src/video/gapi/SDL_gapivideo.h   2007-12-31
      07:48:00.000000000 +0300
      +++ SDL-1.2.13-new/src/video/gapi/SDL_gapivideo.h       2008-10-16
      20:02:11.000000000 +0400
      @@ -132,12 +132,17 @@
       #define NUM_MODELISTS  4               /* 8, 16, 24, and 32 bits-per-pixel */
           int SDL_nummodes[NUM_MODELISTS];
           SDL_Rect **SDL_modelist[NUM_MODELISTS];
      +       // The orientation of the video mode user wants to get
      +       // Probably restricted to UP and RIGHT
              enum SDL_ScreenOrientation userOrientation;
              int invert;
              char hiresFix; // using hires mode without defining hires resource
       // --------------
              int useGXOpenDisplay; /* use GXOpenDispplay */
      +       int alreadyGXOpened;
           int w, h;
      +       // The orientation of GAPI framebuffer.
      +       // Never changes on the same device.
              enum SDL_ScreenOrientation gapiOrientation;
      
           void *buffer; // may be 8, 16, 24, 32 bpp
      @@ -153,6 +158,10 @@
              int startOffset; // in bytes
              int useVga;
              int suspended; // do not pu anything into video memory
      +       // The orientation of the system, as defined by SM_CXSCREEN
      and SM_CYSCREEN
      +       // User can change it by using 'screen layout' in system options
      +       // Restricted to UP or RIGHT
      +       enum SDL_ScreenOrientation systemOrientation;
       };
      
      !! This is a flag variable, see the previous comment
      !! And yet another orientation: now we have to keep three of them in mind.
      diff -bru SDL-1.2.13/src/video/wincommon/SDL_sysevents.c
      SDL-1.2.13-new/src/video/wincommon/SDL_sysevents.c
      --- SDL-1.2.13/src/video/wincommon/SDL_sysevents.c      2007-12-31
      07:48:02.000000000 +0300
      +++ SDL-1.2.13-new/src/video/wincommon/SDL_sysevents.c  2008-10-16
      20:02:12.000000000 +0400
      @@ -160,10 +160,22 @@
       #endif */
                              }
                              break;
      +               // FIXME: Older version used just SDL_VideoSurface->(w, h)
      +               // w and h are "clipped" while x and y are "raw", which caused
      +               // x in former and y in latter case to be clipped in a
      wrong direction,
      +               // thus offsetting the coordinate on 2 x clip pixels
      +               //     (like, 128 for 640 -> 512 clipping).
      +               // We will now try to extract and use raw values.
      +               // The way to do that RIGHT is do
      (orientation-dependent) clipping before
      +               // doing this transform, but it's hardly possible.
      +
      +               // SEE SDL_mouse.c /ClipOffset to understand these calculations.
                      case SDL_ORIENTATION_RIGHT:
                              if (!SDL_VideoSurface)
                                      break;
      -                       rotatedX = SDL_VideoSurface->w - *y;
      +                       rotatedX = (2 *
      ((SDL_VideoSurface->offset%SDL_VideoSurface->pitch)/
      +                               SDL_VideoSurface->format->BytesPerPixel))
      +                               + SDL_VideoSurface->w - *y;
                              rotatedY = *x;
                              *x = rotatedX;
                              *y = rotatedY;
      @@ -172,7 +184,8 @@
                              if (!SDL_VideoSurface)
                                      break;
                              rotatedX = *y;
      -                       rotatedY = SDL_VideoSurface->h - *x;
      +                       rotatedY = (2 *
      (SDL_VideoSurface->offset/SDL_VideoSurface->pitch))
      +                               + SDL_VideoSurface->h - *x;
                              *x = rotatedX;
                              *y = rotatedY;
                              break;
      !! That's the trickest part, hence the long comment.
      !! GAPI would really support only 320x240 or 640x480 mode, if application
      !! requested the different screen size (as POWDER did, wishing
      256x192), then SDL
      !! is going to grab the first mode that fits the requested, and pad the screen
      !! with black bars (as they do with wide-screen films).
      !! It would also get, say, 240x320 mode, and to turn it into 256x192 it would
      !! need to rotate mouse clicks.
      !! It worked, but one bug slipped through: it would receive mouse clicks
      !! unpadded, then rotate them, and then pad the black bars. The
      problem is: rotate
      !! is done by GAPI driver while padding is done by SDL core. SDL core
      doesn't know
      !! anything about rotating, so it would pad one of dimensions incorrectly.
      
      I understand that some of my claims (or code) might seem unbacked, but you can
      always grab the POWDER binary, compile your own libsdl with one or more of
      those fixes turned off, and see how weird it would misbehave. I can even supply
      you with those custom builds of libsdl if you don't want to set up the build
      environment for windows ce, you'll just need a PDA or a smartphone with it.
      
      I plan to take care of SDL on Windows CE as long as I maintain the POWDER port.
      POWDER is good for that because it:
      Employs both padded (with centered image, black bars) and unpadded
      (image occupies full screen) graphics; initializes video more than
      once; uses both 320x240 and 640x480 video; uses both stylus and
      buttons.
      
      There's still a list of unresolved issues which I'm planning to fix:
      1) Arrow buttons on PDA return weird scancodes compared to PC, this
      caused the game to misbehave before I've fixed that. You can see it on
      those diagrams:
      http://wrar.name/upload/powder-htc.png
      http://wrar.name/upload/powder-pda.png
      2) SDL (or underlying windows) doesn't care to rotate arrow presses
      when we're in a low-res GAPI mode, but it will rotate them in VGA mode
      (because of different screen orientations, the same arrow buttons can
      suddently mean different directions). Solution: we should stick to
      GAPI user orientation (the orientation the program supposedly wants)
      and rotate the keys on our own.
      _______________________________________________
      SDL mailing list
      SDL@lists.libsdl.org
      http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403235
      94a4eda4
  16. 05 Nov, 2008 1 commit
  17. 13 Oct, 2008 1 commit
  18. 15 Sep, 2008 2 commits
  19. 14 Sep, 2008 1 commit
  20. 08 Sep, 2008 1 commit
  21. 07 Aug, 2008 2 commits
  22. 25 Jul, 2008 1 commit
  23. 19 Jul, 2008 1 commit
  24. 05 Jul, 2008 1 commit
  25. 13 Apr, 2008 1 commit
    • Sam Lantinga's avatar
      Date: Sat, 5 Apr 2008 19:54:28 -0700 · f4270729
      Sam Lantinga authored
      From: "Chris Peterson"
      To: sdl@lists.libsdl.org
      Subject: [SDL] [PATCH] SDLMain.m: fix a bug and some warnings for Mac OS X
      
      Here are some small fixes for the src/main/macosx/SDLMain.m source
      file used by Mac OS X apps:
      
      1. setupWorkingDirectory() called chdir() within an assert(), which
      gets compiled out in non-debug builds.
      
      2. When some of gcc's optional warnings are enabled, it complains
      about some implicit casts and the use of #import in SDLMain.m.
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402750
      f4270729
  26. 31 Mar, 2008 1 commit
  27. 12 Mar, 2008 1 commit
  28. 29 Feb, 2008 2 commits