+-- Created on: 1997-01-28
+-- Created by: CAL
+-- Copyright (c) 1997-1999 Matra Datavision
+-- Copyright (c) 1999-2012 OPEN CASCADE SAS
--
--- File: Graphic3d_GraphicDriver.cdl
--- Created: Mardi 28 janvier 1997
--- Author: CAL
--- Modified: 01/08/97 ; PCT : ajout texture mapping
--- 07/08/97 ; PCT : ajout texture environnante
--- 27/08/97 ; PCT : ajout coordonnee texture
--- 00/11/97 ; CAL : retrait de la dependance avec math
--- 00/11/97 ; CAL : ajout polyline par 2 points
--- 16-09-98 ; BGN : Points d'entree du Triedre (S3819, Phase 1)
--- 22-09-98 ; BGN : S3989 (anciennement S3819)
--- TypeOfTriedron* from Aspect(et pas Graphic3d)
--- 03-11-98 ; CAL : Introduction de Visual3d_LayerManager.
--- 07-10-99 : EUG : Degeneration support (G003)
--- Add DegenerateStructure() and
--- SetBackFacingModel() methods.
--- 10-11-99 ; GG : PRO19603 Change Redraw( ) method
--- 16-06-2000 : ATS,GG : G005 - method PrimitiveArray, which are interface of OpenGl
--- package, and used to initialize internal fields
--- of primitives (Convert high level data to internal presentation).
--- 17/08/00 ; THA ; Thomas HARTL <t-hartl@muenchen.matra-dtv.fr>
--- -> Add Print methods (works only under Windows).
--- 27/03/02 ; GG ; RIC120302 Add new method Begin(Aspect_Display)
--- 28/05/02 ; VSV : New trihedron
--- 23/12/02 ; SAV : Added methods to set background image and its
--- appearence style
--- 20/01/09 ; ABD : Integration support of system fonts (using FTGL and FreeType)
+-- 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.
--
--- Copyright: MatraDatavision 1997
+-- 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.
-deferred class GraphicDriver from Graphic3d inherits GraphicDriver from Aspect
+deferred class GraphicDriver from Graphic3d inherits TShared
---Version:
Array1OfReal from TColStd,
Array2OfReal from TColStd,
+ AsciiString from TCollection,
ExtendedString from TCollection,
NameOfColor from Quantity,
PlaneAngle from Quantity,
- AlienImage from AlienImage,
+ PixMap from Image,
Array1OfEdge from Aspect,
CLayer2d from Aspect,
- GraphicDriver from Aspect,
TypeOfTriedronEcho from Aspect,
TypeOfTriedronPosition from Aspect,
Handle from Aspect,
Display from Aspect,
PrintAlgo from Aspect,
+ DisplayConnection_Handle from Aspect,
AspectLine3d from Graphic3d,
AspectMarker3d from Graphic3d,
CPlane from Graphic3d,
CStructure from Graphic3d,
CView from Graphic3d,
- CRawBufferData from Image,
+ BufferType from Graphic3d,
Structure from Graphic3d,
TextPath from Graphic3d,
TypeOfComposition from Graphic3d,
- TypeOfPolygon from Graphic3d,
TypeOfPrimitive from Graphic3d,
Vector from Graphic3d,
Array1OfVertex from Graphic3d,
Array2OfVertex from Graphic3d,
Vertex from Graphic3d,
- Array1OfVertexC from Graphic3d,
- Array2OfVertexC from Graphic3d,
- VertexC from Graphic3d,
- Array1OfVertexN from Graphic3d,
- Array2OfVertexN from Graphic3d,
- VertexN from Graphic3d,
- Array1OfVertexNC from Graphic3d,
- Array2OfVertexNC from Graphic3d,
- VertexNC from Graphic3d,
VerticalTextAlignment from Graphic3d,
- CInitTexture from Graphic3d,
- TypeOfTexture from Graphic3d,
- VertexNT from Graphic3d,
- Array1OfVertexNT from Graphic3d,
- Array2OfVertexNT from Graphic3d,
PrimitiveArray from Graphic3d,
PtrFrameBuffer from Graphic3d,
HArray1OfByte from TColStd,
HArray1OfReal from TColStd,
CUserDraw from Graphic3d,
NListOfHAsciiString from Graphic3d,
- FontAspect from OSD,
- CGraduatedTrihedron from Graphic3d
+ FontAspect from Font,
+ CGraduatedTrihedron from Graphic3d,
+ ClipPlane from Graphic3d
raises
-- Category: Init methods
-------------------------
- Begin ( me : mutable;
- ADisplay : CString from Standard )
- returns Boolean from Standard
- is deferred;
- ---Purpose: call_togl_begin
-
- Begin ( me : mutable;
- ADisplay : Display from Aspect )
- returns Boolean from Standard
- is deferred;
- ---Purpose: call_togl_begin_display
+ Begin (me: mutable;
+ theDisplayConnection: DisplayConnection_Handle from Aspect)
+ returns Boolean from Standard
+ is deferred;
+ ---Purpose: Starts graphic driver with given connection
End ( me : mutable )
is deferred;
is deferred;
---Purpose: call_togl_inquireview
- InquireTextureAvailable ( me : mutable )
- returns Boolean from Standard
- is deferred;
- ---Purpose: Returns Standard_True if texture is
- -- supported by the graphic driver
-
------------------------------
-- Category: Highlight methods
------------------------------
is deferred;
---Purpose: call_togl_cleargroup
- CloseGroup ( me : mutable;
- ACGroup : CGroup from Graphic3d )
- is deferred;
- ---Purpose: call_togl_closegroup
-
FaceContextGroup ( me : mutable;
ACGroup : CGroup from Graphic3d;
NoInsert : Integer from Standard )
is deferred;
---Purpose: call_togl_markercontextgroup
- MarkerContextGroup ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- NoInsert : Integer from Standard;
- AMarkWidth : Integer from Standard;
- AMarkHeight: Integer from Standard;
- ATexture : HArray1OfByte from TColStd )
- is deferred;
- ---Purpose: call_togl_markercontextgroup
-
- OpenGroup ( me : mutable;
- ACGroup : CGroup from Graphic3d )
- is deferred;
- ---Purpose: call_togl_opengroup
-
RemoveGroup ( me : mutable;
ACGroup : CGroup from Graphic3d )
is deferred;
is deferred;
---Purpose: call_togl_setlight
- SetPlane ( me : mutable;
- ACView : CView from Graphic3d )
- is deferred;
- ---Purpose: call_togl_setplane
+ SetClipPlanes (me : mutable; theCView : CView from Graphic3d) is deferred;
+ ---Purpose: Pass clip planes to the associated graphic driver view.
+
+ SetClipPlanes (me : mutable; theCStructure : CStructure from Graphic3d) is deferred;
+ ---Purpose: Pass clip planes to the associated graphic driver structure.
SetVisualisation ( me : mutable;
ACView : CView from Graphic3d )
is deferred;
---Purpose: call_togl_transformstructure
- DegenerateStructure ( me : mutable;
- ACStructure : CStructure from Graphic3d )
- is deferred;
- ---Purpose: call_togl_degeneratestructure
-
Transparency ( me : mutable;
ACView : CView from Graphic3d;
AFlag : Boolean from Standard )
is deferred;
---Purpose:
- ----------------------------------------
- -- Category: Methods to create Marker
- -- for Purpose : see Graphic3d_Group.cdl
- ----------------------------------------
-
- Marker ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- APoint : Vertex from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
-
- MarkerSet ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertex from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
-
- ----------------------------------------
- -- Category: Methods to create Polygon
- -- for Purpose : see Graphic3d_Group.cdl
- ----------------------------------------
-
- Polygon ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertex from Graphic3d;
- AType : TypeOfPolygon from Graphic3d = Graphic3d_TOP_CONVEX;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon
-
- Polygon ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertex from Graphic3d;
- Normal : Vector from Graphic3d;
- AType : TypeOfPolygon from Graphic3d = Graphic3d_TOP_CONVEX;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon
-
- Polygon ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertexN from Graphic3d;
- AType : TypeOfPolygon from Graphic3d = Graphic3d_TOP_CONVEX;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon
-
- Polygon ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertexN from Graphic3d;
- Normal : Vector from Graphic3d;
- AType : TypeOfPolygon from Graphic3d = Graphic3d_TOP_CONVEX;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon
-
- Polygon ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertexNT from Graphic3d;
- AType : TypeOfPolygon from Graphic3d = Graphic3d_TOP_CONVEX;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon
-
- PolygonHoles ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- Bounds : Array1OfInteger from TColStd;
- ListVertex : Array1OfVertex from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon_holes
-
- PolygonHoles ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- Bounds : Array1OfInteger from TColStd;
- ListVertex : Array1OfVertex from Graphic3d;
- Normal : Vector from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon_holes
-
- PolygonHoles ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- Bounds : Array1OfInteger from TColStd;
- ListVertex : Array1OfVertexN from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon_holes
-
- PolygonHoles ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- Bounds : Array1OfInteger from TColStd;
- ListVertex : Array1OfVertexN from Graphic3d;
- Normal : Vector from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon_holes
-
- ----------------------------------------
- -- Category: Methods to create Polyline
- -- for Purpose : see Graphic3d_Group.cdl
- ----------------------------------------
-
- Polyline ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- X1, Y1, Z1, X2, Y2, Z2 : Real from Standard;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polyline
-
- Polyline ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertex from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polyline
-
- Polyline ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertexC from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polyline
-
- -----------------------------------------
- -- Category: Methods to create Quadrangle
- -- for Purpose : see Graphic3d_Group.cdl
- -----------------------------------------
-
- QuadrangleMesh ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array2OfVertex from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_quadrangle
-
- QuadrangleMesh ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array2OfVertexN from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_quadrangle
-
- QuadrangleMesh ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array2OfVertexNT from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_quadrangle
-
----------------------------------------
-- Category: Methods to create Text
-- for Purpose : see Graphic3d_Group.cdl
-- for Purpose : see Graphic3d_Group.cdl
----------------------------------------
- TriangleMesh ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertex from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_triangle
-
- TriangleMesh ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertexN from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_triangle
-
- TriangleMesh ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertexNT from Graphic3d;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_triangle
-
- TriangleSet ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertex from Graphic3d;
- ListEdge : Array1OfEdge from Aspect;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon_indices
-
- TriangleSet ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertexN from Graphic3d;
- ListEdge : Array1OfEdge from Aspect;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon_indices
-
- TriangleSet ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertexNT from Graphic3d;
- ListEdge : Array1OfEdge from Aspect;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon_indices
-
- TriangleSet ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertexC from Graphic3d;
- ListEdge : Array1OfEdge from Aspect;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon_indices
-
- TriangleSet ( me : mutable;
- ACGroup : CGroup from Graphic3d;
- ListVertex : Array1OfVertexNC from Graphic3d;
- ListEdge : Array1OfEdge from Aspect;
- EvalMinMax : Boolean from Standard = Standard_True )
- is deferred;
- ---Purpose: call_togl_polygon_indices
-
PrimitiveArray( me : mutable;
ACGroup : CGroup from Graphic3d;
parray : PrimitiveArray from Graphic3d;
is deferred;
---Purpose: enables/disables usage of OpenGL vertex buffer arrays while drawing primitiev arrays
+ MemoryInfo (me;
+ theFreeBytes : out Size from Standard;
+ theInfo : out AsciiString from TCollection) returns Boolean from Standard is deferred;
+ ---Purpose: Returns information about GPU memory usage.
+
----------------------------------------
---Category: Methods to create Triedron
-- for Purpose : see Graphic3d_Group.cdl
---Purpose: call_togl_graduatedtrihedron_minmaxvalues
is deferred;
- ---------------------------
- -- Category: Animation mode
- ---------------------------
-
- BeginAnimation ( me : mutable;
- ACView : CView from Graphic3d)
- is deferred;
- ---Purpose: call_togl_begin_animation
-
- EndAnimation ( me : mutable;
- ACView : CView from Graphic3d)
- is deferred;
- ---Purpose: call_togl_end_animation
-
----------------------------------
-- Category: Ajout mode methods
----------------------------------
-- Category: Immediat mode methods
----------------------------------
+ SetImmediateModeDrawToFront (me : mutable;
+ theCView : CView from Graphic3d;
+ theDrawToFrontBuffer : Boolean from Standard)
+ returns Boolean from Standard
+ is deferred;
+ ---Purpose: @param theDrawToFrontBuffer Advanced option to modify rendering mode:
+ -- 1. TRUE. Drawing immediate mode structures directly to the front buffer over the scene image.
+ -- Fast, so preferred for interactive work (used by default).
+ -- However these extra drawings will be missed in image dump since it is performed from back buffer.
+ -- Notice that since no pre-buffering used the V-Sync will be ignored and rendering could be seen
+ -- in run-time (in case of slow hardware) and/or tearing may appear.
+ -- So this is strongly recommended to draw only simple (fast) structures.
+ -- 2. FALSE. Drawing immediate mode structures to the back buffer.
+ -- The complete scene is redrawn first, so this mode is slower if scene contains complex data and/or V-Sync is turned on.
+ -- But it works in any case and is especially useful for view dump because the dump image is read from the back buffer.
+ -- @return previous mode.
+
BeginImmediatMode ( me : mutable;
ACView : CView from Graphic3d;
ACUnderLayer : CLayer2d from Aspect;
is deferred;
---Purpose: call_togl_begin_immediat_mode
- BeginPolyline ( me : mutable )
- is deferred;
- ---Purpose: call_togl_begin_polyline
-
ClearImmediatMode ( me : mutable; ACView : CView from Graphic3d;
aFlush : Boolean from Standard = Standard_True)
is deferred;
---Purpose: call_togl_clear_immediat_mode
- Draw ( me : mutable;
- X : ShortReal from Standard;
- Y : ShortReal from Standard;
- Z : ShortReal from Standard )
- is deferred;
- ---Purpose: call_togl_draw
-
DrawStructure ( me : mutable;
ACStructure : CStructure from Graphic3d )
is deferred;
is deferred;
---Purpose: call_togl_end_immediat_mode
- EndPolyline ( me : mutable )
- is deferred;
- ---Purpose: call_togl_end_polyline
-
- Move ( me : mutable;
- X : ShortReal from Standard;
- Y : ShortReal from Standard;
- Z : ShortReal from Standard )
- is deferred;
- ---Purpose: call_togl_move
-
- SetLineColor ( me : mutable;
- R : ShortReal from Standard;
- G : ShortReal from Standard;
- B : ShortReal from Standard )
- is deferred;
- ---Purpose: call_togl_set_linecolor
-
- SetLineType ( me : mutable;
- Type : Integer from Standard )
- is deferred;
- ---Purpose: call_togl_set_linetype
-
- SetLineWidth ( me : mutable;
- Width : ShortReal from Standard )
- is deferred;
- ---Purpose: call_togl_set_linewidth
-
- SetMinMax ( me : mutable;
- X1 : ShortReal from Standard;
- Y1 : ShortReal from Standard;
- Z1 : ShortReal from Standard;
- X2 : ShortReal from Standard;
- Y2 : ShortReal from Standard;
- Z2 : ShortReal from Standard )
- is deferred;
- ---Purpose: call_togl_set_minmax
-
- Transform ( me : mutable;
- AMatrix : Array2OfReal from TColStd;
- AType : TypeOfComposition from Graphic3d )
- is deferred;
- ---Purpose: call_togl_transform
-
- -----------------------------
- -- Category: Textures methods
- -----------------------------
-
- CreateTexture ( me;
- Type : TypeOfTexture from Graphic3d;
- Image : AlienImage from AlienImage;
- FileName : CString from Standard;
- TexUpperBounds : HArray1OfReal from TColStd )
- returns Integer from Standard
- is deferred;
- ---Purpose:
-
- DestroyTexture ( me;
- TexId : Integer from Standard )
- is deferred;
- ---Purpose:
-
- ModifyTexture ( me;
- TexId : Integer from Standard;
- AValue : CInitTexture from Graphic3d )
- is deferred;
- ---Purpose:
-
-------------------------------
-- Category: Layer mode methods
-------------------------------
G : ShortReal from Standard;
B : ShortReal from Standard )
is deferred;
- ---Purpose: call_togl_set_text_attributes
+ ---Purpose: Set text attributes for under-/overlayer.
+ -- <Font> argument defines the name of the font to be used,
+ -- <Type> argument defines the display type of the text,
+ -- <R> <G> <B> values define the color of decal or subtitle background.
+ -- To set the color of the text you can use the SetColor method.
Text ( me : mutable;
AText : CString from Standard;
---Purpose: Change offscreen FBO viewport.
BufferDump( me : mutable;
- view : CView from Graphic3d;
- buffer : in out CRawBufferData from Image )
+ theCView : CView from Graphic3d;
+ theImage : in out PixMap from Image;
+ theBufferType : BufferType from Graphic3d )
returns Boolean from Standard
is deferred;
---Purpose: Dump active rendering buffer into specified memory buffer.
-- In contrast to Bitmaps, Vector graphics is scalable (so you may got quality benefits on printing to laser printer).
-- Notice however that results may differ a lot and do not contain some elements.
- RemovePrimitiveArray( me : mutable;
- theCGroup : CGroup from Graphic3d;
- thePArray : PrimitiveArray from Graphic3d )
- is deferred;
- ---Purpose: Clear visualization data in graphical driver and
- -- stop displaying the primitives array of the graphical group
- -- <theCGroup>. This method is internal and should be used
- -- by Graphic3d_Group only.
-
AddZLayer( me : mutable;
theCView : CView from Graphic3d;
theLayerId : Integer from Standard )
returns Integer from Standard;
---Purpose: call_togl_light
- Plane ( myclass;
- ACPlane : CPlane from Graphic3d;
- Update : Boolean from Standard )
- returns Integer from Standard;
- ---Purpose: call_togl_plane
-
-----------------------------
-- Category: Internal methods
-----------------------------
ACPick : CPick from Graphic3d;
AField : Integer from Standard );
- PrintCPlane ( me;
- ACPlane : CPlane from Graphic3d;
- AField : Integer from Standard );
-
PrintCStructure ( me;
ACStructure : CStructure from Graphic3d;
AField : Integer from Standard );
-- returns Standard_False if fails
-- ABD Integration support of system fonts (using FTGL and FreeType)
+ GetDisplayConnection (me)
+ returns DisplayConnection_Handle from Aspect;
+ ---C++: return const &
+
+ ---Purpose: returns Handle to display connection
+
+ IsDeviceLost (me)
+ returns Boolean from Standard;
+ -- Purpose: @return Standard_True in cases when the last view has been removed but some objects still present.
+
+ ResetDeviceLostFlag (me: mutable);
+ -- Purpose: Resets DeviceLostFlag to default (Standard_False) state.
+
fields
- MyTraceLevel : Integer from Standard is protected;
- MySharedLibrary : SharedLibrary from OSD is protected;
+ MyTraceLevel : Integer from Standard is protected;
+ MySharedLibrary : SharedLibrary from OSD is protected;
+ myDisplayConnection: DisplayConnection_Handle from Aspect is protected;
+ myDeviceLostFlag : Boolean from Standard is protected;
end GraphicDriver from Graphic3d;