|
| OpenGl_ShaderManager (OpenGl_Context *theContext) |
| Creates new empty shader manager.
|
|
virtual | ~OpenGl_ShaderManager () |
| Releases resources of shader manager.
|
|
void | clear () |
| Release all resources.
|
|
void | UpdateSRgbState () |
| Fetch sRGB state from caps and invalidates programs, if necessary.
|
|
const gp_XYZ & | LocalOrigin () const |
| Return local camera transformation.
|
|
void | SetLocalOrigin (const gp_XYZ &theOrigin) |
| Setup local camera transformation for compensating float precision issues.
|
|
Standard_Real | LocalClippingPlaneW (const Graphic3d_ClipPlane &thePlane) const |
| Return clipping plane W equation value moved considering local camera transformation.
|
|
Standard_Boolean | Create (const Handle< Graphic3d_ShaderProgram > &theProxy, TCollection_AsciiString &theShareKey, Handle< OpenGl_ShaderProgram > &theProgram) |
| Creates new shader program or re-use shared instance.
|
|
void | Unregister (TCollection_AsciiString &theShareKey, Handle< OpenGl_ShaderProgram > &theProgram) |
| Unregisters specified shader program.
|
|
const OpenGl_ShaderProgramList & | ShaderPrograms () const |
| Returns list of registered shader programs.
|
|
Standard_Boolean | IsEmpty () const |
| Returns true if no program objects are registered in the manager.
|
|
Standard_Boolean | BindFaceProgram (const Handle< OpenGl_TextureSet > &theTextures, Graphic3d_TypeOfShadingModel theShadingModel, Graphic3d_AlphaMode theAlphaMode, Standard_Boolean theHasVertColor, Standard_Boolean theEnableEnvMap, const Handle< OpenGl_ShaderProgram > &theCustomProgram) |
| Bind program for filled primitives rendering.
|
|
Standard_Boolean | BindFaceProgram (const Handle< OpenGl_TextureSet > &theTextures, Graphic3d_TypeOfShadingModel theShadingModel, Graphic3d_AlphaMode theAlphaMode, Aspect_InteriorStyle theInteriorStyle, Standard_Boolean theHasVertColor, Standard_Boolean theEnableEnvMap, Standard_Boolean theEnableMeshEdges, const Handle< OpenGl_ShaderProgram > &theCustomProgram) |
| Bind program for filled primitives rendering.
|
|
Standard_Boolean | BindLineProgram (const Handle< OpenGl_TextureSet > &theTextures, const Aspect_TypeOfLine theLineType, const Graphic3d_TypeOfShadingModel theShadingModel, const Graphic3d_AlphaMode theAlphaMode, const Standard_Boolean theHasVertColor, const Handle< OpenGl_ShaderProgram > &theCustomProgram) |
| Bind program for line rendering.
|
|
Standard_Boolean | BindMarkerProgram (const Handle< OpenGl_TextureSet > &theTextures, Graphic3d_TypeOfShadingModel theShadingModel, Graphic3d_AlphaMode theAlphaMode, Standard_Boolean theHasVertColor, const Handle< OpenGl_ShaderProgram > &theCustomProgram) |
| Bind program for point rendering.
|
|
Standard_Boolean | BindFontProgram (const Handle< OpenGl_ShaderProgram > &theCustomProgram) |
| Bind program for rendering alpha-textured font.
|
|
Standard_Boolean | BindOutlineProgram () |
| Bind program for outline rendering.
|
|
Standard_Boolean | BindFboBlitProgram (Standard_Integer theNbSamples, Standard_Boolean theIsFallback_sRGB) |
| Bind program for FBO blit operation.
|
|
Standard_Boolean | BindOitCompositingProgram (Standard_Boolean theIsMSAAEnabled) |
| Bind program for blended order-independent transparency buffers compositing.
|
|
Standard_Boolean | BindOitDepthPeelingBlendProgram (bool theIsMSAAEnabled) |
| Bind program for Depth Peeling order-independent transparency back color blending.
|
|
Standard_Boolean | BindOitDepthPeelingFlushProgram (bool theIsMSAAEnabled) |
| Bind program for Depth Peeling order-independent transparency flush.
|
|
Standard_Boolean | BindStereoProgram (Graphic3d_StereoMode theStereoMode) |
| Bind program for rendering stereoscopic image.
|
|
Standard_Boolean | BindBoundBoxProgram () |
| Bind program for rendering bounding box.
|
|
const Handle< OpenGl_VertexBuffer > & | BoundBoxVertBuffer () const |
| Returns bounding box vertex buffer.
|
|
Standard_Boolean | BindPBREnvBakingProgram (Standard_Integer theIndex) |
| Bind program for IBL maps generation in PBR pipeline.
|
|
const Handle< Graphic3d_ShaderProgram > & | GetBgCubeMapProgram () |
| Generates shader program to render environment cubemap as background.
|
|
const Handle< Graphic3d_ShaderProgram > & | GetBgSkydomeProgram () |
| Generates shader program to render skydome background.
|
|
const Handle< Graphic3d_ShaderProgram > & | GetColoredQuadProgram () |
| Generates shader program to render correctly colored quad.
|
|
const OpenGl_LightSourceState & | LightSourceState () const |
| Returns current state of OCCT light sources.
|
|
void | UpdateLightSourceStateTo (const Handle< Graphic3d_LightSet > &theLights, Standard_Integer theSpecIBLMapLevels, const Handle< OpenGl_ShadowMapArray > &theShadowMaps) |
| Updates state of OCCT light sources.
|
|
bool | SetCastShadows (const bool theToCast) |
| Updates state of OCCT light sources to dynamically enable/disable shadowmap.
|
|
void | UpdateLightSourceState () |
| Invalidate state of OCCT light sources.
|
|
void | PushLightSourceState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes current state of OCCT light sources to specified program (only on state change). Note that light sources definition depends also on WorldViewState.
|
|
void | pushLightSourceState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes current state of OCCT light sources to specified program.
|
|
const OpenGl_ProjectionState & | ProjectionState () const |
| Returns current state of OCCT projection transform.
|
|
void | UpdateProjectionStateTo (const OpenGl_Mat4 &theProjectionMatrix) |
| Updates state of OCCT projection transform.
|
|
void | PushProjectionState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes current state of OCCT projection transform to specified program (only on state change).
|
|
void | pushProjectionState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes current state of OCCT projection transform to specified program.
|
|
const OpenGl_ModelWorldState & | ModelWorldState () const |
| Returns current state of OCCT model-world transform.
|
|
void | UpdateModelWorldStateTo (const OpenGl_Mat4 &theModelWorldMatrix) |
| Updates state of OCCT model-world transform.
|
|
void | PushModelWorldState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes current state of OCCT model-world transform to specified program (only on state change).
|
|
void | pushModelWorldState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes current state of OCCT model-world transform to specified program.
|
|
const OpenGl_WorldViewState & | WorldViewState () const |
| Returns current state of OCCT world-view transform.
|
|
void | UpdateWorldViewStateTo (const OpenGl_Mat4 &theWorldViewMatrix) |
| Updates state of OCCT world-view transform.
|
|
void | PushWorldViewState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes current state of OCCT world-view transform to specified program (only on state change).
|
|
void | pushWorldViewState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes current state of OCCT world-view transform to specified program.
|
|
void | UpdateClippingState () |
| Updates state of OCCT clipping planes.
|
|
void | RevertClippingState () |
| Reverts state of OCCT clipping planes.
|
|
void | PushClippingState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes current state of OCCT clipping planes to specified program (only on state change).
|
|
void | pushClippingState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes current state of OCCT clipping planes to specified program.
|
|
const OpenGl_MaterialState & | MaterialState () const |
| Returns current state of material.
|
|
void | UpdateMaterialStateTo (const OpenGl_Material &theMat, const float theAlphaCutoff, const bool theToDistinguish, const bool theToMapTexture) |
| Updates state of material.
|
|
void | UpdateMaterialState () |
| Updates state of material.
|
|
void | PushMaterialState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes current state of material to specified program (only on state change).
|
|
void | pushMaterialState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes current state of material to specified program.
|
|
void | PushInteriorState (const Handle< OpenGl_ShaderProgram > &theProgram, const Handle< Graphic3d_Aspects > &theAspect) const |
| Setup interior style line edges variables.
|
|
const OpenGl_OitState & | OitState () const |
| Returns state of OIT uniforms.
|
|
void | ResetOitState () |
| Reset the state of OIT rendering pass (only on state change).
|
|
void | SetOitState (Graphic3d_RenderTransparentMethod theMode) |
| Set the state of OIT rendering pass (only on state change).
|
|
void | SetWeighedOitState (float theDepthFactor) |
| Set the state of weighed OIT rendering pass (only on state change).
|
|
void | PushOitState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes state of OIT uniforms to the specified program.
|
|
void | pushOitState (const Handle< OpenGl_ShaderProgram > &theProgram) const |
| Pushes state of OIT uniforms to the specified program.
|
|
void | PushState (const Handle< OpenGl_ShaderProgram > &theProgram, Graphic3d_TypeOfShadingModel theShadingModel=Graphic3d_TypeOfShadingModel_Unlit) const |
| Pushes current state of OCCT graphics parameters to specified program.
|
|
void | SetContext (OpenGl_Context *theCtx) |
| Overwrites context.
|
|
bool | IsSameContext (OpenGl_Context *theCtx) const |
| Returns true when provided context is the same as used one by shader manager.
|
|
Graphic3d_TypeOfShadingModel | ChooseFaceShadingModel (Graphic3d_TypeOfShadingModel theCustomModel, bool theHasNodalNormals) const |
| Choose Shading Model for filled primitives. Fallbacks to FACET model if there are no normal attributes. Fallbacks to corresponding non-PBR models if PBR is unavailable.
|
|
Graphic3d_TypeOfShadingModel | ChooseLineShadingModel (Graphic3d_TypeOfShadingModel theCustomModel, bool theHasNodalNormals) const |
| Choose Shading Model for line primitives. Fallbacks to UNLIT model if there are no normal attributes. Fallbacks to corresponding non-PBR models if PBR is unavailable.
|
|
Graphic3d_TypeOfShadingModel | ChooseMarkerShadingModel (Graphic3d_TypeOfShadingModel theCustomModel, bool theHasNodalNormals) const |
| Choose Shading Model for Marker primitives.
|
|
Graphic3d_TypeOfShadingModel | ShadingModel () const |
| Returns default Shading Model.
|
|
void | SetShadingModel (const Graphic3d_TypeOfShadingModel theModel) |
| Sets shading model.
|
|
| Graphic3d_ShaderManager (Aspect_GraphicsLibrary theGapi) |
| Creates new empty shader manager.
|
|
virtual | ~Graphic3d_ShaderManager () |
| Releases resources of shader manager.
|
|
bool | IsGapiGreaterEqual (Standard_Integer theVerMajor, Standard_Integer theVerMinor) const |
|
Standard_Integer | GapiVersionMajor () const |
| Return GAPI version major number.
|
|
Standard_Integer | GapiVersionMinor () const |
| Return GAPI version minor number.
|
|
void | SetGapiVersion (Standard_Integer theVerMajor, Standard_Integer theVerMinor) |
| Return GAPI version major number.
|
|
bool | UseRedAlpha () const |
| Return TRUE if RED channel should be used instead of ALPHA for single-channel textures (e.g. GAPI supports only GL_RED textures and not GL_ALPHA).
|
|
void | SetUseRedAlpha (bool theUseRedAlpha) |
| Set if RED channel should be used instead of ALPHA for single-channel textures.
|
|
bool | HasFlatShading () const |
| Return flag indicating flat shading usage; TRUE by default.
|
|
bool | ToReverseDFdxSign () const |
| Return flag indicating flat shading should reverse normal flag; FALSE by default.
|
|
void | SetFlatShading (bool theToUse, bool theToReverseSign) |
| Set flag indicating flat shading usage.
|
|
bool | ToEmulateDepthClamp () const |
| Return TRUE if depth clamping should be emulated by GLSL program; TRUE by default.
|
|
void | SetEmulateDepthClamp (bool theToEmulate) |
| Set if depth clamping should be emulated by GLSL program.
|
|
bool | HasGlslExtension (Graphic3d_GlslExtension theExt) const |
| Return TRUE if specified extension is available.
|
|
void | EnableGlslExtension (Graphic3d_GlslExtension theExt, bool theToEnable=true) |
| Set if specified extension is available or not.
|
|
Public Member Functions inherited from Standard_Transient |
| Standard_Transient () |
| Empty constructor.
|
|
| Standard_Transient (const Standard_Transient &) |
| Copy constructor – does nothing.
|
|
Standard_Transient & | operator= (const Standard_Transient &) |
| Assignment operator, needed to avoid copying reference counter.
|
|
virtual | ~Standard_Transient () |
| Destructor must be virtual.
|
|
virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
| Returns a type descriptor about this object.
|
|
Standard_Boolean | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
| Returns a true value if this is an instance of Type.
|
|
Standard_Boolean | IsInstance (const Standard_CString theTypeName) const |
| Returns a true value if this is an instance of TypeName.
|
|
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.
|
|
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.
|
|
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.
|
|
Standard_Integer | GetRefCount () const noexcept |
| Get the reference counter of this object.
|
|
void | IncrementRefCounter () noexcept |
| Increments the reference counter of this object.
|
|
Standard_Integer | DecrementRefCounter () noexcept |
| Decrements the reference counter of this object; returns the decremented value.
|
|
virtual void | Delete () const |
| Memory deallocator for transient classes.
|
|
|
Standard_Integer | getClipPlaneBits () const |
| Define clipping planes program bits.
|
|
Standard_Integer | getProgramBits (const Handle< OpenGl_TextureSet > &theTextures, Graphic3d_AlphaMode theAlphaMode, Aspect_InteriorStyle theInteriorStyle, Standard_Boolean theHasVertColor, Standard_Boolean theEnableEnvMap, Standard_Boolean theEnableMeshEdges) const |
| Define program bits.
|
|
Handle< OpenGl_ShaderProgram > & | getStdProgram (Graphic3d_TypeOfShadingModel theShadingModel, Standard_Integer theBits) |
| Prepare standard GLSL program.
|
|
Standard_Boolean | prepareStdProgramUnlit (Handle< OpenGl_ShaderProgram > &theProgram, Standard_Integer theBits, Standard_Boolean theIsOutline=false) |
| Prepare standard GLSL program without lighting.
|
|
Standard_Boolean | prepareStdProgramLight (Handle< OpenGl_ShaderProgram > &theProgram, Graphic3d_TypeOfShadingModel theShadingModel, Standard_Integer theBits) |
| Prepare standard GLSL program with lighting.
|
|
Standard_Boolean | prepareStdProgramGouraud (Handle< OpenGl_ShaderProgram > &theProgram, const Standard_Integer theBits) |
| Prepare standard GLSL program with per-vertex lighting.
|
|
Standard_Boolean | prepareStdProgramPhong (Handle< OpenGl_ShaderProgram > &theProgram, const Standard_Integer theBits, const Standard_Boolean theIsFlatNormal=false, const Standard_Boolean theIsPBR=false) |
| Prepare standard GLSL program with per-pixel lighting.
|
|
Standard_Boolean | bindProgramWithState (const Handle< OpenGl_ShaderProgram > &theProgram, Graphic3d_TypeOfShadingModel theShadingModel) |
| Bind specified program to current context and apply state.
|
|
void | switchLightPrograms () |
| Set pointer myLightPrograms to active lighting programs set from myMapOfLightPrograms.
|
|
Standard_Boolean | prepareStdProgramBoundBox () |
| Prepare standard GLSL program for bounding box.
|
|
Standard_Boolean | preparePBREnvBakingProgram (Standard_Integer theIndex) |
| Prepare GLSL source for IBL generation used in PBR pipeline.
|
|
Standard_Boolean | IsPbrAllowed () const |
| Checks whether one of PBR shading models is set as default model.
|
|
void | addClippingPlane (Standard_Integer &thePlaneId, const Graphic3d_ClipPlane &thePlane, const Graphic3d_Vec4d &theEq, const Standard_Integer theChainFwd) const |
| Append clipping plane definition to temporary buffers.
|
|
TCollection_AsciiString | genLightKey (const Handle< Graphic3d_LightSet > &theLights, const bool theHasShadowMap) const |
| Generate map key for light sources configuration.
|
|
Handle< Graphic3d_ShaderProgram > | getStdProgramFont () const |
| Prepare standard GLSL program for textured font.
|
|
Handle< Graphic3d_ShaderProgram > | getStdProgramUnlit (Standard_Integer theBits, Standard_Boolean theIsOutline=false) const |
| Prepare standard GLSL program without lighting.
|
|
Handle< Graphic3d_ShaderProgram > | getStdProgramGouraud (const Handle< Graphic3d_LightSet > &theLights, Standard_Integer theBits) const |
| Prepare standard GLSL program with per-vertex lighting.
|
|
Handle< Graphic3d_ShaderProgram > | getStdProgramPhong (const Handle< Graphic3d_LightSet > &theLights, const Standard_Integer theBits, const Standard_Boolean theIsFlatNormal, const Standard_Boolean theIsPBR, const Standard_Integer theNbShadowMaps) const |
| Prepare standard GLSL program with per-pixel lighting.
|
|
Handle< Graphic3d_ShaderProgram > | getStdProgramBoundBox () const |
| Prepare standard GLSL program for bounding box.
|
|
Handle< Graphic3d_ShaderProgram > | getBgCubeMapProgram () const |
| Generates shader program to render environment cubemap as background.
|
|
Handle< Graphic3d_ShaderProgram > | getBgSkydomeProgram () const |
| Generates shader program to render skydome background.
|
|
Handle< Graphic3d_ShaderProgram > | getColoredQuadProgram () const |
| Generates shader program to render correctly colored quad.
|
|
Handle< Graphic3d_ShaderProgram > | getPBREnvBakingProgram (Standard_Integer theIndex) const |
| Prepare GLSL source for IBL generation used in PBR pipeline.
|
|
Handle< Graphic3d_ShaderProgram > | getStdProgramFboBlit (Standard_Integer theNbSamples, Standard_Boolean theIsFallback_sRGB) const |
| Prepare standard GLSL program for FBO blit operation.
|
|
Handle< Graphic3d_ShaderProgram > | getStdProgramStereo (Graphic3d_StereoMode theStereoMode) const |
| Prepare standard GLSL program for stereoscopic image.
|
|
Handle< Graphic3d_ShaderProgram > | getStdProgramOitCompositing (Standard_Boolean theMsaa) const |
| Prepare standard GLSL programs for OIT compositing operation.
|
|
Handle< Graphic3d_ShaderProgram > | getStdProgramOitDepthPeelingBlend (Standard_Boolean theMsaa) const |
| Prepare standard GLSL programs for OIT Depth Peeling blend operation.
|
|
Handle< Graphic3d_ShaderProgram > | getStdProgramOitDepthPeelingFlush (Standard_Boolean theMsaa) const |
| Prepare standard GLSL programs for OIT Depth Peeling flush operation.
|
|
bool | hasGlslBitwiseOps () const |
| Return TRUE if bitwise operations can be used in GLSL program.
|
|
Standard_Integer | defaultGlslVersion (const Handle< Graphic3d_ShaderProgram > &theProgram, const TCollection_AsciiString &theName, Standard_Integer theBits, bool theUsesDerivates=false) const |
| Prepare GLSL version header.
|
|
void | defaultOitGlslVersion (const Handle< Graphic3d_ShaderProgram > &theProgram, const TCollection_AsciiString &theName, bool theMsaa) const |
| Prepare GLSL version header for OIT composition programs.
|
|
TCollection_AsciiString | pointSpriteAlphaSrc (Standard_Integer theBits) const |
| Prepare standard GLSL program for accessing point sprite alpha.
|
|
TCollection_AsciiString | pointSpriteShadingSrc (const TCollection_AsciiString &theBaseColorSrc, Standard_Integer theBits) const |
| Prepare standard GLSL program for computing point sprite shading.
|
|
TCollection_AsciiString | stdComputeLighting (Standard_Integer &theNbLights, const Handle< Graphic3d_LightSet > &theLights, Standard_Boolean theHasVertColor, Standard_Boolean theIsPBR, Standard_Boolean theHasTexColor, Standard_Integer theNbShadowMaps) const |
| Define computeLighting GLSL function depending on current lights configuration.
|
|
This class is responsible for managing shader programs.