Open CASCADE Technology  7.4.1.dev
Public Member Functions | Static Public Member Functions | Protected Member Functions
OpenGl_Element Class Referenceabstract

Base interface for drawable elements. More...

#include <OpenGl_Element.hxx>

Inheritance diagram for OpenGl_Element:
Inheritance graph
[legend]

Public Member Functions

 OpenGl_Element ()
 
virtual void Render (const Handle< OpenGl_Workspace > &theWorkspace) const =0
 
virtual void Release (OpenGl_Context *theContext)=0
 Release GPU resources. Pointer to the context is used because this method might be called when the context is already being destroyed and usage of a handle would be unsafe. More...
 
virtual Standard_Boolean IsFillDrawMode () const
 Return TRUE if primitive type generates shaded triangulation (to be used in filters). More...
 
virtual Standard_Size EstimatedDataSize () const
 Returns estimated GPU memory usage for holding data without considering overheads and allocation alignment rules. More...
 
virtual void UpdateMemStats (Graphic3d_FrameStatsDataTmp &theStats) const
 Increment memory usage statistics. Default implementation puts EstimatedDataSize() into Graphic3d_FrameStatsCounter_EstimatedBytesGeom. More...
 
virtual void UpdateDrawStats (Graphic3d_FrameStatsDataTmp &theStats, bool theIsDetailed) const
 Increment draw calls statistics. More...
 
virtual void SynchronizeAspects ()
 Update parameters of the drawable elements. More...
 
virtual void DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const
 Dumps the content of me into the stream. More...
 

Static Public Member Functions

template<typename theResource_t >
static void Destroy (OpenGl_Context *theContext, theResource_t *&theElement)
 Pointer to the context is used because this method might be called when the context is already being destroyed and usage of a handle would be unsafe. More...
 

Protected Member Functions

virtual ~OpenGl_Element ()
 

Detailed Description

Base interface for drawable elements.

Constructor & Destructor Documentation

◆ OpenGl_Element()

OpenGl_Element::OpenGl_Element ( )

◆ ~OpenGl_Element()

virtual OpenGl_Element::~OpenGl_Element ( )
protectedvirtual

Member Function Documentation

◆ Destroy()

template<typename theResource_t >
static void OpenGl_Element::Destroy ( OpenGl_Context theContext,
theResource_t *&  theElement 
)
inlinestatic

Pointer to the context is used because this method might be called when the context is already being destroyed and usage of a handle would be unsafe.

◆ DumpJson()

virtual void OpenGl_Element::DumpJson ( Standard_OStream theOStream,
Standard_Integer  theDepth = -1 
) const
virtual

◆ EstimatedDataSize()

virtual Standard_Size OpenGl_Element::EstimatedDataSize ( ) const
inlinevirtual

Returns estimated GPU memory usage for holding data without considering overheads and allocation alignment rules.

Reimplemented in OpenGl_Text, and OpenGl_PrimitiveArray.

◆ IsFillDrawMode()

virtual Standard_Boolean OpenGl_Element::IsFillDrawMode ( ) const
inlinevirtual

Return TRUE if primitive type generates shaded triangulation (to be used in filters).

Reimplemented in OpenGl_PrimitiveArray.

◆ Release()

virtual void OpenGl_Element::Release ( OpenGl_Context theContext)
pure virtual

Release GPU resources. Pointer to the context is used because this method might be called when the context is already being destroyed and usage of a handle would be unsafe.

Implemented in OpenGl_Aspects, OpenGl_Text, OpenGl_PrimitiveArray, OpenGl_GraduatedTrihedron, OpenGl_Flipper, OpenGl_FrameStatsPrs, and OpenGl_StencilTest.

◆ Render()

virtual void OpenGl_Element::Render ( const Handle< OpenGl_Workspace > &  theWorkspace) const
pure virtual

◆ SynchronizeAspects()

virtual void OpenGl_Element::SynchronizeAspects ( )
inlinevirtual

Update parameters of the drawable elements.

Reimplemented in OpenGl_Aspects.

◆ UpdateDrawStats()

virtual void OpenGl_Element::UpdateDrawStats ( Graphic3d_FrameStatsDataTmp theStats,
bool  theIsDetailed 
) const
virtual

Increment draw calls statistics.

Parameters
theStats[in] [out] frame counters to increment
theIsDetailed[in] indicate detailed dump (more counters - number of triangles, points, etc.)

Reimplemented in OpenGl_Text, and OpenGl_PrimitiveArray.

◆ UpdateMemStats()

virtual void OpenGl_Element::UpdateMemStats ( Graphic3d_FrameStatsDataTmp theStats) const
virtual

Increment memory usage statistics. Default implementation puts EstimatedDataSize() into Graphic3d_FrameStatsCounter_EstimatedBytesGeom.


The documentation for this class was generated from the following file: