File indexing completed on 2026-09-10 09:16:56
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Graphic3d_GraphicDriver_HeaderFile
0018 #define _Graphic3d_GraphicDriver_HeaderFile
0019
0020 #include <Aspect_GenId.hxx>
0021 #include <Graphic3d_CStructure.hxx>
0022 #include <Graphic3d_ZLayerId.hxx>
0023 #include <Graphic3d_ZLayerSettings.hxx>
0024 #include <Graphic3d_TypeOfLimit.hxx>
0025 #include <TColStd_SequenceOfInteger.hxx>
0026
0027 class Aspect_DisplayConnection;
0028 class Aspect_Window;
0029 class Graphic3d_CView;
0030 class Graphic3d_Layer;
0031 class Graphic3d_StructureManager;
0032 class TCollection_AsciiString;
0033
0034 DEFINE_STANDARD_HANDLE(Graphic3d_GraphicDriver, Standard_Transient)
0035
0036
0037
0038 class Graphic3d_GraphicDriver : public Standard_Transient
0039 {
0040 DEFINE_STANDARD_RTTIEXT(Graphic3d_GraphicDriver, Standard_Transient)
0041 public:
0042
0043 virtual Standard_Integer InquireLimit(const Graphic3d_TypeOfLimit theType) const = 0;
0044
0045
0046 Standard_Integer InquireLightLimit() const
0047 {
0048 return InquireLimit(Graphic3d_TypeOfLimit_MaxNbLights);
0049 }
0050
0051
0052 Standard_Integer InquirePlaneLimit() const
0053 {
0054 return InquireLimit(Graphic3d_TypeOfLimit_MaxNbClipPlanes);
0055 }
0056
0057
0058 Standard_Integer InquireViewLimit() const
0059 {
0060 return InquireLimit(Graphic3d_TypeOfLimit_MaxNbViews);
0061 }
0062
0063 public:
0064
0065 virtual Handle(Graphic3d_CStructure) CreateStructure(
0066 const Handle(Graphic3d_StructureManager)& theManager) = 0;
0067
0068
0069 virtual void RemoveStructure(Handle(Graphic3d_CStructure)& theCStructure) = 0;
0070
0071
0072 virtual Handle(Graphic3d_CView) CreateView(const Handle(Graphic3d_StructureManager)& theMgr) = 0;
0073
0074
0075 virtual void RemoveView(const Handle(Graphic3d_CView)& theView) = 0;
0076
0077
0078 virtual void EnableVBO(const Standard_Boolean status) = 0;
0079
0080
0081
0082 virtual bool IsVerticalSync() const = 0;
0083
0084
0085 virtual void SetVerticalSync(bool theToEnable) = 0;
0086
0087
0088 virtual Standard_Boolean MemoryInfo(Standard_Size& theFreeBytes,
0089 TCollection_AsciiString& theInfo) const = 0;
0090
0091 virtual Standard_ShortReal DefaultTextHeight() const = 0;
0092
0093
0094 virtual void TextSize(const Handle(Graphic3d_CView)& theView,
0095 const Standard_CString theText,
0096 const Standard_ShortReal theHeight,
0097 Standard_ShortReal& theWidth,
0098 Standard_ShortReal& theAscent,
0099 Standard_ShortReal& theDescent) const = 0;
0100
0101
0102
0103
0104
0105
0106
0107
0108 Standard_EXPORT virtual void InsertLayerBefore(const Graphic3d_ZLayerId theNewLayerId,
0109 const Graphic3d_ZLayerSettings& theSettings,
0110 const Graphic3d_ZLayerId theLayerAfter) = 0;
0111
0112
0113
0114
0115
0116
0117 Standard_EXPORT virtual void InsertLayerAfter(const Graphic3d_ZLayerId theNewLayerId,
0118 const Graphic3d_ZLayerSettings& theSettings,
0119 const Graphic3d_ZLayerId theLayerBefore) = 0;
0120
0121
0122
0123
0124
0125 Standard_EXPORT virtual void RemoveZLayer(const Graphic3d_ZLayerId theLayerId) = 0;
0126
0127
0128 Standard_EXPORT virtual void ZLayers(TColStd_SequenceOfInteger& theLayerSeq) const;
0129
0130
0131 Standard_EXPORT virtual void SetZLayerSettings(const Graphic3d_ZLayerId theLayerId,
0132 const Graphic3d_ZLayerSettings& theSettings) = 0;
0133
0134
0135 Standard_EXPORT virtual const Graphic3d_ZLayerSettings& ZLayerSettings(
0136 const Graphic3d_ZLayerId theLayerId) const;
0137
0138
0139
0140 virtual Standard_Boolean ViewExists(const Handle(Aspect_Window)& theWindow,
0141 Handle(Graphic3d_CView)& theView) = 0;
0142
0143
0144 Standard_EXPORT const Handle(Aspect_DisplayConnection)& GetDisplayConnection() const;
0145
0146
0147 Standard_EXPORT Standard_Integer NewIdentification();
0148
0149
0150 Standard_EXPORT void RemoveIdentification(const Standard_Integer theId);
0151
0152
0153 Standard_EXPORT void DumpJson(Standard_OStream& theOStream, Standard_Integer theDepth = -1) const;
0154
0155 protected:
0156
0157 Standard_EXPORT Graphic3d_GraphicDriver(const Handle(Aspect_DisplayConnection)& theDisp);
0158
0159 protected:
0160 Handle(Aspect_DisplayConnection) myDisplayConnection;
0161 Aspect_GenId myStructGenId;
0162 NCollection_List<Handle(Graphic3d_Layer)> myLayers;
0163 NCollection_DataMap<Graphic3d_ZLayerId, Handle(Graphic3d_Layer)> myLayerIds;
0164 };
0165
0166 #endif