Get the latest Blender, older versions, or experimental builds.
Stay up-to-date with the new features in the latest Blender releases.
Access production assets and knowledge from the open movies.
Documentation on the usage and features in Blender.
Latest development updates, by Blender developers.
Guidelines, release notes and development docs.
A platform to collect and share results of the Blender Benchmark.
The yearly event that brings the community together.
Support core development with a monthly contribution.
Perform a single donation with more payment options available.
/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* Copyright (c) 2007 The Zdeno Ash Miklas
* This source file is part of VideoTexture library
* Contributor(s):
* ***** END GPL LICENSE BLOCK *****
*/
/** \file ImageViewport.h
* \ingroup bgevideotex
#ifndef __IMAGEVIEWPORT_H__
#define __IMAGEVIEWPORT_H__
#include "Common.h"
#include "ImageBase.h"
/// class for viewport access
class ImageViewport : public ImageBase
{
public:
/// constructor
ImageViewport (void);
/// destructor
virtual ~ImageViewport (void);
/// is whole buffer used
bool getWhole (void) { return m_whole; }
/// set whole buffer use
void setWhole (bool whole);
/// is alpha channel used
bool getAlpha (void) { return m_alpha; }
void setAlpha (bool alpha) { m_alpha = alpha; }
/// get capture size in viewport
short * getCaptureSize (void) { return m_capSize; }
/// set capture size in viewport
void setCaptureSize (short size[2] = NULL);
/// get position in viewport
GLint * getPosition (void) { return m_position; }
/// set position in viewport
void setPosition (GLint pos[2] = NULL);
protected:
/// frame buffer rectangle
GLint m_viewport[4];
/// size of captured area
short m_capSize[2];
/// use whole viewport
bool m_whole;
/// use alpha channel
bool m_alpha;
/// position of capture rectangle in viewport
GLint m_position[2];
/// upper left point for capturing
GLint m_upLeft[2];
/// buffer to copy viewport
BYTE * m_viewportImage;
/// texture is initialized
bool m_texInit;
/// capture image from viewport
virtual void calcImage (unsigned int texId, double ts);
/// get viewport size
GLint * getViewportSize (void) { return m_viewport + 2; }
};
PyObject *ImageViewport_getCaptureSize(PyImage *self, void *closure);
int ImageViewport_setCaptureSize(PyImage *self, PyObject *value, void *closure);
PyObject *ImageViewport_getWhole(PyImage *self, void *closure);
int ImageViewport_setWhole(PyImage *self, PyObject *value, void *closure);
PyObject *ImageViewport_getAlpha(PyImage *self, void *closure);
int ImageViewport_setAlpha(PyImage *self, PyObject *value, void *closure);
#endif