Annotation of hatari/src/includes/screen.h, revision 1.1

1.1     ! root        1: /*
        !             2:   Hatari
        !             3: */
        !             4: 
        !             5: /* BMP header */
        !             6: /*typedef struct {
        !             7:   BITMAPFILEHEADER FileHeader;
        !             8:   BITMAPINFOHEADER InfoHeader;
        !             9:   RGBQUAD Colours[256];
        !            10: } BMP;*/
        !            11: 
        !            12: /* Frame buffer, used to store details in screen conversion */
        !            13: typedef struct {
        !            14:   unsigned short int HBLPalettes[(NUM_VISIBLE_LINES+1)*16];  /* 1x16 colour palette per screen line, +1 line as may write after line 200 */
        !            15:   unsigned long HBLPaletteMasks[NUM_VISIBLE_LINES+1];        /* Bit mask of palette colours changes, top bit set is resolution change */
        !            16:   unsigned char *pSTScreen;          /* Copy of screen built up during frame(copy each line on HBL to simulate monitor raster) */
        !            17:   unsigned char *pSTScreenCopy;      /* Previous frames copy of above  */
        !            18:   int OverscanModeCopy;              /* Previous screen overscan mode */
        !            19:   BOOL bFullUpdate;                  /* Set TRUE to cause full update on next draw */
        !            20: } FRAMEBUFFER;
        !            21: #define NUM_FRAMEBUFFERS  2
        !            22: 
        !            23: /* Details for each display screen - both Window and FullScreen */
        !            24: typedef struct {
        !            25:   int STScreenLeftSkipBytes,STScreenWidthBytes;     /* Bytes to skip on left and number of bytes of screen to draw */
        !            26:   int STScreenStartHorizLine,STScreenEndHorizLine;  /* Start/End points in ST screen(28 is top of normal screen) */
        !            27:   int PCStartHorizLine,PCStartXOffset;              /* Source ST lines/bytes to skip, Destination screen lines/bytes to skip */
        !            28: } SCREENDRAW_OVERSCAN;
        !            29: 
        !            30: typedef struct {
        !            31:   void *pDrawFunction;              /* Draw function */
        !            32:   /*int DirectDrawMode;*/           /* Mode required for DirectDraw. eg MODE_320x200x256 */
        !            33:   int Width,Height,BitDepth,VertPixelsPerLine;
        !            34:   SCREENDRAW_OVERSCAN Overscan[4];  /* Details for starting offset for each overscan mode(none,top,bottom,both) */
        !            35: } SCREENDRAW;
        !            36: 
        !            37: typedef struct {
        !            38:   SCREENDRAW *pLowRes, *pAltLowRes;
        !            39:   SCREENDRAW *pMediumRes, *pAltMediumRes;
        !            40:   SCREENDRAW *pHighRes, *pAltHighRes;
        !            41:   SCREENDRAW *pLowMediumMixRes, *pAltLowMediumMixRes;
        !            42: } SCREENDRAW_DISPLAYOPTIONS;
        !            43: 
        !            44: /* ST Resolution defines */
        !            45: enum {
        !            46:   ST_LOW_RES,
        !            47:   ST_MEDIUM_RES,
        !            48:   ST_HIGH_RES,
        !            49:   ST_LOWMEDIUM_MIX_RES
        !            50: };
        !            51: 
        !            52: /* Update Palette defines */
        !            53: enum {
        !            54:   UPDATE_PALETTE_NONE,
        !            55:   UPDATE_PALETTE_UPDATE,
        !            56:   UPDATE_PALETTE_FULLUPDATE
        !            57: };
        !            58: 
        !            59: /* Palette mask values for 'HBLPaletteMask[]' */
        !            60: #define PALETTEMASK_RESOLUTION  0x00040000
        !            61: #define PALETTEMASK_PALETTE  0x0000ffff
        !            62: #define PALETTEMASK_UPDATERES  0x20000000
        !            63: #define PALETTEMASK_UPDATEPAL  0x40000000
        !            64: #define PALETTEMASK_UPDATEFULL  0x80000000
        !            65: #define PALETTEMASK_UPDATEMASK  (PALETTEMASK_UPDATEFULL|PALETTEMASK_UPDATEPAL|PALETTEMASK_UPDATERES)
        !            66: 
        !            67: /* Overscan values */
        !            68: enum {
        !            69:   OVERSCANMODE_NONE,     // 0x00
        !            70:   OVERSCANMODE_TOP,      // 0x01
        !            71:   OVERSCANMODE_BOTTOM    // 0x02 (Top+Bottom) 0x03
        !            72: };
        !            73: 
        !            74: /* For palette we don't go from colour '0' as the whole background would change, so go from this value */
        !            75: #define  BASECOLOUR       0x0A
        !            76: #define  BASECOLOUR_LONG  0x0A0A0A0A
        !            77: 
        !            78: /*extern BMP ScreenBMP;*/
        !            79: extern SCREENDRAW ScreenDrawWindow[4];
        !            80: extern SCREENDRAW ScreenDrawFullScreen[4];
        !            81: extern FRAMEBUFFER *pFrameBuffer;
        !            82: extern unsigned char *pScreenBitmap;
        !            83: extern unsigned char *pSTScreen,*pSTScreenCopy;
        !            84: extern unsigned char *pPCScreenDest;
        !            85: extern int STScreenStartHorizLine,STScreenEndHorizLine;
        !            86: extern int PCScreenBytesPerLine,STScreenWidthBytes,STScreenLeftSkipBytes;
        !            87: extern BOOL bInFullScreen;
        !            88: extern BOOL bFullScreenHold;
        !            89: extern BOOL bScreenContentsChanged;
        !            90: extern int STRes,PrevSTRes;
        !            91: extern volatile int VBLCounter;
        !            92: extern volatile int OldVBLCounter;
        !            93: extern int STScreenLineOffset[NUM_VISIBLE_LINES];
        !            94: extern unsigned long STRGBPalette[16];
        !            95: extern unsigned long ST2RGB[2048];
        !            96: 
        !            97: extern void Screen_Init(void);
        !            98: extern void Screen_UnInit(void);
        !            99: extern void Screen_Reset(void);
        !           100: extern void Screen_SetScreenLineOffsets(void);
        !           101: //extern void Screen_SetBMPHeaders(BMP *pBMP,int Width,int Height,int BitCount);
        !           102: extern void Screen_SetFullUpdate(void);
        !           103: extern void Screen_SetupRGBTable(BOOL bFullScreen);
        !           104: extern void Screen_EnterFullScreen(void);
        !           105: extern void Screen_ReturnFromFullScreen(void);
        !           106: extern void Screen_Clear_Window(void);
        !           107: extern void Screen_SetDrawModes(void);
        !           108: extern void Screen_AllocateScreenBitmap(int Width,int Height,int BitCount);
        !           109: extern void Screen_Blit(BOOL bSwapScreen);
        !           110: extern FRAMEBUFFER *Screen_GetOtherFrameBuffer(void);
        !           111: extern void Screen_DrawFrame(BOOL bForceFlip);
        !           112: extern void Screen_Draw(void);

unix.superglobalmegacorp.com

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