Skip to content
Snippets Groups Projects
Select Git revision
  • 8ae81db9e2750d6fe9bed6f25dd7ccc0cb7a8ccd
  • master default protected
  • develop protected
  • cmake_boost_refactor
  • ubuntu_ci
  • mmtf
  • non-orthogonal-maps
  • no_boost_filesystem
  • data_viewer
  • 2.11.1
  • 2.11.0
  • 2.10.0
  • 2.9.3
  • 2.9.2
  • 2.9.1
  • 2.9.0
  • 2.8.0
  • 2.7.0
  • 2.6.1
  • 2.6.0
  • 2.6.0-rc4
  • 2.6.0-rc3
  • 2.6.0-rc2
  • 2.6.0-rc
  • 2.5.0
  • 2.5.0-rc2
  • 2.5.0-rc
  • 2.4.0
  • 2.4.0-rc2
29 results

py_gfx_obj.py

Blame
  • user avatar
    Ansgar Philippsen authored
    b2e54770
    History
    py_gfx_obj.py 2.27 KiB
    #------------------------------------------------------------------------------
    # This file is part of the OpenStructure project <www.openstructure.org>
    #
    # Copyright (C) 2008-2011 by the OpenStructure authors
    #
    # This library is free software; you can redistribute it and/or modify it under
    # the terms of the GNU Lesser General Public License as published by the Free
    # Software Foundation; either version 3.0 of the License, or (at your option)
    # any later version.
    # This library 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 Lesser General Public License for more
    # details.
    #
    # You should have received a copy of the GNU Lesser General Public License
    # along with this library; if not, write to the Free Software Foundation, Inc.,
    # 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    #------------------------------------------------------------------------------
    import traceback
    from _ost_gfx import *
    
    class PyGfxObj(GfxObj):
      def __init__(self,name):
        """
        requires a unique name not yet utilized in the Scene;
        do not place OpenGL calls in the ctor, use InitGL for
        that purpose
        """
        GfxObj.__init__(self,name)
        self._valid_flag=False
    
      def _InitGL(self):
        try:
          self.InitGL()
          self._valid_flag=True
        except:
          traceback.print_exc()
          
      def InitGL(self):
        """
        called once for each OpenGL context (usually one time),
        allows one-time OpenGL initialization to be implemented,
        such as vbo allocation
        """
        pass
    
    
      def _CustomPreRenderGL(self,rebuild):
        if not self._valid_flag:
          return
        try:
          self.CustomPreRenderGL(rebuild)
        except:
          self._valid_flag=False
          traceback.print_exc()
    
      def CustomPreRenderGL(self,rebuild):
        """
        called just before CustomRenderGL is called; the flag
        indicates that a rebuild is required or was requested
        """
        pass
    
    
      def _CustomRenderGL(self,render_pass):
        if not self._valid_flag:
          return
        try:
          self.CustomRenderGL(render_pass)
        except:
          self._valid_flag=False
          traceback.print_exc()
    
      def CustomRenderGL(self,render_pass):
        """
        called for each scene refresh
        """
        pass