doxygen: bge scenegraph and videotexture
[blender-staging.git] / source / gameengine / VideoTexture / ImageBuff.h
1 /* $Id$
2 -----------------------------------------------------------------------------
3 This source file is part of VideoTexture library
4
5 Copyright (c) 2007 The Zdeno Ash Miklas
6
7 This program is free software; you can redistribute it and/or modify it under
8 the terms of the GNU Lesser General Public License as published by the Free Software
9 Foundation; either version 2 of the License, or (at your option) any later
10 version.
11
12 This program is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public License along with
17 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
18 Place - Suite 330, Boston, MA 02111-1307, USA, or go to
19 http://www.gnu.org/copyleft/lesser.txt.
20 -----------------------------------------------------------------------------
21 */
22
23 /** \file ImageBuff.h
24  *  \ingroup bgevideotex
25  */
26  
27 #if !defined IMAGEBUFF_H
28 #define IMAGEBUFF_H
29
30
31 #include "Common.h"
32
33 #include "ImageBase.h"
34
35 struct ImBuf;
36
37 /// class for image buffer
38 class ImageBuff : public ImageBase
39 {
40 private:
41         struct ImBuf* m_imbuf;          // temporary structure for buffer manipulation
42 public:
43         /// constructor
44         ImageBuff (void) : ImageBase(true), m_imbuf(NULL) {}
45
46         /// destructor
47         virtual ~ImageBuff (void);
48
49         /// load image from buffer
50         void load (unsigned char * img, short width, short height);
51         /// clear image with color set on RGB channels and 0xFF on alpha channel
52         void clear (short width, short height, unsigned char color);
53
54         /// plot image from extern RGBA buffer to image at position x,y using one of IMB_BlendMode
55         void plot (unsigned char * img, short width, short height, short x, short y, short mode);
56         /// plot image from other ImageBuf to image at position x,y using one of IMB_BlendMode
57         void plot (ImageBuff* img, short x, short y, short mode);
58
59         /// refresh image - do nothing
60         virtual void refresh (void) {}
61 };
62
63
64 #endif
65