0024732: OpenGl_Context - retrieve functions up to GL4.4
[occt.git] / src / Visual3d / Visual3d_TransientManager.cdl
1 -- Created on: 1995-10-10
2 -- Created by: GG
3 -- Copyright (c) 1995-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 class TransientManager from Visual3d inherits TShared
18
19     ---Version:
20
21     ---Purpose: This class allows to manage transient graphics
22     --      above one View.
23     --      A simple way to drawn something very quicly above
24     --      a complex scene (Hilighting,Sketching,...)
25     --      All transient graphics will be erased at the next
26     --      View::BeginDraw().
27     --      If RetainMode is active,
28     --      All transient graphics will be kept at the
29     --      next View::Update(),Redraw(). The transient graphics
30     --      is stored by this object and graphic library, the 
31     --      graphic managed itself exposure,resizing,...
32     --      The method View::ClearDraw() is necessary to erase
33     --      all transient graphics.
34     --      If RetainMode is deactivate,
35     --      All transient graphics will be erased at the
36     --      next View::Update(),Redraw().
37     --      Remember that nothing is stored by this object and
38     --      graphic library,the application must managed itself
39     --      exposure,resizing,...
40     --      If double_buffering is activate,
41     --      all graphics are drawn in the back buffer and flushed
42     --      in the front buffer at the end of drawing but nothing
43     --      is done for to separate transient from structured
44     --      graphics,the only way to regenerate the structured
45     --      view is to Redraw() the view.
46     --      If double_buffering is deactivate,
47     --      the back buffer is preserved and used for restoring 
48     --      the front buffer at begin drawing time.I recommend
49     --      to use the second way (without DB) if you want
50     --      to preserve the graphics and the performances!
51     
52     
53 uses
54
55     Array2OfReal             from TColStd,
56
57     ExtendedString           from TCollection,
58
59     PlaneAngle               from Quantity,
60
61     Structure                from Graphic3d,
62     AspectLine3d             from Graphic3d,
63     AspectFillArea3d         from Graphic3d,
64     AspectText3d             from Graphic3d,
65     AspectMarker3d           from Graphic3d,
66     TypeOfComposition        from Graphic3d,
67     TextPath                 from Graphic3d,
68     HorizontalTextAlignment  from Graphic3d,
69     VerticalTextAlignment    from Graphic3d,
70
71     View            from Visual3d
72
73 raises
74     TransientDefinitionError from Visual3d,
75     TransformError            from Graphic3d
76
77 is
78     -------------------------
79     -- Category: Constructors
80     -------------------------
81
82     Create returns mutable TransientManager from Visual3d;
83     ---Purpose: Creates a TransientManager <aView>.
84     ---Category: Constructors
85
86     ------------------------
87     -- Category: Destructors
88     ------------------------
89
90     Destroy (me : mutable);
91     ---Level: Public
92     ---Purpose: Suppress the TransientManager <me>.
93     ---Category: Destructors
94     ---C++: alias ~
95
96     ---------------------------------------------------
97     -- Category: Methods to modify the class definition
98     ---------------------------------------------------
99
100     BeginDraw (myclass;
101            aView : View from Visual3d;
102            DoubleBuffer: Boolean = Standard_False;
103            RetainMode: Boolean = Standard_False)
104     returns Boolean from Standard
105     ---Level: Public
106     ---Purpose: Begins any graphics in the view <aView>
107     --      Redraw any structured graphics in the back buffer before
108     --      if <DoubleBuffer> is TRUE.
109     --          Restore the front buffer from the back before
110     --      if <DoubleBuffer> is FALSE.
111     --      if <RetainMode> is TRUE.
112     --          the graphic managed itself exposure,resizing ...
113     --      if <RetainMode> is FALSE.
114     --          the application must managed itself exposure,resizing ...
115     --  
116     --  Warning: Returns TRUE if transient drawing is enabled in
117     --     the associated view.
118     --          Returns FALSE ,if nothing works because something
119     --     is wrong for the transient principle :
120     --     Immediat mode is not implemented depending of the
121     --     graphic library used.
122     --         MBX,PIXMAP double buffering don't works depending of
123     --         the graphic board and the visual of the window supporting 
124     --         the view.
125     --  Warning: No default attributes
126     -- Raises TransientDefinitionError from Visual3d;
127     -- if   Drawing is already opened.
128     -- or   the associated view is not mapped on a window.
129     raises TransientDefinitionError from Visual3d;
130
131     EndDraw (myclass;
132          Synchronize: Boolean = Standard_False)
133     ---Level: Public
134     ---Purpose: Flush all graphics to the front buffer.
135     --  Synchronize graphics to the screen if <Synchronize> is
136     --  TRUE (make becarefull to the performances!).
137         --  Raises TransientDefinitionError from Visual3d;
138     -- if   Drawing is not opened.
139     raises TransientDefinitionError from Visual3d;
140
141     ClearDraw (myclass; aView : View from Visual3d; 
142                             aFlush : Boolean from Standard = Standard_True)
143     ---Level: Public
144     ---Purpose: Clear all transient graphics in the view <aView>
145     ---         updates a scene if <aFlush> = true
146         --  Raises TransientDefinitionError from Visual3d;
147     -- if   Drawing is already opened.
148     -- or   the associated view is not mapped on a window.
149     raises TransientDefinitionError from Visual3d;
150
151     ---------------------------------------------------
152     -- Category: Methods to modify the class definition
153     ---------------------------------------------------
154
155     BeginAddDraw (myclass;
156            aView : View from Visual3d)
157     returns Boolean from Standard
158     ---Level: Public
159     ---Purpose: Begins any add graphics in the view <aView>
160     --          the application must managed itself exposure,resizing ...
161     --  
162     --  Warning: Returns TRUE if transient drawing is enabled in
163     --     the associated view.
164     --          Returns FALSE ,if nothing works because something
165     --     is wrong for the transient principle :
166     --     Immediat mode is not implemented depending of the
167     --     graphic library used.
168     --         MBX,PIXMAP double buffering don't works depending of
169     --         the graphic board and the visual of the window supporting 
170     --         the view.
171     --  Warning: No default attributes
172         -- Raises TransientDefinitionError from Visual3d;
173     -- if   Drawing is already opened.
174     -- or   the associated view is not mapped on a window.
175     raises TransientDefinitionError from Visual3d;
176
177     EndAddDraw (myclass)
178     ---Purpose: Flush all add graphics to the front buffer.
179     -- Raises TransientDefinitionError from Visual3d;
180     -- if   Drawing is not opened.
181     raises TransientDefinitionError from Visual3d;
182
183     ---------------------------------------
184     -- Category: Graphic definition methods
185     ---------------------------------------
186
187     DrawStructure (myclass;
188                 AStructure   : Structure from Graphic3d)
189         ---Purpose: Drawn the structure <AStructure>.
190     -- Raises TransientDefinitionError from Visual3d;
191     -- if   Drawing is not opened.
192     raises TransientDefinitionError from Visual3d;
193
194 end TransientManager from Visual3d;