Annotation of uae/src/include/picasso96.h, revision 1.1.1.2

1.1       root        1: /*
                      2:  * UAE - The U*nix Amiga Emulator
                      3:  *
                      4:  * Picasso96 Support Module Header
                      5:  *
                      6:  * Copyright 1997 Brian King <[email protected], [email protected]>
                      7:  */
                      8: 
                      9: #if defined PICASSO96_SUPPORTED
                     10: 
                     11: #define PICASSO96
                     12: 
                     13: #define JAM1 0
                     14: #define JAM2 1
                     15: #define COMP 2
                     16: #define INVERS 4
                     17: 
                     18: struct ScreenResolution
                     19: {
                     20:     uae_u32 width;  /* in pixels */
                     21:     uae_u32 height; /* in pixels */
                     22: };
                     23: 
                     24: #define MAX_PICASSO_MODES 64
                     25: 
                     26: struct PicassoResolution
                     27: {
                     28:     struct Resolutions *next;
                     29:     struct ScreenResolution res;
                     30:     int depth;
                     31:     int refresh;
                     32:     char name[25];
                     33: };
                     34: extern struct PicassoResolution DisplayModes[MAX_PICASSO_MODES];
                     35: 
                     36: 
                     37: /* Types for RGBFormat used */
                     38: typedef enum {
                     39:     RGBFB_NONE,                /* no valid RGB format (should not happen) */
                     40:     RGBFB_CLUT,                /* palette mode, set colors when opening screen using
                     41:                           tags or use SetRGB32/LoadRGB32(...) */
                     42:     RGBFB_R8G8B8,      /* TrueColor RGB (8 bit each) */
                     43:     RGBFB_B8G8R8,      /* TrueColor BGR (8 bit each) */
                     44:     RGBFB_R5G6B5PC,    /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
                     45:                           format: gggbbbbbrrrrrggg */
                     46:     RGBFB_R5G5B5PC,    /* HiColor15 (5 bit each), format: gggbbbbb0rrrrrgg */
                     47:     RGBFB_A8R8G8B8,    /* 4 Byte TrueColor ARGB (A unused alpha channel) */
                     48:     RGBFB_A8B8G8R8,    /* 4 Byte TrueColor ABGR (A unused alpha channel) */
                     49:     RGBFB_R8G8B8A8,    /* 4 Byte TrueColor RGBA (A unused alpha channel) */
                     50:     RGBFB_B8G8R8A8,    /* 4 Byte TrueColor BGRA (A unused alpha channel) */
                     51:     RGBFB_R5G6B5,      /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
                     52:                           format: rrrrrggggggbbbbb */
                     53:     RGBFB_R5G5B5,      /* HiColor15 (5 bit each), format: 0rrrrrgggggbbbbb */
                     54:     RGBFB_B5G6R5PC,    /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
                     55:                           format: gggrrrrrbbbbbggg */
                     56:     RGBFB_B5G5R5PC,    /* HiColor15 (5 bit each), format: gggrrrrr0bbbbbbgg */
                     57: 
                     58:     /* By now, the following formats are for use with a hardware window only
                     59:        (bitmap operations may be implemented incompletely) */
                     60: 
                     61:     RGBFB_Y4U2V2,      /* 2 Byte TrueColor YUV (CCIR recommendation CCIR601).
                     62:                           Each two-pixel unit is stored as one longword
                     63:                           containing luminance (Y) for each of the two pixels,
                     64:                           and chrominance (U,V) for alternate pixels.
                     65:                           The missing chrominance values are generated by
                     66:                           interpolation. (Y1-U0-Y0-V0) */
                     67:     RGBFB_Y4U1V1,      /* 1 Byte TrueColor ACCUPAK. Four adjacent pixels form
                     68:                           a packet of 5 bits Y (luminance) each pixel and 6 bits
                     69:                           U and V (chrominance) shared by the four pixels */
                     70: 
                     71:     RGBFB_MaxFormats
                     72: } RGBFTYPE;
                     73: 
                     74: #define RGBFF_NONE     (1<<RGBFB_NONE)
                     75: #define RGBFF_CLUT     (1<<RGBFB_CLUT)
                     76: #define RGBFF_R8G8B8   (1<<RGBFB_R8G8B8)
                     77: #define RGBFF_B8G8R8   (1<<RGBFB_B8G8R8)
                     78: #define RGBFF_R5G6B5PC (1<<RGBFB_R5G6B5PC)
                     79: #define RGBFF_R5G5B5PC (1<<RGBFB_R5G5B5PC)
                     80: #define RGBFF_A8R8G8B8 (1<<RGBFB_A8R8G8B8)
                     81: #define RGBFF_A8B8G8R8 (1<<RGBFB_A8B8G8R8)
                     82: #define RGBFF_R8G8B8A8 (1<<RGBFB_R8G8B8A8)
                     83: #define RGBFF_B8G8R8A8 (1<<RGBFB_B8G8R8A8)
                     84: #define RGBFF_R5G6B5   (1<<RGBFB_R5G6B5)
                     85: #define RGBFF_R5G5B5   (1<<RGBFB_R5G5B5)
                     86: #define RGBFF_B5G6R5PC (1<<RGBFB_B5G6R5PC)
                     87: #define RGBFF_B5G5R5PC (1<<RGBFB_B5G5R5PC)
                     88: #define RGBFF_Y4U2V2   (1<<RGBFB_Y4U2V2)
                     89: #define RGBFF_Y4U1V1   (1<<RGBFB_Y4U1V1)
                     90: 
