/********************************************************************/ /* Copyright (c) 2017 System fugen G.K. and Yuzi Mizuno */ /* All rights reserved. */ /********************************************************************/ #ifndef _MGSYSGLList_HH_ #define _MGSYSGLList_HH_ #include #include #include #include #include "mg/MGCL.h" #include "mg/Pvector.h" #include "mgGL/sysGL.h" class MGGel; class MGCurve; /** @addtogroup DisplayHandling * @{ */ ///Defines a list of mgSysGL. ///mgSysGLList is a class to constrol system generated display list. ///System generated display list means the display lists not generated ///from the document, m_display_list of the document. ///mgSysGLList returns a display list name(mgVBO*) when an mgSysGL(fucntion code, object id) ///is added(push_back, or push_front). Using the display list name, mgSysGLList invokes ///mgVBO->draw(). ///Then mgSysGLList will manage to delete the display list, /// giving the fucntion code or the object id. class MG_DLL_DECLR mgSysGLList{ public: typedef std::list container_type; typedef container_type::iterator iterator; typedef container_type::const_iterator const_iterator; ///////////////Constructor///////////// mgSysGLList(); ///Copy constructor. mgSysGLList(const mgSysGLList& list2); ////////////Destructor//////////////// ~mgSysGLList(); ////////////////Operator overload////////////////// ///Assignment operator. mgSysGLList& operator=(const mgSysGLList& list2); /// オペレーション ///const_iterator begin()const{return m_sysgls.begin();}; ///iterator begin(){return m_sysgls.begin();}; ///Clear the list. Delete all the display lists. ///makeRCCurrent() of MGOpenGLView is necessary to use. void clear(); ///Delete all the display lists that have the fucntion_code fc. ///makeRCCurrent() of MGOpenGLView is necessary to use. ///function's retrurn value is true if any one is deleted. bool delete_lists_by_function_code(int fc); ///Delete all the display lists that have the object_id oi. ///makeRCCurrent() of MGOpenGLView is necessary to use. ///function's retrurn value is true if any one is deleted. bool delete_lists_by_object_id( const MGGel* oi,///& functions ///