author | pasky |
Sat, 12 Mar 2005 08:52:40 +0000 | |
changeset 1494 | 31436e59176a |
parent 1391 | 929b46b9e3cc |
child 1806 | 5a55d508c23e |
permissions | -rw-r--r-- |
0 | 1 |
#ifndef GFX_H |
2 |
#define GFX_H |
|
3 |
||
4 |
||
5 |
typedef struct ColorList { |
|
6 |
byte unk0, unk1, unk2; |
|
7 |
byte window_color_1a, window_color_1b; |
|
8 |
byte window_color_bga, window_color_bgb; |
|
9 |
byte window_color_2; |
|
10 |
} ColorList; |
|
11 |
||
12 |
struct DrawPixelInfo { |
|
13 |
byte *dst_ptr; |
|
14 |
int left, top, width, height; |
|
15 |
int pitch; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
0
diff
changeset
|
16 |
uint16 zoom; |
0 | 17 |
}; |
18 |
||
19 |
||
20 |
typedef struct CursorVars { |
|
21 |
Point pos, size, offs, delta; |
|
22 |
Point draw_pos, draw_size; |
|
23 |
uint32 sprite; |
|
24 |
||
25 |
int wheel; // mouse wheel movement |
|
26 |
const uint16 *animate_list, *animate_cur; |
|
27 |
uint animate_timeout; |
|
28 |
||
29 |
bool visible; |
|
30 |
bool dirty; |
|
31 |
bool fix_at; |
|
32 |
} CursorVars; |
|
33 |
||
34 |
||
35 |
void RedrawScreenRect(int left, int top, int right, int bottom); |
|
36 |
void GfxScroll(int left, int top, int width, int height, int xo, int yo); |
|
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
298
diff
changeset
|
37 |
int DrawStringCentered(int x, int y, uint16 str, uint16 color); |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
298
diff
changeset
|
38 |
int DrawString(int x, int y, uint16 str, uint16 color); |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
298
diff
changeset
|
39 |
void DrawStringCenterUnderline(int x, int y, uint16 str, uint16 color); |
1323
bac2e38e8b60
(svn r1827) Next iteration of the byte -> char transition: some string drawing functions and buffers
tron
parents:
1093
diff
changeset
|
40 |
int DoDrawString(const char *string, int x, int y, uint16 color); |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
298
diff
changeset
|
41 |
void DrawStringRightAligned(int x, int y, uint16 str, uint16 color); |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
0
diff
changeset
|
42 |
void GfxFillRect(int left, int top, int right, int bottom, int color); |
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
0
diff
changeset
|
43 |
void GfxDrawLine(int left, int top, int right, int bottom, int color); |
0 | 44 |
void DrawFrameRect(int left, int top, int right, int bottom, int color, int flags); |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
298
diff
changeset
|
45 |
uint16 GetDrawStringPlayerColor(byte player); |
0 | 46 |
|
1323
bac2e38e8b60
(svn r1827) Next iteration of the byte -> char transition: some string drawing functions and buffers
tron
parents:
1093
diff
changeset
|
47 |
int GetStringWidth(const char *str); |
1093
4fdc46eaf423
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
tron
parents:
657
diff
changeset
|
48 |
void LoadStringWidthTable(void); |
0 | 49 |
void DrawStringMultiCenter(int x, int y, uint16 str, int maxw); |
50 |
void DrawStringMultiLine(int x, int y, uint16 str, int maxw); |
|
1093
4fdc46eaf423
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
tron
parents:
657
diff
changeset
|
51 |
void DrawDirtyBlocks(void); |
0 | 52 |
void SetDirtyBlocks(int left, int top, int right, int bottom); |
1093
4fdc46eaf423
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
tron
parents:
657
diff
changeset
|
53 |
void MarkWholeScreenDirty(void); |
0 | 54 |
|
1093
4fdc46eaf423
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
tron
parents:
657
diff
changeset
|
55 |
void GfxInitPalettes(void); |
0 | 56 |
|
57 |
bool FillDrawPixelInfo(DrawPixelInfo *n, DrawPixelInfo *o, int left, int top, int width, int height); |
|
58 |
||
59 |
/* window.c */ |
|
60 |
void DrawOverlappedWindowForAll(int left, int top, int right, int bottom); |
|
61 |
||
62 |
void SetMouseCursor(uint cursor); |
|
63 |
void SetAnimatedMouseCursor(const uint16 *table); |
|
1093
4fdc46eaf423
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
tron
parents:
657
diff
changeset
|
64 |
void CursorTick(void); |
4fdc46eaf423
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
tron
parents:
657
diff
changeset
|
65 |
void DrawMouseCursor(void); |
4fdc46eaf423
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
tron
parents:
657
diff
changeset
|
66 |
void ScreenSizeChanged(void); |
4fdc46eaf423
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
tron
parents:
657
diff
changeset
|
67 |
void UndrawMouseCursor(void); |
0 | 68 |
bool ChangeResInGame(int w, int h); |
298
0123c0489940
(svn r304) -Fix: [967096] fullscreen. New button 'Fullscreen' in 'Game Options' menu which lets you set fullscreen ingame.
darkvater
parents:
193
diff
changeset
|
69 |
void ToggleFullScreen(const bool full_screen); |
0 | 70 |
|
71 |
/* gfx.c */ |
|
1390
e7cdf3ce0fb6
(svn r1894) - Codechange: cleaned up the console a bit, wholly unified handling of text with that of editboxes
Darkvater
parents:
1350
diff
changeset
|
72 |
#define ASCII_LETTERSTART 32 |
0 | 73 |
VARDEF int _stringwidth_base; |
74 |
VARDEF byte _stringwidth_table[0x2A0]; |
|
1391
929b46b9e3cc
(svn r1895) - Fix: add assert for charwidth getter just in case
Darkvater
parents:
1390
diff
changeset
|
75 |
static inline byte GetCharacterWidth(uint key) |
929b46b9e3cc
(svn r1895) - Fix: add assert for charwidth getter just in case
Darkvater
parents:
1390
diff
changeset
|
76 |
{ |
929b46b9e3cc
(svn r1895) - Fix: add assert for charwidth getter just in case
Darkvater
parents:
1390
diff
changeset
|
77 |
assert(key >= ASCII_LETTERSTART && key - ASCII_LETTERSTART < lengthof(_stringwidth_table)); |
929b46b9e3cc
(svn r1895) - Fix: add assert for charwidth getter just in case
Darkvater
parents:
1390
diff
changeset
|
78 |
return _stringwidth_table[key - ASCII_LETTERSTART]; |
929b46b9e3cc
(svn r1895) - Fix: add assert for charwidth getter just in case
Darkvater
parents:
1390
diff
changeset
|
79 |
} |
0 | 80 |
|
81 |
VARDEF DrawPixelInfo _screen; |
|
82 |
VARDEF DrawPixelInfo *_cur_dpi; |
|
83 |
VARDEF ColorList _color_list[16]; |
|
84 |
VARDEF CursorVars _cursor; |
|
85 |
||
86 |
VARDEF int _pal_first_dirty; |
|
87 |
VARDEF int _pal_last_dirty; |
|
88 |
||
614
b96f987dbf80
(svn r1038) Feature: OpenTTD runs with the grf files of the DOS version
dominik
parents:
543
diff
changeset
|
89 |
VARDEF bool _use_dos_palette; |
b96f987dbf80
(svn r1038) Feature: OpenTTD runs with the grf files of the DOS version
dominik
parents:
543
diff
changeset
|
90 |
|
0 | 91 |
/* spritecache.c */ |
92 |
//enum { NUM_SPRITES = 0x1320 }; |
|
93 |
//enum { NUM_SPRITES = 0x1500 }; |
|
94 |
enum { NUM_SPRITES = 0x3500 }; // 1500 + space for custom GRF sets |
|
95 |
||
96 |
/* tables.h */ |
|
97 |
extern byte _palettes[4][256 * 3]; |
|
98 |
VARDEF byte _cur_palette[768]; |
|
99 |
||
657
d4d36b4853ec
(svn r1091) Fix: Finally station names use 100% the correct color in transparent mode
dominik
parents:
614
diff
changeset
|
100 |
|
d4d36b4853ec
(svn r1091) Fix: Finally station names use 100% the correct color in transparent mode
dominik
parents:
614
diff
changeset
|
101 |
typedef enum StringColorFlags { |
d4d36b4853ec
(svn r1091) Fix: Finally station names use 100% the correct color in transparent mode
dominik
parents:
614
diff
changeset
|
102 |
IS_PALETTE_COLOR = 0x100, // color value is already a real palette color index, not an index of a StringColor |
d4d36b4853ec
(svn r1091) Fix: Finally station names use 100% the correct color in transparent mode
dominik
parents:
614
diff
changeset
|
103 |
} StringColorFlags; |
d4d36b4853ec
(svn r1091) Fix: Finally station names use 100% the correct color in transparent mode
dominik
parents:
614
diff
changeset
|
104 |
|
0 | 105 |
#endif |