1.1.1.2 ! root       91: #define RGBMASK_8BIT RGBFF_CLUT
        !            92: #define RGBMASK_16BIT (RGBFF_R5G6B5PC | RGBFF_B5G6R5PC | RGBFF_R5G6B5)
        !            93: #define RGBMASK_15BIT (RGBFF_R5G5B5PC | RGBFF_B5G5R5PC | RGBFF_R5G5B5)
        !            94: #define RGBMASK_24BIT (RGBFF_R8G8B8 | RGBFF_B8G8R8)
        !            95: #define RGBMASK_32BIT (RGBFF_A8R8G8B8 | RGBFF_A8B8G8R8 | RGBFF_R8G8B8A8 | RGBFF_B8G8R8A8)
        !            96: 
1.1       root       97: /************************************************************************/
                     98: 
                     99: #define        RGBFF_PLANAR    RGBFF_NONE
                    100: #define        RGBFF_CHUNKY    RGBFF_CLUT
                    101: 
                    102: #define        RGBFB_PLANAR    RGBFB_NONE
                    103: #define        RGBFB_CHUNKY    RGBFB_CLUT
                    104: 
                    105: /************************************************************************/
                    106: 
1.1.1.2 ! root      107: enum {
1.1       root      108:     PLANAR,
                    109:     CHUNKY,
                    110:     HICOLOR,
                    111:     TRUECOLOR,
                    112:     TRUEALPHA,
                    113:     MAXMODES
                    114: };
                    115: 
                    116: /************************************************************************/
                    117: struct MyCLUTEntry {
                    118:     uae_u8 Red;
                    119:     uae_u8 Green;
                    120:     uae_u8 Blue;
                    121:     uae_u8 Pad;
                    122: };
                    123: 
                    124: struct ColorIndexMapping {
                    125:     uae_u32 ColorMask;
                    126:     uae_u32 Colors[256];
                    127: };
                    128: 
                    129: struct CLUTEntry {
                    130:     uae_u8 Red;
                    131:     uae_u8 Green;
                    132:     uae_u8 Blue;
                    133: };
                    134: 
                    135: #define PSSO_BitMap_BytesPerRow 0
                    136: #define PSSO_BitMap_Rows 2
                    137: #define PSSO_BitMap_Flags 4
                    138: #define PSSO_BitMap_Depth 5
                    139: #define PSSO_BitMap_pad 6
                    140: #define PSSO_BitMap_Planes 8
                    141: #define PSSO_BitMap_sizeof 40
                    142: 
                    143: struct BitMap
                    144: {
                    145:     uae_u16 BytesPerRow;
                    146:     uae_u16 Rows;
                    147:     uae_u8 Flags;
                    148:     uae_u8 Depth;
                    149:     uae_u16 pad;
                    150:     uae_u8 *Planes[8];
                    151: };
                    152: 
                    153: /************************************************************************/
                    154: 
                    155: #define        SETTINGSNAMEMAXCHARS            30
