Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/g4tools/include/tools/sg/gl2ps_manager

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
  2 // See the file tools.license for terms.
  3 
  4 #ifndef tools_sg_gl2ps_manager
  5 #define tools_sg_gl2ps_manager
  6 
  7 #include "render_manager"
  8 
  9 #include <map>
 10 
 11 namespace tools {
 12 namespace sg {
 13 
 14 class gl2ps_manager : public virtual render_manager {
 15   typedef render_manager parent;
 16 public:
 17   TOOLS_SCLASS(tools::sg::gl2ps_manager)
 18   virtual void* cast(const std::string& a_class) const {
 19     if(void* p = cmp_cast<gl2ps_manager>(this,a_class)) {return p;}
 20     else return 0;
 21   }
 22 public:
 23   virtual bool begin_render(int,int,unsigned int,unsigned int,float,float,float,float,bool = true) {return true;}
 24   virtual void end_render() {}
 25 
 26   virtual unsigned int create_texture(const img_byte& a_img,bool /*a_NEAREST*/) {
 27     m_gen_id++; //never return 0.
 28     m_gstos[m_gen_id] = a_img;
 29     return m_gen_id;
 30   }
 31 
 32   virtual unsigned int create_gsto_from_data(size_t,const float*) {return 0;}
 33 
 34   virtual bool is_gsto_id_valid(unsigned int a_id) const {
 35     gstos_t::const_iterator it = m_gstos.find(a_id);
 36     if(it==m_gstos.end()) return false;
 37     return true;
 38   }
 39   virtual void delete_gsto(unsigned int a_id) {
 40     gstos_t::iterator it = m_gstos.find(a_id);
 41     if(it!=m_gstos.end()) m_gstos.erase(it);
 42   }
 43 
 44   virtual gsto_mode get_gsto_mode() const {return gsto_memory;}
 45   virtual void set_gsto_mode(gsto_mode) {}
 46   virtual void available_gsto_modes(std::vector<std::string>& a_v) {a_v.clear();}
 47   virtual void available_not_memory_gsto_mode(std::string& a_s) const {a_s.clear();}
 48   virtual size_t used_texture_memory() const {return 0;}
 49   virtual size_t gstos_size() const {return 0;}
 50 public:
 51   gl2ps_manager():m_gen_id(0){
 52 #ifdef TOOLS_MEM
 53     mem::increment(s_class().c_str());
 54 #endif
 55   }
 56   virtual ~gl2ps_manager(){
 57     m_gstos.clear();
 58 #ifdef TOOLS_MEM
 59     mem::decrement(s_class().c_str());
 60 #endif
 61   }
 62 public:
 63   gl2ps_manager(const gl2ps_manager& a_from)
 64   :parent(a_from)
 65   ,m_gen_id(0)
 66   ,m_gstos()
 67   {
 68 #ifdef TOOLS_MEM
 69     mem::increment(s_class().c_str());
 70 #endif
 71   }
 72   gl2ps_manager& operator=(const gl2ps_manager& a_from){
 73     if(&a_from==this) return *this;
 74     m_gen_id = 0;
 75     m_gstos.clear();
 76     return *this;
 77   }
 78 public:
 79   bool find(unsigned int a_id,img_byte& a_img) {
 80     gstos_t::iterator it = m_gstos.find(a_id);
 81     if(it==m_gstos.end()) return false;
 82     a_img = (*it).second;
 83     return true;
 84   }
 85   //void cleanup() {}
 86   void delete_gstos() {m_gstos.clear();}
 87 protected:
 88   unsigned int m_gen_id;
 89   typedef std::map<unsigned int,img_byte> gstos_t;
 90   gstos_t m_gstos; //only textures for the moment.
 91 };
 92 
 93 }}
 94 
 95 #endif