Mercurial > sdl-ios-xcode
view README.NanoX @ 1211:304d8dd6a989
To: sdl@libsdl.org
From: Christian Walther <cwalther@gmx.ch>
Date: Wed, 28 Dec 2005 12:13:20 +0100
Subject: [SDL] Fix for opening documents on Mac OS X < 10.4
The current code in SDLMain.m that transforms documents opened from the
Finder into command-line arguments (introduced in revision 1.14,
2005-08-11) uses the methods -[NSString lengthOfBytesUsingEncoding:] and
-[NSString getCString:maxLength:encoding:], which are only available in
Mac OS X 10.4.
Compiling this code on 10.3 produces warnings, and running it (i.e.
starting an SDL application by opening a document) leads to weird
behavior which I didn't investigate in detail ("*** -[NSCFString
lengthOfBytesUsingEncoding:]: selector not recognized" is printed to the
console log, and the SDL window never opens).
The attached patch removes the offending calls and uses -[NSString
UTF8String] instead, which is available everywhere. Tested on 10.3.9,
and I see no reason why it shouldn't also work on 10.2 and 10.4.
Two further comments:
* The comment above the -[SDLMain application: openFile:] implementation
says "You need to have a CFBundleDocumentsType section in your
Info.plist to get this message, apparently." This is not the case in my
experience - it worked just fine with a hand-built bare-bones
application consisting only of Test.app/Contents/MacOS/test, without any
Info.plist (although you have to press the option and command keys for
such an application to accept a dragged file).
* I took the liberty of cleaning up another area of SDLMain.m: I changed
"CustomApplicationMain (argc, argv)" to "CustomApplicationMain (int
argc, char **argv)". This avoids the "type of `argv' defaults to `int'"
warnings, and I'm not sure if leaving out the types could cause problems
on platforms where an int and a char** aren't of the same size.
-Christian
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Sun, 01 Jan 2006 23:45:52 +0000 |
parents | 26dafefeebb2 |
children |
line wrap: on
line source
================================================================= Patch version 0.9 of SDL(Simple DirectMedia Layer) for Nano-X API ================================================================= Authors: Hsieh-Fu Tsai, clare@setabox.com Greg Haerr, greg@censoft.com This patch is against SDL version 1.2.4. It enhances previous patch 0.8 by providing direct framebuffer access as well as dynamic hardware pixel type support, not requiring a compile-time option setting for different framebuffer modes. Tested against Microwindows version 0.89pre9. Older Microwindows versions =========================== If running on a version older than Microwindows 0.89pre9, the following items might need to be patched in Microwindows. 1. Patch src/nanox/client.c::GrClose() It fixes the client side GrClose(). In the original version, GrOpen() can only be called once. When the GrOpen() is called at the second time, the program will terminate. In order to prevent this situation, we need to insert "nxSocket = -1" after "close(nxSocket)" in GrClose(). If you do not have this problem, you may skip this step. 2. Patch src/nanox/clientfb.c to return absolute x,y coordinates when using GrGetWindowFBInfo(). Copy the version 0.89pre9 of src/nanox/clientfb.c to your system, or configure using --disable-nanox-direct-fb. ============= Quick Install ============= 1. ./configure --disable-video-x11 --disable-video-fbcon \ --enable-video-nanox \ --with-nanox-pixel-type=[rgb/0888/888/565/555/332/pal] 2. make clean 3. make 4. make install (as root) ============ Nitty-gritty ============ --enable-nanox-direct-fb Use direct framebuffer access --enable-nanox-debug Show debug messages --enable-nanox-share-memory Use shared-memory to speed up When running multi-threaded applications using SDL, such as SMPEG, set THREADSAFE=Y in Microwindows' config file, to enable GrXXX() system call critical section support. ============================================= Some programs can be used to test this patch. ============================================= 1. http://www.cs.berkeley.edu/~weimer/atris (a tetris-like game) 2. http://www.libsdl.org/projects/newvox/ 3. http://www.libsdl.org/projects/xflame/ 4. http://www.libsdl.org/projects/optimum/ 5. http://www.gnugeneration.com/software/loop/ 6: http://www.lokigames.com/development/smpeg.php3 (SMPEG version 0.4.4) ========= Todo List ========= 1. Create hardware surface 2. Create YUVOverlay on hardware 3. Use OpenGL 4. Gamma correction 5. Hide/Change mouse pointer 6. Better window movement control with direct fb access 7. Palette handling in 8bpp could be improved ===================== Supporting Institutes ===================== Many thanks to go to Setabox Co., Ltd. and CML (Communication and Multimedia Laboratory, http://www.cmlab.csie.ntu.edu.tw/) in the Department of Computer Science and Information Engineering of National Taiwan University for supporting this porting project. Century Embedded Technologies (http://embedded.censoft.com) for this patch. =================== Contact Information =================== Welcome to give me any suggestion and to report bugs. My e-mail address : clare@setabox.com or niky@cmlab.csie.ntu.edu.tw or greg@censoft.com