/** * @module cpixelformat * @author Manuel Mausz, 0728348 * @brief Abstract class for handling different color bitcount of Bitmaps. * Needed for generic use in CBitmap. * @date 18.04.2009 */ #ifndef CPIXELFORMAT_H #define CPIXELFORMAT_H #include #include class CBitmap; #include "cbitmap.h" /** * @class CPixelFormat * @brief Abstract class for handling different color bitcount of Bitmaps. * * Needed for generic use in CBitmap. * * On error throw PixelFormatError. */ class CPixelFormat { public: /** * @class PixelFormatError * @brief Exception thrown by implemententations of CPixelFormat */ class PixelFormatError : public std::invalid_argument { public: /** * @method PixelFormatError * @brief Default exception ctor * @param what message to pass along * @return - * @globalvars none * @exception none * @conditions none */ PixelFormatError(const std::string& what) : std::invalid_argument(what) {} }; /** * @method CBitmap * @brief Default ctor * @param bitmap pointer to CBitmap instance * @return - * @globalvars none * @exception none * @conditions none */ CPixelFormat(CBitmap *bitmap) : m_bitmap(bitmap) {} /** * @method ~CPixelFormat * @brief Default dtor (virtual) * @param - * @return - * @globalvars none * @exception none * @conditions none */ virtual ~CPixelFormat() {}; /** * @method setPixel * @brief Modifies pixel at coordinates x, y * @param pixel pointer to new pixel data * @param x x-coordinate * @param y y-coordinate * @return - * @globalvars none * @exception PixelFormatError * @conditions none */ virtual void setPixel(const uint32_t *pixel, const uint32_t x, const uint32_t y) = 0; /** * @method getBitCount * @brief returns color bitcount supported by this class * @param - * @return color bitcount supported by this class * @globalvars none * @exception none * @conditions none */ virtual uint32_t getBitCount() = 0; protected: /* members */ /** pointer to CBitmap instance */ CBitmap *m_bitmap; }; #endif /* vim: set et sw=2 ts=2: */