|
|
1.1 root 1: /*
2: Hatari - screen.h
3:
4: This file is distributed under the GNU Public License, version 2 or at your
5: option any later version. Read the file gpl.txt for details.
6: */
7:
8: #ifndef HATARI_SCREEN_H
9: #define HATARI_SCREEN_H
10:
11: #include <SDL_video.h> /* for SDL_Surface */
12:
13: extern unsigned long VideoBase;
14: extern unsigned char *VideoRaster;
15:
16: extern unsigned int MainRGBPalette[256];
17: extern unsigned int CtrlRGBPalette[16];
18: extern int fe2_bgcol;
19:
20: extern SDL_Surface *sdlscrn;
21: extern BOOL bGrabMouse;
22: extern BOOL bInFullScreen;
23: enum RENDERERS {
24: R_OLD,
25: R_GLWIRE,
26: R_GL,
27: R_MAX
28: };
29: extern enum RENDERERS use_renderer;
30:
31: /* palette length changes as dynamic colours change */
32: extern int len_main_palette;
33: extern unsigned short MainPalette[256];
34: extern unsigned short CtrlPalette[16];
35:
36: /* XXX this crap is only needed for the software renderer */
37: /* Do not use directly - they are just locations in STRam */
38: extern unsigned long logscreen, logscreen2, physcreen, physcreen2;
39: /* Use these instead. They read the value */
40: #define LOGSCREEN (STRam + STMemory_ReadLong (logscreen))
41: #define LOGSCREEN2 (STRam + STMemory_ReadLong (logscreen2))
42: #define PHYSCREEN (STRam + STMemory_ReadLong (physcreen))
43: #define PHYSCREEN2 (STRam + STMemory_ReadLong (physcreen2))
44:
45: /* Returns new xpos */
46: extern int DrawStr (int xpos, int ypos, int col, unsigned char *str, bool shadowed);
47:
48: extern void Screen_Init(void);
49: extern void Screen_UnInit(void);
50: extern void Screen_ToggleFullScreen (void);
51: extern void Screen_ToggleRenderer ();
52:
53: extern void Nu_PutComplexStart ();
54: extern void Nu_PutTriangle ();
55: extern void Nu_PutQuad ();
56: extern void Nu_PutLine ();
57: extern void Nu_PutPoint ();
58: extern void Nu_PutTwinklyCircle ();
59: extern void Nu_PutCircle ();
60: extern void Nu_PutColoredPoint ();
61: extern void Nu_PutBezierLine ();
62: extern void Nu_ComplexStart ();
63: extern void Nu_ComplexSNext ();
64: extern void Nu_ComplexSBegin ();
65: extern void Nu_ComplexEnd ();
66: extern void Nu_3DViewInit ();
67: extern void Nu_InsertZNode ();
68: extern void Nu_ComplexStartInner ();
69: extern void Nu_ComplexBezier ();
70: extern void Nu_DrawScreen ();
71: extern void Nu_PutTeardrop ();
72: extern void Nu_PutOval ();
73: extern void Nu_IsGLRenderer ();
74: extern void Nu_GLClearArea ();
75: extern void Nu_QueueDrawStr ();
76: extern void Nu_PutCylinder ();
77: extern void Nu_PutBlob ();
78: extern void Nu_PutPlanet ();
79:
80: extern int screen_w;
81: extern int screen_h;
82: extern int mouse_shown;
83: extern float hack;
84:
85: #endif /* ifndef HATARI_SCREEN_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.