|
|
/*******************************************************************************
* * (C) COPYRIGHT MICROSOFT CORPORATION, 1998, 1999, 2000 * * TITLE: PAINTERS.H * * VERSION: 1.0 * * AUTHOR: ShaunIv * * DATE: 1/13/1999 * * DESCRIPTION: Image transition base class and derived classes * *******************************************************************************/ #ifndef __PAINTERS_H_INCLUDED
#define __PAINTERS_H_INCLUDED
#include <windows.h>
#include "imgs.h"
#include "randgen.h"
#include "simdc.h"
class CImagePainter { private: CBitmapImage *m_pBitmapImage; DWORD m_dwInitialTickCount; bool m_bFirstFrame; bool m_bAlreadyPaintedLastFrame;
protected: CRandomNumberGen m_RandomNumberGen; RECT m_rcScreen; RECT m_rcImageArea; RECT m_rcFinal; DWORD m_dwDuration;
private: CImagePainter(void); CImagePainter( const CImagePainter & ); operator=( const CImagePainter & );
public: CImagePainter( CBitmapImage *pBitmapImage, CSimpleDC &ClientDC, const RECT &rcImageArea, const RECT &rcScreen ); virtual ~CImagePainter(void); DWORD ElapsedTime(void) const; CBitmapImage *BitmapImage(void); void Paint( CSimpleDC &PaintDC ); bool TimerTick( CSimpleDC &ClientDC ); void Erase( CSimpleDC &ClientDC, RECT &rc );
virtual void Paint( CSimpleDC &PaintDC, CSimpleDC &MemoryDC ); virtual bool NeedPainting(void); virtual bool IsValid(void); virtual void PaintFrame( CSimpleDC &ClientDC, CSimpleDC &MemoryDC ) = 0; };
class CSimpleTransitionPainter : public CImagePainter { public: CSimpleTransitionPainter( CBitmapImage *pBitmapImage, CSimpleDC &ClientDC, const RECT &rcImageArea, const RECT &rcScreen ); virtual ~CSimpleTransitionPainter(void); virtual void PaintFrame( CSimpleDC &ClientDC, CSimpleDC &MemoryDC ); };
class CSlidingTransitionPainter : public CImagePainter { private: RECT m_rcOriginal; RECT m_rcPrevious; public: CSlidingTransitionPainter( CBitmapImage *pBitmapImage, CSimpleDC &ClientDC, const RECT &rcImageArea, const RECT &rcScreen ); virtual ~CSlidingTransitionPainter(void); virtual bool NeedPainting(void); virtual void PaintFrame( CSimpleDC &ClientDC, CSimpleDC &MemoryDC ); };
class CRandomBlockPainter : public CImagePainter { private: int *m_pBlockAddresses; int m_nBlockSize; int m_nStartIndex; SIZE m_sizeBlockCount; public: CRandomBlockPainter( CBitmapImage *pBitmapImage, CSimpleDC &ClientDC, const RECT &rcImageArea, const RECT &rcScreen ); virtual ~CRandomBlockPainter(void); virtual bool NeedPainting(void); virtual bool IsValid(void); virtual void PaintFrame( CSimpleDC &ClientDC, CSimpleDC &MemoryDC ); };
class CAlphaFadePainter : public CImagePainter { private: BLENDFUNCTION m_bfBlendFunction; HBITMAP m_hbmpBuffer; CSimpleDC CompatDC; public: CAlphaFadePainter( CBitmapImage *pBitmapImage, CSimpleDC &ClientDC, const RECT &rcImageArea, const RECT &rcScreen ); virtual bool IsValid(void); virtual ~CAlphaFadePainter(void); virtual bool NeedPainting(void); virtual void PaintFrame( CSimpleDC &ClientDC, CSimpleDC &MemoryDC ); };
class COpenCurtainPainter : public CImagePainter { private: int m_nCurrentWidth; int m_nFinalWidth; public: COpenCurtainPainter( CBitmapImage *pBitmapImage, CSimpleDC &ClientDC, const RECT &rcImageArea, const RECT &rcScreen ); virtual ~COpenCurtainPainter(void); virtual bool NeedPainting(void); virtual void PaintFrame( CSimpleDC &ClientDC, CSimpleDC &MemoryDC ); };
#endif // __PAINTERS_H_INCLUDED
|