ImageData.hpp
Go to the documentation of this file.
00001 
00002 
00003 
00004 #ifndef GOSU_IMAGEDATA_HPP
00005 #define GOSU_IMAGEDATA_HPP
00006 
00007 #include <Gosu/Color.hpp>
00008 #include <Gosu/GraphicsBase.hpp>
00009 
00010 namespace Gosu
00011 {
00015     struct GLTexInfo
00016     {
00017         int texName;
00018         float left, right, top, bottom;
00019     };
00020 
00026     class ImageData
00027     {
00028         // Non-copyable
00029         ImageData(const ImageData&);
00030         ImageData& operator=(const ImageData&);
00031         
00032     public:
00033         ImageData()
00034         {
00035         }
00036         
00037         virtual ~ImageData()
00038         {
00039         }
00040 
00041         virtual int width() const = 0;
00042         virtual int height() const = 0;
00043 
00044         virtual void draw(double x1, double y1, Color c1,
00045             double x2, double y2, Color c2,
00046             double x3, double y3, Color c3,
00047             double x4, double y4, Color c4,
00048             ZPos z, AlphaMode mode) const = 0;
00049             
00050         virtual const GLTexInfo* glTexInfo() const = 0;
00051         virtual Bitmap toBitmap() const = 0;
00052         
00054         virtual void insert(const Bitmap& bitmap, int x, int y) = 0;
00055     };
00056 }
00057 
00058 #endif