Annotation of 43BSDTahoe/new/X/libibm/bitblt/bitblt_ext.h, revision 1.1.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.