Annotation of uae/src/include/xwin.h, revision 1.1.1.4

1.1.1.3   root        1:  /*
1.1       root        2:   * UAE - The Un*x Amiga Emulator
1.1.1.3   root        3:   *
1.1       root        4:   * Interface to the graphics system (X, SVGAlib)
1.1.1.3   root        5:   *
                      6:   * Copyright 1995-1997 Bernd Schmidt
1.1       root        7:   */
                      8: 
                      9: typedef long int xcolnr;
                     10: 
1.1.1.2   root       11: typedef int (*allocfunc_type)(int, int, int, xcolnr *);
1.1       root       12: 
                     13: extern xcolnr xcolors[4096];
                     14: 
                     15: extern int buttonstate[3];
                     16: extern int newmousecounters;
                     17: extern int lastmx, lastmy;
1.1.1.4 ! root       18: extern int ievent_alive;
1.1       root       19: 
1.1.1.4 ! root       20: extern int graphics_setup (void);
        !            21: extern int graphics_init (void);
        !            22: extern void graphics_leave (void);
        !            23: extern void handle_events (void);
        !            24: extern void setup_brkhandler (void);
        !            25: 
        !            26: extern void flush_line (int);
        !            27: extern void flush_block (int, int);
        !            28: extern void flush_screen (int, int);
        !            29: 
        !            30: extern int lockscr (void);
        !            31: extern void unlockscr (void);
        !            32: 
        !            33: extern int debuggable (void);
        !            34: extern int needmousehack (void);
        !            35: extern void togglemouse (void);
        !            36: extern void LED (int);
        !            37: 
        !            38: extern int bits_in_mask (unsigned long mask);
        !            39: extern int mask_shift (unsigned long mask);
        !            40: extern unsigned long doMask (int p, int bits, int shift);
        !            41: extern unsigned long doMask256 (int p, int bits, int shift);
        !            42: extern void setup_maxcol (int);
        !            43: extern void alloc_colors256 (int (*)(int, int, int, xcolnr *));
        !            44: extern void alloc_colors64k (int, int, int, int, int, int);
        !            45: extern void setup_greydither (int bits, allocfunc_type allocfunc);
        !            46: extern void setup_greydither_maxcol (int maxcol, allocfunc_type allocfunc);
        !            47: extern void setup_dither (int bits, allocfunc_type allocfunc);
        !            48: extern void DitherLine (uae_u8 *l, uae_u16 *r4g4b4, int x, int y, uae_s16 len, int bits) ASM_SYM_FOR_FUNC("DitherLine");
1.1       root       49: 
                     50: struct vidbuf_description
                     51: {
1.1.1.4 ! root       52:     /* The graphics code has a choice whether it wants to use a large buffer
        !            53:      * for the whole display, or only a small buffer for a single line.
        !            54:      * If you use a large buffer:
        !            55:      *   - set bufmem to point at it
        !            56:      *   - set linemem to 0
        !            57:      *   - if memcpy within bufmem would be very slow, i.e. because bufmem is
        !            58:      *     in graphics card memory, also set emergmem to point to a buffer 
        !            59:      *     that is large enough to hold a single line.
        !            60:      *   - implement flush_line to be a no-op.
        !            61:      * If you use a single line buffer:
        !            62:      *   - set bufmem and emergmem to 0
        !            63:      *   - set linemem to point at your buffer
        !            64:      *   - implement flush_line to copy a single line to the screen
        !            65:      */
        !            66:     char *bufmem;
        !            67:     char *linemem;
        !            68:     char *emergmem;
1.1.1.2   root       69:     int rowbytes; /* Bytes per row in the memory pointed at by bufmem. */
                     70:     int pixbytes; /* Bytes per pixel. */
1.1.1.3   root       71:     int width;
                     72:     int height;
1.1.1.2   root       73:     int maxblocklines; /* Set to 0 if you want calls to flush_line after each drawn line, or the number of
                     74:                        * lines that flush_block wants to/can handle (it isn't really useful to use another
                     75:                        * value than maxline here). */
1.1.1.3   root       76:     int can_double; /* Set if the high part of each entry in xcolors contains the same value
                     77:                     * as the low part, so that two pixels can be drawn at once. */
1.1       root       78: };
                     79: 
                     80: extern struct vidbuf_description gfxvidinfo;
1.1.1.3   root       81: 
                     82: /* For ports using tui.c, this should be built by graphics_setup(). */
                     83: extern struct bstring *video_mode_menu;
                     84: extern void vidmode_menu_selected(int);
                     85: 
1.1.1.4 ! root       86: extern int inhibit_frame;
1.1.1.3   root       87: 
                     88: static __inline__ void set_inhibit_frame (int bit)
                     89: {
                     90:     inhibit_frame |= 1 << bit;
                     91: }
                     92: static __inline__ void clear_inhibit_frame (int bit)
                     93: {
                     94:     inhibit_frame &= ~(1 << bit);
                     95: }
                     96: static __inline__ void toggle_inhibit_frame (int bit)
                     97: {
                     98:     inhibit_frame ^= ~(1 << bit);
                     99: }
                    100: 

unix.superglobalmegacorp.com

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