00001
00002 #ifndef __output_hpp__
00003 #define __output_hpp__
00004
00005 #include <crbn/basic/basic.h>
00006 #include <crbn/basic/vec3.hpp>
00007
00023 class Output
00024 {
00025 public:
00026 Output() { _ok = false; }
00027 virtual ~Output() {}
00028
00029 inline uint32 memory() { return _memory_used; }
00030 inline bool is_ok() { return _ok; }
00031
00032 virtual bool is_reachable( const char* name ) = 0;
00040 virtual void open( const char* name, uint32 width, uint32 height ) = 0;
00041 virtual void close() = 0;
00042
00043 virtual void write( int size, vec3* colors ) = 0;
00044
00045 virtual void fill( int size, vec3& color ) = 0;
00046 protected:
00047 uint32 _memory_used;
00048 bool _ok;
00049 };
00050
00051 #endif // __output_hpp__