|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T b ┃
Length: 3418 (0xd5a) Types: TextFile Names: »bitblt_ext.h«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─ ⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z« └─⟦2109abc41⟧ └─ ⟦this⟧ »./X.V10R4/libibm/bitblt/bitblt_ext.h«
/* $Header: bitblt_ext.h,v 10.1 86/11/19 10:51:57 jg Exp $ */ /* * Copyright (c) 1986 Brown University * * Permission to use, copy, modify and distribute this software and its * documentation for any purpose and without fee is hereby granted, provided * that the above copyright notice appear in all copies, and that both * that copyright notice and this permission notice appear in supporting * documentation, and that the name of Brown University not be used in * advertising or publicity pertaining to distribution of the software without * specific, written prior permission. Brown University makes no * representations about the suitability of this software for any purpose. * It is provided "as-is" without express or implied warranty. * * Written by Daniel Stone, Brown University/IRIS (des@iris) */ /* * Rectangle. */ typedef struct Blt_Rectangle { short origin_y; /* top */ short origin_x; /* left */ short corner_y; /* bottom */ short corner_x; /* right */ } Blt_Rectangle; /* * Bitmap. */ typedef struct Blt_Bitmap { unsigned short *base; /* pointer to the actual bits */ Blt_Rectangle rect; /* bounding rectangle */ short nshorts; /* number of shorts wide the bitmap is */ } Blt_Bitmap; /* * Tile. (Texture,Pattern have your pick.) */ #define BLT_TILE_SIZE 16 typedef struct Blt_Tile { unsigned short tile[BLT_TILE_SIZE]; } Blt_Tile; /* * Bitblt user data structure. * * bitblt() is passed a pointer to a user structure which contains all the * necessary information to do the bit block transfer. * * NOTE: If the "comb_rule" does uses the source then tile_ptr does not have * to be set. Otherwise comb_rule is a tile combination rule and the * src_bitmap and src_rect need not be filled in. If the clip bit in * blt_flags is off (0) then clp_rect need not be filled in. If the mask * bit in blt_flags is off then msk_bitmap need not be filled in. */ typedef struct { Blt_Bitmap src_bitmap; /* Bitmap to be copied from */ Blt_Rectangle src_rect; /* Specifies the area in the src_bitmap */ Blt_Bitmap dst_bitmap; /* Bitmap to be changed */ Blt_Rectangle dst_rect; /* Specifies the area in the dst_bitmap */ Blt_Rectangle clp_rect; /* Another rectangle to clip against */ Blt_Tile *tile_ptr; /* The tile to be used if the combination rule uses a tile */ Blt_Bitmap msk_bitmap; /* Masking bitmap */ short comb_rule; /* combination rule to be used */ short blt_flags; /* A bit on means do a certain operation. For example if the first bit is on then do clipping. */ } Blt; /* * Flags blt_flags could be. */ #define BLT_CLIPON 0x1 #define BLT_MASKON 0x2 #define BLT_ECHO 0x4 #ifndef BPW /* * Macros for division from words and bytes. */ #define BPW 16 /* Bits per Word */ #define LOG2_BPW 4 #define MOD_BPW(value) ((value) & (BPW-1)) #define DIV_BPW(value) ((value) >> LOG2_BPW) #define MUL_BPW(value) ((value) << LOG2_BPW) /* * Bits TO Words. */ #define BTOW(bits) (DIV_BPW((bits) + (BPW-1))) /* * Macros for the division and multiplication by 2. */ #define DIV_2(n) ((n) >> 1) #define MUL_2(n) ((n) << 1) #define MOD_2(n) ((n) & 0x1) #endif BPW /* * Flags to indicate whether or not current screen is a hardware or * software cursor. */ #define SOFT_CURSOR 0x1 #define HARD_CURSOR 0x2 /* * externs for X access. */ extern int xdev; extern XIoAddr *XAddr;