glviewport.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:5k
- /*
- * ===========================================================================
- * PRODUCTION $Log: glviewport.hpp,v $
- * PRODUCTION Revision 1000.1 2004/06/01 19:50:32 gouriano
- * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.4
- * PRODUCTION
- * ===========================================================================
- */
- #ifndef GUI_OPENGL___GLVIEWPORT__HPP
- #define GUI_OPENGL___GLVIEWPORT__HPP
- /* $Id: glviewport.hpp,v 1000.1 2004/06/01 19:50:32 gouriano Exp $
- * ===========================================================================
- *
- * PUBLIC DOMAIN NOTICE
- * National Center for Biotechnology Information
- *
- * This software/database is a "United States Government Work" under the
- * terms of the United States Copyright Act. It was written as part of
- * the author's official duties as a United States Government employee and
- * thus cannot be copyrighted. This software/database is freely available
- * to the public for use. The National Library of Medicine and the U.S.
- * Government have not placed any restriction on its use or reproduction.
- *
- * Although all reasonable efforts have been taken to ensure the accuracy
- * and reliability of the software and data, the NLM and the U.S.
- * Government do not and cannot warrant the performance or results that
- * may be obtained by using this software or data. The NLM and the U.S.
- * Government disclaim all warranties, express or implied, including
- * warranties of performance, merchantability or fitness for any particular
- * purpose.
- *
- * Please cite the author in any work or product based on this material.
- *
- * ===========================================================================
- *
- * Authors: Mike DiCuccio
- *
- * File Description:
- *
- */
- #include <corelib/ncbistd.hpp>
- #include <gui/opengl.h>
- #include <gui/gui.hpp>
- /** @addtogroup GUI_OPENGL
- *
- * @{
- */
- BEGIN_NCBI_SCOPE
- //
- // class CGlViewport provides a simple abstraction for viewports in OpenGL
- //
- // Remember that, in OpenGL, the position (0, 0) is the lower left corner, not
- // the upper left corner (inverted with respect to most windowing systems)
- //
- class NCBI_GUIOPENGL_EXPORT CGlViewport
- {
- public:
- CGlViewport();
- CGlViewport(GLint x, GLint y, GLint w, GLint h);
- // make the viewport current. The boolean parameter controls whether the
- // previous viewport settings are saved via glPushAttrib(GL_VIEWPORT_BIT).
- // The default is to overwrite the current settings; if 'true' is passed
- // in, be sure to call ReleaseCurrent() when completed.
- void MakeCurrent(bool save_viewport = false);
- // release the current viewport. This is a NULL op unless 'true' is passed
- // in, at which point this call is equivalent to glPopAttrib()
- void ReleaseCurrent(bool restore_viewport = false);
- //
- // access the dimensions of the viewport
- //
- GLint GetX (void) const;
- GLint GetY (void) const;
- GLint GetWidth (void) const;
- GLint GetHeight(void) const;
- void SetX (GLint i);
- void SetY (GLint i);
- void SetWidth (GLint i);
- void SetHeight(GLint i);
- private:
- // the actual viewport params.
- GLint m_X;
- GLint m_Y;
- GLint m_Width;
- GLint m_Height;
- };
- //
- // inlined accessors
- //
- inline
- GLint CGlViewport::GetX(void) const
- {
- return m_X;
- }
- inline
- GLint CGlViewport::GetY(void) const
- {
- return m_Y;
- }
- inline
- GLint CGlViewport::GetWidth(void) const
- {
- return m_Width;
- }
- inline
- GLint CGlViewport::GetHeight(void) const
- {
- return m_Height;
- }
- inline
- void CGlViewport::SetX(GLint i)
- {
- m_X = i;
- }
- inline
- void CGlViewport::SetY(GLint i)
- {
- m_Y = i;
- }
- inline
- void CGlViewport::SetWidth(GLint i)
- {
- m_Width = i;
- }
- inline
- void CGlViewport::SetHeight(GLint i)
- {
- m_Height = i;
- }
- END_NCBI_SCOPE
- /* @} */
- /*
- * ===========================================================================
- * $Log: glviewport.hpp,v $
- * Revision 1000.1 2004/06/01 19:50:32 gouriano
- * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.4
- *
- * Revision 1.4 2004/05/11 18:54:22 dicuccio
- * Added doxygne modules info
- *
- * Revision 1.3 2004/05/03 12:43:59 dicuccio
- * Added #include for gui/gui.hpp
- *
- * Revision 1.2 2003/06/03 19:36:38 dicuccio
- * Added export specifiers. Fixed errant #include of <GL/...> files
- *
- * Revision 1.1 2003/06/03 17:42:54 dicuccio
- * Added texture support. Added classes to handle OpenGL camera setup, viewport
- * specification
- *
- * ===========================================================================
- */
- #endif // GUI_OPENGL___GLVIEWPORT__HPP