Commit Graph

820 Commits

Author SHA1 Message Date
Ryan C. Gordon
bc5eaadbe9 Forgot to add this with the previous Carbon/Cocoa/X11 commit. 2005-09-08 06:17:23 +00:00
Ryan C. Gordon
41af118d8b The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
To: SDL Developers <sdl@libsdl.org>
From: =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb@algonet.se>
Date: Mon, 30 May 2005 23:29:04 +0200
Subject: [SDL] Mac OS X Video Drivers [patch]

I've updated/added the Carbon and X11 video drivers
to the Mac OS X port of SDL 1.2 (the CVS version),
and made the Cocoa driver and runtime *optional*.

The default is still Cocoa, and the "Quartz" driver.
But you can now also use "toolbox" for Carbon, and
"x11" for running with Apple's (or other) X11 server:

export SDL_VIDEODRIVER=x11
export SDL_VIDEO_GL_DRIVER=/usr/X11R6/lib/libGL.dylib

It also checks if the frameworks are available, by a:
#include <Carbon/Carbon.h> or #import <Cocoa/Cocoa.h>
(this should make it configure on plain Darwin as well?)


Here are the new configure targets:
   --enable-video-cocoa    use Cocoa/Quartz video driver default=yes
   --enable-video-carbon   use Carbon/QuickDraw video driver default=yes
   --enable-video-x11	   use X11 video driver default=no

./configure --enable-video-cocoa --enable-video-carbon
--enable-video-x11 \
	     --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib

The Carbon version is just an updated version of the old
SDL driver for Mac OS 9, and could probably be improved...
(but it does work, including the Carbon version of SDLmain)

If you disable cocoa, you can run with -framework Carbon only,
and the C version of SDL_main.c. And if you disable carbon too,
you can still use the X11 version which doesn't require SDLmain.

I updated the DrawSprocket version, but did not include it.
(no blitters or VRAM GWorlds etc. available on OS X anyway)
Besides for Mac OS 9, I don't think there's any use for it ?

And note that any performance on Mac OS X equals OpenGL anyway...
You can get "fair" software SDL results on captured CG displays,
but for decent frame rates you need to be using GL for rendering.


Finally, here is the patch itself:
http://www.algonet.se/~afb/SDL-12CVS-macvideo.patch

--anders

PS. It says "video", but as usual it applies to mouse/keyboard too.


------


To: A list for developers using the SDL library <sdl@libsdl.org>
From: =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb@algonet.se>
Date: Sun, 4 Sep 2005 10:02:15 +0200
Subject: [SDL] Updated Mac patch

Updated the previous Mac patch to disable Carbon by default.
Also "fixed" the SDL.spec again, so that it builds on Darwin.

http://www.algonet.se/~afb/SDL-1.2.9-mac.patch
Also applied fine to SDL12 CVS, when I tried it.
2005-09-08 06:16:14 +00:00
Sam Lantinga
015962f09f *** empty log message *** 2005-08-25 20:31:58 +00:00
Ryan C. Gordon
6dd11863bd Fix for bug reported by Michael Benfield on the SDL mailing list:
"I'm on Mac OS 10.3.9 with a CVS SDL 1.2.9.

My understanding is that SDL_CDResume is supposed to resume play after
calling SDL_CDPlay. It doesn't on my system. It returns 0 but nothing happens.

Any ideas?

Thanks.

Mike Benfield"

--ryan.
2005-08-22 14:38:31 +00:00
Ryan C. Gordon
1056c1fa5b Apparently MacOS X will sometimes pass command line arguments to a Cocoa
app as an openFile() message, so we have to make sure we were launched from
 the Finder before accepting these as drag'n'drop documents, or they will just
 duplicate what's already in argc/argv.
2005-08-22 14:18:15 +00:00
Sam Lantinga
a2a30ba936 Date: Fri, 08 Jul 2005 22:43:48 +0200 (CEST)
From: Jiri Svoboda
Subject: [SDL] signal handling bug

I encountered the following bug:
SDL doesn't reset signal handlers for SIGTERM and SIGINT, after calling SDL_Quit these remain hooked to the handler in SDL_quit.c, being translated into SDL_QUIT events.

Consequently an application that issues a SDL_Quit and remains running will ignore any SIGTERM or SIGINT., and specifically CTRL-C presses.
2005-08-21 06:18:54 +00:00
Ryan C. Gordon
f35e5d6e9b Patch by me to fix crash described below.
--ryan.



To: sdl@libsdl.org
From: Rainer Deyke <rainerd@eldwood.com>
Date: Tue, 16 Aug 2005 01:08:18 -0600
Subject: [SDL] Bug report: SDL_CreateRGBSurface with SDL_HWSURFACE crashes

If SDL is in full-screen mode with a hardware video surface on OS X,
SDL_CreateRGBSurface with SDL_HWSURFACE crashes.  The crash occurs on
line 109 of SDL_Surface.c.  This was tested on OS X 10.3.9 with both SDL
1.2.8 and the latest CVS.  Here is a small C++ program that demonstrates
the problem:

#include "SDL.h"
#include <stdio.h>

