Annotation of frontvm/hardware/screen.h, revision 1.1.1.2

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: 
                     14: /* WinSTon used NUM_FRAMEBUFFERS=2, but =1 seems to be working better in Hatari... */
                     15: #define NUM_FRAMEBUFFERS  1
                     16: 
1.1.1.2 ! root       17: extern unsigned long VideoBase;
        !            18: extern unsigned char *VideoRaster;
        !            19: 
1.1       root       20: typedef struct
                     21: {
                     22:   void *pDrawFunction;              /* Draw function */
                     23:   /*int DirectDrawMode;*/           /* Mode required for DirectDraw. eg MODE_320x200x256 */
                     24:   int Width,Height,BitDepth,VertPixelsPerLine;
                     25:   int PCStartHorizLine,PCStartXOffset;              /* Source ST lines/bytes to skip, Destination screen lines/bytes to skip */
                     26:   int MouseScale;
                     27: } SCREENDRAW;
                     28: 
                     29: /* Update Palette defines */
                     30: enum
                     31: {
                     32:   UPDATE_PALETTE_NONE,
                     33:   UPDATE_PALETTE_UPDATE,
                     34:   UPDATE_PALETTE_FULLUPDATE
                     35: };
                     36: 
                     37: /* Palette mask values for 'HBLPaletteMask[]' */
                     38: #define PALETTEMASK_RESOLUTION  0x00040000
                     39: #define PALETTEMASK_PALETTE     0x0000ffff
                     40: #define PALETTEMASK_UPDATERES   0x20000000
                     41: #define PALETTEMASK_UPDATEPAL   0x40000000
                     42: #define PALETTEMASK_UPDATEFULL  0x80000000
                     43: #define PALETTEMASK_UPDATEMASK  (PALETTEMASK_UPDATEFULL|PALETTEMASK_UPDATEPAL|PALETTEMASK_UPDATERES)
                     44: 
                     45: /* Available fullscreen modes */
                     46: #define NUM_DISPLAYMODEOPTIONS 6
                     47: enum
                     48: {
                     49:   DISPLAYMODE_HICOL_1X,
                     50:   DISPLAYMODE_HICOL_2X,
                     51:   DISPLAYMODE_HICOL_SCALE2X
                     52: };
                     53: 
                     54: 
                     55: /* For palette we don't go from colour '0' as the whole background would change, so go from this value */
                     56: #define  BASECOLOUR       0x0A
                     57: #define  BASECOLOUR_LONG  0x0A0A0A0A
                     58: 
                     59: extern SCREENDRAW ScreenDraw;
                     60: extern unsigned char *pScreenBitmap;
                     61: extern unsigned char *pSTScreen,*pSTScreenCopy;
                     62: extern unsigned char *pPCScreenDest;
                     63: extern int STScreenStartHorizLine,STScreenEndHorizLine;
                     64: extern int PCScreenBytesPerLine,STScreenWidthBytes,STScreenLeftSkipBytes;
                     65: extern BOOL bInFullScreen;
                     66: extern BOOL bFullScreenHold;
                     67: extern BOOL bScreenContentsChanged;
                     68: extern BOOL bTooSlowSoSkipAFlip;
                     69: extern int STScreenLineOffset[SCREEN_HEIGHT_HBL];
                     70: extern unsigned long MainRGBPalette[256];
                     71: extern unsigned long CtrlRGBPalette[16];
                     72: 
                     73: extern unsigned long ST2RGB[2048];
                     74: extern SDL_Surface *sdlscrn;
                     75: extern BOOL bGrabMouse;
                     76: 
                     77: /* palette length changes as dynamic colours change */
                     78: extern int len_main_palette;
                     79: extern unsigned short MainPalette[256];
                     80: extern unsigned short CtrlPalette[16];
                     81: 
                     82: extern void Screen_Init(void);
                     83: extern void Screen_UnInit(void);
                     84: extern void Screen_Reset(void);
                     85: extern void Screen_SetWindowRes();
                     86: extern void Screen_SetScreenLineOffsets(void);
                     87: extern void Screen_SetFullUpdate(void);
                     88: extern void Screen_SetupRGBTable(void);
                     89: extern void Screen_EnterFullScreen(void);
                     90: extern void Screen_ReturnFromFullScreen(void);
                     91: extern void Screen_ClearScreen(void);
                     92: extern void Screen_SetDrawModes(void);
                     93: extern void Screen_Blit(BOOL bSwapScreen);
                     94: extern void Screen_DrawFrame(BOOL bForceFlip);
                     95: extern void Screen_Draw(unsigned long _dummy);
                     96: 
                     97: #endif  /* ifndef HATARI_SCREEN_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.