1. 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
  2. 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
  3. 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
  4. 05 Nov, 2008 1 commit
  5. 13 Oct, 2008 1 commit
  6. 15 Sep, 2008 2 commits
  7. 14 Sep, 2008 1 commit
  8. 08 Sep, 2008 1 commit
  9. 07 Aug, 2008 2 commits
  10. 25 Jul, 2008 1 commit
  11. 19 Jul, 2008 1 commit
  12. 05 Jul, 2008 1 commit
  13. 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
  14. 31 Mar, 2008 1 commit
  15. 12 Mar, 2008 1 commit
  16. 29 Feb, 2008 4 commits
    • Sam Lantinga's avatar
      We probably want to still do this for fullscreen surfaces, since we may be · eb403e24
      Sam Lantinga authored
      clearing the edges of a centered video mode or garbage left over from a mode
      switch.
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402736
      eb403e24
    • Sam Lantinga's avatar
      Added patch note for Sylvain's patch · 580dd6f9
      Sam Lantinga authored
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402735
      580dd6f9
    • Sam Lantinga's avatar
      Date: Thu, 28 Feb 2008 22:54:29 +0100 · 17bd2240
      Sam Lantinga authored
      From: Sylvain Beucler
      Subject: [SDL] SDL window resize and flicker
      
      I have a resizable SDL window, and when it's resized, the surface goes
      black _and_ is flushed to screen before I have a chance to redraw
      it. This causes flicker.
      
      The super-small attached patch fixes this issue by avoiding a
      SDL_Flip() right after the window resize. What do you think?
      
      This SDL_ClearSurface function is only called once in the code, in
      SDL_SetVideoMode, and as far as I can tell the patch doesn't introduce
      other changes than getting rid of the flicker.
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402734
      17bd2240
    • Sam Lantinga's avatar
      * Added configure option --enable-screensaver, to allow enabling the screensaver by default. · 5ad5a081
      Sam Lantinga authored
      * Use XResetScreenSaver() instead of disabling screensaver entirely.
      
      Full discussion summary from Erik on the SDL mailing list:
      
      Current behaviour
      =================
      
      SDL changes the user's display power management settings without
      permission from the user and without telling the user.
      
      The interface that it uses to do so is DPMSDisable/DPMSEnable, which
      should only ever be used by configuration utilities like KControl, never
      by normal application programs, let alone by the libraries that they
      use. Using an interface that is not at all intended for what SDL tries
      to achieve means that it will not work as it should. Firstly, the power
      management is completely disabled during the whole lifetime of the SDL
      program, not only when it should be. Secondly, it makes SDL
      non-reentrant, meaning that things will break when multiple SDL programs
      are clients of the same X server simultaneously. Thirdly, no cleanup
      mechanism ensures that the setting is restored if the client does not do
      that (for example if it crashes).
      
      In addition to that, this interface is broken on xorg,
      [http://bugs.freedesktop.org/show_bug.cgi?id=13962], so what SDL tries
      to do does not work at all on that implementation of the X Window
      System. (The reason that the DPMSEnable works in KControl is that it
      calls DPMSSetTimeout immediately after,
      [http://websvn.kde.org/tags/KDE/3.5.9/kdebase/kcontrol/energy/energy.cpp?annotate=774532#l343]).
      
      
      The problems that the current behaviour causes
      ==============================================
      1. Information leak. When the user is away, someone might see what the
      user has on the display when the user counts on the screensaver
      preventing this. This does not even require physical access to the
      workstation, it is enough to see it from a distance.
      2. Draining battery. An SDL program that runs on a laptop will quickly
      drain the battery while the user is away. The system will soon shut down
      and require recharging before being usable again, while it should in
      fact have consumed very little energy if the user's settings would have
      been obeyed.
      3. Wasting energy. Even if battery issues are not considered, energy as
      such is wasted.
      4. Display wear. The display may be worn out.
      
      
      The problems that the current behaviour tries to solve
      ======================================================
      
      1. Preventing screensaver while playing movies.
         Many SDL applications are media players. They have reasons to prevent
      screensavers from being activated while a movie is being played. When a
      user clicks on the play button it can be interpreted as saying "play
      this movie, but do not turn off the display while playing it, because I
      will watch it even though I do not interact with the system".
      
      2. Preventing screensaver when some input bypasses X.
         Sometimes SDL uses input from another source than the X server, so
      that the X server is bypassed. This obviously breaks the screensaver
      handling. SDL tries to work around that.
      
      3. Preventing screensaver when all input bypasses X.
         There is something called Direct Graphics Access mode, where a
      program takes control of both the display and the input devices from the
      X server. This obviously means that the X server can not handle the
      screensaver alone, since screensaver handling depends on input handling.
      SDL does not do what it should to help the X server to handle the
      screensaver. Nor does SDL take care of screeensaver handling itself. SDL
      simply disables the screensaver completely.
      
      
      How the problems should be solved
      =================================
      
      The correct way for an application program to prevent the screensaver
      under X is to call XResetScreenSaver. This was recently discovered and
      implemented by the mplayer developers,
      [http://svn.mplayerhq.hu/mplayer?view=rev&revision=25637]. SDL needs to
      wrap this in an API call (SDL_ResetScreenSaver) and implement it for the
      other video targets (if they do not have a corresponding call, SDL
      should do what it takes on that particular target, for example sending
      fake key events).
      
      1. When a movie is played, the player should reset the screensaver when
      the animation is advanced to a new frame. The same applies to anything
      similar, like slideshows.
      
      2. When the X server is handling input, it must handle all input
      (keyboards, mice, gamepads, ...). This is necessary, not only to be able
      to handle the screensaver, but also so that it can send the events to
      the correct (the currently active) client. If there is an input device
      that the X server can not handle for some reason (such as lack of Plug
      and Play capability), the program that handles the device as a
      workaround must simulate what would happen if the X server would have
      handled the device, by calling XResetScreenSaver when input is received
      from the device.
      
      3. When the X server is not handling the input, it depends on the
      program that does to call XResetScreenSaver whenever an input event
      occurs. Alternatively the program must handle the screensaver countdown
      internally and call XActivateScreenSaver.
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402733
      5ad5a081
  17. 26 Feb, 2008 1 commit
    • Sam Lantinga's avatar
      Date: Tue, 05 Feb 2008 01:41:08 -0500 · d19e81db
      Sam Lantinga authored
      From: Mike Miscevic
      Subject: SDL and capslock/numlock
      
      Find attached a patch against SDL-1.2.13 for check of SDL_NO_LOCK_KEYS
      environment variable. This differs slightly from other patches I've seen
      in that it has 3 modes:
      
      Disable CAPS-LOCK and NUM-LOCK supression of down+up key events,
      suitable for games where the player needs these keys to do more than
      just toggle. A value of 1 will effect both CAPS-LOCK and NUM-LOCK. A
      value of 2 will effect only CAPS-LOCK. A value of 3 will effect only
      NUM-LOCK. All other values have no effect.
      
      This works for me and has been tested on:
      - Fedora 8 64-bit
      - SRCRPM SDL-1.2.13-1.fc8.src.rpm
      - Emeny Territory Quake Wars (ETQW), native 32-bit commercial game
      
      --Mike Miscevic
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402732
      d19e81db
  18. 04 Feb, 2008 1 commit
    • Ryan C. Gordon's avatar
      Date: Sat, 2 Feb 2008 22:08:05 +0100 · dec971d6
      Ryan C. Gordon authored
      From: Marcus von Appen
      To: sdl@lists.libsdl.org
      Subject: [SDL] [Patch] SDL-1.2 SDL_revcpy() asm patch for the cld flag
      
      Hi,
      
      as reported through the FreeBSD bug tracking system in SDL 1.2.13 (and
      in the 1.2 branch, if I see that correctly) the SDL_revcpy() macro sets
      the direction flag (std), but does not clear it afterwards (cld), which
      is wrong according to the GCC and SYS V specs.  This can cause some
      weird side effects, which in turn can lead to memory corruption.
      
      You can read the full report with a detailed description and test
      program at http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/120052
      
      Attached is the submitted patch, which fixes the issue.
      
      Regards
      Marcus
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402713
      dec971d6
  19. 25 Jan, 2008 1 commit
  20. 24 Jan, 2008 1 commit
    • Sam Lantinga's avatar
      Damien Carbery fixed bug #542 · a09301c4
      Sam Lantinga authored
      In SDL 1.2.13 sdl.m4 the AM_PATH_SDL function looks for sdl-config.
      It sets the PATH:
       PATH="$prefix/bin:$prefix/usr/bin:$PATH"
      but does not save the current PATH or restore the current PATH at the end.
      
      This breaks the build on Solaris because we have GNU tools in another dir
      (listed at the top of PATH) but non-GNU tools with the same names in
      $prefix/bin. Later configure tests finds the non-GNU tools and quits in error
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402710
      a09301c4
  21. 03 Jan, 2008 2 commits
    • Sam Lantinga's avatar
      Updates for building on Windows CE using mingw32ce cross compiler: · 76b4e077
      Sam Lantinga authored
      http://sourceforge.net/mailarchive/forum.php?thread_name 0703291652.38437.jwalt%40garni.ch&forum_name=cegcc-devel
      
      Hi!
      
      I just managed to compile SDL for Windows CE using the "mingw32ce"
      configuration of http://cegcc.sourceforge.net. Test programs work as expected
      (except for those using signals -- no POSIX on mingw32ce), and I didn't yet
      encounter any problem.
      
      While it was a pain to get everything compiled and running, the changes to
      SDL are actually quite small (see attached SDL-ce.diff).
      
      Unfortunately, the win32 headers shipped with cegcc are not 100% correct, and
      it feels quite messy to work around them in SDL code, so those headers will
      also need to be patched. (Attachment: win32api-ce.diff)
      
      Since I had to apply the libtool patch from the cegcc patch, I have also ad ded
      my copy of aclocal.m4 for SDL. I had to modify the cegcc libtool patch to
      use "lt_cv_deplibs_check_method=pass_all" for mingw32ce, otherwise libtool
      would not recognize the import libraries as valid for dynamic linking.
      
      All these changes should not affect non-WinCE builds, so they could be
      included in mainline SDL.
      
      If you need some docs, you can use this description for a cross-compilation
      README:
      
      1) get cegcc from http://cegcc.sourceforge.net
      2) build and install the "mingw32ce" variant (see cegcc installation docs)
      3) patch w32api-headers (if not yet included in cegcc)
      4) setup environment (customize the first three lines as you like):
      PREFIX=/opt/mingw32ce
      TARGET=arm-wince-mingw32ce
      BUILD=`uname -m`-pc-linux-gnu
      export PATH="$PREFIX/bin:$PREFIX/$TARGET/bin:$PREFIX/local/bin:$PATH"
      export CFLAGS="${CFLAGS:- -O2 -g} -I$PREFIX/local/include"
      export CPPFLAGS="${CPPFLAGS:- -O2 -g} -I$PREFIX/local/include"
      export CXXFLAGS="${CXXFLAGS:- -O2 -g} -I$PREFIX/local/include"
      export LDFLAGS="${LDFLAGS:- -O2 -g} -L$PREFIX/local/lib"
      export HOST_CC="gcc"
      export CC="$PREFIX/bin/$TARGET-gcc"
      export CXX="$PREFIX/bin/$TARGET-g++"
      export LD="$PREFIX/bin/$TARGET-ld"
      export AS="$PREFIX/bin/$TARGET-as"
      export AR="$PREFIX/bin/$TARGET-ar"
      export RANLIB="$PREFIX/bin/$TARGET-ranlib"
      export CONFIG_SHELL="/bin/sh"
      5) build and install
      ./configure --target=$TARGET --host=$TARGET --build=$BUILD
      make
      make install
      6) use (4) and (5) for any SDL-using software you want to cross-compile
      7) copy $PREFIX/local/bin/SDL-1-2-0.dll into your executable directory on the WinCE machine
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402703
      76b4e077
    • Sam Lantinga's avatar
      Updated config scripts · 7c24058d
      Sam Lantinga authored
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402701
      7c24058d
  22. 01 Jan, 2008 1 commit
    • Sam Lantinga's avatar
      Fixed bug #531 · 8d067e01
      Sam Lantinga authored
      The static libs should include all the other libraries the dynamic SDL library
      links with.
      
      sdl.pc should include these so "pkg-config sdl --libs --static" works
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402699
      8d067e01
  23. 31 Dec, 2007 5 commits
  24. 30 Dec, 2007 2 commits
  25. 29 Dec, 2007 5 commits
    • Sam Lantinga's avatar
      Fixed bug #510 · 1930946b
      Sam Lantinga authored
      Oops, we were disabling the screensaver before checking SDL_VIDEO_ALLOW_SCREENSAVER
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402685
      1930946b
    • Sam Lantinga's avatar
      Guillaume Borios fixed bug #508 · 46e4acae
      Sam Lantinga authored
      When unicode translation is ON, pressing the escape key raise an NSBeep()
      because the NSTextView interprets the key as a special command (in that case
      impossible to interpret)... The NSTextView instance should replaced by
      something subclassed so that doCommandBySelector: does nothing.
      
      Example code :
      
      @interface SDLTranslatorResponder : NSTextView
      {
      }
      - (void) doCommandBySelector:(SEL)myselector;
      @end
      
      @implementation SDLTranslatorResponder
      - (void) doCommandBySelector:(SEL) myselector {}
      @end
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402683
      46e4acae
    • Sam Lantinga's avatar
      Fixed return value for iconifying the window in a couple spots. · c4370afc
      Sam Lantinga authored
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402682
      c4370afc
    • Sam Lantinga's avatar
      J. Snell fixed bug #482 · 61b0ff7d
      Sam Lantinga authored
      Fixed arguments used with sdl-config in sdl.m4
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402680
      61b0ff7d
    • Sam Lantinga's avatar
      Fixed bug #478 · b8dac674
      Sam Lantinga authored
      Take the min and max values into account.
      
      --HG--
      branch : SDL-1.2
      extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402678
      b8dac674