home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-01-14 | 4.3 KB | 162 lines | [TEXT/CWIE] |
- ///--------------------------------------------------------------------------------------
- // SWTranslucentBlitters.h
- ///--------------------------------------------------------------------------------------
-
-
- #ifndef __TRANSLUCENCY__
- #define __TRANSLUCENCY__
-
- #ifndef __SWCOMMON__
- #include "SWCommonHeaders.h"
- #endif
-
- #ifndef __SPRITEWORLDUTILS__
- #include "SpriteWorldUtils.h"
- #endif
-
- #ifndef __QUICKDRAW__
- #include <QuickDraw.h>
- #endif
-
- #ifndef __SPRITEFRAME__
- #include "SpriteFrame.h"
- #endif
-
- #ifndef __SPRITE__
- #include "Sprite.h"
- #endif
-
- #ifndef __SPRITE__
- #include "Sprite.h"
- #endif
-
- #ifndef __BLITPIXIE__
- #include "BlitPixie.h"
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #if __MWERKS__
- #define SWInline inline
- #else
- #define SWInline
- #endif
-
- #if defined(powerc) || defined(__powerc)
- #define USE_PPC_ASSEMBLY 1
- #else
- #define USE_PPC_ASSEMBLY 0
- #endif
-
-
-
- ///--------------------------------------------------------------------------------------
- // define the tables used for colors
- ///--------------------------------------------------------------------------------------
-
- #define ABS(x) (((x)<0) ? (-(x)) : (x))
- #define kNumberOfColors 256
-
- extern unsigned char* g8BitTranslucencyTable;
- extern RGBColor kSystemColorArray[kNumberOfColors];
- extern int gNumberOf8BitTranslucencyLevels;
-
-
- ///--------------------------------------------------------------------------------------
- // 8-bit color table function prototypes
- ///--------------------------------------------------------------------------------------
-
- unsigned char ColorToIndex(long curRed, long curGreen, long curBlue);
- long CalcNewColorValue (long sourceValue, long blendValue, float ratio);
- void Calc8BitTranslucencyTable (int numberOfLevels);
- void CreateCLUTTable(void);
-
- // The public functions
- OSErr SWLoadOrCreate8BitTranslucencyTable (int numberOfLevels);
- OSErr SWCreate8BitTranslucencyTable (int numberOfLevels);
- void SWDispose8BitTranslucencyTable(void);
- OSErr SWLoad8BitTranslucencyTable(short resourceID);
- OSErr SWSave8BitTranslucencyTable(short resourceID);
-
-
- ///--------------------------------------------------------------------------------------
- // Function prototypes for translucent 8-bit blitters
- ///--------------------------------------------------------------------------------------
-
- SW_FUNC OSErr SWSetSpriteTranslucencyLevel(
- SpritePtr srcSpriteP,
- unsigned long level);
-
- SW_FUNC unsigned long SWGetSpriteTranslucencyLevel(
- SpritePtr srcSpriteP);
-
- ///--------------------------------------------------------------------------------------
- // Function prototypes for translucent 8-bit blitters
- ///--------------------------------------------------------------------------------------
-
- SW_FUNC void BlitPixie8BitTranslucentMaskDrawProc(
- FramePtr srcFrameP,
- FramePtr dstFrameP,
- Rect *srcRect,
- Rect *dstRect);
-
- SW_FUNC void BlitPixieTranslucentMask8Bit(
- register PixelPtr srcPixelP,
- register PixelPtr dstPixelP,
- register PixelPtr maskPixelP,
- register unsigned long rowsToCopy,
- register unsigned long numBytesPerRow,
- register unsigned long srcOffset,
- register unsigned long dstOffset,
- unsigned long translucencyLevel);
-
- unsigned char SWInline TranslucencyConvertChar (
- register unsigned char srcPixel,
- register unsigned char destPixel,
- register unsigned long maskPixel,
- register unsigned char *tableAtLevel);
-
- unsigned long SWInline TranslucencyConvertLong (
- register unsigned long srcPixel,
- register unsigned long destPixel,
- register unsigned long maskPixel,
- register unsigned char *tableAtLevel);
-
- unsigned long Blend8BitPixels (int level, int source, int dest);
-
- ///-----------------------------------------------
- // 16 Bit Bliiters
-
- #define kNumberOf16BitTranslucencyLevels 32
- extern unsigned char *g16BitTranslucencyTable;
-
- OSErr SWCreate16BitTranslucencyTable( void );
- void SWDispose16BitTranslucencyTable( void );
-
- void BlitPixieTranslucencyMask16Bit (
- register unsigned char *lookup_ptr,
- register short *srcPtr,
- register short *dstPtr,
- register short *maskPtr,
- register unsigned long heightAndWidth,
- register long srcRowBytes,
- register long dstRowBytes,
- register long alpha
- );
-
- SW_FUNC void BlitPixie16BitTranslucentMaskDrawProc(
- FramePtr srcFrameP,
- FramePtr dstFrameP,
- Rect *srcRect,
- Rect *dstRect);
-
- unsigned long Blend16BitPixels (int level, int source, int dest);
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* __TRANSLUCENCY__ */
-