1.1.1.2 ! root      156: #define        BOARDNAMEMAXCHARS               30
1.1       root      157: 
1.1.1.2 ! root      158: struct Settings {
1.1       root      159:     uae_u32                                    BoardType;
                    160:     /* a value discribing assignment to nth board local to boardtype
                    161:      * to be used for reassignment when boards are added or removed.  */
                    162:     uae_u16                                    LocalOrdering;
                    163:     uae_s16                                    LastSelected;
                    164:     char                                       NameField[SETTINGSNAMEMAXCHARS];
                    165:     /* neu! */
                    166:     char                                       *BoardName;
                    167: };
                    168: 
                    169: #define MAXRESOLUTIONNAMELENGTH 22
                    170: 
                    171: /********************************
                    172:  * only used within rtg.library *
                    173:  ********************************/
                    174: 
                    175: #define PSSO_LibResolution_P96ID 14
                    176: #define PSSO_LibResolution_Name 20
                    177: #define PSSO_LibResolution_DisplayID 42 /* Name + MAXRESOLUTIONNAMELENGTH */
                    178: #define PSSO_LibResolution_Width 46
                    179: #define PSSO_LibResolution_Height 48
                    180: #define PSSO_LibResolution_Flags 50
                    181: #define PSSO_LibResolution_Modes 52
                    182: #define PSSO_LibResolution_BoardInfo (52 + MAXMODES*4)
                    183: #define PSSO_LibResolution_sizeof (60 + MAXMODES*4)
                    184: 