namespace {

   void wait_for_key()
   {
     SDL_Event e;
     printf("%d\n", SDL_GetAppState());
     while (SDL_WaitEvent(&e)) {
       if (e.type == SDL_KEYDOWN || e.type == SDL_QUIT) return;
     }
   }

}

int main(int, char *[])
{
   SDL_Init(SDL_INIT_VIDEO);
   SDL_Surface *screen
     = SDL_SetVideoMode(640, 480, 32, SDL_FULLSCREEN | SDL_HWSURFACE);
   SDL_Surface *s = SDL_CreateRGBSurface(SDL_HWSURFACE, 640, 480, 32,
       screen->format->Rmask, screen->format->Gmask,
       screen->format->Bmask, screen->format->Amask);
   wait_for_key();
   if (s) SDL_FreeSurface(s);
   SDL_Quit();
   printf("Success!\n");
   return 0;
}
2005-08-18 06:46:32 +00:00
Ryan C. Gordon
cba4eddbe8 SDL_GetAppState() correction when toggling fullscreen on OSX.
Patch by me to address this comment on the SDL mailing list:

"There appears to be a serious bug with SDL_GetAppState on OS X (10.3.9). When
first running in windowed mode and then switching to full screen mode by
calling SDL_SetVideoMode, SDL_GetAppState returns 4 (SDL_APPACTIVE) instead of
7 (SDL_APPMOUSEFOCUS | SDL_APPINPUTFOCUS | SDL_APPACTIVE).  However, the SDL
application clearly does have the keyboard focus, since it is able to receive
keyboard events."

--ryan.
2005-08-18 06:18:30 +00:00
Ryan C. Gordon
0ac2e89e4e From: Jim Paris <jim_jtan_com>
To: sdl@libsdl.org
Date: Sat, 9 Jul 2005 13:59:33 -0400
Subject: [PATCH] fix locking in src/timer/SYS_timer.c

SDL_SetTimer has a typo in CVS.  This code was added since 1.2.8.  The
result is that the SDL_timer_mutex is locked twice and never unlocked,
breaking systems that use a threaded timer implementation.

-jim
2005-08-17 00:19:45 +00:00
Patrice Mandin
94005aeebb Sleep a bit less in thread 2005-08-16 09:57:16 +00:00
Ryan C. Gordon
8d85ed9bcd Fixed mismerged patch. 2005-08-11 05:08:28 +00:00
Ryan C. Gordon
1797209790 Patches to make SDL compatible with Win95 again. 2005-08-11 01:02:01 +00:00
Ryan C. Gordon
f7558acf00 In MacOSX, when drag'n'dropping a document on an SDL app, or double-clicking a
document associated with the app, the document(s) are passed to SDL_main()
 as if they were command line arguments. Otherwise, the command line is always
 empty and there is no way for the app to recover this information.
2005-08-11 00:56:16 +00:00
Patrice Mandin
dea7c00cbf Use MiNT thread to update DMA pointers instead of unusable MFP interrupt 2005-08-10 13:29:49 +00:00
Patrice Mandin
b11ab46163 Revert back to 1.6 revision 2005-08-09 07:28:35 +00:00
Patrice Mandin
74409e8454 And do not forget the correct test 2005-08-08 08:17:35 +00:00
Patrice Mandin
54decd907f Was checking wrong address for ACIA MIDI 2005-08-08 08:06:05 +00:00
Patrice Mandin
a5babe87d5 Can use both clocks of FDI interface on Falcon, plus digital output 2005-08-07 12:17:28 +00:00
Patrice Mandin
4b7f8cfcb2 Disable XBIOS in interrupt also under Magic 2005-07-29 10:59:49 +00:00
Patrice Mandin
05a866b5ef Disable Centscreen screensaver 2005-07-29 10:59:02 +00:00
Patrice Mandin
085c49ae82 Tell user how many bytes are needed 2005-07-27 19:46:59 +00:00
Patrice Mandin
490d31293d Tell SDL to notfree my video surfaces (Damn, no how-to write a SDL driver) 2005-07-27 19:18:10 +00:00
Patrice Mandin
8fbcf757f8 Revert back change between 1.29 and 1.30 2005-07-27 16:30:12 +00:00
Patrice Mandin
4999048fe1 Revert back screen centering when using c2p 2005-07-21 22:21:51 +00:00
Patrice Mandin
655f401024 Checking external clock on DSP port was leaving audio crossbar in limbo state 2005-07-21 21:33:15 +00:00
Sam Lantinga
babffe4274 Date: Fri, 15 Jul 2005 08:29:01 +0100
From: "alan buckley"
Subject: SDL Improved semiphore implementation for RISC OS (version 2)

