Sam Lantinga <slouken@libsdl.org> [Wed, 16 Dec 2009 06:53:53 +0000] rev 3579
Added SDL_GetCPUCount() to see how many cores are available.
Sam Lantinga <slouken@libsdl.org> [Wed, 16 Dec 2009 04:48:11 +0000] rev 3578
Fixed bug #741
The thread ID is an unsigned long so it can hold pthread_t so people can do naughty things with it.
I'm going to be adding additional useful thread API functions, but this should prevent crashes in people's existing code on 64-bit architectures.
Sam Lantinga <slouken@libsdl.org> [Wed, 16 Dec 2009 03:02:31 +0000] rev 3577
Fixed bug #736
Don't use the SSE cache instruction in MMX code if SSE isn't available. :)
Sam Lantinga <slouken@libsdl.org> [Wed, 16 Dec 2009 02:08:59 +0000] rev 3576
Added testfill to test raw fill performance
Sam Lantinga <slouken@libsdl.org> [Wed, 16 Dec 2009 01:19:58 +0000] rev 3575
Nuffin'
Sam Lantinga <slouken@libsdl.org> [Wed, 16 Dec 2009 01:06:48 +0000] rev 3574
Fixed bug #685
Added missing keysym shortcuts
Sam Lantinga <slouken@libsdl.org> [Wed, 16 Dec 2009 00:55:33 +0000] rev 3573
Fixed bug #666
Don't let the event queue overflow with resize events
Sam Lantinga <slouken@libsdl.org> [Wed, 16 Dec 2009 00:44:53 +0000] rev 3572
Fixed bug #642
Gerry JJ 2008-11-09 02:11:49 PST
The SDL_MouseMotionEvent struct has a field named "tilt" (currently marked "for
future use"), for tablet stylus tilt information. However, one value is not
enough for this, as tilt is two-dimensional. Reserving only one field for
future use is no good when you're going to need two, so there should be two
fields, tilt_x and tilt_y.
Sam Lantinga <slouken@libsdl.org> [Tue, 15 Dec 2009 20:53:09 +0000] rev 3571
Default to allow either accelerated or not
Sam Lantinga <slouken@libsdl.org> [Tue, 15 Dec 2009 20:36:31 +0000] rev 3570
OpenGL hardware acceleration defaults on
Sam Lantinga <slouken@libsdl.org> [Tue, 15 Dec 2009 20:14:50 +0000] rev 3569
Fixed bug #815
Daniele Forghieri 2009-10-12 02:57:03 PDT
Patch to use stdlib.h with Open Watcom
Open Watcom 1.8 has <stdlib.h> so instead of patch the single part when stdlib
features are used we use directly the include file as with GCC.
Sam Lantinga <slouken@libsdl.org> [Tue, 15 Dec 2009 20:11:29 +0000] rev 3568
Fixed bug #818
Daniele Forghieri 2009-10-12 02:52:02 PDT
Updated makefile & Doc for Open Watcom 1.8
Ryan C. Gordon <icculus@icculus.org> [Tue, 15 Dec 2009 18:00:16 +0000] rev 3567
Added a warning comment to SDL_putenv().
"Fixes" Bugzilla #779.
Sam Lantinga <slouken@libsdl.org> [Tue, 15 Dec 2009 09:20:10 +0000] rev 3566
Fixed bug #905
Give the foreign window message proc more control over Windows events.
This may need to be adjusted when we add the capability for the app to specify whether it wants SDL to handle input for the window or not.
Sam Lantinga <slouken@libsdl.org> [Tue, 15 Dec 2009 08:11:06 +0000] rev 3565
Fixed bug #906
Added better error reporting for OpenGL context creation failing.
Sam Lantinga <slouken@libsdl.org> [Tue, 15 Dec 2009 05:34:58 +0000] rev 3564
Add a dummy function if SDL doesn't have STDIO support
Sam Lantinga <slouken@libsdl.org> [Tue, 15 Dec 2009 02:16:01 +0000] rev 3563
Added notes from e-mail on desktop window implementation
Sam Lantinga <slouken@libsdl.org> [Tue, 15 Dec 2009 00:00:30 +0000] rev 3562
Need to test the multi-draw APIs
Sam Lantinga <slouken@libsdl.org> [Mon, 14 Dec 2009 23:43:57 +0000] rev 3561
Added svn checkout install step
Sam Lantinga <slouken@libsdl.org> [Mon, 14 Dec 2009 23:29:37 +0000] rev 3560
The SDL 1.3 tests have been cleaned up not to include any 1.2 compatibility code.
Sam Lantinga <slouken@libsdl.org> [Mon, 14 Dec 2009 06:52:17 +0000] rev 3559
Implemented read/write pixels for the X11 renderer
Sam Lantinga <slouken@libsdl.org> [Mon, 14 Dec 2009 06:35:59 +0000] rev 3558
Added a test to check the read/write pixels API
Sam Lantinga <slouken@libsdl.org> [Mon, 14 Dec 2009 06:35:27 +0000] rev 3557
Added support for SDL_PIXELFORMAT_RGB24 and SDL_PIXELFORMAT_BGR24 to SDL_PixelFormatEnumToMasks()
Sam Lantinga <slouken@libsdl.org> [Mon, 14 Dec 2009 04:19:00 +0000] rev 3556
Added a BLENDMODE_MASK pixel shader so render tests succeed
Sam Lantinga <slouken@libsdl.org> [Sun, 13 Dec 2009 08:00:25 +0000] rev 3555
The SDL_PaletteWatch structure is really internal-only.
Sam Lantinga <slouken@libsdl.org> [Sun, 13 Dec 2009 06:21:22 +0000] rev 3554
Name the audio callback for documentation clarity.
Sam Lantinga <slouken@libsdl.org> [Sun, 13 Dec 2009 06:19:32 +0000] rev 3553
Note that the WritePixels call is unsupported right now.
Sam Lantinga <slouken@libsdl.org> [Sun, 13 Dec 2009 05:37:06 +0000] rev 3552
Fixed windows.h include
Sam Lantinga <slouken@libsdl.org> [Sat, 12 Dec 2009 20:31:28 +0000] rev 3551
Fixed line drawing for D3D
Sam Lantinga <slouken@libsdl.org> [Sat, 12 Dec 2009 20:30:25 +0000] rev 3550
Minor documentation fix
Sam Lantinga <slouken@libsdl.org> [Sat, 12 Dec 2009 04:01:40 +0000] rev 3549
Finished implementing RenderReadPixels()
Sam Lantinga <slouken@libsdl.org> [Sat, 12 Dec 2009 01:04:57 +0000] rev 3548
Removed the obsolete testcdrom target
Sam Lantinga <slouken@libsdl.org> [Sat, 12 Dec 2009 00:55:13 +0000] rev 3547
Fixed building on iPhone
Sam Lantinga <slouken@libsdl.org> [Sat, 12 Dec 2009 00:08:45 +0000] rev 3546
Allow points to be outside the window bounds, stress testing the clipping code.
Sam Lantinga <slouken@libsdl.org> [Sat, 12 Dec 2009 00:08:02 +0000] rev 3545
Added mouse position for button handling
Sam Lantinga <slouken@libsdl.org> [Sat, 12 Dec 2009 00:07:26 +0000] rev 3544
minor notes to self
Sam Lantinga <slouken@libsdl.org> [Fri, 11 Dec 2009 09:59:36 +0000] rev 3543
Fixed X11 line implementation - clip lines that are going to go outside the window.
Sam Lantinga <slouken@libsdl.org> [Fri, 11 Dec 2009 09:57:54 +0000] rev 3542
Make sure we fully clip the first point before starting to adjust the second point.
Sam Lantinga <slouken@libsdl.org> [Fri, 11 Dec 2009 09:22:34 +0000] rev 3541
Added an automated test for rectangle routines, currently only testing line clipping.
Use the Cohen-Sutherland algorithm for line clipping which uses integer math and preserves ordering of clipped points.
Removed getopt() support in testsdl.c, replaced with simple argv scanning.
Sam Lantinga <slouken@libsdl.org> [Fri, 11 Dec 2009 09:13:51 +0000] rev 3540
Fixed constness in RenderRects() parameter
Sam Lantinga <slouken@libsdl.org> [Fri, 11 Dec 2009 08:03:43 +0000] rev 3539
Fixed bug #896
John Popplewell 2009-12-08 23:05:50 PST
Originally reported by AKFoerster on the mailing list.
Error decoding UTF8 Russian text to UTF-16LE on Windows, but specifically on
platforms without iconv support (the default on Windows).
Valid UTF8 characters are flagged as being overlong and then substituted by the
UNKNOWN_UNICODE character.
After studying the testiconv.c example program, reading the RFCs and putting
some printf statements in SDL_iconv.c the problem is in a test for 'Maximum
overlong sequences', specifically 4.2.1, which is carried out by the following
code:
} else if ( p[0] >= 0xC0 ) {
if ( (p[0] & 0xE0) != 0xC0 ) {
/* Skip illegal sequences
return SDL_ICONV_EILSEQ;
*/
ch = UNKNOWN_UNICODE;
} else {
if ( (p[0] & 0xCE) == 0xC0 ) { <<<<<<<< here
overlong = SDL_TRUE;
}
ch = (Uint32)(p[0] & 0x1F);
left = 1;
}
} else {
Here is the 2-byte encoding of a character in range 00000080 - 000007FF
110xxxxx 10xxxxxx
The line in question is supposed to be checking for an overlong sequence which
would be less than
11000001 10111111
which should be represented as a single byte.
BUT, the mask value (0xCE) is wrong, it isn't checking the top-most bit:
11000001 value
11001110 mask (incorrect)
^
and should be (0xDE):
11000001 value
11011110 mask (correct)
making the above code:
} else if ( p[0] >= 0xC0 ) {
if ( (p[0] & 0xE0) != 0xC0 ) {
/* Skip illegal sequences
return SDL_ICONV_EILSEQ;
*/
ch = UNKNOWN_UNICODE;
} else {
if ( (p[0] & 0xDE) == 0xC0 ) { <<<<<<<< here
overlong = SDL_TRUE;
}
ch = (Uint32)(p[0] & 0x1F);
left = 1;
}
} else {
I can supply a test program and/or a patch if required,
best regards,
John Popplewell
Sam Lantinga <slouken@libsdl.org> [Thu, 10 Dec 2009 09:27:23 +0000] rev 3538
X11 driver compiles again, lines are not yet implemented
Sam Lantinga <slouken@libsdl.org> [Thu, 10 Dec 2009 08:28:26 +0000] rev 3537
Switch to mixed case for consistency with other enumerations
Sam Lantinga <slouken@libsdl.org> [Wed, 09 Dec 2009 15:56:56 +0000] rev 3536
Added interfaces for batch drawing of points, lines and rects:
SDL_DrawPoints()
SDL_BlendPoints()
SDL_BlendLines()
SDL_DrawLines()
SDL_FillRects()
SDL_BlendRects()
SDL_RenderPoints()
SDL_RenderLines()
SDL_RenderRects()
Renamed SDL_RenderFill() to SDL_RenderRect()
Sam Lantinga <slouken@libsdl.org> [Mon, 07 Dec 2009 10:08:24 +0000] rev 3535
Hey, those automated tests are coming in handy! Fixed GDI rendering semantics
Sam Lantinga <slouken@libsdl.org> [Mon, 07 Dec 2009 09:44:55 +0000] rev 3534
Implemented RenderReadPixels() and RenderWritePixels() for GDI renderer.
Sam Lantinga <slouken@libsdl.org> [Mon, 07 Dec 2009 08:02:20 +0000] rev 3533
This fixes the OpenGL rendering test, at least with my ATI card...
Sam Lantinga <slouken@libsdl.org> [Mon, 07 Dec 2009 08:01:58 +0000] rev 3532
Fixed crash initializing the dummy driver
Sam Lantinga <slouken@libsdl.org> [Mon, 07 Dec 2009 08:01:20 +0000] rev 3531
On Windows the minimum window size may be larger than 80, so explicitly request the expected rectangle.
Sam Lantinga <slouken@libsdl.org> [Sun, 06 Dec 2009 08:39:01 +0000] rev 3530
The window position is display relative, at least for now...
Sam Lantinga <slouken@libsdl.org> [Sun, 06 Dec 2009 08:16:23 +0000] rev 3529
Fixed crash
Sam Lantinga <slouken@libsdl.org> [Sun, 06 Dec 2009 08:03:38 +0000] rev 3528
Added an API function to query geometry of multiple monitors:
SDL_GetDisplayBounds()
Implemented multi-monitor window positions on Windows
Sam Lantinga <slouken@libsdl.org> [Sun, 06 Dec 2009 06:21:39 +0000] rev 3527
Fixed to use the correct display adapter
Sam Lantinga <slouken@libsdl.org> [Sat, 05 Dec 2009 22:13:36 +0000] rev 3526
Fixed compiler warnings
Sam Lantinga <slouken@libsdl.org> [Sat, 05 Dec 2009 19:57:49 +0000] rev 3525
Fixed compilation on Mac OS X 10.4
Sam Lantinga <slouken@libsdl.org> [Sat, 05 Dec 2009 19:46:24 +0000] rev 3524
Allow overriding the number of build jobs
Sam Lantinga <slouken@libsdl.org> [Sat, 05 Dec 2009 05:13:17 +0000] rev 3523
Made the window flag comments more consistent
Sam Lantinga <slouken@libsdl.org> [Sat, 05 Dec 2009 04:39:59 +0000] rev 3522
Added related functions
Sam Lantinga <slouken@libsdl.org> [Fri, 04 Dec 2009 09:01:48 +0000] rev 3521
Don't add any renderers if you can't add any displays
Sam Lantinga <slouken@libsdl.org> [Fri, 04 Dec 2009 08:45:08 +0000] rev 3520
Fixed calls to SDL_AddRenderDriver()
Sam Lantinga <slouken@libsdl.org> [Fri, 04 Dec 2009 08:26:32 +0000] rev 3519
Fixed compiling the D3D renderer
Sam Lantinga <slouken@libsdl.org> [Thu, 03 Dec 2009 08:43:12 +0000] rev 3518
Added support for SDL 1.2 environment variables:
SDL_VIDEO_FULLSCREEN_DISPLAY, SDL_VIDEO_FULLSCREEN_HEAD
Sam Lantinga <slouken@libsdl.org> [Thu, 03 Dec 2009 08:33:39 +0000] rev 3517
Fixed mouse events for fullscreen windows on Mac OS X
Sam Lantinga <slouken@libsdl.org> [Thu, 03 Dec 2009 05:05:26 +0000] rev 3516
Restore the video mode after shutting down the renderer, which fixes an error deleting the OpenGL context on Mac OS X.
Sam Lantinga <slouken@libsdl.org> [Thu, 03 Dec 2009 04:33:05 +0000] rev 3515
Missing pop over a jump
Sam Lantinga <slouken@libsdl.org> [Wed, 02 Dec 2009 07:56:09 +0000] rev 3514
Added Ctrl-Z common key binding
Sam Lantinga <slouken@libsdl.org> [Wed, 02 Dec 2009 07:55:23 +0000] rev 3513
Restore the desktop mode when requested
Sam Lantinga <slouken@libsdl.org> [Wed, 02 Dec 2009 07:42:10 +0000] rev 3512
If we're fullscreen on a single-head system and lose focus, minimize
Sam Lantinga <slouken@libsdl.org> [Wed, 02 Dec 2009 07:38:28 +0000] rev 3511
On multi-display systems it's perfectly reasonable to have focus on a window on another monitor while the application is fullscreen.
Sam Lantinga <slouken@libsdl.org> [Wed, 02 Dec 2009 07:28:58 +0000] rev 3510
Don't need to hide the menu bar if we're not on the main display
Sam Lantinga <slouken@libsdl.org> [Wed, 02 Dec 2009 07:25:06 +0000] rev 3509
Changed so that it's obvious that the two code blocks are related.
Sam Lantinga <slouken@libsdl.org> [Wed, 02 Dec 2009 06:10:18 +0000] rev 3508
Fixed mouse coordinates for fullscreen mode
Sam Lantinga <slouken@libsdl.org> [Tue, 01 Dec 2009 12:08:34 +0000] rev 3507
The window positions are relative to the origin of the windowing system (upper left of the primary display).
Fixed the mouse positions for windowed mouse movement.
Sam Lantinga <slouken@libsdl.org> [Tue, 01 Dec 2009 11:50:00 +0000] rev 3506
Added support for placing windows on different displays
Sam Lantinga <slouken@libsdl.org> [Tue, 01 Dec 2009 10:41:58 +0000] rev 3505
Ensure that the main display is picked up first
Sam Lantinga <slouken@libsdl.org> [Tue, 01 Dec 2009 10:34:01 +0000] rev 3504
Allow mirrored displays, but only the primary display in a mirrored set.
Sam Lantinga <slouken@libsdl.org> [Tue, 01 Dec 2009 09:04:28 +0000] rev 3503
Explicitly clear fullscreen status rather than relying on the window focus behavior.
Sam Lantinga <slouken@libsdl.org> [Tue, 01 Dec 2009 08:56:12 +0000] rev 3502
Whenever a window becomes fullscreen, shown, unminimized, and has input focus it will change the display to the corresponding fullscreen video mode.
If it loses any of those properties the desktop mode will be restored.
Sam Lantinga <slouken@libsdl.org> [Tue, 01 Dec 2009 06:15:10 +0000] rev 3501
Removed a little redundancy in the naming
Sam Lantinga <slouken@libsdl.org> [Tue, 01 Dec 2009 05:57:15 +0000] rev 3500
Work in progress on multi-display support:
* Added display parameter to many internal functions so video modes can be set on displays that aren't the public current one.
* The fullscreen mode is associated with fullscreen windows - not displays, so different windows more naturally have a mode associated with them based on their width and height. It's no longer necessary to specify a fullscreen mode, a default one will be picked automatically for fullscreen windows.
Sam Lantinga <slouken@libsdl.org> [Mon, 30 Nov 2009 21:04:25 +0000] rev 3499
Reduced the push/pop sequence to a single pair, and ported this fix over to the other architectures.
Sam Lantinga <slouken@libsdl.org> [Mon, 30 Nov 2009 19:52:34 +0000] rev 3498
Fixed crash - need to save and restore rbx around cpuid, since the compiler may be assuming the stack pointer isn't being modified when filling in %0.
I did it around each call to cpuid which isn't strictly necessary, but is definitely future proof. :)
Sam Lantinga <slouken@libsdl.org> [Mon, 30 Nov 2009 17:57:12 +0000] rev 3497
Added support for 32-bit BMP files with an alpha channel
Sam Lantinga <slouken@libsdl.org> [Fri, 27 Nov 2009 19:29:27 +0000] rev 3496
Joe 2009-11-23 21:31:10 PST
If type is ::SDL_HAPTIC_CARTESIAN, direction is encoded by three positions
367 * (X axis, Y axis and Z axis (with 3 axes)). ::SDL_HAPTIC_CARTESIAN
uses
368 * the first three \c dir parameters. The cardinal directions would
be:
369 * - North: 0,-1, 0
370 * - East: -1, 0, 0
371 * - South: 0, 1, 0
372 * - West: 1, 0, 0
typedef struct SDL_HapticDirection
{
Uint8 type; /**< The type of encoding. */
Uint16 dir[3]; /**< The encoded direction. */
} SDL_HapticDirection;
An unsigned int can't store negative values and I don't see an alternate way to
encode them in the docs or source. The best I have been able to come up with is
using a negative magnitude for the effect but this will only get me 2 of the 4
quadrants in the plane for 2d effects. I looked at the win32 and linux
implementations and I believe is is safe to use signed ints in the direction
struct. I am unfamiliar with the darwin haptics API so I don't know if it is
safe.
Sam Lantinga <slouken@libsdl.org> [Fri, 27 Nov 2009 03:11:26 +0000] rev 3495
Adam Strzelecki to SDL
D3D renderer shall try mapping YV12 and I420 (IYUV) to D3D texture formats via FOURCC. This will enable HW acceleration for those formats when driver is capable (most of them are). Note that SDL's IYUV maps I420 FOURCC on Woe.
Sam Lantinga <slouken@libsdl.org> [Thu, 26 Nov 2009 05:55:57 +0000] rev 3494
Adam Strzelecki to SDL
Currently SDL uses GL_RGB for internalFormat when GL_YCBCR_MESA is passed as format for glTextImage2D when using Linux Mesa's OpenGL. However this is wrong and makes glTextImage2D fail with invalid argument error. GL_YCBCR_MESA should be also internalFormat (not GL_RGB) there and this is what can be found googling various source codes using GL_YCBCR_MESA.
Sam Lantinga <slouken@libsdl.org> [Wed, 25 Nov 2009 07:42:23 +0000] rev 3493
SDL_CreateWindowFrom() is actually going to be supported. :)
Sam Lantinga <slouken@libsdl.org> [Wed, 25 Nov 2009 06:24:15 +0000] rev 3492
Clarified the windowID parameter
Sam Lantinga <slouken@libsdl.org> [Wed, 25 Nov 2009 06:00:00 +0000] rev 3491
Add error messages for failure cases
Sam Lantinga <slouken@libsdl.org> [Wed, 25 Nov 2009 04:41:09 +0000] rev 3490
Added the automated test to the Visual Studio 2008 project
Mike Gorchak <lestat@i.com.ua> [Tue, 24 Nov 2009 19:28:27 +0000] rev 3489
Override renderer for OpenGL window, only in case if OpenGL or OpenGL ES renderers are enabled.
Sam Lantinga <slouken@libsdl.org> [Tue, 24 Nov 2009 16:43:18 +0000] rev 3488
Fixed bug #771
Cleaned up the code a bit and made sure that an OpenGL window gets the OpenGL
renderer. Inspired by a patch from Mason Wheeler.
Sam Lantinga <slouken@libsdl.org> [Tue, 24 Nov 2009 08:12:32 +0000] rev 3487
Eric Wing to Sam, hfutrell
This one is quite puzzling. I found a partial workaround, but I don't fully understand the reasons yet.
First, the console is complaining about not finding a nib for MainWindow.
I tried removing the entry for this in the info.plist, and the message went away, but it didn't really change anything.
Second, I stepped through this with the debugger and broke up some lines. It seems that the basic act of calling
view = [SDL_uikitopenglview alloc];
or even
view = [SDL_uikitview alloc]
will crash the program. The debugger messages plus the stack trace make me think it's not finding the SDL_uikitview classes for some reason. But I don't understand why this would be.
view = [UIView alloc] will not crash the program.
For kicks, I added a new definition of a class called SDL_object which subclasses NSObject in the same files as SDL_uikitopenglview and then call
view = [SDL_object alloc];
This does not crash the program.
So, then I modified SDL_object to subclass UIView. No crash.
Next, I made SDL_object subclass UIView<UITextFieldDelegate> . This crashes.
So it is the act of conforming to the UITextFieldDelegate protocol that is crashing things.
I don't understand why it would crash on alloc though. I'm guessing either a delegate needs to be set somewhere or one of the required methods needs to be implemented. But in the former case, I would not expect a crash, but a silent message to nil and something else doesn't work. And in the latter case, I would expect a compiler warning and an exception thrown instead of a crash.
Anyway, my temporary workaround is to change the interface declaration for SDL_uikitview to look like:
#if SDL_IPHONE_KEYBOARD
@interface SDL_uikitview : UIView<UITextFieldDelegate> {
#else
@interface SDL_uikitview : UIView {
#endif
And then disable the keyboard support in the SDL_config_iphoneos.h file.
/* enable iPhone keyboard support */
#define SDL_IPHONE_KEYBOARD 0
-Eric
On Nov 23, 2009, at 1:43 AM, Sam Lantinga wrote:
> I ran into a blocking startup crash with the Happy demo on iPhone OS 3.1.2 on my new iPhone:
>
> #0 0x323fea14 in _class_isInitialized
> #1 0x323fea68 in _class_initialize
> #2 0x32403e92 in prepareForMethodLookup
> #3 0x32401244 in lookUpMethod
> #4 0x323fea10 in _class_lookupMethodAndLoadCache
> #5 0x323fe746 in objc_msgSend_uncached
> #6 0x323feb26 in _class_initialize
> #7 0x323fea58 in _class_initialize
> #8 0x32403e92 in prepareForMethodLookup
> #9 0x32401244 in lookUpMethod
> #10 0x323fea10 in _class_lookupMethodAndLoadCache
> #11 0x323fe746 in objc_msgSend_uncached
> #12 0x000554dc in UIKit_GL_CreateContext at SDL_uikitopengles.m:103
> #13 0x0004f89e in SDL_GL_CreateContext at SDL_video.c:3155
> #14 0x000579e8 in GLES_CreateRenderer at SDL_renderer_gles.c:282
> #15 0x0004d7b8 in SDL_CreateRenderer at SDL_video.c:1509
> #16 0x00002bc2 in SDL_main at happy.c:156
> #17 0x000571b2 in -[SDLUIKitDelegate postFinishLaunch] at
> SDL_uikitappdelegate.m:77
> #18 0x313f9ef2 in __NSFireDelayedPerform
> #19 0x32567bb2 in CFRunLoopRunSpecific
> #20 0x3256735c in CFRunLoopRunInMode
> #21 0x32912cbe in GSEventRunModal
> #22 0x32912d6a in GSEventRun
> #23 0x32b6276e in -[UIApplication _run]
> #24 0x32b61472 in UIApplicationMain
> #25 0x00057088 in main at SDL_uikitappdelegate.m:50
>
> Any ideas?
>
> See ya!
> --
> -Sam Lantinga, Founder and President, Galaxy Gameworks LLC
Sam Lantinga <slouken@libsdl.org> [Tue, 24 Nov 2009 04:59:50 +0000] rev 3486
Fixed bug #891
Mason Wheeler 2009-11-23 06:59:48 PST
There's code in SDL_RecreateWindow specifically to handle SDL_WINDOW_FOREIGN,
but it appears to have been overlooked in the allowed_flags constant. This
causes the line
window->flags = (flags & allowed_flags);
to strip SDL_WINDOW_FOREIGN from the window's flags, which breaks some code in
WIN_WindowProc in SDL_win32Events.c that treats foreign windows differently.
This can be trivially fixed by defining allowed_flags as
const Uint32 allowed_flags = (SDL_WINDOW_FULLSCREEN |
SDL_WINDOW_OPENGL |
SDL_WINDOW_BORDERLESS |
SDL_WINDOW_RESIZABLE |
SDL_WINDOW_INPUT_GRABBED |
SDL_WINDOW_FOREIGN);
Sam Lantinga <slouken@libsdl.org> [Tue, 24 Nov 2009 04:48:12 +0000] rev 3485
Mason Wheeler to sdl
I updated SDL, and suddenly my SDL frames stopped working. They'd "initialize" full of gibberish, and I couldn't render anything to them. After a bit of digging, I found a problem: the renderer initialization routine in my SDL frame code wasn't getting called anymore.
procedure TSdlFrame.Paint;
begin
if SDL_SelectRenderer(FWindowID) = -1 then
CreateRenderer;
SDL_RenderPresent;
end;
function TSdlFrame.CreateRenderer: boolean;
const
pf: tagPIXELFORMATDESCRIPTOR = (nSize: sizeof(pf); nVersion: 1;
dwFlags: PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;
iPixelType: PFD_TYPE_RGBA; cColorBits: 24; cAlphaBits: 8;
iLayerType: PFD_MAIN_PLANE);
RENDERERS: array[TRendererType] of AnsiString = ('software', 'gdi', 'opengl', 'd3d');
var
pFormat: integer;
begin
if (SDL_SelectRenderer(FWindowID) = 0) then
begin
result := true;
Exit;
end;
if FRendererType = rtOpenGL then
begin
pFormat := ChoosePixelFormat(canvas.Handle, @pf);
if not SetPixelFormat(canvas.Handle, pFormat, @pf) then
outputDebugString(PChar(SysErrorMessage(GetLastError)));
if wglCreateContext(canvas.Handle) = 0 then
outputDebugString(PChar(SysErrorMessage(GetLastError)));
end;
if (SDL_CreateRenderer(FWindowID, SDL_RendererIndex(RENDERERS[FRendererType]), [sdlrPresentFlip3, sdlrAccelerated]) = 0) then
begin
SDL_ShowWindow(FWindowID);
assert(SDL_SetRenderDrawColor(0, 0, 0, 255) = 0);
FFlags := SDL_GetWindowFlags(FWindowID);
if assigned(FOnAvailable) then
FOnAvailable(self);
end
else outputDebugString(pChar(format('SDL_CreateRenderer failed: %s', [sdl_GetError])));
result := SDL_SelectRenderer(FWindowID) = 0;
end;
This is a critical issue. The Paint method gets called when the control receives a WM_PAINT message from Windows. I can't create the renderer before then, or it will fail and cause trouble. And when I do create it, it needs to be created with certain parameters. So imagine my surprise when I started debugging into the DLL and found that SDL_SelectRenderer was trying to be "helpful" by creating the renderer for me if it didn't already exist! Now not only does my initialization code not get called, I end up with the wrong renderer and so things don't render as expected when I try to use the window.
Sam Lantinga <slouken@libsdl.org> [Sun, 22 Nov 2009 20:53:53 +0000] rev 3484
Set the error so someone can get more information
Sam Lantinga <slouken@libsdl.org> [Sun, 22 Nov 2009 20:00:00 +0000] rev 3483
Made the comment actually mean something. :)
Sam Lantinga <slouken@libsdl.org> [Sun, 22 Nov 2009 07:00:26 +0000] rev 3482
More fixes to compile under Visual C++
Sam Lantinga <slouken@libsdl.org> [Sun, 22 Nov 2009 06:42:58 +0000] rev 3481
Fixed include paths for Visual C++
Sam Lantinga <slouken@libsdl.org> [Sun, 22 Nov 2009 06:37:43 +0000] rev 3480
The Direct3D Read/Write pixels interface is in progress.
Sam Lantinga <slouken@libsdl.org> [Sun, 22 Nov 2009 06:34:45 +0000] rev 3479
Whoops, actually set the SDL error, don't just print the error.
Mike Gorchak <lestat@i.com.ua> [Sat, 21 Nov 2009 08:42:42 +0000] rev 3478
Added support for QNX default font. Backspace and Return keys now handled.
Sam Lantinga <slouken@libsdl.org> [Sat, 21 Nov 2009 07:59:19 +0000] rev 3477
We want to be strict on software renderer tests and opaque tests, but give a decent margin for blending inaccuracy for the blended tests.
Sam Lantinga <slouken@libsdl.org> [Sat, 21 Nov 2009 07:46:12 +0000] rev 3476
Increased tolerance a little bit more for multiple blending passes accumulating error.
Sam Lantinga <slouken@libsdl.org> [Sat, 21 Nov 2009 07:26:52 +0000] rev 3475
Added comment for pixel-perfect line workaround.
Sam Lantinga <slouken@libsdl.org> [Sat, 21 Nov 2009 07:22:59 +0000] rev 3474
Of COURSE that trick wouldn't work on all renderers. Fall back to something for now, hopefully figure out a better way to do this later.
If we have to, we can use vertical line and horizontal line textures for vertical and horizontal lines, and then create custom textures for diagonal lines and software render those. It's terrible, but at least it would be pixel perfect.
Sam Lantinga <slouken@libsdl.org> [Sat, 21 Nov 2009 07:14:21 +0000] rev 3473
This is terrible, but the OpenGL standard says that lines are half open, which means that one endpoint is not covered so adjoining lines don't overlap. It also doesn't define which end is open, and indeed Mac OS X and Linux differ. Mac OS X seems to leave the second endpoint open, but Linux uses the right-most endpoint for x major lines and the bottom-most endpoint for y major lines.
Sam Lantinga <slouken@libsdl.org> [Sat, 21 Nov 2009 06:34:43 +0000] rev 3472
Fixed the coordinates for pixel coverage in blits
Sam Lantinga <slouken@libsdl.org> [Sat, 21 Nov 2009 06:28:25 +0000] rev 3471
Use 45 degree lines for the diagonal test to avoid aliasing errors in line drawing.
Sam Lantinga <slouken@libsdl.org> [Sat, 21 Nov 2009 06:19:34 +0000] rev 3470
It's not the last pixel, it's the rightmost pixel, or if they're both the same x coordinate, the bottommost pixel.
Mike Gorchak <lestat@i.com.ua> [Sat, 21 Nov 2009 06:17:50 +0000] rev 3469
RenderReadPixels and RenderWritePixels functions work with back buffer now and all asynchronous operations are flushed before reading or writing to backbuffer. Thanks Sam for clarification of this.
Sam Lantinga <slouken@libsdl.org> [Sat, 21 Nov 2009 05:29:31 +0000] rev 3468
My first OpenGL shader! Momma will be so proud!
This shader implements the software renderer mask semantics where the source pixel is multiplied by the color and alpha modulation values and then any pixel with non-zero alpha is fully opaque.
The OpenGL renderer on Mac OS X now passes all the automated render tests! :)
Sam Lantinga <slouken@libsdl.org> [Sat, 21 Nov 2009 05:25:08 +0000] rev 3467
pixels don't need to be dynamically allocated
Added a dump_screen() function to assist with test failure diagnosis
Sam Lantinga <slouken@libsdl.org> [Sat, 21 Nov 2009 05:05:19 +0000] rev 3466
SDL_RenderReadPixels() needs to flush asynchronous operations before it reads.
The semantics are that it reads the back buffer, and those pixels may not be available once SDL_RenderPresent() has happened.
Mike Gorchak <lestat@i.com.ua> [Fri, 20 Nov 2009 14:42:40 +0000] rev 3465
Support for UTF-8 text input has been added.
Mike Gorchak <lestat@i.com.ua> [Fri, 20 Nov 2009 07:11:29 +0000] rev 3464
1. SDL_RenderPresent() call has been added after each test to be sure, that all graphics output is flushed in case if it was asynchronous.
2. After each renderer test window recreation has been added.
Mike Gorchak <lestat@i.com.ua> [Fri, 20 Nov 2009 07:08:28 +0000] rev 3463
Output last SDL error in case of test was failed.
Mike Gorchak <lestat@i.com.ua> [Fri, 20 Nov 2009 07:07:41 +0000] rev 3462
RenderReadPixels and RenderWritePixels now work properly.
Mike Gorchak <lestat@i.com.ua> [Fri, 20 Nov 2009 07:06:50 +0000] rev 3461
Deinitialization fixes, in case if QNXGF driver is not initialized properly.
Mike Gorchak <lestat@i.com.ua> [Thu, 19 Nov 2009 09:07:09 +0000] rev 3460
Added support for generic getopt() function instead of getopt_long(). Because not all platforms have getopt_long().