py api cleanup, replace use...
[blender.git] / source / gameengine / VideoTexture / ImageViewport.h
1 /*
2  * ***** BEGIN GPL LICENSE BLOCK *****
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software  Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  * Copyright (c) 2007 The Zdeno Ash Miklas
19  *
20  * This source file is part of VideoTexture library
21  *
22  * Contributor(s):
23  *
24  * ***** END GPL LICENSE BLOCK *****
25  */
26
27 /** \file ImageViewport.h
28  *  \ingroup bgevideotex
29  */
30
31 #ifndef __IMAGEVIEWPORT_H__
32 #define __IMAGEVIEWPORT_H__
33
34
35 #include "Common.h"
36
37 #include "ImageBase.h"
38
39
40 /// class for viewport access
41 class ImageViewport : public ImageBase
42 {
43 public:
44         /// constructor
45         ImageViewport (void);
46
47         /// destructor
48         virtual ~ImageViewport (void);
49
50         /// is whole buffer used
51         bool getWhole (void) { return m_whole; }
52         /// set whole buffer use
53         void setWhole (bool whole);
54
55         /// is alpha channel used
56         bool getAlpha (void) { return m_alpha; }
57         /// set whole buffer use
58         void setAlpha (bool alpha) { m_alpha = alpha; }
59
60         /// get capture size in viewport
61         short * getCaptureSize (void) { return m_capSize; }
62         /// set capture size in viewport
63         void setCaptureSize (short size[2] = NULL);
64
65         /// get position in viewport
66         GLint * getPosition (void) { return m_position; }
67         /// set position in viewport
68         void setPosition (GLint pos[2] = NULL);
69
70 protected:
71         /// frame buffer rectangle
72         GLint m_viewport[4];
73
74         /// size of captured area
75         short m_capSize[2];
76         /// use whole viewport
77         bool m_whole;
78         /// use alpha channel
79         bool m_alpha;
80
81         /// position of capture rectangle in viewport
82         GLint m_position[2];
83         /// upper left point for capturing
84         GLint m_upLeft[2];
85
86         /// buffer to copy viewport
87         BYTE * m_viewportImage;
88         /// texture is initialized
89         bool m_texInit;
90
91         /// capture image from viewport
92         virtual void calcImage (unsigned int texId, double ts);
93
94         /// get viewport size
95         GLint * getViewportSize (void) { return m_viewport + 2; }
96 };
97
98 PyObject *ImageViewport_getCaptureSize (PyImage *self, void *closure);
99 int ImageViewport_setCaptureSize (PyImage *self, PyObject *value, void *closure);
100 PyObject *ImageViewport_getWhole (PyImage *self, void *closure);
101 int ImageViewport_setWhole (PyImage *self, PyObject *value, void *closure);
102 PyObject *ImageViewport_getAlpha (PyImage *self, void *closure);
103 int ImageViewport_setAlpha (PyImage *self, PyObject *value, void *closure);
104
105 #endif
106