annotate src/video/xbios/SDL_xbios_centscreen.c @ 4427:eada7e321df6 SDL-1.2

Fixed bug #943 Ozkan Sezer 2010-02-06 12:31:06 PST Hi: Here are some small fixes for compiling SDL against mingw-w64. (see http://mingw-w64.sourceforge.net/ . Despite the name, it supports both win32 and win64.) Two patches, one for SDL-1.2 and one for SDL-1.3 attached. src/audio/windx5/directx.h and src/video/windx5/directx.h (both SDL-1.2 and SDL-1.3.) I get compilation errors about some union not having a member named u1 and alike, because of other system headers being included before this one and them already defining DUMMYUNIONNAME and stuff. This header probably assumes that those stuff are defined in windef.h, but mingw-w64 headers define them in _mingw.h. Easily fixed by moving NONAMELESSUNION definition to the top of the file. SDL_dx5yuv.c (SDL-1.2-only) also needs to include the header before SDL_video.h to avoid the same problem. src/thread/win32/SDL_systhread.c (both SDL-1.2 and SDL-1.3.) : The __GNUC__ case for pfnSDL_CurrentBeginThread is 32-bit centric because _beginthreadex returns uintptr_t, not unsigned long which is 32 bits in win64. Changing the return type to uintptr_t fixes it. Hope these are useful. Thanks.
author Sam Lantinga <slouken@libsdl.org>
date Wed, 10 Mar 2010 15:04:13 +0000
parents 6405314a7c07
children
rev   line source
1061
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
1 /*
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
2 SDL - Simple DirectMedia Layer
4159
a1b03ba2fcd0 Updated copyright date
Sam Lantinga <slouken@libsdl.org>
parents: 4139
diff changeset
3 Copyright (C) 1997-2009 Sam Lantinga
1061
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
4
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
5 This library is free software; you can redistribute it and/or
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
6 modify it under the terms of the GNU Library General Public
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
7 License as published by the Free Software Foundation; either
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
8 version 2 of the License, or (at your option) any later version.
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
9
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
10 This library is distributed in the hope that it will be useful,
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
13 Library General Public License for more details.
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
14
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
15 You should have received a copy of the GNU Library General Public
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
16 License along with this library; if not, write to the Free
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
18
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
19 Sam Lantinga
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
20 slouken@libsdl.org
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
21 */
1402
d910939febfa Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
22 #include "SDL_config.h"
1061
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
23
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
24 /*
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
25 Centscreen extension definitions
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
26
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
27 Patrice Mandin
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
28 */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
29
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
30 #include <mint/falcon.h>
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
31
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
32 #include "SDL_xbios.h"
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
33 #include "SDL_xbios_centscreen.h"
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
34
4194
05c9e942cc46 Preliminary work to support the Milan video bios, that will gives access to 24 or 32 bpp modes. I used the svga driver as model to dynamically build video modes list.
Patrice Mandin <patmandin@gmail.com>
parents: 4159
diff changeset
35 int SDL_XBIOS_ListCentscreenModes(_THIS, int actually_add)
1061
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
36 {
4194
05c9e942cc46 Preliminary work to support the Milan video bios, that will gives access to 24 or 32 bpp modes. I used the svga driver as model to dynamically build video modes list.
Patrice Mandin <patmandin@gmail.com>
parents: 4159
diff changeset
37 centscreen_mode_t curmode, listedmode;
1064
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
38 unsigned long result;
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
39 int cur_handle; /* Current Centscreen mode handle */
1061
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
40
1064
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
41 /* Add Centscreen modes */
1061
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
42 Vread(&curmode);
1064
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
43 cur_handle = curmode.handle;
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
44 curmode.mode = curmode.physx = curmode.physy = curmode.plan =
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
45 curmode.logx = curmode.logy = -1;
1061
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
46
1064
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
47 result = Vfirst(&curmode, &listedmode);
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
48 if (result==0) {
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
49 while (result==0) {
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
50 /* Don't add modes with virtual screen */
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
51 if ((listedmode.mode & CSCREEN_VIRTUAL)==0) {
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
52 /* Don't add modes with bpp<8 */
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
53 if (listedmode.plan>=8) {
4194
05c9e942cc46 Preliminary work to support the Milan video bios, that will gives access to 24 or 32 bpp modes. I used the svga driver as model to dynamically build video modes list.
Patrice Mandin <patmandin@gmail.com>
parents: 4159
diff changeset
54 xbiosmode_t modeinfo;
05c9e942cc46 Preliminary work to support the Milan video bios, that will gives access to 24 or 32 bpp modes. I used the svga driver as model to dynamically build video modes list.
Patrice Mandin <patmandin@gmail.com>
parents: 4159
diff changeset
55
05c9e942cc46 Preliminary work to support the Milan video bios, that will gives access to 24 or 32 bpp modes. I used the svga driver as model to dynamically build video modes list.
Patrice Mandin <patmandin@gmail.com>
parents: 4159
diff changeset
56 modeinfo.number = listedmode.mode;
05c9e942cc46 Preliminary work to support the Milan video bios, that will gives access to 24 or 32 bpp modes. I used the svga driver as model to dynamically build video modes list.
Patrice Mandin <patmandin@gmail.com>
parents: 4159
diff changeset
57 modeinfo.width = listedmode.physx;
05c9e942cc46 Preliminary work to support the Milan video bios, that will gives access to 24 or 32 bpp modes. I used the svga driver as model to dynamically build video modes list.
Patrice Mandin <patmandin@gmail.com>
parents: 4159
diff changeset
58 modeinfo.height = listedmode.physy;
05c9e942cc46 Preliminary work to support the Milan video bios, that will gives access to 24 or 32 bpp modes. I used the svga driver as model to dynamically build video modes list.
Patrice Mandin <patmandin@gmail.com>
parents: 4159
diff changeset
59 modeinfo.depth = listedmode.plan;
4198
6405314a7c07 Define flags for double line and c2p operations. More Milan video work.
Patrice Mandin <patmandin@gmail.com>
parents: 4194
diff changeset
60 modeinfo.flags = (modeinfo.depth == 8 ? XBIOSMODE_C2P : 0);
4194
05c9e942cc46 Preliminary work to support the Milan video bios, that will gives access to 24 or 32 bpp modes. I used the svga driver as model to dynamically build video modes list.
Patrice Mandin <patmandin@gmail.com>
parents: 4159
diff changeset
61
05c9e942cc46 Preliminary work to support the Milan video bios, that will gives access to 24 or 32 bpp modes. I used the svga driver as model to dynamically build video modes list.
Patrice Mandin <patmandin@gmail.com>
parents: 4159
diff changeset
62 SDL_XBIOS_AddMode(this, actually_add, &modeinfo);
1064
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
63 }
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
64 }
1336
3692456e7b0f Use SDL_ prefixed versions of C library functions.
Sam Lantinga <slouken@libsdl.org>
parents: 1105
diff changeset
65 SDL_memcpy(&curmode, &listedmode, sizeof(centscreen_mode_t));
1064
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
66 curmode.mode = curmode.physx = curmode.physy = curmode.plan =
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
67 curmode.logx = curmode.logy = -1;
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
68 result = Vnext(&curmode, &listedmode);
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
69 }
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
70 } else {
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
71 fprintf(stderr, "No suitable Centscreen modes\n");
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
72 }
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
73
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
74 return cur_handle;
1061
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
75 }
1064
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
76
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
77 void SDL_XBIOS_CentscreenSetmode(_THIS, int width, int height, int planes)
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
78 {
4194
05c9e942cc46 Preliminary work to support the Milan video bios, that will gives access to 24 or 32 bpp modes. I used the svga driver as model to dynamically build video modes list.
Patrice Mandin <patmandin@gmail.com>
parents: 4159
diff changeset
79 centscreen_mode_t newmode, curmode;
1064
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
80
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
81 newmode.handle = newmode.mode = newmode.logx = newmode.logy = -1;
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
82 newmode.physx = width;
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
83 newmode.physy = height;
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
84 newmode.plan = planes;
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
85 Vwrite(0, &newmode, &curmode);
1105
1c9988e47824 Disable Centscreen screensaver
Patrice Mandin <patmandin@gmail.com>
parents: 1064
diff changeset
86
4139
568c9b3c0167 * Added configure option --enable-screensaver, to allow enabling the screensaver by default.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
87 #ifdef SDL_VIDEO_DISABLE_SCREENSAVER
1105
1c9988e47824 Disable Centscreen screensaver
Patrice Mandin <patmandin@gmail.com>
parents: 1064
diff changeset
88 /* Disable screensaver */
1c9988e47824 Disable Centscreen screensaver
Patrice Mandin <patmandin@gmail.com>
parents: 1064
diff changeset
89 Vread(&newmode);
1c9988e47824 Disable Centscreen screensaver
Patrice Mandin <patmandin@gmail.com>
parents: 1064
diff changeset
90 newmode.mode &= ~(CSCREEN_SAVER|CSCREEN_ENERGYSTAR);
1c9988e47824 Disable Centscreen screensaver
Patrice Mandin <patmandin@gmail.com>
parents: 1064
diff changeset
91 Vwrite(0, &newmode, &curmode);
4139
568c9b3c0167 * Added configure option --enable-screensaver, to allow enabling the screensaver by default.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
92 #endif /* SDL_VIDEO_DISABLE_SCREENSAVER */
1064
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
93 }
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
94
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
95 void SDL_XBIOS_CentscreenRestore(_THIS, int prev_handle)
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
96 {
4194
05c9e942cc46 Preliminary work to support the Milan video bios, that will gives access to 24 or 32 bpp modes. I used the svga driver as model to dynamically build video modes list.
Patrice Mandin <patmandin@gmail.com>
parents: 4159
diff changeset
97 centscreen_mode_t newmode, curmode;
1064
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
98
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
99 /* Restore old video mode */
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
100 newmode.handle = prev_handle;
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
101 newmode.mode = newmode.physx = newmode.physy = newmode.plan =
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
102 newmode.logx = newmode.logy = -1;
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
103 Vwrite(0, &newmode, &curmode);
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
104 }