00001 #ifndef MULTI_SURFACE_H 00002 #define MULTI_SURFACE_H 00003 00013 #include "surfaceInterface.h" 00014 #include <vector> 00015 00016 00020 class MultiSurface : public SurfaceInterface { 00021 typedef struct { 00022 SurfaceInterface* surface; 00023 VXV::Grid offset; 00024 VXV::Rect range; 00025 } surfaceOffset_t; 00026 typedef std::vector<surfaceOffset_t> surface_t; 00027 surface_t objs; 00028 00029 public: 00033 MultiSurface(const VXV::Rect& size); 00034 virtual ~MultiSurface(void); 00035 bool draw(const VXV::Rect& size, 00036 const VXV::Grid& pos, unsigned long ticks); 00037 00045 void addSurface(SurfaceInterface* surface, char align = 0, 00046 const VXV::Grid& pos = VXV::Grid(0, 0)); 00047 }; 00048 00049 #endif /* !MULTI_SURFACE_H */ 00050