1 /*
2  * sdl_core.h  SDL acess wrapper
3  *
4  * Copyright (C) 2000-     Fumihiko Murata       <fmurata@p1.tcnet.ne.jp>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20 */
21 /* $Id: sdl_core.h,v 1.18 2003/01/04 17:01:02 chikama Exp $ */
22 
23 #ifndef __SDL_CORE__
24 #define __SDL_CORE__
25 
26 #include "config.h"
27 #include <sys/types.h>
28 #include <SDL/SDL.h>
29 #include "portab.h"
30 #include "ags.h"
31 #include "cursor.h"
32 
33 /* ������ط� */
34 extern int  sdl_Initilize(void);
35 extern void sdl_Remove(void);
36 
37 /* ������ɴط� */
38 extern void sdl_setWorldSize(int width, int height, int depth);
39 extern void sdl_setWindowSize(int x, int y, int w, int h);
40 extern void sdl_setWindowTitle(char *name);
41 extern void sdl_getWindowInfo(DispInfo *info);
42 extern void sdl_FullScreen(boolean on);
43 extern agsurface_t *sdl_getDIB(void);
44 
45 /* ���̹��� */
46 extern void sdl_updateArea(MyRectangle *src, MyPoint *dst);
47 extern void sdl_fullScreen(boolean on);
48 
49 /* �ѥ�åȴط� */
50 extern void sdl_setPallet(Pallet256 *pal, int src, int cnt);
51 
52 /* ����ط� */
53 extern void sdl_drawRectangle(int x, int y, int w, int h, int cl);
54 extern void sdl_fillRectangle(int x, int y, int w, int h, u_long c);
55 extern void sdl_drawLine(int x1, int y1, int x2, int y2, u_long col);
56 extern int  sdl_drawString(int x, int y, char *msg, u_long col);
57 extern void sdl_copyArea(int sx,int sy, int w, int h, int dx, int dy);
58 extern void sdl_drawTT(int x,int y,int w,int h,const char *bitmap,int ww, boolean antialiased);
59 extern void sdl_copyAreaSP(int sx, int sy, int w, int h, int dx, int dy, int sp);
60 extern void sdl_drawImage8_fromData(cgdata *cg, int x, int y, int w, int h);
61 extern void sdl_Mosaic(int sx, int sy, int w, int h, int dx, int dy, int slice);
62 extern void sdl_wrapColor(int sx, int sy, int w, int h, int cl, int rate);
63 extern void sdl_scaledCopyArea(SDL_Surface *src, SDL_Surface *dst, int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh, int mirror);
64 extern void sdl_zoom(int x, int y, int w, int h);
65 extern void sdl_drawImage16_fromData(cgdata *cg, int x, int y, int w, int h);
66 extern void sdl_copyAreaSP16_shadow(int sx, int sy, int w, int h, int dx, int dy, int lv);
67 extern void sdl_copyAreaSP16_alphaBlend(int sx, int sy, int w, int h, int dx, int dy, int lv);
68 extern void sdl_copyAreaSP16_alphaLevel(int sx, int sy, int w, int h, int dx, int dy, int lv);
69 extern void sdl_copyAreaSP16_whiteLevel(int sx, int sy, int w, int h, int dx, int dy, int lv);
70 extern void sdl_copy_from_alpha(int sx, int sy, int w, int h, int dx, int dy, ALPHA_DIB_COPY_TYPE flag);
71 extern void sdl_copy_to_alpha(int sx, int sy, int w, int h, int dx, int dy, ALPHA_DIB_COPY_TYPE flag);
72 extern void sdl_getPixel(int x, int y, Pallet *cell);
73 extern void sdl_putRegion(SDL_Surface *src, int x, int y);
74 extern void sdl_CopyRegion(SDL_Surface *src, int sx, int sy, int w, int h, int dx, int dy);
75 extern void sdl_restoreRegion(SDL_Surface *src, int x, int y);
76 extern SDL_Surface* sdl_saveRegion(int x, int y, int w, int h);
77 extern void sdl_maskupdate(int sx, int sy, int w, int h, int dx, int dy, int func, int step);
78 
79 /* �ե���ȴ�Ϣ */
80 extern void sdl_setFontDevice(FONT *f);
81 
82 /* fader */
83 extern void sdl_fadeIn(int step);
84 extern void sdl_fadeOut(int step);
85 extern void sdl_whiteIn(int step);
86 extern void sdl_whiteOut(int step);
87 
88 /* key/pointer �ط� */
89 extern int  sdl_keywait(int msec, boolean cancel);
90 extern void sdl_keywait_post(void);
91 extern void sdl_setCursorLocation(int x, int y);
92 extern void sdl_setCursorType(int type);
93 extern boolean sdl_cursorNew(BYTE* data, int no, CursorImage *cursorImage,  TCursorDirEntry *cursordirentry);
94 extern int  sdl_getKeyInfo();
95 extern int  sdl_getMouseInfo(MyPoint *p);
96 extern int  sdl_getjoyinfo(void);
97 
98 /* misc */
99 extern void sdl_mainIteration();
100 extern boolean RawKeyInfo[];
101 
102 /* ������ط� */
103 #define GraphicsInitilize() sdl_Initilize()
104 #define GraphicsRemove() sdl_Remove()
105 
106 /* ������ɴط� */
107 #define GetWindowInfo(info) sdl_getWindowInfo(info)
108 #define SetWindowSize(x,y,w,h) sdl_setWindowSize((x),(y),(w),(h))
109 #define SetWindowTitle(size) sdl_setWindowTitle((size))
110 #define SetWorldSize(w,h,d) sdl_setWorldSize((w),(h),(d))
111 #define GetDIB() sdl_getDIB()
112 
113 /* ���̹��� */
114 #define DspDeviceSync() sdl_sync()
115 #define UpdateArea(src,dst) sdl_updateArea((src),(dst))
116 #define FullScreen(on) sdl_FullScreen(on)
117 
118 /* �ѥ�åȴط� */
119 #define SetPallet(pal,src,cnt) sdl_setPallet((pal),(src),(cnt))
120 
121 /* ����ط� */
122 #define DrawString(x,y,str,col) sdl_drawString((x),(y),(str),(col))
123 #define FillRectangle(x,y,w,h,col) sdl_fillRectangle((x),(y),(w),(h),(col))
124 #define CopyArea(sx,sy,w,h,dx,dy) sdl_copyArea((sx),(sy),(w),(h),(dx),(dy))
125 #define CopyAreaSP(sx,sy,w,h,dx,dy,col) sdl_copyAreaSP((sx),(sy),(w),(h),(dx),(dy),(col))
126 #define DrawLine(x0,y0,x1,y1,col) sdl_drawLine((x0),(y0),(x1),(y1),(col))
127 #define ScaledCopyArea(sx, sy, sw, sh, dx, dy, dw, dh, mirror_sw) sdl_scaledCopyArea(NULL, NULL, sx, sy, sw, sh, dx, dy, dw, dh, mirror_sw)
128 #define Zoom(x,y,w,h) sdl_zoom(x,y,w,h)
129 #define WrapColor(x,y,w,h,col,rate) sdl_wrapColor((x),(y),(w),(h),(col),(rate))
130 #define GetPixel(x, y, cell) sdl_getPixel(x, y, cell)
131 #define DrawImage8_fromData(info,x,y,w,h) sdl_drawImage8_fromData(info,x,y,w,h)
132 #define DrawImage16_fromData(info,x,y,w,h) sdl_drawImage16_fromData(info,x,y,w,h)
133 #define CopyAreaSP16_shadow(sx,sy,w,h,dx,dy) sdl_copyAreaSP16_shadow(sx,sy,w,h,dx,dy,255)
134 #define CopyAreaSP16_shadow_withRate(sx,sy,w,h,dx,dy,lv) sdl_copyAreaSP16_shadow(sx,sy,w,h,dx,dy,lv)
135 #define CopyAreaSP16_alphaLevel(sx, sy, w, h, dx, dy, lv) sdl_copyAreaSP16_alphaLevel(sx, sy, w, h, dx, dy, lv)
136 #define CopyAreaSP16_alphaBlend(sx, sy, w, h, dx, dy, lv) sdl_copyAreaSP16_alphaBlend(sx, sy, w, h, dx, dy, lv)
137 #define CopyAreaSP16_whiteLevel(sx, sy, w, h, dx, dy, lv) sdl_copyAreaSP16_whiteLevel(sx, sy, w, h, dx, dy, lv)
138 #define Copy_from_alpha(sx, sy, w, h, dx, dy, flg) sdl_copy_from_alpha(sx, sy, w, h, dx, dy, flg)
139 #define Copy_to_alpha(sx, sy, w, h, dx, dy, flg) sdl_copy_to_alpha(sx, sy, w, h, dx, dy, flg)
140 #define DrawRectangle(x,y,w,h,col) sdl_drawRectangle((x),(y),(w),(h),(col))
141 #define Mosaic(sx,sy,w,h,dx,dy,sl) sdl_Mosaic((sx),(sy),(w),(h),(dx),(dy),(sl))
142 #define RestoreRegion(img,x,y) sdl_restoreRegion((img),(x),(y));
143 #define SaveRegion(x,y,w,h) sdl_saveRegion(x,y,w,h)
144 #define DelRegion(i) SDL_FreeSurface(i)
145 #define PutRegion(i,x,y) sdl_putRegion(i,x,y)
146 #define CopyRegion(i,sx,sy,w,h,dx,dy) sdl_CopyRegion(i,sx,sy,w,h,dx,dy)
147 #define Maskupdate(sx,sy,w,h,dx,dy,f,st) sdl_maskupdate(sx,sy,w,h,dx,dy,f,st)
148 
149 /* �ե���ȴ�Ϣ */
150 #define SetFontDevice(f) sdl_setFontDevice(f)
151 
152 /* fader ��Ϣ */
153 #define FadeOut sdl_fadeOut
154 #define FadeIn sdl_fadeIn
155 #define WhiteIn sdl_whiteIn
156 #define WhiteOut sdl_whiteOut
157 
158 /* key/pointer �ط� */
159 #define GetKeyInfo() sdl_getKeyInfo()
160 #define SetCursorType(t) sdl_setCursorType((t))
161 #define GetMouseInfo(info) sdl_getMouseInfo(info)
162 #define Keywait(r,flg) sdl_keywait(r,flg)
163 #define SetCursorLocation(x,y) sdl_setCursorLocation((x),(y))
164 #define CursorNew(d,no,i,dir) sdl_cursorNew((d),(no),(i),(dir))
165 
166 /* misc */
167 #define ResourceInit(c,v) sdl_ResourceInit((c),(v))
168 #define SetNoShmMode() /* NO */
169 
170 #endif /* !__SDL_CORE__ */
171