annotate test/README @ 3485:e77a69aae239

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.
author Sam Lantinga <slouken@libsdl.org>
date Tue, 24 Nov 2009 04:48:12 +0000
parents 3e3724fb829e
children cf7976fd3258
rev   line source
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
1
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
2 These are test programs for the SDL library:
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
3
2082
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
4 checkkeys Watch the key events to check the keyboard
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
5 graywin Display a gray gradient and center mouse on spacebar
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
6 loopwave Audio test -- loop playing a WAV file
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
7 testalpha Display an alpha faded icon -- paint with mouse
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
8 testaudioinfo Lists audio device capabilities
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
9 testbitmap Test displaying 1-bit bitmaps
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
10 testblitspeed Tests performance of SDL's blitters and converters.
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
11 testcdrom Sample audio CD control program
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
12 testcursor Tests custom mouse cursor
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
13 testdyngl Tests dynamically loading OpenGL library
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
14 testerror Tests multi-threaded error handling
2082
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
15 testfile Tests RWops layer
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
16 testgamma Tests video device gamma ramp
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
17 testgl A very simple example of using OpenGL with SDL
3070
3e3724fb829e Fixed bug #681
Sam Lantinga <slouken@libsdl.org>
parents: 2082
diff changeset
18 testgl2 An even simpler example using the SDL 1.3 API
2082
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
19 testhread Hacked up test of multi-threading
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
20 testiconv Tests international string conversion
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
21 testjoystick List joysticks and watch joystick events
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
22 testkeys List the available keyboard keys
2082
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
23 testloadso Tests the loadable library layer
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
24 testlock Hacked up test of multi-threading and locking
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
25 testmultiaudio Tests using several audio devices
886
05c551e5bc64 Date: Sat, 24 Apr 2004 15:13:32 +0300
Sam Lantinga <slouken@libsdl.org>
parents: 0
diff changeset
26 testoverlay Tests the software/hardware overlay functionality.
05c551e5bc64 Date: Sat, 24 Apr 2004 15:13:32 +0300
Sam Lantinga <slouken@libsdl.org>
parents: 0
diff changeset
27 testoverlay2 Tests the overlay flickering/scaling during playback.
2082
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
28 testpalette Tests palette color cycling
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
29 testplatform Tests types, endianness and cpu capabilities
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
30 testsem Tests SDL's semaphore implementation
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
31 testsprite Example of fast sprite movement on the screen
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
32 testsprite2 Improved version of testsprite
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
33 testtimer Test the timer facilities
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
34 testver Check the version and dynamic loading and endianness
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
35 testvidinfo Show the pixel format of the display and perfom the benchmark
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
36 testwin Display a BMP image at various depths
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
37 testwm Test window manager -- title, icon, events
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
38 testwm2 Improved version of testwm
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
39 threadwin Test multi-threaded event handling
e6cd882e3ac0 Alpha sort the test list, add missing ones, remove removed ones
Patrice Mandin <patmandin@gmail.com>
parents: 1039
diff changeset
40 torturethread Simple test for thread creation/destruction