annotate src/video/xbios/SDL_xbios_centscreen.h @ 1643:51038e80ae59

More general fix for bug #189 The clipping is done at a higher level, and the low level functions are passed clipped rectangles. Drivers which don't support source clipping have not been changed, so the image will be squished instead of clipped, but at least they will no longer crash when the destination rect was out of bounds.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 17 Apr 2006 06:47:23 +0000
parents d910939febfa
children 782fd950bd46 c121d94672cb a1b03ba2fcd0
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
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
3 Copyright (C) 1997-2004 Sam Lantinga
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: 1064
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 #ifndef _SDL_xbios_centscreen_h
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
31 #define _SDL_xbios_centscreen_h
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
32
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
33 #include <mint/falcon.h> /* for trap_14_xxx macros */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
34
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
35 #include "SDL_xbios.h"
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
36
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
37 /*--- Defines ---*/
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
38
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
39 #ifndef C_CNTS
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
40 #define C_CNTS 0x434e5453L
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
41 #endif
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
42
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
43 #define CSCREEN_ENERGYSTAR (1<<9)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
44 #define CSCREEN_SAVER (1<<10)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
45 #define CSCREEN_VIRTUAL (1<<11)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
46 #define CSCREEN_EXTCLOCK_CT2 (1<<12)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
47 #define CSCREEN_EXTCLOCK (1<<13)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
48 #define CSCREEN_STANDARD (1<<14)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
49 #define CSCREEN_DEFAULT (1<<15)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
50
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
51 /*--- Structures ---*/
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
52
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
53 typedef struct {
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
54 unsigned short handle; /* videomode handle */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
55 unsigned short mode; /* Falcon videomode code */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
56 unsigned short physx; /* visible width */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
57 unsigned short physy; /* visible height */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
58 unsigned short plan; /* bitplanes */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
59 unsigned short logx; /* virtual width */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
60 unsigned short logy; /* virtual height */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
61 unsigned short eco; /* screen saver delay */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
62 unsigned short eco2; /* energy star screen saver delay */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
63 unsigned short wsize; /* screen width (mm) */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
64 unsigned short hsize; /* screen height (mm) */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
65 unsigned short dummy[21];
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
66 unsigned char name[32]; /* videomode name */
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
67 } __attribute__((packed)) centscreen_mode_t;
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
68
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
69 /*--- Functions prototypes ---*/
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
70
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
71 #define Vread(current_mode) \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
72 (void)trap_14_wl((short)0x41,(long)(current_mode))
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
73 #define Vwrite(init_vdi, inparam, outparam) \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
74 (long)trap_14_wwll((short)0x42,(short)(init_vdi),(long)(inparam),(long)(outparam))
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
75 #define Vattrib(inparam, outparam) \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
76 (void)trap_14_wll((short)0x43,(long)(inparam),(long)(outparam))
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
77 #define Vcreate(inparam, outparam) \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
78 (void)trap_14_wll((short)0x44,(long)(inparam),(long)(outparam))
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
79 #define Vdelete(handle) \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
80 (long)trap_14_ww((short)0x45,(short)(handle))
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
81 #define Vfirst(mask,mode) \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
82 (long)trap_14_wll((short)0x46,(long)(mask),(long)(mode))
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
83 #define Vnext(mask,mode) \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
84 (long)trap_14_wll((short)0x47,(long)(mask),(long)(mode))
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
85 #define Vvalid(handle) \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
86 (long)trap_14_ww((short)0x48,(short)(handle))
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
87 #define Vload() \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
88 (long)trap_14_w((short)0x49)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
89 #define Vsave() \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
90 (long)trap_14_w((short)0x4a)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
91 #define Vopen() \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
92 (long)trap_14_w((short)0x4b)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
93 #define Vclose() \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
94 (long)trap_14_w((short)0x4c)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
95 #define Vscroll(scrollmode) \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
96 (long)trap_14_ww((short)0x4d,(short)(scrollmode))
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
97 #define Voffset() \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
98 (long)trap_14_w((short)0x4e)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
99 #define Vseek() \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
100 (long)trap_14_w((short)0x4f)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
101 #define Vlock(cmd) \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
102 (long)trap_14_ww((short)0x50,(short)(cmd))
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
103 #define SetMon(montype) \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
104 (long)trap_14_ww((short)0x51,(short)(montype))
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
105 #define MultiMon(cmd) \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
106 (long)trap_14_ww((short)0x52,(short)(cmd))
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
107 #define VSizeComp() \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
108 (long)trap_14_w((short)0x53)
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
109 #define Vsize(mode) \
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
110 (long)trap_14_wl((short)0x54,(long)(mode))
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
111
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
112 /*--- Functions prototypes ---*/
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
113
1064
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
114 int SDL_XBIOS_CentscreenInit(_THIS);
fba6b67b4d60 Add Centscreen extended modes support
Patrice Mandin <patmandin@gmail.com>
parents: 1061
diff changeset
115 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
116 void SDL_XBIOS_CentscreenRestore(_THIS, int prev_handle);
1061
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
117
5023cde12cbd Add Falcon Centscreen extension support
Patrice Mandin <patmandin@gmail.com>
parents:
diff changeset
118 #endif /* _SDL_xbios_centscreen_h */