docs.html
author Sam Lantinga <slouken@libsdl.org>
Fri, 29 Feb 2008 13:55:44 +0000
branchSDL-1.2
changeset 4139 568c9b3c0167
parent 4123 9d90d7765fa7
child 4141 8b10a6efad41
permissions -rw-r--r--
* Added configure option --enable-screensaver, to allow enabling the screensaver by default.
* Use XResetScreenSaver() instead of disabling screensaver entirely.

Full discussion summary from Erik on the SDL mailing list:

Current behaviour
=================

SDL changes the user's display power management settings without
permission from the user and without telling the user.

The interface that it uses to do so is DPMSDisable/DPMSEnable, which
should only ever be used by configuration utilities like KControl, never
by normal application programs, let alone by the libraries that they
use. Using an interface that is not at all intended for what SDL tries
to achieve means that it will not work as it should. Firstly, the power
management is completely disabled during the whole lifetime of the SDL
program, not only when it should be. Secondly, it makes SDL
non-reentrant, meaning that things will break when multiple SDL programs
are clients of the same X server simultaneously. Thirdly, no cleanup
mechanism ensures that the setting is restored if the client does not do
that (for example if it crashes).

In addition to that, this interface is broken on xorg,
[http://bugs.freedesktop.org/show_bug.cgi?id=13962], so what SDL tries
to do does not work at all on that implementation of the X Window
System. (The reason that the DPMSEnable works in KControl is that it
calls DPMSSetTimeout immediately after,
[http://websvn.kde.org/tags/KDE/3.5.9/kdebase/kcontrol/energy/energy.cpp?annotate=774532#l343]).


The problems that the current behaviour causes
==============================================
1. Information leak. When the user is away, someone might see what the
user has on the display when the user counts on the screensaver
preventing this. This does not even require physical access to the
workstation, it is enough to see it from a distance.
2. Draining battery. An SDL program that runs on a laptop will quickly
drain the battery while the user is away. The system will soon shut down
and require recharging before being usable again, while it should in
fact have consumed very little energy if the user's settings would have
been obeyed.
3. Wasting energy. Even if battery issues are not considered, energy as
such is wasted.
4. Display wear. The display may be worn out.


The problems that the current behaviour tries to solve
======================================================

1. Preventing screensaver while playing movies.
Many SDL applications are media players. They have reasons to prevent
screensavers from being activated while a movie is being played. When a
user clicks on the play button it can be interpreted as saying "play
this movie, but do not turn off the display while playing it, because I
will watch it even though I do not interact with the system".

2. Preventing screensaver when some input bypasses X.
Sometimes SDL uses input from another source than the X server, so
that the X server is bypassed. This obviously breaks the screensaver
handling. SDL tries to work around that.

3. Preventing screensaver when all input bypasses X.
There is something called Direct Graphics Access mode, where a
program takes control of both the display and the input devices from the
X server. This obviously means that the X server can not handle the
screensaver alone, since screensaver handling depends on input handling.
SDL does not do what it should to help the X server to handle the
screensaver. Nor does SDL take care of screeensaver handling itself. SDL
simply disables the screensaver completely.


How the problems should be solved
=================================

The correct way for an application program to prevent the screensaver
under X is to call XResetScreenSaver. This was recently discovered and
implemented by the mplayer developers,
[http://svn.mplayerhq.hu/mplayer?view=rev&revision=25637]. SDL needs to
wrap this in an API call (SDL_ResetScreenSaver) and implement it for the
other video targets (if they do not have a corresponding call, SDL
should do what it takes on that particular target, for example sending
fake key events).

1. When a movie is played, the player should reset the screensaver when
the animation is advanced to a new frame. The same applies to anything
similar, like slideshows.

2. When the X server is handling input, it must handle all input
(keyboards, mice, gamepads, ...). This is necessary, not only to be able
to handle the screensaver, but also so that it can send the events to
the correct (the currently active) client. If there is an input device
that the X server can not handle for some reason (such as lack of Plug
and Play capability), the program that handles the device as a
workaround must simulate what would happen if the X server would have
handled the device, by calling XResetScreenSaver when input is received
from the device.

3. When the X server is not handling the input, it depends on the
program that does to call XResetScreenSaver whenever an input event
occurs. Alternatively the program must handle the screensaver countdown
internally and call XActivateScreenSaver.
slouken@0
     1
<HTML>
slouken@0
     2
<HEAD><TITLE>SDL Stable Release</TITLE></HEAD>
slouken@0
     3
<BODY BGCOLOR="#FFEBCD" TEXT="#000000">
slouken@0
     4
slouken@0
     5
<IMG SRC="docs/images/rainbow.gif" ALT="[separator]" WIDTH="100%">
slouken@0
     6
<P>
slouken@511
     7
This source is stable, and is fully tested on all supported platforms.<br>
slouken@511
     8
Please send bug reports or questions to the SDL mailing list:<br>
slouken@511
     9
<a href="http://www.libsdl.org/mailing-list.php"
slouken@511
    10
        >http://www.libsdl.org/mailing-list.php</a><br>
slouken@511
    11
The latest stable release may be found on the
slouken@511
    12
	<a href="http://www.libsdl.org/">SDL website</A>.
slouken@511
    13
</P>
slouken@0
    14
slouken@0
    15
<H2> <A HREF="docs/index.html">API Documentation</A> </H2>
slouken@1840
    16
slouken@4139
    17
<H2> SDL 1.2.14 Release Notes </H2>
slouken@4139
    18
<P>
slouken@4139
    19
SDL 1.2.14 is a minor bug fix release.
slouken@4139
    20
</P>
slouken@4139
    21
slouken@4139
    22
<H3> General Notes </H3>
slouken@4139
    23
slouken@4139
    24
<BLOCKQUOTE>
slouken@4139
    25
<P>
slouken@4139
    26
</P>
slouken@4139
    27
</BLOCKQUOTE>
slouken@4139
    28
slouken@4139
    29
<H3> Unix Notes </H3>
slouken@4139
    30
slouken@4139
    31
<BLOCKQUOTE>
slouken@4139
    32
<P>
slouken@4139
    33
	Added configure option --enable-screensaver, to allow enabling the screensaver by default.
slouken@4139
    34
</P>
slouken@4139
    35
<P>
slouken@4139
    36
	Use XResetScreenSaver() instead of disabling screensaver entirely.
slouken@4139
    37
</P>
slouken@4139
    38
</BLOCKQUOTE>
slouken@4139
    39
slouken@4139
    40
<H3> Windows Notes </H3>
slouken@4139
    41
slouken@4139
    42
<BLOCKQUOTE>
slouken@4139
    43
<P>
slouken@4139
    44
</P>
slouken@4139
    45
</BLOCKQUOTE>
slouken@4139
    46
slouken@4139
    47
<H3> Mac OS X Notes </H3>
slouken@4139
    48
slouken@4139
    49
<BLOCKQUOTE>
slouken@4139
    50
<P>
slouken@4139
    51
</P>
slouken@4139
    52
</BLOCKQUOTE>
slouken@4139
    53
slouken@4139
    54
<IMG SRC="docs/images/rainbow.gif" ALT="[separator]" WIDTH="100%">
slouken@4139
    55
slouken@4115
    56
<H2> SDL 1.2.13 Release Notes </H2>
slouken@4115
    57
<P>
slouken@4115
    58
SDL 1.2.13 is a minor bug fix release.
slouken@4115
    59
</P>
slouken@4115
    60
slouken@4115
    61
<H3> General Notes </H3>
slouken@4115
    62
slouken@4115
    63
<BLOCKQUOTE>
slouken@4115
    64
<P>
slouken@4115
    65
	Fixed link error when building with Intel Compiler 10.
slouken@4115
    66
</P>
slouken@4115
    67
<P>
slouken@4115
    68
	Removed stray C++ comment from public headers.
slouken@4115
    69
</P>
slouken@4115
    70
</BLOCKQUOTE>
slouken@4115
    71
slouken@4115
    72
<H3> Unix Notes </H3>
slouken@4115
    73
slouken@4115
    74
<BLOCKQUOTE>
slouken@4115
    75
<P>
slouken@4115
    76
	Fixed crash in SDL_SoftStretch() on secure operating systems.
slouken@4115
    77
</P>
slouken@4115
    78
<P>
slouken@4119
    79
	Fixed undefined symbol on X11 implementations without UTF-8 support.
slouken@4119
    80
</P>
slouken@4119
    81
<P>
slouken@4115
    82
	Worked around BadAlloc error when using XVideo on the XFree86 Intel Integrated Graphics driver.
slouken@4115
    83
</P>
slouken@4115
    84
<P>
slouken@4115
    85
	Scan for all joysticks on Linux instead of stopping at one that was removed.
slouken@4115
    86
</P>
slouken@4121
    87
<P>
slouken@4121
    88
	Fixed use of sdl-config arguments in sdl.m4
slouken@4121
    89
</P>
slouken@4115
    90
</BLOCKQUOTE>
slouken@4115
    91
slouken@4115
    92
<H3> Windows Notes </H3>
slouken@4115
    93
slouken@4115
    94
<BLOCKQUOTE>
slouken@4115
    95
<P>
slouken@4115
    96
	Fixed crash when a video driver reports higher than 32 bpp video modes.
slouken@4115
    97
</P>
slouken@4115
    98
<P>
slouken@4115
    99
	Fixed restoring the desktop after setting a 24-bit OpenGL video mode.
slouken@4115
   100
</P>
slouken@4115
   101
<P>
slouken@4115
   102
	Fixed window titles on Windows 95/98/ME.
slouken@4115
   103
</P>
slouken@4115
   104
<P>
slouken@4115
   105
	Added SDL_BUTTON_X1 and SDL_BUTTON_X2 constants for extended mouse buttons.
slouken@4115
   106
</P>
slouken@4119
   107
<P>
slouken@4119
   108
	Added support for quoted command line arguments.
slouken@4119
   109
</P>
slouken@4115
   110
</BLOCKQUOTE>
slouken@4115
   111
slouken@4115
   112
<H3> Mac OS X Notes </H3>
slouken@4115
   113
slouken@4115
   114
<BLOCKQUOTE>
slouken@4115
   115
<P>
slouken@4115
   116
	SDL now builds on Mac OS X 10.5 (Leopard).
slouken@4115
   117
</P>
slouken@4115
   118
<P>
slouken@4115
   119
	Fixed high frequency crash involving text input.
slouken@4115
   120
</P>
slouken@4115
   121
<P>
slouken@4123
   122
	Fixed beeping when the escape key is pressed and UNICODE translation is enabled.
slouken@4123
   123
</P>
slouken@4123
   124
<P>
slouken@4115
   125
	Improved trackpad scrolling support.
slouken@4115
   126
</P>
slouken@4120
   127
<P>
slouken@4120
   128
	Fixed joystick hat reporting for certain joysticks.
slouken@4120
   129
</P>
slouken@4115
   130
</BLOCKQUOTE>
slouken@4115
   131
slouken@4115
   132
<IMG SRC="docs/images/rainbow.gif" ALT="[separator]" WIDTH="100%">
slouken@4115
   133
slouken@3960
   134
<H2> SDL 1.2.12 Release Notes </H2>
slouken@3960
   135
<P>
slouken@3960
   136
SDL 1.2.12 is a minor bug fix release.
slouken@3960
   137
</P>
slouken@3960
   138
slouken@3960
   139
<H3> General Notes </H3>
slouken@3960
   140
slouken@3960
   141
<BLOCKQUOTE>
slouken@3960
   142
<P>
slouken@3960
   143
	Added support for the PulseAudio sound server: http://www.pulseaudio.org/
slouken@3960
   144
</P>
slouken@3960
   145
<P>
icculus@3982
   146
	Added SDL_VIDEO_ALLOW_SCREENSAVER to override SDL's disabling of the screensaver on Mac OS X, Windows, and X11.
slouken@3960
   147
</P>
slouken@3960
   148
<P>
slouken@3960
   149
	Fixed buffer overrun crash when resampling audio rates.
slouken@3960
   150
</P>
slouken@3960
   151
<P>
slouken@3960
   152
	Fixed audio bug where converting to mono was doubling the volume.
slouken@3960
   153
</P>
slouken@3960
   154
<P>
slouken@3960
   155
	Fixed off-by-one error in the C implementation of SDL_revcpy()
slouken@3960
   156
</P>
slouken@3960
   157
<P>
slouken@3966
   158
	Fixed compiling with Sun Studio.
slouken@3966
   159
</P>
slouken@3966
   160
<P>
slouken@3960
   161
	Support for AmigaOS has been removed from the main SDL code.
slouken@3960
   162
</P>
icculus@3968
   163
<P>
icculus@3968
   164
	Support for Nokia 9210 "EPOC" driver has been removed from the main SDL code.
icculus@3968
   165
</P>
icculus@3975
   166
<P>
icculus@3975
   167
	Unofficial support for the S60/SymbianOS platform has been added.
icculus@3975
   168
</P>
slouken@3976
   169
<P>
slouken@3976
   170
	Unofficial support for the Nintendo DS platform has been added.
slouken@3976
   171
</P>
icculus@4048
   172
<P>
icculus@4048
   173
	Reenabled MMX assembly for YUV overlay processing (GNU C Compiler only).
icculus@4048
   174
</P>
slouken@3960
   175
</BLOCKQUOTE>
slouken@3960
   176
slouken@3960
   177
<H3> Unix Notes </H3>
slouken@3960
   178
slouken@3960
   179
<BLOCKQUOTE>
slouken@3960
   180
<P>
slouken@4021
   181
	Fixed detection of X11 DGA mouse support.
slouken@4021
   182
</P>
slouken@4021
   183
<P>
slouken@3994
   184
	Improved XIM support for asian character sets.
slouken@3994
   185
</P>
slouken@3994
   186
<P>
slouken@3960
   187
	The GFX_Display has been added to the X11 window information in SDL_syswm.h.
slouken@3960
   188
</P>
slouken@3960
   189
<P>
slouken@3960
   190
	Fixed PAGE_SIZE compile error in the fbcon video driver on newer Linux kernels.
slouken@3960
   191
</P>
slouken@3960
   192
<P>
slouken@3960
   193
	Fixed hang or crash at startup if aRts can't access the hardware.
slouken@3960
   194
</P>
slouken@3960
   195
<P>
slouken@3960
   196
	Fixed relative mouse mode when the cursor starts outside the X11 window.
slouken@3960
   197
</P>
slouken@3960
   198
<P>
slouken@3960
   199
	Fixed accidental free of stack memory in X11 mouse acceleration code.
slouken@3960
   200
</P>
slouken@3960
   201
<P>
slouken@3960
   202
	Closed minor memory leak in XME code.
slouken@3960
   203
</P>
icculus@4048
   204
<P>
icculus@4048
   205
	Fixed TEXTRELs in the library to resolve some PIC issues.
icculus@4048
   206
</P>
slouken@3960
   207
</BLOCKQUOTE>
slouken@3960
   208
slouken@3960
   209
<H3> Windows Notes </H3>
slouken@3960
   210
slouken@3960
   211
<BLOCKQUOTE>
slouken@3960
   212
<P>
slouken@3993
   213
	The GDI video driver makes better use of the palette in 8-bit modes.
slouken@3993
   214
</P>
slouken@3993
   215
<P>
icculus@3970
   216
	The windib driver now supports more mouse buttons with WM_XBUTTON events.
icculus@3970
   217
</P>
icculus@3970
   218
<P>
slouken@4083
   219
	On Windows, SDL_SetVideoMode() will re-create the window instead of failing if the multisample settings are changed.
slouken@4083
   220
</P>
slouken@4083
   221
<P>
slouken@3960
   222
	Added support for UTF-8 window titles on Windows.
slouken@3960
   223
</P>
slouken@3960
   224
<P>
slouken@3960
   225
	Fixed joystick detection on Windows.
slouken@3960
   226
</P>
slouken@3960
   227
<P>
slouken@4032
   228
	Improved performance with Win32 file I/O.
slouken@4032
   229
</P>
slouken@4032
   230
<P>
slouken@3960
   231
	Fixed HBITMAP leak in GAPI driver.
slouken@3960
   232
</P>
slouken@3960
   233
</BLOCKQUOTE>
slouken@3960
   234
slouken@3960
   235
<H3> Mac OS X Notes </H3>
slouken@3960
   236
slouken@3960
   237
<BLOCKQUOTE>
slouken@3960
   238
<P>
slouken@3960
   239
	Added support for multi-axis controllers like 3Dconnxion's SpaceNavigator on Mac OS X.
slouken@3960
   240
</P>
slouken@3960
   241
<P>
slouken@3960
   242
	Fixed YUV overlay crash inside Quicktime on Intel Mac OS X.
slouken@3960
   243
</P>
slouken@3960
   244
<P>
slouken@3960
   245
	Fixed blitting alignment in Altivec alpha blit functions.
slouken@3960
   246
</P>
slouken@3960
   247
<P>
slouken@3960
   248
	Keys F13, F14, and F15 are now usable on Apple keyboards under Mac OS X.
slouken@3960
   249
</P>
slouken@3960
   250
<P>
slouken@3960
   251
	Fixed joystick calibration code on Mac OS X.
slouken@3960
   252
</P>
slouken@3960
   253
<P>
slouken@3960
   254
	Fixed mouse jitter when multiple motion events are queued up in Mac OS X.
slouken@3960
   255
</P>
slouken@4074
   256
<P>
slouken@4074
   257
	Fixed changing the cursor in fullscreen mode on Mac OS X.
slouken@4074
   258
</P>
slouken@3960
   259
</BLOCKQUOTE>
slouken@3960
   260
slouken@3963
   261
<H3> Mac OS Classic Notes </H3>
slouken@3963
   262
slouken@3963
   263
<BLOCKQUOTE>
slouken@3963
   264
<P>
slouken@3963
   265
	Added support for gamma ramps to both toolbox and DrawSprocket video drivers.
slouken@3963
   266
</P>
slouken@3963
   267
</BLOCKQUOTE>
slouken@3963
   268
slouken@3960
   269
<H3> BeOS Notes </H3>
slouken@3960
   270
slouken@3960
   271
<BLOCKQUOTE>
slouken@3960
   272
<P>
slouken@3960
   273
	Implemented mouse grabbing and mouse relative mode on BeOS.
slouken@3960
   274
</P>
slouken@3960
   275
</BLOCKQUOTE>
slouken@3960
   276
slouken@3960
   277
<IMG SRC="docs/images/rainbow.gif" ALT="[separator]" WIDTH="100%">
slouken@3960
   278
slouken@1892
   279
<H2> SDL 1.2.11 Release Notes </H2>
slouken@1892
   280
<P>
slouken@1892
   281
SDL 1.2.11 is a minor bug fix release.
slouken@1892
   282
</P>
slouken@1892
   283
slouken@1892
   284
<H3> Unix Notes </H3>
slouken@1892
   285
slouken@1892
   286
<BLOCKQUOTE>
slouken@1892
   287
<P>
slouken@1892
   288
	Dynamic X11 loading is only enabled with gcc 4 supporting -fvisibility=hidden.  This fixes crashes related to symbol collisions, and allows building on Solaris and IRIX.
slouken@1892
   289
</P>
slouken@1892
   290
<P>
slouken@1892
   291
	Fixed building SDL with Xinerama disabled.
slouken@1892
   292
</P>
slouken@1892
   293
<P>
slouken@1892
   294
	Fixed DRI OpenGL library loading, using RTLD_GLOBAL in dlopen().
slouken@1892
   295
</P>
slouken@1892
   296
<P>
slouken@1892
   297
	Added pkgconfig configuration support.
slouken@1892
   298
</P>
slouken@1892
   299
</BLOCKQUOTE>
slouken@1892
   300
slouken@1892
   301
<H3> Windows Notes </H3>
slouken@1892
   302
slouken@1892
   303
<BLOCKQUOTE>
slouken@1892
   304
<P>
slouken@1892
   305
	Setting SDL_GL_SWAP_CONTROL now works with Windows OpenGL.
slouken@1892
   306
</P>
slouken@1892
   307
<P>
slouken@1892
   308
	The Win32 window positioning code works properly for windows with menus.
slouken@1892
   309
</P>
slouken@1892
   310
<P>
slouken@1892
   311
	DirectSound audio quality has been improved on certain sound cards.
slouken@1892
   312
</P>
slouken@1892
   313
<P>
slouken@1892
   314
	Fixed 5.1 audio channel ordering on Windows and Mac OS X.
slouken@1892
   315
</P>
slouken@1892
   316
<P>
slouken@1892
   317
	Plugged a couple of minor memory leaks in the windib video driver.
slouken@1892
   318
</P>
slouken@1892
   319
<P>
slouken@1892
   320
	Fixed type collision with stdint.h when building with gcc on Win32.
slouken@1892
   321
</P>
slouken@1892
   322
<P>
slouken@1892
   323
	Fixed building with the Digital Mars Compiler on Win32.
slouken@1892
   324
</P>
slouken@1892
   325
</BLOCKQUOTE>
slouken@1892
   326
slouken@1892
   327
<H3> Mac OS X Notes </H3>
slouken@1892
   328
slouken@1892
   329
<BLOCKQUOTE>
slouken@1892
   330
<P>
slouken@1892
   331
	The Quartz video driver supports 32x32 cursors on Mac OS X 10.3 and above.
slouken@1892
   332
</P>
slouken@1892
   333
</BLOCKQUOTE>
slouken@1892
   334
slouken@1892
   335
<IMG SRC="docs/images/rainbow.gif" ALT="[separator]" WIDTH="100%">
slouken@1892
   336
slouken@1840
   337
<H2> SDL 1.2.10 Release Notes </H2>
slouken@0
   338
<P>
slouken@1840
   339
SDL 1.2.10 is a major release, featuring a revamp of the build system and many API improvements and bug fixes.
slouken@1840
   340
</P>
slouken@1840
   341
<H3> API enhancements </H3>
slouken@0
   342
<UL>
slouken@1840
   343
<LI>
slouken@1840
   344
	If SDL_OpenAudio() is passed zero for the desired format
slouken@1840
   345
	fields, the following environment variables will be used
slouken@1840
   346
	to fill them in:
slouken@1840
   347
<pre><code>
slouken@1840
   348
		SDL_AUDIO_FREQUENCY
slouken@1840
   349
		SDL_AUDIO_FORMAT
slouken@1840
   350
		SDL_AUDIO_CHANNELS
slouken@1840
   351
		SDL_AUDIO_SAMPLES
slouken@1840
   352
</code></pre>
slouken@1840
   353
	If an environment variable is not specified, it will be set
slouken@1840
   354
	to a reasonable default value.
slouken@1840
   355
<LI>
slouken@1840
   356
	SDL_SetVideoMode() now accepts 0 for width or height and will use
slouken@1840
   357
	the current video mode (or the desktop mode if no mode has been set.)
slouken@1840
   358
<LI>
slouken@1840
   359
	Added current_w and current_h to the SDL_VideoInfo structure,
slouken@1840
   360
	which is set to the desktop resolution during video intialization,
slouken@1840
   361
	and then set to the current resolution when a video mode is set.
slouken@1840
   362
<LI>
slouken@1840
   363
	SDL_GL_LoadLibrary() will load the system default OpenGL library
slouken@1840
   364
	if it is passed NULL as a parameter.
slouken@1840
   365
<LI>
slouken@1840
   366
	Added SDL_GL_SWAP_CONTROL to wait for vsync in OpenGL applications.
slouken@1840
   367
<LI>
slouken@1840
   368
	Added SDL_GL_ACCELERATED_VISUAL to guarantee hardware acceleration.
slouken@1840
   369
<LI>
slouken@1840
   370
	SDL_WM_SetCaption() now officially takes UTF-8 title and icon strings, and displays international characters on supported platforms.
slouken@1840
   371
<LI>
slouken@1840
   372
	Added SDL_GetKeyRepeat() to query the key repeat settings.
slouken@1840
   373
<LI>
slouken@1840
   374
	Added the "dummy" audio driver, which can be used to emulate audio
slouken@1840
   375
	output without a sound card.
slouken@1840
   376
<LI>
slouken@1840
   377
	Added SDL_config.h, with defaults for various build environments.
slouken@0
   378
</UL>
slouken@0
   379
slouken@1840
   380
<H3> General Notes </H3>
slouken@0
   381
slouken@1840
   382
<BLOCKQUOTE>
slouken@1840
   383
<P>
slouken@1840
   384
	The SDL website now has an <A HREF="http://www.libsdl.org/rss/rss.xml">RSS feed</A>!
slouken@1840
   385
<P>
slouken@1840
   386
	The SDL development source code is now managed with <A HREF="http://www.libsdl.org/svn.php">Subversion</A>.
slouken@1840
   387
<P>
slouken@1840
   388
	SDL now uses the Bugzilla <A HREF="http://bugzilla.libsdl.org/">bug tracking system</A>, hosted by icculus.org.
slouken@1840
   389
<P>
slouken@1840
   390
	SDL is licensed under version 2.1 of the GNU Lesser General Public License.
slouken@1840
   391
<P>
slouken@1840
   392
	The entire build system has been revamped to make it much more portable, including versions of C library functions to make it possible to run SDL on a minimal embedded environment.  See README.Porting in the SDL source distribution for information on how to port SDL to a new platform.
slouken@1840
   393
<P>
slouken@1840
   394
	SDL_opengl.h has been updated with the latest glext.h from <A HREF="http://oss.sgi.com/projects/ogl-sample/registry/">http://oss.sgi.com/projects/ogl-sample/registry/</A>
slouken@1840
   395
<P>
slouken@1840
   396
	Alex Volkov contributed highly optimized RGB <-> RGBA blitters.
slouken@1840
   397
</BLOCKQUOTE>
slouken@0
   398
slouken@1840
   399
<H3> Unix Notes </H3>
slouken@0
   400
slouken@1840
   401
<BLOCKQUOTE>
slouken@1840
   402
<P>
slouken@1840
   403
	The X11 libraries are dynamically loaded at runtime by default.  This allows the distributed version of SDL to run on systems without X11 libraries installed.
slouken@1840
   404
<P>
slouken@1840
   405
	The XiG XME extension code is now included in the X11 video driver by default.
slouken@1840
   406
<P>
slouken@1840
   407
	XRandR support for video mode switching has been added to the X11 driver, but is disabled because of undesired interactions with window managers.  You can enable this by setting the environment variable SDL_VIDEO_X11_XRANDR to 1.
slouken@1840
   408
<P>
slouken@1840
   409
	Xinerama multi-head displays are properly handled now, and the SDL_VIDEO_FULLSCREEN_HEAD environment variable can be used to select the screen used for fullscreen video modes.  Note that changing the video modes only works on screen 0.
slouken@1840
   410
<P>
slouken@1840
   411
	XVidMode video modes are now sorted so they maintain the refresh rates specified in the X11 configuration file.
slouken@1840
   412
<P>
slouken@1840
   413
	SDL windows are no longer transparent in X11 compositing systems like XGL.
slouken@1840
   414
<P>
slouken@1840
   415
	The mouse is properly released by the X11 video driver if the fullscreen window loses focus.
slouken@1840
   416
<P>
slouken@1840
   417
	The X11 input driver now uses XIM to handle international input.
slouken@1840
   418
<P>
slouken@1840
   419
	The screensaver and DPMS monitor blanking are disabled while SDL games are running under the X11 and DGA video drivers.  This behavior will be formalized and selectable in SDL 1.3.
slouken@1840
   420
<P>
slouken@1840
   421
	Fixed a bug preventing stereo OpenGL contexts from being selected on the X11 driver.
slouken@1840
   422
<P>
slouken@1840
   423
	The DGA video driver now waits for pending blits involving surfaces before they are freed.  This prevents display oddities when using SDL_DisplayFormat() to convert many images.
slouken@1840
   424
<P>
slouken@1840
   425
	The framebuffer console video driver now has a parser for /etc/fb.modes for improved video mode handling.
slouken@1840
   426
<P>
slouken@1840
   427
	The framebuffer console video driver now allows asynchronous VT switching, and restores the full contents of the screen when switched back.
slouken@1840
   428
<P>
slouken@1840
   429
	The framebuffer console now uses CTRL-ALT-FN to switch virtual terminals, to avoid collisions with application key bindings.
slouken@1840
   430
<P>
slouken@1840
   431
	The framebuffer console input driver correctly sets IMPS/2 mode for wheel mice.  It also properly detects when gpm is in IMPS/2 protocol mode, or passing raw protocol from an IMPS/2 mouse.
slouken@1840
   432
<P>
slouken@1840
   433
	The SVGAlib video driver now has support for banked (non-linear) video modes.
slouken@1840
   434
<P>
slouken@1840
   435
	A video driver for OpenBSD on the Sharp Zaurus has been contributed by Staffan Ulfberg.  See the file README.wscons in the SDL source distribution for details.
slouken@1840
   436
<P>
slouken@1840
   437
	Many patches have been incorporated from *BSD ports.
slouken@1840
   438
</BLOCKQUOTE>
slouken@0
   439
slouken@1840
   440
<H3> Windows Notes </H3>
slouken@0
   441
slouken@1840
   442
<BLOCKQUOTE>
slouken@1840
   443
<P>
slouken@1840
   444
	The "windib" video driver is the default now, to prevent problems with certain laptops, 64-bit Windows, and Windows Vista.  The DirectX driver is still available, and can be selected by setting the environment variable SDL_VIDEODRIVER to "directx".
slouken@1840
   445
<P>
slouken@1840
   446
	SDL has been ported to 64-bit Windows.
slouken@1840
   447
<P>
slouken@1840
   448
	Dmitry Yakimov contributed a GAPI video driver for Windows CE.
slouken@1840
   449
<P>
slouken@1840
   450
	The default fullscreen refresh rate has been increased to match the desktop refresh rate, when using equivalent resolutions.  A full API for querying and selecting refresh rates is planned for SDL 1.3.
slouken@1840
   451
<P>
slouken@1840
   452
	Dialog boxes are now shown when SDL is in windowed OpenGL mode.
slouken@1840
   453
<P>
slouken@1840
   454
	The SDL window is recreated when necessary to maintain OpenGL context attributes, when switching between windowed and fullscreen modes.
slouken@1840
   455
<P>
slouken@1840
   456
	An SDL_VIDEORESIZE event is properly sent when the SDL window is maximized and restored.
slouken@1840
   457
<P>
slouken@1840
   458
	Window positions are retained when switching between fullscreen and windowed modes.
slouken@1840
   459
<P>
slouken@1840
   460
	ToUnicode() is used, when available, for improved handling of international keyboard input.
slouken@1840
   461
<P>
slouken@1840
   462
	The PrtScrn is now treated normally with both key down and key up events.
slouken@1840
   463
<P>
slouken@1840
   464
	Pressing ALT-F4 now delivers an SDL_QUIT event to SDL applications.
slouken@1840
   465
<P>
slouken@1840
   466
	Joystick names are now correct for joysticks which have been unplugged and then plugged back in since booting.
slouken@1840
   467
<P>
slouken@1840
   468
	An MCI error when playing the last track on a CD-ROM has been fixed.
slouken@1840
   469
<P>
slouken@1840
   470
	OpenWatcom projects for building SDL have been provided by Marc Peter.
slouken@1840
   471
</BLOCKQUOTE>
slouken@0
   472
slouken@1840
   473
<H3> Mac OS X Notes </H3>
slouken@1840
   474
slouken@1840
   475
<BLOCKQUOTE>
slouken@0
   476
<P>
slouken@1840
   477
	SDL now supports building Universal binaries, both through Xcode projects and when using configure/make.  See README.MacOSX in the SDL source archive for details.
slouken@1840
   478
<P>
slouken@1840
   479
	The X11 video driver with GLX support can be built on Mac OS X, if the X11 development SDK is installed.
slouken@1840
   480
<P>
slouken@1840
   481
	Transitions between fullscreen resolutions and windowed mode now use a much faster asynchronous fade to hide desktop flicker.
slouken@1840
   482
<P>
slouken@1840
   483
	Icons set with SDL_WM_SetIcon() now have the proper colors on Intel Macs.
slouken@1840
   484
</BLOCKQUOTE>
slouken@1840
   485
slouken@1840
   486
<H3> OS/2 Notes </H3>
slouken@1840
   487
slouken@1840
   488
<BLOCKQUOTE>
slouken@1840
   489
<P>
slouken@1840
   490
	Projects for building SDL on OS/2 with OpenWatcom have been contributed by Doodle.  See the file README.OS2 in the SDL source distribution for details.
slouken@1840
   491
</BLOCKQUOTE>
slouken@1840
   492
slouken@0
   493
<IMG SRC="docs/images/rainbow.gif" ALT="[separator]" WIDTH="100%">
slouken@0
   494
slouken@0
   495
</BODY>
slouken@0
   496
</HTML>