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

1.1     ! root        1: /* $Header: bitblt_ext.h,v 10.1 86/11/19 10:51:57 jg Exp $ */
        !             2: /*
        !             3:  *             Copyright (c) 1986 Brown University
        !             4:  *
        !             5:  * Permission to use, copy, modify and distribute this software and its
        !             6:  * documentation for any purpose and without fee is hereby granted, provided
        !             7:  * that the above copyright notice appear in all copies, and that both
        !             8:  * that copyright notice and this permission notice appear in supporting
        !             9:  * documentation, and that the name of Brown University not be used in
        !            10:  * advertising or publicity pertaining to distribution of the software without
        !            11:  * specific, written prior permission. Brown University makes no
        !            12:  * representations about the suitability of this software for any purpose.
        !            13:  * It is provided "as-is" without express or implied warranty.
        !            14:  *
        !            15:  * Written by Daniel Stone, Brown University/IRIS  (des@iris)
        !            16:  */
        !            17: 
        !            18: /*
        !            19:  * Rectangle.
        !            20:  */
        !            21: typedef struct Blt_Rectangle {
        !            22:        short origin_y;         /* top */
        !            23:        short origin_x;         /* left */
        !            24:        short corner_y;         /* bottom */
        !            25:        short corner_x;         /* right */
        !            26: } Blt_Rectangle;
        !            27: 
        !            28: /*
        !            29:  * Bitmap.
        !            30:  */
        !            31: typedef struct Blt_Bitmap {
        !            32:        unsigned short *base;   /* pointer to the actual bits */
        !            33:        Blt_Rectangle rect;     /* bounding rectangle */
        !            34:        short nshorts;          /* number of shorts wide the bitmap is */
        !            35: } Blt_Bitmap;
        !            36: 
        !            37: /*
        !            38:  * Tile. (Texture,Pattern have your pick.)
        !            39:  */
        !            40: #define BLT_TILE_SIZE  16
        !            41: typedef struct Blt_Tile {
        !            42:        unsigned short tile[BLT_TILE_SIZE];
        !            43: } Blt_Tile;
        !            44: 
        !            45: /*
        !            46:  * Bitblt user data structure.
        !            47:  *
        !            48:  * bitblt() is passed a pointer to a user structure which contains all the
        !            49:  * necessary information to do the bit block transfer.
        !            50:  *
        !            51:  * NOTE: If the "comb_rule" does uses the source then tile_ptr does not have
        !            52:  * to be set.  Otherwise comb_rule is a tile combination rule and the
        !            53:  * src_bitmap and src_rect need not be filled in.  If the clip bit in
        !            54:  * blt_flags is off (0) then clp_rect need not be filled in. If the mask
        !            55:  * bit in blt_flags is off then msk_bitmap need not be filled in.
        !            56:  */
        !            57: typedef struct {
        !            58:        Blt_Bitmap      src_bitmap;     /* Bitmap to be copied from */
        !            59:        Blt_Rectangle   src_rect;       /* Specifies the area in the
        !            60:                                           src_bitmap */
        !            61:        Blt_Bitmap      dst_bitmap;     /* Bitmap to be changed */
        !            62:        Blt_Rectangle   dst_rect;       /* Specifies the area in the
        !            63:                                           dst_bitmap */
        !            64:        Blt_Rectangle   clp_rect;       /* Another rectangle to clip against */
        !            65:        Blt_Tile        *tile_ptr;      /* The tile to be used if the
        !            66:                                           combination rule uses a tile */
        !            67:        Blt_Bitmap      msk_bitmap;     /* Masking bitmap */
        !            68:        short           comb_rule;      /* combination rule to be used */
        !            69:        short           blt_flags;      /* A bit on means do a certain
        !            70:                                           operation.  For example if the first
        !            71:                                           bit is on then do clipping. */
        !            72: } Blt;
        !            73: 
        !            74: /*
        !            75:  * Flags blt_flags could be.
        !            76:  */
        !            77: #define BLT_CLIPON             0x1
        !            78: #define BLT_MASKON             0x2
        !            79: #define BLT_ECHO               0x4
        !            80: 
        !            81: #ifndef BPW
        !            82: /*
        !            83:  * Macros for division from words and bytes.
        !            84:  */
        !            85: #define BPW             16 /* Bits per Word */
        !            86: #define LOG2_BPW        4
        !            87: #define MOD_BPW(value)  ((value) & (BPW-1))
        !            88: #define DIV_BPW(value)  ((value) >> LOG2_BPW)
        !            89: #define MUL_BPW(value)  ((value) << LOG2_BPW)
        !            90: 
        !            91: /*
        !            92:  * Bits TO Words.
        !            93:  */
        !            94: #define BTOW(bits)      (DIV_BPW((bits) + (BPW-1)))
        !            95: 
        !            96: /*
        !            97:  * Macros for the division and multiplication by 2.
        !            98:  */
        !            99: #define DIV_2(n) ((n) >> 1)
        !           100: #define MUL_2(n) ((n) << 1)
        !           101: #define MOD_2(n) ((n) & 0x1)
        !           102: #endif BPW
        !           103: 
        !           104: /*
        !           105:  * Flags to indicate whether or not current screen is a hardware or
        !           106:  * software cursor.
        !           107:  */
        !           108: #define SOFT_CURSOR    0x1
        !           109: #define HARD_CURSOR    0x2
        !           110: 
        !           111: /*
        !           112:  * externs for X access.
        !           113:  */
        !           114: extern int xdev;
        !           115: extern XIoAddr *XAddr;

unix.superglobalmegacorp.com

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