// constructor ImageViewport::ImageViewport (PyRASOffScreen *offscreen) : m_alpha(false), m_texInit(false) { // get viewport rectangle if (offscreen) { m_viewport[0] = 0; m_viewport[1] = 0; m_viewport[2] = offscreen->ofs->GetWidth(); m_viewport[3] = offscreen->ofs->GetHeight(); } else { RAS_Rect rect = KX_GetActiveEngine()->GetCanvas()->GetWindowArea(); m_viewport[0] = rect.GetLeft(); m_viewport[1] = rect.GetBottom(); m_viewport[2] = rect.GetWidth(); m_viewport[3] = rect.GetHeight(); } //glGetIntegerv(GL_VIEWPORT, m_viewport); // create buffer for viewport image // Warning: this buffer is also used to get the depth buffer as an array of // float (1 float = 4 bytes per pixel) m_viewportImage = new BYTE [4 * getViewportSize()[0] * getViewportSize()[1]]; // set attributes setWhole((offscreen) ? true : false); }
ImageViewport::ImageViewport() :m_alpha(false), m_texInit(false) { /* Because this constructor is called from python direclty without any arguments * the viewport should be the one of the final screen with gaps. * To do this we use the canvas viewport. */ RAS_ICanvas *canvas = KX_GetActiveEngine()->GetCanvas(); const int *viewport = canvas->GetViewPort(); m_viewport[0] = viewport[0]; m_viewport[1] = viewport[1]; m_viewport[2] = viewport[2]; m_viewport[3] = viewport[3]; m_width = m_viewport[2] - m_viewport[0]; m_height = m_viewport[3] - m_viewport[1]; //glGetIntegerv(GL_VIEWPORT, m_viewport); // create buffer for viewport image // Warning: this buffer is also used to get the depth buffer as an array of // float (1 float = 4 bytes per pixel) m_viewportImage = new BYTE [4 * getViewportSize()[0] * getViewportSize()[1]]; // set attributes setWhole(true); }
// constructor ImageViewport::ImageViewport (void) : m_alpha(false), m_texInit(false) { // get viewport rectangle glGetIntegerv(GL_VIEWPORT, m_viewport); // create buffer for viewport image m_viewportImage = new BYTE [4 * getViewportSize()[0] * getViewportSize()[1]]; // set attributes setWhole(false); }
// constructor ImageViewport::ImageViewport (void) : m_alpha(false), m_texInit(false) { // get viewport rectangle RAS_Rect rect = KX_GetActiveEngine()->GetCanvas()->GetWindowArea(); m_viewport[0] = rect.GetLeft(); m_viewport[1] = rect.GetBottom(); m_viewport[2] = rect.GetWidth(); m_viewport[3] = rect.GetHeight(); //glGetIntegerv(GL_VIEWPORT, m_viewport); // create buffer for viewport image m_viewportImage = new BYTE [4 * getViewportSize()[0] * getViewportSize()[1]]; // set attributes setWhole(false); }
// constructor ImageViewport::ImageViewport(unsigned int width, unsigned int height) :m_width(width), m_height(height), m_alpha(false), m_texInit(false) { m_viewport[0] = 0; m_viewport[1] = 0; m_viewport[2] = m_width; m_viewport[3] = m_height; //glGetIntegerv(GL_VIEWPORT, m_viewport); // create buffer for viewport image // Warning: this buffer is also used to get the depth buffer as an array of // float (1 float = 4 bytes per pixel) m_viewportImage = new BYTE [4 * getViewportSize()[0] * getViewportSize()[1]]; // set attributes setWhole(true); }