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 GENERIC_BITMAP_HPP
00026 #define GENERIC_BITMAP_HPP
00027
00028 #include "skin_common.hpp"
00029 #include "../utils/pointer.hpp"
00030
00031
00033 class GenericBitmap: public SkinObject
00034 {
00035 public:
00036 virtual ~GenericBitmap() {}
00037
00039 virtual int getWidth() const = 0;
00040
00042 virtual int getHeight() const = 0;
00043
00046 virtual uint8_t *getData() const = 0;
00047
00048 protected:
00049 GenericBitmap( intf_thread_t *pIntf ): SkinObject( pIntf ) {}
00050 };
00051
00052
00054 class BitmapImpl: public GenericBitmap
00055 {
00056 public:
00058 BitmapImpl( intf_thread_t *pIntf, int width, int height );
00059 ~BitmapImpl();
00060
00062 virtual int getWidth() const { return m_width; }
00063
00065 virtual int getHeight() const { return m_height; }
00066
00069 virtual uint8_t *getData() const { return m_pData; }
00070
00071
00072 void drawBitmap( const GenericBitmap &rSource, int xSrc, int ySrc,
00073 int xDest, int yDest, int width, int height );
00074
00075 private:
00077 int m_width, m_height;
00079 uint8_t *m_pData;
00080 };
00081
00082
00083 typedef CountedPtr<GenericBitmap> GenericBitmapPtr;
00084
00085 #endif