I've attached a new version of the patch for the RISC OS
semaphore processing (in a zip file) that updates it to use
the improved semaphores support in UnixLiib.
2005-07-21 06:19:18 +00:00
Patrice Mandin
55f4da3899 Set MFP interrupt at end of frame 2005-07-20 17:47:18 +00:00
Patrice Mandin
3ee81473a0 Move GSXB callback to C source 2005-07-20 17:44:11 +00:00
Patrice Mandin
2a5e3ab7d5 Reserve space in system buffer to call XBIOS from interrupt 2005-07-20 17:40:58 +00:00
Patrice Mandin
fd532c4b52 XBIOS in interrupt not usable under MiNT 2005-07-20 17:39:10 +00:00
Patrice Mandin
ef4847a370 Set hardware palette to black in True Colour mode 2005-07-18 13:42:57 +00:00
Patrice Mandin
30b4bc3049 Save all registers on interrupt 2005-07-17 07:11:43 +00:00
Patrice Mandin
9fca0936de Forgot variable declaration 2005-07-07 22:51:59 +00:00
Patrice Mandin
4d1afbafef Correctly process top/bottom event messages 2005-07-07 15:29:38 +00:00
Patrice Mandin
0ffad03074 Send window to the bottom 2005-07-07 15:06:38 +00:00
Patrice Mandin
43f9b79c0f Don't use both mouse events for the same task 2005-07-07 13:38:22 +00:00
Patrice Mandin
c21f1b1692 Don't generate multiple mouse focus events 2005-07-07 12:10:30 +00:00
Patrice Mandin
2e24729a57 Cleanup C2P routine 2005-06-30 12:03:19 +00:00
Patrice Mandin
c822f38aa9 4bits screen also has hardware palette 2005-06-30 12:02:25 +00:00
Patrice Mandin
22c660a93e Was not using firstcolor parameter 2005-06-30 08:20:53 +00:00
Patrice Mandin
055a351248 Avoid generating multiple key press/release messages for the same key 2005-06-29 20:32:46 +00:00
Patrice Mandin
a88ae36162 Call old interrupt when receiving MIDI stuff 2005-06-29 16:18:46 +00:00
Patrice Mandin
14754df86f Remove debug code 2005-06-29 16:18:08 +00:00
Patrice Mandin
3441262a3d Forgot enumeration value for Atari clones 2005-06-25 18:21:13 +00:00
Ryan C. Gordon
cd3bfd9c92 Patch from Antonio SJ Musumeci:
"
This code with SDL-1.2.8 and CVS:

#include <stdio.h>
#include <stdlib.h>
#include <SDL.h>

int
main(int argc, char** argv)
{
   char alphabet[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
   char buffer_file[27] = {0};
   char buffer_mem[27]  = {0};
   int rv_file;
   int rv_mem;
   FILE* file_ptr;
   SDL_RWops* rwop_file;
   SDL_RWops* rwop_mem;

   file_ptr = fopen("./blah", "w");
   fwrite(alphabet, 1, sizeof(alphabet), file_ptr);
   fclose(file_ptr);

   rwop_mem  = SDL_RWFromMem(alphabet, sizeof(alphabet));
   rwop_file = SDL_RWFromFile("./blah", "r");
   rv_mem  = SDL_RWread(rwop_mem , buffer_mem,  5, 6);
   rv_file = SDL_RWread(rwop_file, buffer_file, 5, 6);
   printf("From File: %d %s\n"
          "From Mem:  %d %s\n",
	 rv_file,
	 buffer_file,
	 rv_mem,
	 buffer_mem);
   printf("Seek end of File: %d\n"
	 "Seek end of Mem:  %d\n",
	 SDL_RWseek(rwop_file, 0, SEEK_END),
	 SDL_RWseek(rwop_mem , 0, SEEK_END));
   SDL_RWclose(rwop_file);
   SDL_RWclose(rwop_mem);

   return 0;
}


Produces this output:

 From File: 5 ABCDEFGHIJKLMNOPQRSTUVWXYZ
 From Mem:  5 ABCDEFGHIJKLMNOPQRSTUVWXY
Seek end of File: 26
Seek end of Mem:  26
"

--ryan.
2005-06-24 12:48:38 +00:00
Ryan C. Gordon
4fc45bbcb3 The Darwin/MacOSX joystick code is largely copied from the HID Utilities
package...make the symbols defined by HID Utilities static inside SDL so that
 an app can link against their own copy of this package without symbol clash.
2005-06-15 23:41:57 +00:00
Patrice Mandin
e23ba20761 [PATCH] SDL_GetVideoMode() do not find the best video mode
The current GetVideoMode() function stops at the first mode which has any
dimensions smaller than the one asked, and gives the previous in the list.

If I ask 336x224 with this list:
768x480 768x240 640x400 640x200 384x480 384x240 320x400 320x200
SDL will give me 640x400, because 640x200 as height smaller than what I
asked.

However the best mode is the smaller which has both dimensions bigger
than the one asked (384x240 in my example).

This patch fixes this, plus it does not rely on a sorted video mode list.
2005-06-12 16:12:55 +00:00
Patrice Mandin
e6e533fa79 Use wrong line length of menubar save buffer 2005-06-07 13:30:06 +00:00
Patrice Mandin
32d4d4110d Save/restore system palette when application topped/untopped 2005-06-07 11:52:46 +00:00
Patrice Mandin
48c857dd70 Another forgotten variable declaration 2005-06-06 21:50:26 +00:00