Mercurial > sdl-ios-xcode
annotate src/video/xbios/SDL_xbios_centscreen.c @ 2860:6ce28e5287e9
Date: Sun, 07 Dec 2008 13:35:23 +0100
From: Couriersud
Subject: SDL: Mouse last_x, last_y into SDL_Mouse
the attached diff moves the static vars last_x and last_y into
SDL_Mouse. These, as far as I understand it, should be tied to the
individual mouse.
The patch also makes the code check for out of window conditions of
mouse->x,y when relative movements are passed to MouseSendMotion.
Also attached is the latest DirectFB code (dfb20081208) supporting
multiple mice and keyboards. This works quite well with sdlmame now. It
however needs more testing with different directfb configurations.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 08 Dec 2008 00:52:12 +0000 |
parents | 99210400e8b9 |
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 |
2859 | 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 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
35 int |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
36 SDL_XBIOS_CentscreenInit(_THIS) |
1061
5023cde12cbd
Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
37 { |
2188
0e751c1f83f5
Disable video extensions atm
Patrice Mandin <patmandin@gmail.com>
parents:
1895
diff
changeset
|
38 #if 0 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
39 centscreen_mode_t curmode, listedmode; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
40 unsigned long result; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
41 int cur_handle; /* Current Centscreen mode handle */ |
1061
5023cde12cbd
Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
42 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
43 /* Reset current mode list */ |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
44 if (XBIOS_modelist) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
45 SDL_free(XBIOS_modelist); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
46 XBIOS_nummodes = 0; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
47 XBIOS_modelist = NULL; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
48 } |
1061
5023cde12cbd
Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
49 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
50 /* Add Centscreen modes */ |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
51 Vread(&curmode); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
52 cur_handle = curmode.handle; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
53 curmode.mode = curmode.physx = curmode.physy = curmode.plan = |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
54 curmode.logx = curmode.logy = -1; |
1061
5023cde12cbd
Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
55 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
56 result = Vfirst(&curmode, &listedmode); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
57 if (result == 0) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
58 while (result == 0) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
59 /* Don't add modes with virtual screen */ |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
60 if ((listedmode.mode & CSCREEN_VIRTUAL) == 0) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
61 /* Don't add modes with bpp<8 */ |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
62 if (listedmode.plan >= 8) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
63 SDL_XBIOS_AddMode(this, listedmode.mode, |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
64 listedmode.physx, |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
65 listedmode.physy, |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
66 listedmode.plan, SDL_FALSE); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
67 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
68 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
69 SDL_memcpy(&curmode, &listedmode, sizeof(centscreen_mode_t)); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
70 curmode.mode = curmode.physx = curmode.physy = curmode.plan = |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
71 curmode.logx = curmode.logy = -1; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
72 result = Vnext(&curmode, &listedmode); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
73 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
74 } else { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
75 fprintf(stderr, "No suitable Centscreen modes\n"); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
76 } |
1064
fba6b67b4d60
Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents:
1061
diff
changeset
|
77 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
78 return cur_handle; |
2188
0e751c1f83f5
Disable video extensions atm
Patrice Mandin <patmandin@gmail.com>
parents:
1895
diff
changeset
|
79 #else |
0e751c1f83f5
Disable video extensions atm
Patrice Mandin <patmandin@gmail.com>
parents:
1895
diff
changeset
|
80 return -1; |
0e751c1f83f5
Disable video extensions atm
Patrice Mandin <patmandin@gmail.com>
parents:
1895
diff
changeset
|
81 #endif |
1061
5023cde12cbd
Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
82 } |
1064
fba6b67b4d60
Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents:
1061
diff
changeset
|
83 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
84 void |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
85 SDL_XBIOS_CentscreenSetmode(_THIS, int width, int height, int planes) |
1064
fba6b67b4d60
Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents:
1061
diff
changeset
|
86 { |
2188
0e751c1f83f5
Disable video extensions atm
Patrice Mandin <patmandin@gmail.com>
parents:
1895
diff
changeset
|
87 #if 0 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
88 centscreen_mode_t newmode, curmode; |
1105
1c9988e47824
Disable Centscreen screensaver
Patrice Mandin <patmandin@gmail.com>
parents:
1064
diff
changeset
|
89 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
90 newmode.handle = newmode.mode = newmode.logx = newmode.logy = -1; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
91 newmode.physx = width; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
92 newmode.physy = height; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
93 newmode.plan = planes; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
94 Vwrite(0, &newmode, &curmode); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
95 |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
96 /* Disable screensaver */ |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
97 Vread(&newmode); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
98 newmode.mode &= ~(CSCREEN_SAVER | CSCREEN_ENERGYSTAR); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
99 Vwrite(0, &newmode, &curmode); |
2188
0e751c1f83f5
Disable video extensions atm
Patrice Mandin <patmandin@gmail.com>
parents:
1895
diff
changeset
|
100 #endif |
1064
fba6b67b4d60
Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents:
1061
diff
changeset
|
101 } |
fba6b67b4d60
Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents:
1061
diff
changeset
|
102 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
103 void |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
104 SDL_XBIOS_CentscreenRestore(_THIS, int prev_handle) |
1064
fba6b67b4d60
Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents:
1061
diff
changeset
|
105 { |
2188
0e751c1f83f5
Disable video extensions atm
Patrice Mandin <patmandin@gmail.com>
parents:
1895
diff
changeset
|
106 #if 0 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
107 centscreen_mode_t newmode, curmode; |
1064
fba6b67b4d60
Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents:
1061
diff
changeset
|
108 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
109 /* Restore old video mode */ |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
110 newmode.handle = prev_handle; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
111 newmode.mode = newmode.physx = newmode.physy = newmode.plan = |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
112 newmode.logx = newmode.logy = -1; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
113 Vwrite(0, &newmode, &curmode); |
2188
0e751c1f83f5
Disable video extensions atm
Patrice Mandin <patmandin@gmail.com>
parents:
1895
diff
changeset
|
114 #endif |
1064
fba6b67b4d60
Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents:
1061
diff
changeset
|
115 } |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
116 |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1402
diff
changeset
|
117 /* vi: set ts=4 sw=4 expandtab: */ |