00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef WIN32_GRAPHICS_HPP
00026 #define WIN32_GRAPHICS_HPP
00027
00028 #include "../src/os_graphics.hpp"
00029 #include <windows.h>
00030
00031
00032 class GenericBitmap;
00033
00035 class Win32Graphics: public OSGraphics
00036 {
00037 public:
00038 Win32Graphics( intf_thread_t *pIntf, int width, int height );
00039 virtual ~Win32Graphics();
00040
00042 virtual void clear();
00043
00045 virtual void drawBitmap( const GenericBitmap &rBitmap, int xSrc = 0,
00046 int ySrc = 0, int xDest = 0, int yDest = 0,
00047 int width = -1, int height = -1,
00048 bool blend = false );
00049
00051 virtual void drawGraphics( const OSGraphics &rGraphics, int xSrc = 0,
00052 int ySrc = 0, int xDest = 0, int yDest = 0,
00053 int width = -1, int height = -1 );
00054
00056 virtual void drawRect( int left, int top, int width, int height,
00057 uint32_t color );
00058
00059
00061 virtual void fillRect( int left, int top, int width, int height,
00062 uint32_t color );
00063
00065 virtual void applyMaskToWindow( OSWindow &rWindow );
00066
00068 virtual void copyToWindow( OSWindow &rWindow, int xSrc,
00069 int ySrc, int width, int height,
00070 int xDest, int yDest );
00071
00073 virtual bool hit( int x, int y ) const;
00074
00076 virtual int getWidth() const { return m_width; }
00077 virtual int getHeight() const { return m_height; }
00078
00080 virtual HDC getDC() const { return m_hDC; }
00081
00083 virtual HRGN getMask() const { return m_mask; }
00084
00085 private:
00087 int m_width, m_height;
00088
00090 HDC m_hDC;
00091
00093 HRGN m_mask;
00094
00096 void addSegmentInRegion( HRGN &rMask, int start, int end, int line );
00097 };
00098
00099
00100 #endif