00001 // BitmapScreen.h: interface for the BitmapScreen class. 00004 00005 00006 #if !defined(AFX_BITMAPSCREEN_H__755F26C9_E871_40DE_B6E4_60A352FE8DCF__INCLUDED_) 00007 #define AFX_BITMAPSCREEN_H__755F26C9_E871_40DE_B6E4_60A352FE8DCF__INCLUDED_ 00008 00009 #if _MSC_VER > 1000 00010 #pragma once 00011 #endif // _MSC_VER > 1000 00012 00013 #include "VScreen.h" 00014 00025 class BitmapScreen : public VScreen 00026 { 00027 public: 00028 DIBitmap* getWriteBuffer(); 00029 bool DoneWriting(); 00030 00031 const DIBitmap* getReadBuffer(); 00032 void DoneReading(); 00033 00034 void paint(HDC); 00035 00036 BitmapScreen(const int, const int, const int, const int); 00037 private: 00038 DIBitmap buffer[2]; 00039 00040 HANDLE writeMutex; 00041 00042 CSWMRG currentBufferLock; 00043 volatile int currentBuffer; 00044 }; 00045 00046 #endif // !defined(AFX_BITMAPSCREEN_H__755F26C9_E871_40DE_B6E4_60A352FE8DCF__INCLUDED_)