1. 07 Mar, 2011 4 commits
    • Sam Lantinga's avatar
      Fixed compiler warnings · 924f55ee
      Sam Lantinga authored
      924f55ee
    • Sam Lantinga's avatar
      Fixed compiler warning · 253835bd
      Sam Lantinga authored
      253835bd
    • Sam Lantinga's avatar
      Fixed compiler warning · a1dfcdb7
      Sam Lantinga authored
      a1dfcdb7
    • Sam Lantinga's avatar
      a Nintendo ds update · 6e05dee6
      Sam Lantinga authored
      Frank Zago to SDL
      
      For those interested, here's a snapshot of the current port. I did away with
      most of the previous attempt which was based of the sprite engine, because the
      support is limited to 128 64x64 sprites. Instead I'm using the gl engine.
      The drawback is that either the frame buffer or the gl engine can be used
      because there's not that much video memory on a DS.
      
      With minimal changes to their code, it can now run the following tests: ,
      testspriteminimal, testscale and testsprite2. The last 2 only run under the
      emulator for some reason. The tests are not included in this patch for size
      reason.
      
      In 16 bits mode, the 16th bit indicated transparency/opacity. If 0, the color
      is not displayed. So I had to patch a few core file to set that bit to 1. See
      patch for src/video/SDL_RLEaccel.c and src/video/SDL_blit.h. Is that ok, or is
      there a better way ?
      
      The nds also doesn't support windowed mode, so I force the fullscreen in
      src/video/SDL_video.c.  Is that ok, or is there a better way ?
      
      To get a smaller library, I also tried to not compile the software renderer
      when the hardware renderer is compiled in, and define SDL_NO_COMPAT; however
      the compilation eventually fails in SDL_surface.c because SDL_SRCCOLORKEY is
      defined in SDL_compat.h. Is SDL_NO_COMPAT only for application and not SDL
      itself ?
      6e05dee6
  2. 05 Mar, 2011 1 commit
  3. 01 Mar, 2011 8 commits
  4. 28 Feb, 2011 11 commits
  5. 27 Feb, 2011 1 commit
  6. 26 Feb, 2011 4 commits
  7. 25 Feb, 2011 3 commits
    • Sam Lantinga's avatar
    • Sam Lantinga's avatar
      Tracking rectangles had some problems, it's easier to track things directly. ... · 82a00575
      Sam Lantinga authored
      Tracking rectangles had some problems, it's easier to track things directly.  (fixes bug 1149, 1147, 1146)
      82a00575
    • Sam Lantinga's avatar
      Fixed bug 1145 (GL Context creation fails for OpenGL 3.2 + Alpha buffer with X11 BadMatch) · 1a2a914b
      Sam Lantinga authored
       Matthias      2011-02-23 09:37:51 PST
      
      Please view the attached source file. Using this minimal program (as attached),
      it creates an OpenGL 2.0 context with a cleared color buffer. If I set the
      OpenGL version to 3.2, the function SDL_GL_CreateContext fails (or more
      specifically, glXMakeCurrent fails) with an X11 BadMatch error:
      
      
      X Error of failed request:  BadMatch (invalid parameter attributes)
        Major opcode of failed request:  128 (GLX)
        Minor opcode of failed request:  5 (X_GLXMakeCurrent)
        Serial number of failed request:  153
        Current serial number in output stream:  153
      
      
      Also note that if I do not specify the alpha buffer size, the program works for
      OpenGL 2.0 and OpenGL 3.2.
      
      After some further analysis, I believe I have found the problem. The specific
      issue is in:
      
      SDL_x11opengl.c::X11_GL_CreateContext.
      
      Note that for OpenGL 3.2 contexts, the GLXFBConfig to use is chosen as the best
      match from glXChooseFBConfig. However, opengl attributes originally set with
      SDL_GL_SetAttribute are not mapped to GLX attributes and then passed to the
      glXChooseFBConfig function. According to the GLX 1.4 specification, if the
      attributes are not specified, the function falls back to defaults (which, in
      this particular case, prefer alpha channel size == 0).
      
      For testing purposes, I modified the call to glXChooseFBConfig to look
      something like this:
      
      
      int glxAttribs[] =
      {
       GLX_RED_SIZE,8,
       GLX_GREEN_SIZE,8,
       GLX_BLUE_SIZE,8,
       GLX_ALPHA_SIZE,8,
       None
      };
      
      if (!glXChooseFBConfig ||
       !(framebuffer_config = glXChooseFBConfig(display, DefaultScreen(display),
      glxAttribs, &fbcount)))
      {
       ...
      }
      
      
      The best match GLXFBConfig then supports 8 bit alpha channel. The program then
      works as intended.
      
      
      Hope this helps!
      1a2a914b
  8. 24 Feb, 2011 1 commit
  9. 23 Feb, 2011 3 commits
  10. 22 Feb, 2011 4 commits