--- hatari/src/includes/screen.h 2019/04/01 07:09:16 1.1.1.1 +++ hatari/src/includes/screen.h 2019/04/01 07:09:42 1.1.1.3 @@ -2,12 +2,11 @@ Hatari */ -/* BMP header */ -/*typedef struct { - BITMAPFILEHEADER FileHeader; - BITMAPINFOHEADER InfoHeader; - RGBQUAD Colours[256]; -} BMP;*/ +#ifndef SCREEN_H +#define SCREEN_H + +#include /* for SDL_Surface */ + /* Frame buffer, used to store details in screen conversion */ typedef struct { @@ -58,24 +57,35 @@ enum { /* Palette mask values for 'HBLPaletteMask[]' */ #define PALETTEMASK_RESOLUTION 0x00040000 -#define PALETTEMASK_PALETTE 0x0000ffff -#define PALETTEMASK_UPDATERES 0x20000000 -#define PALETTEMASK_UPDATEPAL 0x40000000 +#define PALETTEMASK_PALETTE 0x0000ffff +#define PALETTEMASK_UPDATERES 0x20000000 +#define PALETTEMASK_UPDATEPAL 0x40000000 #define PALETTEMASK_UPDATEFULL 0x80000000 #define PALETTEMASK_UPDATEMASK (PALETTEMASK_UPDATEFULL|PALETTEMASK_UPDATEPAL|PALETTEMASK_UPDATERES) /* Overscan values */ enum { - OVERSCANMODE_NONE, // 0x00 - OVERSCANMODE_TOP, // 0x01 - OVERSCANMODE_BOTTOM // 0x02 (Top+Bottom) 0x03 + OVERSCANMODE_NONE, /* 0x00 */ + OVERSCANMODE_TOP, /* 0x01 */ + OVERSCANMODE_BOTTOM /* 0x02 (Top+Bottom) 0x03 */ }; +/* Available fullscreen modes */ +#define NUM_DISPLAYMODEOPTIONS 6 +enum { + DISPLAYMODE_16COL_LOWRES, /* (fastest) */ + DISPLAYMODE_16COL_HIGHRES, + DISPLAYMODE_16COL_FULL, + DISPLAYMODE_HICOL_LOWRES, + DISPLAYMODE_HICOL_HIGHRES, + DISPLAYMODE_HICOL_FULL /* (slowest) */ +}; + + /* For palette we don't go from colour '0' as the whole background would change, so go from this value */ #define BASECOLOUR 0x0A #define BASECOLOUR_LONG 0x0A0A0A0A -/*extern BMP ScreenBMP;*/ extern SCREENDRAW ScreenDrawWindow[4]; extern SCREENDRAW ScreenDrawFullScreen[4]; extern FRAMEBUFFER *pFrameBuffer; @@ -88,25 +98,25 @@ extern BOOL bInFullScreen; extern BOOL bFullScreenHold; extern BOOL bScreenContentsChanged; extern int STRes,PrevSTRes; -extern volatile int VBLCounter; -extern volatile int OldVBLCounter; extern int STScreenLineOffset[NUM_VISIBLE_LINES]; extern unsigned long STRGBPalette[16]; extern unsigned long ST2RGB[2048]; +extern SDL_Surface *sdlscrn; extern void Screen_Init(void); extern void Screen_UnInit(void); extern void Screen_Reset(void); extern void Screen_SetScreenLineOffsets(void); -//extern void Screen_SetBMPHeaders(BMP *pBMP,int Width,int Height,int BitCount); extern void Screen_SetFullUpdate(void); extern void Screen_SetupRGBTable(BOOL bFullScreen); extern void Screen_EnterFullScreen(void); extern void Screen_ReturnFromFullScreen(void); -extern void Screen_Clear_Window(void); +extern void Screen_ClearScreen(void); extern void Screen_SetDrawModes(void); -extern void Screen_AllocateScreenBitmap(int Width,int Height,int BitCount); +extern void Screen_SetWindowRes(int Width,int Height,int BitCount); extern void Screen_Blit(BOOL bSwapScreen); extern FRAMEBUFFER *Screen_GetOtherFrameBuffer(void); extern void Screen_DrawFrame(BOOL bForceFlip); extern void Screen_Draw(void); + +#endif /* ifndef SCREEN_H */