1.1.1.2 ! root      185: struct LibResolution {
1.1       root      186:     char P96ID[6];
                    187:     char Name[MAXRESOLUTIONNAMELENGTH];
                    188:     uae_u32 DisplayID;
                    189:     uae_u16 Width;
                    190:     uae_u16 Height;
                    191:     uae_u16 Flags;
                    192:     uaecptr Modes[MAXMODES];
                    193:     uaecptr BoardInfo;
                    194: };
                    195: 
                    196: #define        P96B_FAMILY     0                       /* obsolete (Resolution is an entire family) */
                    197: #define        P96B_PUBLIC     1                       /* Resolution should be added to the public */
                    198: #define        P96B_MONITOOL   2
                    199: 
                    200: #define        P96F_FAMILY     (1<<P96B_FAMILY)        /* obsolete */
                    201: #define        P96F_PUBLIC     (1<<P96B_PUBLIC)
                    202: #define        P96F_MONITOOL   (1<<P96B_MONITOOL)
                    203: 
                    204: #define PSSO_ModeInfo_OpenCount 14
                    205: #define PSSO_ModeInfo_Active 16
                    206: #define PSSO_ModeInfo_Width 18
                    207: #define PSSO_ModeInfo_Height 20
                    208: #define PSSO_ModeInfo_Depth 22
                    209: #define PSSO_ModeInfo_Flags 23
                    210: #define PSSO_ModeInfo_HorTotal 24
                    211: #define PSSO_ModeInfo_HorBlankSize 26
                    212: #define PSSO_ModeInfo_HorSyncStart 28
                    213: #define PSSO_ModeInfo_HorSyncSize 30
                    214: #define PSSO_ModeInfo_HorSyncSkew 32
                    215: #define PSSO_ModeInfo_HorEnableSkew 33
                    216: #define PSSO_ModeInfo_VerTotal 34
                    217: #define PSSO_ModeInfo_VerBlankSize 36
                    218: #define PSSO_ModeInfo_VerSyncStart 38
                    219: #define PSSO_ModeInfo_VerSyncSize 40
                    220: #define PSSO_ModeInfo_first_union 42
                    221: #define PSSO_ModeInfo_second_union 43
                    222: #define PSSO_ModeInfo_PixelClock 44
                    223: #define PSSO_ModeInfo_sizeof 48
                    224: 
                    225: #define PSSO_RenderInfo_Memory 0
                    226: #define PSSO_RenderInfo_BytesPerRow 4
                    227: #define PSSO_RenderInfo_pad 6
                    228: #define PSSO_RenderInfo_RGBFormat 8
                    229: #define PSSO_RenderInfo_sizeof /* ??? */
                    230: 
                    231: struct RenderInfo {
                    232:     uae_u8 *Memory;
                    233:     uae_s16 BytesPerRow;
                    234:     uae_s16 pad;
                    235:     RGBFTYPE RGBFormat;
                    236: };
                    237: 
                    238: #define PSSO_Pattern_Memory 0
                    239: #define PSSO_Pattern_XOffset 4
                    240: #define PSSO_Pattern_YOffset 6
                    241: #define PSSO_Pattern_FgPen 8
                    242: #define PSSO_Pattern_BgPen 12
                    243: #define PSSO_Pattern_Size 16
                    244: #define PSSO_Pattern_DrawMode 17
                    245: #define PSSO_Pattern_sizeof 18
                    246: struct Pattern {
                    247:     char *Memory;
                    248:     uae_u16 XOffset, YOffset;
                    249:     uae_u32 FgPen, BgPen;
                    250:     uae_u8 Size;                                       /* Width: 16, Height: (1<<pat_Size) */
                    251:     uae_u8 DrawMode;
                    252: };
                    253: 
                    254: #define PSSO_Template_Memory 0
                    255: #define PSSO_Template_BytesPerRow 4
                    256: #define PSSO_Template_XOffset 6
                    257: #define PSSO_Template_DrawMode 7
                    258: #define PSSO_Template_FgPen 8
                    259: #define PSSO_Template_BgPen 12
                    260: #define PSSO_Template_sizeof 16
                    261: 
                    262: struct Template {
1.1.1.2 ! root      263:     char *Memory;
        !           264:     uae_s16 BytesPerRow;
        !           265:     uae_u8 XOffset;
        !           266:     uae_u8 DrawMode;
        !           267:     uae_u32 FgPen;
        !           268:     uae_u32 BgPen;
1.1       root      269: };
                    270: 
                    271: #define PSSO_BoardInfo_MemoryBase 4
                    272: #define PSSO_BoardInfo_MemorySize 12
                    273: #define PSSO_BoardInfo_BoardName 16
                    274: #define PSSO_BoardInfo_VBIName 20
                    275: #define PSSO_BoardInfo_CardBase 52
                    276: #define PSSO_BoardInfo_ChipBase 56
                    277: #define PSSO_BoardInfo_ExecBase 60
                    278: #define PSSO_BoardInfo_UtilBase 64
                    279: #define PSSO_BoardInfo_HardInterrupt 68
                    280: #define PSSO_BoardInfo_SoftInterrupt 90
                    281: #define PSSO_BoardInfo_BoardLock 112
                    282: #define PSSO_BoardInfo_ResolutionsList 158
                    283: #define PSSO_BoardInfo_BoardType 170
                    284: #define PSSO_BoardInfo_PaletteChipType 174
                    285: #define PSSO_BoardInfo_GraphicsControllerType 178
                    286: #define PSSO_BoardInfo_MoniSwitch 182
                    287: #define PSSO_BoardInfo_BitsPerCannon 184
                    288: #define PSSO_BoardInfo_Flags 186
                    289: #define PSSO_BoardInfo_SoftSpriteFlags 190
                    290: #define PSSO_BoardInfo_ChipFlags 192
                    291: #define PSSO_BoardInfo_CardFlags 194
                    292: #define PSSO_BoardInfo_BoardNum 198
                    293: #define PSSO_BoardInfo_RGBFormats 200
                    294: #define PSSO_BoardInfo_MaxHorValue 202
                    295: #define PSSO_BoardInfo_MaxVerValue (202 + 2*MAXMODES)
                    296: #define PSSO_BoardInfo_MaxHorResolution (202 + 4*MAXMODES)
                    297: #define PSSO_BoardInfo_MaxVerResolution (202 + 6*MAXMODES)
                    298: #define PSSO_BoardInfo_MaxMemorySize (202 + 8*MAXMODES)
                    299: #define PSSO_BoardInfo_MaxChunkSize (202 + 8*MAXMODES + 4)
                    300: #define PSSO_BoardInfo_PixelClockArray (202 + 8*MAXMODES + 8)
                    301: #define PSSO_BoardInfo_PixelClockCount (202 + 8*MAXMODES + 12)
                    302: #define PSSO_BoardInfo_AllocCardMem (202 + 12*MAXMODES + 12)
                    303: #define PSSO_BoardInfo_SpecialFeatures (202 + 12*MAXMODES + 12 + 68*4)
                    304: #define PSSO_BoardInfo_ModeInfo (202 + 12*MAXMODES + 12 + 68*4 + 12)
                    305: #define PSSO_BoardInfo_CLUT (202 + 12*MAXMODES + 12 + 68*4 + 32)
                    306: 
