1 /* === S I N F G =========================================================== */
2 /*! \file target_null.h
3 ** \brief Template Header
5 ** $Id: target_null.h,v 1.1.1.1 2005/01/04 01:23:15 darco Exp $
8 ** Copyright (c) 2002 Robert B. Quattlebaum Jr.
10 ** This software and associated documentation
11 ** are CONFIDENTIAL and PROPRIETARY property of
12 ** the above-mentioned copyright holder.
14 ** You may not copy, print, publish, or in any
15 ** other way distribute this software without
16 ** a prior written agreement with
17 ** the copyright holder.
20 /* ========================================================================= */
22 /* === S T A R T =========================================================== */
24 #ifndef __SINFG_TARGET_NULL_H
25 #define __SINFG_TARGET_NULL_H
27 /* === H E A D E R S ======================================================= */
29 #include "target_scanline.h"
32 /* === M A C R O S ========================================================= */
34 /* === T Y P E D E F S ===================================================== */
36 /* === C L A S S E S & S T R U C T S ======================================= */
40 /*! \class Target_Null
41 ** \brief A target which renders to nothing. Useful for benchmarks and other tests.
44 class Target_Null : public Target_Scanline
48 Target_Null():buffer(0) { }
52 ~Target_Null() { delete buffer; }
54 virtual bool start_frame(ProgressCallback *cb=NULL)
55 { delete buffer; buffer=new Color[desc.get_w()*sizeof(Color)]; return true; }
57 virtual void end_frame() { delete buffer; buffer=0; return; }
59 virtual Color * start_scanline(int scanline) { return buffer; }
61 virtual bool end_scanline() { return true; }
63 static Target* create(const char *filename=0) { return new Target_Null(); }
64 }; // END of class Target_Null
66 }; // END of namespace sinfg
68 /* === E N D =============================================================== */