#include #include //for now always uint8_t* rather than templated class Pixels{ public: Pixels(); ~Pixels(); void allocate(int w, int h, int channels); bool isAllocated() const; void setFromExternalPixels(uint8_t * newPixels,int w, int h, int channels); uint8_t * getPixels(); int getWidth() const; int getHeight() const; void clear(); void swap(Pixels & pix); int getBytesPerPixel() const; int getNumChannels() const; void set(uint8_t val); private: uint8_t * pixels; int width; int height; int channels; bool bAllocated; bool pixelsOwner; // if set from external data don't delete it };