1.1.1.2 ! root      307: struct BoardInfo {
1.1       root      308:     uae_u8 *RegisterBase, *MemoryBase, *MemoryIOBase;
                    309:     uae_u32 MemorySize;
                    310:     char *BoardName, VBIName[32];
                    311: 
                    312:     uae_u16 MoniSwitch;
                    313:     uae_u16 BitsPerCannon;
                    314:     uae_u32 Flags;
                    315:     uae_u16 SoftSpriteFlags;
                    316:     uae_u16 ChipFlags; /* private, chip specific, not touched by RTG */
                    317:     uae_u32 CardFlags; /* private, card specific, not touched by RTG */
                    318: 
                    319:     uae_u16 BoardNum;
                    320:     uae_s16 RGBFormats;
                    321: 
                    322:     uae_u16 MaxHorValue[MAXMODES];
                    323:     uae_u16 MaxVerValue[MAXMODES];
                    324:     uae_u16 MaxHorResolution[MAXMODES];
                    325:     uae_u16 MaxVerResolution[MAXMODES];
                    326:     uae_u32 MaxMemorySize, MaxChunkSize;
                    327: };
                    328: 
                    329: /* BoardInfo flags */
                    330: /*  0-15: hardware flags */
                    331: /* 16-31: user flags */
                    332: #define BIB_HARDWARESPRITE     0       /* board has hardware sprite */
                    333: #define BIB_NOMEMORYMODEMIX    1       /* board does not support modifying planar bitmaps while displaying chunky and vice versa */
                    334: #define BIB_NEEDSALIGNMENT     2       /* bitmaps have to be aligned (not yet supported!) */
                    335: #define BIB_DBLSCANDBLSPRITEY  8       /* hardware sprite y position is doubled on doublescan display modes */
                    336: #define BIB_ILACEHALFSPRITEY   9       /* hardware sprite y position is halved on interlace display modes */
                    337: #define BIB_ILACEDBLROWOFFSET  10      /* doubled row offset in interlaced display modes needs additional horizontal bit */
                    338: 
                    339: #define BIB_FLICKERFIXER       12      /* board can flicker fix Amiga RGB signal */
                    340: #define BIB_VIDEOCAPTURE       13      /* board can capture video data to a memory area */
                    341: #define BIB_VIDEOWINDOW                14      /* board can display a second mem area as a pip */
                    342: #define BIB_BLITTER            15      /* board has blitter */
                    343: 
                    344: #define BIB_HIRESSPRITE                16      /* mouse sprite has double resolution */
                    345: #define BIB_BIGSPRITE          17      /* user wants big mouse sprite */
                    346: #define BIB_BORDEROVERRIDE     18      /* user wants to override system overscan border prefs */
                    347: #define BIB_BORDERBLANK                19      /* user wants border blanking */
                    348: #define BIB_INDISPLAYCHAIN     20      /* board switches Amiga signal */
                    349: #define BIB_QUIET              21      /* not yet implemented */
                    350: #define BIB_NOMASKBLITS                22      /* perform blits without taking care of mask */
                    351: #define BIB_NOC2PBLITS         23      /* use CPU for planar to chunky conversions */
                    352: #define BIB_NOBLITTER          24      /* disable all blitter functions */
                    353: 
                    354: #define BIB_IGNOREMASK BIB_NOMASKBLITS
                    355: 
                    356: #define BIF_HARDWARESPRITE     (1<<BIB_HARDWARESPRITE)
                    357: #define BIF_NOMEMORYMODEMIX    (1<<BIB_NOMEMORYMODEMIX)
                    358: #define BIF_NEEDSALIGNMENT     (1<<BIB_NEEDSALIGNMENT)
                    359: #define BIF_DBLSCANDBLSPRITEY  (1<<BIB_DBLSCANDBLSPRITEY)
                    360: #define BIF_ILACEHALFSPRITEY   (1<<BIB_ILACEHALFSPRITEY)
                    361: #define BIF_ILACEDBLROWOFFSET  (1<<BIB_ILACEDBLROWOFFSET)
                    362: #define BIF_FLICKERFIXER       (1<<BIB_FLICKERFIXER)
                    363: #define BIF_VIDEOCAPTURE       (1<<BIB_VIDEOCAPTURE)
                    364: #define BIF_VIDEOWINDOW                (1<<BIB_VIDEOWINDOW)
                    365: #define BIF_BLITTER            (1<<BIB_BLITTER)
                    366: #define BIF_HIRESSPRITE                (1<<BIB_HIRESSPRITE)
                    367: #define BIF_BIGSPRITE          (1<<BIB_BIGSPRITE)
                    368: #define BIF_BORDEROVERRIDE     (1<<BIB_BORDEROVERRIDE)
                    369: #define BIF_BORDERBLANK                (1<<BIB_BORDERBLANK)
                    370: #define BIF_INDISPLAYCHAIN     (1<<BIB_INDISPLAYCHAIN)
                    371: #define BIF_QUIET              (1<<BIB_QUIET)
                    372: #define BIF_NOMASKBLITS                (1<<BIB_NOMASKBLITS)
                    373: #define BIF_NOC2PBLITS         (1<<BIB_NOC2PBLITS)
                    374: #define BIF_NOBLITTER          (1<<BIB_NOBLITTER)
                    375: 
                    376: #define BIF_IGNOREMASK         BIF_NOMASKBLITS
                    377: 
                    378: /************************************************************************/
                    379: struct picasso96_state_struct
                    380: {
                    381:     uae_u32             RGBFormat;   /* true-colour, CLUT, hi-colour, etc. */
                    382:     struct MyCLUTEntry  CLUT[256];   /* Duh! */
                    383:     uaecptr             Address;     /* Active screen address (Amiga-side) */
                    384:     uaecptr             Extent;      /* End address of screen (Amiga-side) */
                    385:     uae_u16             Width;       /* Active display width  (From SetGC) */
                    386:     uae_u16             VirtualWidth;/* Total screen width (From SetPanning) */
                    387:     uae_u16             BytesPerRow; /* Total screen width in bytes (From SetGC) */
                    388:     uae_u16             Height;      /* Active display height (From SetGC) */
                    389:     uae_u16             VirtualHeight; /* Total screen height */
                    390:     uae_u8              GC_Depth;    /* From SetGC() */
                    391:     uae_u8              GC_Flags;    /* From SetGC() */
                    392:     long                XOffset;     /* From SetPanning() */
                    393:     long                YOffset;     /* From SetPanning() */
                    394:     uae_u8              SwitchState; /* From SetSwitch() - 0 is Amiga, 1 is Picasso */
                    395:     uae_u8              BytesPerPixel;
                    396:     uae_u8              CardFound;
                    397: };
                    398: 
                    399: extern void InitPicasso96 (void);
                    400: 
                    401: extern uae_u32 picasso_SetDisplay (void);
                    402: extern uae_u32 picasso_WaitVerticalSync (void);
                    403: extern uae_u32 picasso_CalculateBytesPerRow (void);
                    404: extern uae_u32 picasso_FillRect (void);
                    405: extern uae_u32 picasso_BlitRect (void);
                    406: extern uae_u32 picasso_InvertRect (void);
                    407: extern uae_u32 picasso_SetPanning (void);
                    408: extern uae_u32 picasso_SetGC (void);
                    409: extern uae_u32 picasso_SetDAC (void);
                    410: extern uae_u32 picasso_SetColorArray (void);
                    411: extern uae_u32 picasso_SetSwitch (void);
                    412: extern uae_u32 picasso_SetSwitch (void);
                    413: extern uae_u32 picasso_FindCard (void);
                    414: extern uae_u32 picasso_InitCard (void);
                    415: extern uae_u32 picasso_BlitPlanar2Chunky (void);
                    416: extern uae_u32 picasso_BlitPlanar2Direct (void);
                    417: extern uae_u32 picasso_BlitTemplate (void);
                    418: extern uae_u32 picasso_BlitPattern (void);
                    419: extern uae_u32 picasso_BlitRectNoMaskComplete (void);
                    420: 
                    421: extern uae_u32 gfxmem_mask;
                    422: extern uae_u8 *gfxmemory;
                    423: 
                    424: extern int uaegfx_card_found;
                    425: 
                    426: extern struct picasso96_state_struct picasso96_state;
                    427: 
                    428: #ifdef _WIN32
                    429: extern unsigned int timer_id;
                    430: #endif
                    431: 
