0031096: Visualization, TKOpenGl - support metallic-roughness texture mapping
[occt.git] / src / OpenGl / OpenGl_Workspace.hxx
index 3a6974e..6b8b6b6 100644 (file)
@@ -148,9 +148,20 @@ public:
   //! Assign new aspects (will be applied within ApplyAspects()).
   Standard_EXPORT const OpenGl_Aspects* SetAspects (const OpenGl_Aspects* theAspect);
 
+  //! Return TextureSet from set Aspects or Environment texture.
+  const Handle(OpenGl_TextureSet)& TextureSet() const
+  {
+    const Handle(OpenGl_TextureSet)& aTextureSet = myAspectsSet->TextureSet (myGlContext, ToHighlight());
+    return !aTextureSet.IsNull()
+          || myAspectsSet->Aspect()->ToMapTexture()
+          ? aTextureSet
+          : myEnvironmentTexture;
+  }
+
   //! Apply aspects.
+  //! @param theToBindTextures flag to bind texture set defined by applied aspect
   //! @return aspect set by SetAspects()
-  Standard_EXPORT const OpenGl_Aspects* ApplyAspects();
+  Standard_EXPORT const OpenGl_Aspects* ApplyAspects (bool theToBindTextures = true);
 
   //! Clear the applied aspect state to default values.
   void ResetAppliedAspect();