0023544: Texture management in TKOpenGl should be redesigned
[occt.git] / src / OpenGl / OpenGl_Group.hxx
index 5e0187d..705dfec 100644 (file)
@@ -1,7 +1,21 @@
-// File:      OpenGl_Group.hxx
-// Created:   1 August 2011
-// Author:    Sergey ZERCHANINOV
-// Copyright: OPEN CASCADE 2011
+// Created on: 2011-08-01
+// Created by: Sergey ZERCHANINOV
+// Copyright (c) 2011-2012 OPEN CASCADE SAS
+//
+// The content of this file is subject to the Open CASCADE Technology Public
+// License Version 6.5 (the "License"). You may not use the content of this file
+// except in compliance with the License. Please obtain a copy of the License
+// at http://www.opencascade.org and read it completely before using this file.
+//
+// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
+// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
+//
+// The Original Code and all software distributed under the License is
+// distributed on an "AS IS" basis, without warranty of any kind, and the
+// Initial Developer hereby disclaims all such warranties, including without
+// limitation, any warranties of merchantability, fitness for a particular
+// purpose or non-infringement. Please see the License for the specific terms
+// and conditions governing the rights and limitations under the License.
 
 #ifndef _OpenGl_Group_Header
 #define _OpenGl_Group_Header
@@ -27,33 +41,44 @@ struct OpenGl_ElementNode
 
 class OpenGl_Group : public OpenGl_Element
 {
- public:
-  OpenGl_Group ();
-  virtual ~OpenGl_Group();
+
+public:
+
+  OpenGl_Group();
 
   void SetAspectLine (const CALL_DEF_CONTEXTLINE &AContext, const Standard_Boolean IsGlobal = Standard_True);
-  void SetAspectFace (const CALL_DEF_CONTEXTFILLAREA &AContext, const Standard_Boolean IsGlobal = Standard_True);
+  void SetAspectFace (const Handle(OpenGl_Context)&   theCtx,
+                      const CALL_DEF_CONTEXTFILLAREA& theAspect,
+                      const Standard_Boolean          IsGlobal = Standard_True);
   void SetAspectMarker (const CALL_DEF_CONTEXTMARKER &AContext, const Standard_Boolean IsGlobal = Standard_True);
   void SetAspectText (const CALL_DEF_CONTEXTTEXT &AContext, const Standard_Boolean IsGlobal = Standard_True);
 
   void AddElement (const TelType, OpenGl_Element * );
-  void Clear ();
 
-  void RemovePrimitiveArray (CALL_DEF_PARRAY *APArray);
+  void RemovePrimitiveArray (const Handle(OpenGl_Context)& theGlCtx,
+                             CALL_DEF_PARRAY*              thePArray);
+
+  virtual void Render  (const Handle(OpenGl_Workspace)& theWorkspace) const;
+  virtual void Release (const Handle(OpenGl_Context)&   theGlCtx);
 
-  virtual void Render (const Handle(OpenGl_Workspace) &AWorkspace) const;
+protected:
 
- protected:
+  virtual ~OpenGl_Group();
+
+protected:
 
-  OpenGl_AspectLine *myAspectLine;
-  OpenGl_AspectFace *myAspectFace;
-  OpenGl_AspectMarker *myAspectMarker;
-  OpenGl_AspectText *myAspectText;
+  OpenGl_AspectLine*   myAspectLine;
+  OpenGl_AspectFace*   myAspectFace;
+  OpenGl_AspectMarkermyAspectMarker;
+  OpenGl_AspectText*   myAspectText;
 
-  OpenGl_ElementNode *myFirst, *myLast;
+  OpenGl_ElementNode*  myFirst;
+  OpenGl_ElementNode*  myLast;
+
+public:
 
- public:
   DEFINE_STANDARD_ALLOC
+
 };
 
 #endif //_OpenGl_Group_Header