1.1.1.2 ! root      432: extern int DX_FillRect (uaecptr mem, uae_u16 X, uae_u16 Y, uae_u16 Width, uae_u16 Height, uae_u32 Pen, uae_u8 Bpp);
        !           433: extern void DX_BlitRect (struct RenderInfo *ri, uae_u16 srcx, uae_u16 srcy, uae_u16 dstx, uae_u16 dsty, uae_u16 w, uae_u16 h);
        !           434: extern void DX_BlitRectFromBuffer (struct RenderInfo *ri, uae_u8* buffer, uae_u16 dstx, uae_u16 dsty, uae_u16 w, uae_u16 h);
        !           435: extern void DX_InvertRect (struct RenderInfo *ri, uae_u16 X, uae_u16 Y, uae_u16 Width, uae_u16 Height);
        !           436: extern void DX_SetPalette (int start, int count);
1.1       root      437: extern int DX_FillResolutions (uae_u16 *);
                    438: extern int DX_BitsPerCannon (void);
                    439: extern void DX_Invalidate (int first, int last);
                    440: extern void picasso_enablescreen (int on);
1.1.1.2 ! root      441: extern void picasso_refresh (void);
1.1       root      442: 
                    443: extern uae_u8 *gfxmemory;
                    444: 
1.1.1.2 ! root      445: /* This structure describes the UAE-side framebuffer for the Picasso
        !           446:  * screen.  */
1.1       root      447: struct picasso_vidbuf_description {
                    448:     int width, height, depth;
                    449:     int rowbytes, pixbytes;
                    450:     int extra_mem; /* nonzero if there's a second buffer that must be updated */
1.1.1.2 ! root      451:     uae_u32 rgbformat;
        !           452:     uae_u32 selected_rgbformat;
        !           453:     uae_u32 clut[256];
1.1       root      454: };
                    455: 
                    456: extern struct picasso_vidbuf_description picasso_vidinfo;
                    457: 
1.1.1.2 ! root      458: extern void gfx_set_picasso_modeinfo (int w, int h, int d, int rgbfmt);
1.1       root      459: extern void gfx_set_picasso_baseaddr (uaecptr);
                    460: extern void gfx_set_picasso_state (int on);
1.1.1.2 ! root      461: extern uae_u8 *gfx_lock_picasso (void);
        !           462: extern void gfx_unlock_picasso (void);
        !           463: 
1.1       root      464: 
                    465: #endif

unix.superglobalmegacorp.com

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