| author | glx | 
| Mon, 24 Sep 2007 03:08:47 +0000 | |
| branch | 0.5 | 
| changeset 5545 | f42dc59a45f5 | 
| parent 5122 | a68d16b055fa | 
| permissions | -rw-r--r-- | 
| 2186 | 1  | 
/* $Id$ */  | 
2  | 
||
| 0 | 3  | 
#ifndef VIEWPORT_H  | 
4  | 
#define VIEWPORT_H  | 
|
5  | 
||
6  | 
struct ViewPort {
 | 
|
| 
4344
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
7  | 
int left,top; // screen coordinates for the viewport  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
8  | 
int width, height; // screen width/height for the viewport  | 
| 0 | 9  | 
|
| 
4344
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
10  | 
int virtual_left, virtual_top; // virtual coordinates  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
11  | 
int virtual_width, virtual_height; // these are just width << zoom, height << zoom  | 
| 0 | 12  | 
|
| 
193
 
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
 
truelight 
parents: 
152 
diff
changeset
 | 
13  | 
byte zoom;  | 
| 0 | 14  | 
};  | 
15  | 
||
| 
1990
 
90eb49e87b90
(svn r2496) -Fix: [1179933] When toggling build/remove via keyboard the selection wasn't correctly redrawn
 
tron 
parents: 
1977 
diff
changeset
 | 
16  | 
void SetSelectionRed(bool);  | 
| 
 
90eb49e87b90
(svn r2496) -Fix: [1179933] When toggling build/remove via keyboard the selection wasn't correctly redrawn
 
tron 
parents: 
1977 
diff
changeset
 | 
17  | 
|
| 0 | 18  | 
/* viewport.c */  | 
| 
5122
 
a68d16b055fa
(svn r7202) -Codechange: Move _viewports and _active_viewports local to viewport.c and have them
 
Darkvater 
parents: 
5046 
diff
changeset
 | 
19  | 
void InitViewports(void);  | 
| 
 
a68d16b055fa
(svn r7202) -Codechange: Move _viewports and _active_viewports local to viewport.c and have them
 
Darkvater 
parents: 
5046 
diff
changeset
 | 
20  | 
void DeleteWindowViewport(Window *w);  | 
| 
193
 
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
 
truelight 
parents: 
152 
diff
changeset
 | 
21  | 
void AssignWindowViewport(Window *w, int x, int y,  | 
| 0 | 22  | 
int width, int height, uint32 follow_flags, byte zoom);  | 
| 2116 | 23  | 
ViewPort *IsPtInWindowViewport(const Window *w, int x, int y);  | 
| 
1093
 
e8d26c7dc42f
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
 
tron 
parents: 
1070 
diff
changeset
 | 
24  | 
Point GetTileBelowCursor(void);  | 
| 
5044
 
7e70387677e5
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
 
Darkvater 
parents: 
5026 
diff
changeset
 | 
25  | 
void UpdateViewportPosition(Window *w);  | 
| 
 
7e70387677e5
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
 
Darkvater 
parents: 
5026 
diff
changeset
 | 
26  | 
|
| 
 
7e70387677e5
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
 
Darkvater 
parents: 
5026 
diff
changeset
 | 
27  | 
enum {
 | 
| 
 
7e70387677e5
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
 
Darkvater 
parents: 
5026 
diff
changeset
 | 
28  | 
ZOOM_IN = 0,  | 
| 
 
7e70387677e5
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
 
Darkvater 
parents: 
5026 
diff
changeset
 | 
29  | 
ZOOM_OUT = 1,  | 
| 
 
7e70387677e5
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
 
Darkvater 
parents: 
5026 
diff
changeset
 | 
30  | 
ZOOM_NONE = 2, // hack, used to update the button status  | 
| 
 
7e70387677e5
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
 
Darkvater 
parents: 
5026 
diff
changeset
 | 
31  | 
};  | 
| 
 
7e70387677e5
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
 
Darkvater 
parents: 
5026 
diff
changeset
 | 
32  | 
|
| 
 
7e70387677e5
(svn r7093) -Codechange: Move DoZoomInOutWindow declaration to viewport.h and rewrite the function
 
Darkvater 
parents: 
5026 
diff
changeset
 | 
33  | 
bool DoZoomInOutWindow(int how, Window *w);  | 
| 
152
 
c3964b43943e
(svn r153) -Feature: [1009710] Extra Viewport. In the minimap dropdown menu, open a new viewport to have a quick look at your favorite map-positions. Independent zoom and quick jump to/from viewport (Dribbel)
 
darkvater 
parents: 
133 
diff
changeset
 | 
