Annotation of 43BSDTahoe/new/X/libibm/bitblt/bitblt_aed.h, revision 1.1

1.1     ! root        1: /* $Header: bitblt_aed.h,v 10.1 86/11/19 10:51:37 jg Exp $ */
        !             2: /* aed.h - Defines and macros needed to support AED
        !             3:  *
        !             4:  *     Author:
        !             5:  *             Scott Bates
        !             6:  *             Brown University
        !             7:  *             IRIS, Box 1946
        !             8:  *             Providence, RI 02912
        !             9:  *
        !            10:  *
        !            11:  *             Copyright (c) 1986 Brown University
        !            12:  *
        !            13:  * Permission to use, copy, modify and distribute this software and its
        !            14:  * documentation for any purpose and without fee is hereby granted, provided
        !            15:  * that the above copyright notice appear in all copies, and that both
        !            16:  * that copyright notice and this permission notice appear in supporting
        !            17:  * documentation, and that the name of Brown University not be used in
        !            18:  * advertising or publicity pertaining to distribution of the software
        !            19:  * without specific, written prior permission. Brown University makes no
        !            20:  * representations about the suitability of this software for any purpose.
        !            21:  * It is provided "as-is" without express or implied warranty.
        !            22:  */
        !            23: 
        !            24: #define AED_BM_ADDR    0xEF100000
        !            25: #define AED_WIDTH      1024
        !            26: #define AED_HEIGHT     800
        !            27: #define AED_BM_SIZE    (((((AED_WIDTH/8) * AED_HEIGHT) + 2047) / 2048) * 2048)
        !            28: #define AED_COLOR      ((int *)(AED_BM_ADDR + AED_BM_SIZE + 0))
        !            29: #define AED_CMDQ_SEMA  (*((int *)(AED_BM_ADDR + AED_BM_SIZE + 4)))
        !            30: #define AED_CMDQ_INDEX (*((int *)(AED_BM_ADDR + AED_BM_SIZE + 8)))
        !            31: #define AED_CMDQ       ((struct aed_cmd *)(AED_BM_ADDR + AED_BM_SIZE + 128))
        !            32: 
        !            33: #define AED_CMD_SIZE   64      /* size of a command on queue */
        !            34: #define AED_MAX_CMDS   ((2048 - 128) / AED_CMD_SIZE)
        !            35: 
        !            36: /*
        !            37:  * Types of aed commands
        !            38:  */
        !            39: 
        !            40: #define AED_ECHO_RECT  1
        !            41: #define AED_DRAW_LINE  2
        !            42: #define AED_SCREEN_COPY        3
        !            43: 
        !            44: /*
        !            45:  * echo a rectangle from the simulated bitmap to the display.
        !            46:  */
        !            47: 
        !            48: struct aed_echo_rect {
        !            49:        short origin_y;
        !            50:        short origin_x;
        !            51:        short corner_y;
        !            52:        short corner_x;
        !            53: };
        !            54: 
        !            55: /*
        !            56:  * draw a line
        !            57:  */
        !            58: 
        !            59: struct aed_draw_line {
        !            60:        short   from_x;
        !            61:        short   from_y;
        !            62:        short   to_x;
        !            63:        short   to_y;
        !            64:        short   rule;
        !            65:        short   width;
        !            66:        short   color;
        !            67:        u_short pat;
        !            68:        short   patlen;
        !            69:        short   top;
        !            70:        short   left;
        !            71:        short   bottom;
        !            72:        short   right;
        !            73: };
        !            74: 
        !            75: /*
        !            76:  * screen to screen copy
        !            77:  */
        !            78: 
        !            79: struct aed_screen_copy {
        !            80:        short from_x;
        !            81:        short from_y;
        !            82:        short to_x;
        !            83:        short to_y;
        !            84:        short width;
        !            85:        short height;
        !            86:        short rule;
        !            87: };
        !            88: 
        !            89: /*
        !            90:  * AED command struct
        !            91:  */
        !            92: 
        !            93: struct aed_cmd {
        !            94:        long cmd;
        !            95:        union cmd_block {
        !            96:                struct aed_echo_rect echo_rect;
        !            97:                struct aed_draw_line draw_line;
        !            98:                struct aed_screen_copy screen_copy;
        !            99:        } aed_cmd_block;
        !           100:        char padding[AED_CMD_SIZE - sizeof(long) - sizeof(union cmd_block)];
        !           101: };
        !           102: 
        !           103: #define ECHO_RECT      aed_cmd_block.echo_rect
        !           104: #define SCREEN_COPY    aed_cmd_block.screen_copy
        !           105: #define DRAW_LINE      aed_cmd_block.draw_line
        !           106: 
        !           107: /*
        !           108:  * map bltter combination rule to AED combination rule
        !           109:  */
        !           110: 
        !           111: static u_char aed_rules[16] = {
        !           112:        0, 8, 4, 12, 2, 10, 6, 14,
        !           113:        1, 9, 5, 13, 3, 11, 7, 15,
        !           114: };
        !           115: 
        !           116: #define AED_RULE(x_rule) (((u_short)aed_rules[x_rule]) & 0x0F)

unix.superglobalmegacorp.com

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