Open CASCADE Technology
7.4.0
|
Utility class to manage OpenGL state of polygon hatching rasterization and keeping its cached state. The hatching rasterization is implemented using glPolygonStipple function of OpenGL. State of hatching is controlled by two parameters - type of hatching and IsEnabled parameter. The hatching rasterization is enabled only if non-zero index pattern type is selected (zero by default is reserved for solid filling) and if IsEnabled flag is set to true. The IsEnabled parameter is useful for temporarily turning on/off the hatching rasterization without making any costly GL calls for changing the hatch pattern. This is a sharable resource class - it creates OpenGL context objects for each hatch pattern to achieve quicker switching between them, thesse GL objects are freed when the resource is released by owner context. More...
#include <OpenGl_LineAttributes.hxx>
Public Member Functions | |
OpenGl_LineAttributes () | |
Default constructor. By default the parameters are: More... | |
virtual | ~OpenGl_LineAttributes () |
Default destructor. More... | |
virtual void | Release (OpenGl_Context *theGlCtx) override |
Release GL resources. More... | |
virtual Standard_Size | EstimatedDataSize () const override |
Returns estimated GPU memory usage - not implemented. More... | |
int | TypeOfHatch () const |
Index of currently selected type of hatch. More... | |
int | SetTypeOfHatch (const OpenGl_Context *theGlCtx, const Handle< Graphic3d_HatchStyle > &theStyle) |
Sets type of the hatch. More... | |
bool | IsEnabled () const |
Current enabled state of the hatching rasterization. More... | |
bool | SetEnabled (const OpenGl_Context *theGlCtx, const bool theToEnable) |
Turns on/off the hatching rasterization rasterization. More... | |
Public Member Functions inherited from OpenGl_Resource | |
OpenGl_Resource () | |
Empty constructor. More... | |
virtual | ~OpenGl_Resource () |
Destructor. Inheritors should call Clean (NULL) within it. More... | |
Public Member Functions inherited from Standard_Transient | |
Standard_Transient () | |
Empty constructor. More... | |
Standard_Transient (const Standard_Transient &) | |
Copy constructor – does nothing. More... | |
Standard_Transient & | operator= (const Standard_Transient &) |
Assignment operator, needed to avoid copying reference counter. More... | |
virtual | ~Standard_Transient () |
Destructor must be virtual. More... | |
virtual void | Delete () const |
Memory deallocator for transient classes. More... | |
virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
Returns a type descriptor about this object. More... | |
Standard_Boolean | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
Returns a true value if this is an instance of Type. More... | |
Standard_Boolean | IsInstance (const Standard_CString theTypeName) const |
Returns a true value if this is an instance of TypeName. More... | |
Standard_Boolean | IsKind (const opencascade::handle< Standard_Type > &theType) const |
Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More... | |
Standard_Boolean | IsKind (const Standard_CString theTypeName) const |
Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More... | |
Standard_Transient * | This () const |
Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. More... | |
Standard_Integer | GetRefCount () const |
Get the reference counter of this object. More... | |
void | IncrementRefCounter () const |
Increments the reference counter of this object. More... | |
Standard_Integer | DecrementRefCounter () const |
Decrements the reference counter of this object; returns the decremented value. More... | |
Protected Member Functions | |
unsigned int | init (const OpenGl_Context *theGlCtx, const Handle< Graphic3d_HatchStyle > &theStyle) |
Protected Attributes | |
int | myTypeOfHatch |
Currently activated type of hatch. More... | |
bool | myIsEnabled |
Current enabled state of hatching rasterization. More... | |
OpenGl_MapOfHatchStylesAndIds | myStyles |
Hatch patterns. More... | |
Additional Inherited Members | |
Public Types inherited from Standard_Transient | |
typedef void | base_type |
Returns a type descriptor about this object. More... | |
Static Public Member Functions inherited from Standard_Transient | |
static const char * | get_type_name () |
Returns a type descriptor about this object. More... | |
static const opencascade::handle< Standard_Type > & | get_type_descriptor () |
Returns type descriptor of Standard_Transient class. More... | |
Utility class to manage OpenGL state of polygon hatching rasterization and keeping its cached state. The hatching rasterization is implemented using glPolygonStipple function of OpenGL. State of hatching is controlled by two parameters - type of hatching and IsEnabled parameter. The hatching rasterization is enabled only if non-zero index pattern type is selected (zero by default is reserved for solid filling) and if IsEnabled flag is set to true. The IsEnabled parameter is useful for temporarily turning on/off the hatching rasterization without making any costly GL calls for changing the hatch pattern. This is a sharable resource class - it creates OpenGL context objects for each hatch pattern to achieve quicker switching between them, thesse GL objects are freed when the resource is released by owner context.
OpenGl_LineAttributes::OpenGl_LineAttributes | ( | ) |
Default constructor. By default the parameters are:
|
virtual |
Default destructor.
|
inlineoverridevirtual |
Returns estimated GPU memory usage - not implemented.
Implements OpenGl_Resource.
|
protected |
|
inline |
Current enabled state of the hatching rasterization.
|
overridevirtual |
Release GL resources.
Implements OpenGl_Resource.
bool OpenGl_LineAttributes::SetEnabled | ( | const OpenGl_Context * | theGlCtx, |
const bool | theToEnable | ||
) |
Turns on/off the hatching rasterization rasterization.
int OpenGl_LineAttributes::SetTypeOfHatch | ( | const OpenGl_Context * | theGlCtx, |
const Handle< Graphic3d_HatchStyle > & | theStyle | ||
) |
Sets type of the hatch.
|
inline |
Index of currently selected type of hatch.
|
protected |
Current enabled state of hatching rasterization.
|
protected |
Hatch patterns.
|
protected |
Currently activated type of hatch.