34  | 
void ZoomInOrOutToCursorWindow(bool in, Window * w);  | 
| 
 
c3964b43943e
(svn r153) -Feature: [1009710] Extra Viewport. In the minimap dropdown menu, open a new viewport to have a quick look at your favorite map-positions. Independent zoom and quick jump to/from viewport (Dribbel)
 
darkvater 
parents: 
133 
diff
changeset
 | 
35  | 
Point GetTileZoomCenterWindow(bool in, Window * w);  | 
| 
5045
 
3e734e178dae
(svn r7094) -Codechange: Get rid of the window-specific code in DoZoomInOutWindow (enable, disable
 
Darkvater 
parents: 
5044 
diff
changeset
 | 
36  | 
void HandleZoomMessage(Window *w, const ViewPort *vp, byte widget_zoom_in, byte widget_zoom_out);  | 
| 0 | 37  | 
|
| 
5046
 
2b2375affc0a
(svn r7095) -Codechange: Move MaxZoomIn function to viewport.h and change it to MaxZoomInOut
 
Darkvater 
parents: 
5045 
diff
changeset
 | 
38  | 
static inline void MaxZoomInOut(int how, Window *w)  | 
| 
 
2b2375affc0a
(svn r7095) -Codechange: Move MaxZoomIn function to viewport.h and change it to MaxZoomInOut
 
Darkvater 
parents: 
5045 
diff
changeset
 | 
39  | 
{
 | 
| 
 
2b2375affc0a
(svn r7095) -Codechange: Move MaxZoomIn function to viewport.h and change it to MaxZoomInOut
 
Darkvater 
parents: 
5045 
diff
changeset
 | 
40  | 
	while (DoZoomInOutWindow(how, w) ) {};
 | 
| 
 
2b2375affc0a
(svn r7095) -Codechange: Move MaxZoomIn function to viewport.h and change it to MaxZoomInOut
 
Darkvater 
parents: 
5045 
diff
changeset
 | 
41  | 
}  | 
| 
 
2b2375affc0a
(svn r7095) -Codechange: Move MaxZoomIn function to viewport.h and change it to MaxZoomInOut
 
Darkvater 
parents: 
5045 
diff
changeset
 | 
42  | 
|
| 0 | 43  | 
void OffsetGroundSprite(int x, int y);  | 
44  | 
||
45  | 
void DrawGroundSprite(uint32 image);  | 
|
| 
849
 
c6223dbdb202
(svn r1330) Increase size of some vars from int16 to int32 to guard against future overflows
 
tron 
parents: 
835 
diff
changeset
 | 
46  | 
void DrawGroundSpriteAt(uint32 image, int32 x, int32 y, byte z);  | 
| 0 | 47  | 
void AddSortableSpriteToDraw(uint32 image, int x, int y, int w, int h, byte dz, byte z);  | 
| 
5026
 
c8b7148798ac
(svn r7067) Remove the unused parameter params_3 from AddStringToDraw()
 
tron 
parents: 
4799 
diff
changeset
 | 
48  | 
void *AddStringToDraw(int x, int y, StringID string, uint32 params_1, uint32 params_2);  | 
| 0 | 49  | 
void AddChildSpriteScreen(uint32 image, int x, int y);  | 
50  | 
||
51  | 
||
| 
1093
 
e8d26c7dc42f
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
 
tron 
parents: 
1070 
diff
changeset
 | 
52  | 
void StartSpriteCombine(void);  | 
| 
 
e8d26c7dc42f
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
 
tron 
parents: 
1070 
diff
changeset
 | 
53  | 
void EndSpriteCombine(void);  | 
| 0 | 54  | 
|
| 2116 | 55  | 
void HandleViewportClicked(const ViewPort *vp, int x, int y);  | 
| 
1093
 
e8d26c7dc42f
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
 
tron 
parents: 
1070 
diff
changeset
 | 
56  | 
void PlaceObject(void);  | 
| 0 | 57  | 
void SetRedErrorSquare(TileIndex tile);  | 
58  | 
void SetTileSelectSize(int w, int h);  | 
|
59  | 
void SetTileSelectBigSize(int ox, int oy, int sx, int sy);  | 
|
60  | 
||
| 
1977
 
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
 
tron 
parents: 
1863 
diff
changeset
 | 
61  | 
void VpStartPlaceSizing(TileIndex tile, int user);  | 
| 0 | 62  | 
void VpSetPresizeRange(uint from, uint to);  | 
63  | 
void VpSetPlaceSizingLimit(int limit);  | 
|
64  | 
||
| 
1093
 
e8d26c7dc42f
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
 
tron 
parents: 
1070 
diff
changeset
 | 
65  | 
Vehicle *CheckMouseOverVehicle(void);  | 
| 0 | 66  | 
|
67  | 
enum {
 | 
|
| 
4344
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
68  | 
VPM_X_OR_Y = 0,  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
69  | 
VPM_FIX_X = 1,  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
70  | 
VPM_FIX_Y = 2,  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
71  | 
VPM_RAILDIRS = 3,  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
72  | 
VPM_X_AND_Y = 4,  | 
| 0 | 73  | 
VPM_X_AND_Y_LIMITED = 5,  | 
| 
4344
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
74  | 
VPM_SIGNALDIRS = 6  | 
| 
1070
 
bef634a62323
(svn r1571) Feature: Visually enhanced autorail placing
 
dominik 
parents: 
873 
diff
changeset
 | 
75  | 
};  | 
| 
 
bef634a62323
(svn r1571) Feature: Visually enhanced autorail placing
 
dominik 
parents: 
873 
diff
changeset
 | 
76  | 
|
| 
 
bef634a62323
(svn r1571) Feature: Visually enhanced autorail placing
 
dominik 
parents: 
873 
diff
changeset
 | 
77  | 
// viewport highlight mode (for highlighting tiles below cursor)  | 
| 
 
bef634a62323
(svn r1571) Feature: Visually enhanced autorail placing
 
dominik 
parents: 
873 
diff
changeset
 | 
78  | 
enum {
 | 
| 
4344
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
79  | 
VHM_NONE = 0, // default  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
80  | 
VHM_RECT = 1, // rectangle (stations, depots, ...)  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
81  | 
VHM_POINT = 2, // point (lower land, raise land, level land, ...)  | 
| 
1070
 
bef634a62323
(svn r1571) Feature: Visually enhanced autorail placing
 
dominik 
parents: 
873 
diff
changeset
 | 
82  | 
VHM_SPECIAL = 3, // special mode used for highlighting while dragging (and for tunnels/docks)  | 
| 
4344
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
83  | 
VHM_DRAG = 4, // dragging items in the depot windows  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
84  | 
VHM_RAIL = 5, // rail pieces  | 
| 0 | 85  | 
};  | 
86  | 
||
87  | 
void VpSelectTilesWithMethod(int x, int y, int method);  | 
|
88  | 
||
| 
1070
 
bef634a62323
(svn r1571) Feature: Visually enhanced autorail placing
 
dominik 
parents: 
873 
diff
changeset
 | 
89  | 
// highlighting draw styles  | 
| 
4799
 
a32af5dd7b6c
(svn r6721) -Codechange: some comments, aligning, types and variable localization.
 
Darkvater 
parents: 
4344 
diff
changeset
 | 
90  | 
typedef byte HighLightStyle;  | 
| 
 
a32af5dd7b6c
(svn r6721) -Codechange: some comments, aligning, types and variable localization.
 
Darkvater 
parents: 
4344 
diff
changeset
 | 
91  | 
enum HighLightStyles {
 | 
| 
4344
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
92  | 
HT_NONE = 0x00,  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
93  | 
HT_RECT = 0x80,  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
94  | 
HT_POINT = 0x40,  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
95  | 
HT_LINE = 0x20, /* used for autorail highlighting (longer streches)  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
96  | 
* (uses lower bits to indicate direction) */  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
97  | 
HT_RAIL = 0x10, /* autorail (one piece)  | 
| 
 
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
 
rubidium 
parents: 
2817 
diff
changeset
 | 
98  | 
* (uses lower bits to indicate direction) */  | 
| 
4799
 
a32af5dd7b6c
(svn r6721) -Codechange: some comments, aligning, types and variable localization.
 
Darkvater 
parents: 
4344 
diff
changeset
 | 
99  | 
HT_DRAG_MASK = 0xF0, ///< masks the drag-type  | 
| 
1070
 
bef634a62323
(svn r1571) Feature: Visually enhanced autorail placing
 
dominik 
parents: 
873 
diff
changeset
 | 
100  | 
|
| 
1109
 
1bab892228cd
(svn r1610) Remove trailing whitespace (last time ever, i hope)
 
tron 
parents: 
1093 
diff
changeset
 | 
101  | 
/* lower bits (used with HT_LINE and HT_RAIL):  | 
| 
1070
 
bef634a62323
(svn r1571) Feature: Visually enhanced autorail placing
 
dominik 
parents: 
873 
diff
changeset
 | 
102  | 
* (see ASCII art in autorail.h for a visual interpretation) */  | 
| 
4799
 
a32af5dd7b6c
(svn r6721) -Codechange: some comments, aligning, types and variable localization.
 
Darkvater 
parents: 
4344 
diff
changeset
 | 
103  | 
HT_DIR_X = 0, ///< X direction  | 
| 
 
a32af5dd7b6c
(svn r6721) -Codechange: some comments, aligning, types and variable localization.
 
Darkvater 
parents: 
4344 
diff
changeset
 | 
104  | 
HT_DIR_Y = 1, ///< Y direction  | 
| 
 
a32af5dd7b6c
(svn r6721) -Codechange: some comments, aligning, types and variable localization.
 
Darkvater 
parents: 
4344 
diff
changeset
 | 
105  | 
HT_DIR_HU = 2, ///< horizontal upper  | 
| 
 
a32af5dd7b6c
(svn r6721) -Codechange: some comments, aligning, types and variable localization.
 
Darkvater 
parents: 
4344 
diff
changeset
 | 
106  | 
HT_DIR_HL = 3, ///< horizontal lower  | 
| 
 
a32af5dd7b6c
(svn r6721) -Codechange: some comments, aligning, types and variable localization.
 
Darkvater 
parents: 
4344 
diff
changeset
 | 
107  | 
HT_DIR_VL = 4, ///< vertical left  | 
| 
 
a32af5dd7b6c
(svn r6721) -Codechange: some comments, aligning, types and variable localization.
 
Darkvater 
parents: 
4344 
diff
changeset
 | 
108  | 
HT_DIR_VR = 5, ///< vertical right  | 
| 
 
a32af5dd7b6c
(svn r6721) -Codechange: some comments, aligning, types and variable localization.
 
Darkvater 
parents: 
4344 
diff
changeset
 | 
109  | 
HT_DIR_MASK = 0x7 ///< masks the drag-direction  | 
| 0 | 110  | 
};  | 
111  | 
||
112  | 
typedef struct TileHighlightData {
 | 
|
113  | 
Point size;  | 
|
114  | 
Point outersize;  | 
|
115  | 
Point pos;  | 
|
116  | 
Point offs;  | 
|
117  | 
||
118  | 
Point new_pos;  | 
|
119  | 
Point new_size;  | 
|
120  | 
Point new_outersize;  | 
|
121  | 
||
122  | 
Point selend, selstart;  | 
|
123  | 
||
124  | 
byte dirty;  | 
|
125  | 
byte sizelimit;  | 
|
126  | 
||
| 
1070
 
bef634a62323
(svn r1571) Feature: Visually enhanced autorail placing
 
dominik 
parents: 
873 
diff
changeset
 | 
127  | 
byte drawstyle; // lower bits 0-3 are reserved for detailed highlight information information  | 
| 
 
bef634a62323
(svn r1571) Feature: Visually enhanced autorail placing
 
dominik 
parents: 
873 
diff
changeset
 | 
128  | 
byte new_drawstyle; // only used in UpdateTileSelection() to as a buffer to compare if there was a change between old and new  | 
| 
 
bef634a62323
(svn r1571) Feature: Visually enhanced autorail placing
 
dominik 
parents: 
873 
diff
changeset
 | 
129  | 
byte next_drawstyle; // queued, but not yet drawn style  | 
| 0 | 130  | 
|
131  | 
byte place_mode;  | 
|
132  | 
bool make_square_red;  | 
|
| 
873
 
46e892485be3
(svn r1354) Use WindowClass/WindowNumber to store/pass window class/number, not some arbitrary data types
 
tron 
parents: 
849 
diff
changeset
 | 
133  | 
WindowClass window_class;  | 
| 
 
46e892485be3
(svn r1354) Use WindowClass/WindowNumber to store/pass window class/number, not some arbitrary data types
 
tron 
parents: 
849 
diff
changeset
 | 
134  | 
WindowNumber window_number;  | 
| 0 | 135  | 
|
136  | 
int userdata;  | 
|
137  | 
TileIndex redsq;  | 
|
138  | 
} TileHighlightData;  | 
|
139  | 
||
140  | 
||
141  | 
// common button handler  | 
|
142  | 
bool HandlePlacePushButton(Window *w, int widget, uint32 cursor, int mode, PlaceProc *placeproc);  | 
|
143  | 
||
144  | 
VARDEF Point _tile_fract_coords;  | 
|
145  | 
||
| 
1863
 
610acc8bc189
(svn r2369) Remove _thd_ptr: It always holds the address of _thd
 
tron 
parents: 
1109 
diff
changeset
 | 
146  | 
extern TileHighlightData _thd;  | 
| 0 | 147  | 
|
148  | 
||
| 430 | 149  | 
void ViewportDoDraw(const ViewPort *vp, int left, int top, int right, int bottom);  | 
150  | 
||
151  | 
#endif /* VIEWPORT_H */  |