0025047: Visualization - public methods of OpenGl_AspectFace, OpenGl_AspectLine and...
authorkgv <kgv@opencascade.com>
Thu, 3 Jul 2014 07:09:48 +0000 (11:09 +0400)
committerapn <apn@opencascade.com>
Thu, 10 Jul 2014 10:37:44 +0000 (14:37 +0400)
src/OpenGl/OpenGl_AspectFace.hxx
src/OpenGl/OpenGl_AspectLine.hxx
src/OpenGl/OpenGl_AspectMarker.hxx
src/OpenGl/OpenGl_AspectText.hxx
src/OpenGl/OpenGl_ShaderManager.cxx

index 109282f..286b4b2 100644 (file)
@@ -55,11 +55,11 @@ class OpenGl_AspectFace : public OpenGl_Element
 
 public:
 
-  OpenGl_AspectFace();
+  Standard_EXPORT OpenGl_AspectFace();
 
   //! Copy parameters
-  void SetAspect (const CALL_DEF_CONTEXTFILLAREA& theAspect);
-  void SetAspect (const Handle(Graphic3d_AspectFillArea3d)& theAspect);
+  Standard_EXPORT void SetAspect (const CALL_DEF_CONTEXTFILLAREA& theAspect);
+  Standard_EXPORT void SetAspect (const Handle(Graphic3d_AspectFillArea3d)& theAspect);
 
   //! Set edge aspect.
   void SetAspectEdge (const OpenGl_AspectLine* theAspectEdge)
@@ -211,13 +211,13 @@ public:
     return myResources.ShaderProgram;
   }
 
-  virtual void Render  (const Handle(OpenGl_Workspace)& theWorkspace) const;
-  virtual void Release (const Handle(OpenGl_Context)&   theContext);
+  Standard_EXPORT virtual void Render  (const Handle(OpenGl_Workspace)& theWorkspace) const;
+  Standard_EXPORT virtual void Release (const Handle(OpenGl_Context)&   theContext);
 
 protected:
 
-  void convertMaterial (const CALL_DEF_MATERIAL& theMat,
-                        OPENGL_SURF_PROP&        theSurf);
+  Standard_EXPORT void convertMaterial (const CALL_DEF_MATERIAL& theMat,
+                                        OPENGL_SURF_PROP&        theSurf);
 
 protected: //! @name ordinary aspect properties
 
@@ -250,11 +250,13 @@ protected:
     void ResetTextureReadiness() { myIsTextureReady = Standard_False; }
     void ResetShaderReadiness () { myIsShaderReady  = Standard_False; }
 
-    void BuildTexture (const Handle(OpenGl_Workspace)& theWS, const Handle(Graphic3d_TextureMap)& theTexture);
-    void BuildShader  (const Handle(OpenGl_Workspace)& theWS, const Handle(Graphic3d_ShaderProgram)& theShader);
+    Standard_EXPORT void BuildTexture (const Handle(OpenGl_Workspace)&        theWS,
+                                       const Handle(Graphic3d_TextureMap)&    theTexture);
+    Standard_EXPORT void BuildShader  (const Handle(OpenGl_Workspace)&        theWS,
+                                       const Handle(Graphic3d_ShaderProgram)& theShader);
 
-    Handle(OpenGl_Texture)  Texture;
-    TCollection_AsciiString TextureId;
+    Handle(OpenGl_Texture)       Texture;
+    TCollection_AsciiString      TextureId;
     Handle(OpenGl_ShaderProgram) ShaderProgram;
     TCollection_AsciiString      ShaderProgramId;
 
index 1d71848..52a40d5 100644 (file)
 
 class OpenGl_AspectLine : public OpenGl_Element
 {
- public:
+public:
+
+  Standard_EXPORT OpenGl_AspectLine();
 
-  OpenGl_AspectLine ();
-  OpenGl_AspectLine (const OpenGl_AspectLine &AnOther);
+  Standard_EXPORT OpenGl_AspectLine (const OpenGl_AspectLine &AnOther);
 
-  void SetAspect (const CALL_DEF_CONTEXTLINE &theAspect);
+  Standard_EXPORT void SetAspect (const CALL_DEF_CONTEXTLINE& theAspect);
 
   const TEL_COLOUR & Color() const { return myColor; }
   Aspect_TypeOfLine  Type() const { return myType; }
@@ -52,8 +53,8 @@ class OpenGl_AspectLine : public OpenGl_Element
     return myResources.ShaderProgram;
   }
 
-  virtual void Render  (const Handle(OpenGl_Workspace)& theWorkspace) const;
-  virtual void Release (const Handle(OpenGl_Context)&   theContext);
+  Standard_EXPORT virtual void Render  (const Handle(OpenGl_Workspace)& theWorkspace) const;
+  Standard_EXPORT virtual void Release (const Handle(OpenGl_Context)&   theContext);
 
 protected:
 
@@ -74,7 +75,7 @@ protected:
     void SetShaderReady()       { myIsShaderReady = Standard_True; }
     void ResetShaderReadiness() { myIsShaderReady = Standard_False; }
 
-    void BuildShader (const Handle(OpenGl_Workspace)& theWS, const Handle(Graphic3d_ShaderProgram)& theShader);
+    Standard_EXPORT void BuildShader (const Handle(OpenGl_Workspace)& theWS, const Handle(Graphic3d_ShaderProgram)& theShader);
 
     Handle(OpenGl_ShaderProgram) ShaderProgram;
     TCollection_AsciiString      ShaderProgramId;
index 012a0f3..179ae28 100644 (file)
@@ -31,10 +31,10 @@ class OpenGl_AspectMarker : public OpenGl_Element
 {
 public:
 
-  OpenGl_AspectMarker();
+  Standard_EXPORT OpenGl_AspectMarker();
 
   //! Copy parameters
-  void SetAspect (const CALL_DEF_CONTEXTMARKER& theAspect);
+  Standard_EXPORT void SetAspect (const CALL_DEF_CONTEXTMARKER& theAspect);
 
   //! @return marker color
   const TEL_COLOUR& Color() const
@@ -99,8 +99,8 @@ public:
     return myResources.ShaderProgram;
   }
 
-  virtual void Render  (const Handle(OpenGl_Workspace)& theWorkspace) const;
-  virtual void Release (const Handle(OpenGl_Context)&   theContext);
+  Standard_EXPORT virtual void Render  (const Handle(OpenGl_Workspace)& theWorkspace) const;
+  Standard_EXPORT virtual void Release (const Handle(OpenGl_Context)&   theContext);
 
 protected: //! @name ordinary aspect properties
 
@@ -131,21 +131,22 @@ protected: //! @name OpenGl resources
     void ResetSpriteReadiness() { myIsSpriteReady = Standard_False; }
     void ResetShaderReadiness() { myIsShaderReady = Standard_False; }
 
-    void BuildSprites (const Handle(OpenGl_Workspace)& theWS,
-                       const Handle(Graphic3d_MarkerImage)& theMarkerImage,
-                       const Aspect_TypeOfMarker theType,
-                       const Standard_ShortReal theScale,
-                       const TEL_COLOUR& theColor,
-                       Standard_ShortReal& theMarkerSize);
-
-    void BuildShader (const Handle(OpenGl_Workspace)& theWS, const Handle(Graphic3d_ShaderProgram)& theShader);
-
-    void SpriteKeys (const Handle(Graphic3d_MarkerImage)& theMarkerImage,
-                     const Aspect_TypeOfMarker theType,
-                     const Standard_ShortReal theScale,
-                     const TEL_COLOUR& theColor,
-                     TCollection_AsciiString& theKey,
-                     TCollection_AsciiString& theKeyA);
+    Standard_EXPORT void BuildSprites (const Handle(OpenGl_Workspace)&      theWS,
+                                       const Handle(Graphic3d_MarkerImage)& theMarkerImage,
+                                       const Aspect_TypeOfMarker            theType,
+                                       const Standard_ShortReal             theScale,
+                                       const TEL_COLOUR&                    theColor,
+                                       Standard_ShortReal&                  theMarkerSize);
+
+    Standard_EXPORT void BuildShader (const Handle(OpenGl_Workspace)&        theWS,
+                                      const Handle(Graphic3d_ShaderProgram)& theShader);
+
+    Standard_EXPORT void SpriteKeys (const Handle(Graphic3d_MarkerImage)& theMarkerImage,
+                                     const Aspect_TypeOfMarker            theType,
+                                     const Standard_ShortReal             theScale,
+                                     const TEL_COLOUR&                    theColor,
+                                     TCollection_AsciiString&             theKey,
+                                     TCollection_AsciiString&             theKeyA);
 
     Handle(OpenGl_PointSprite)   Sprite;
     TCollection_AsciiString      SpriteKey;
index 3daf80c..5d19de9 100755 (executable)
@@ -156,7 +156,8 @@ protected:
     void SetShaderReady()       { myIsShaderReady = Standard_True; }
     void ResetShaderReadiness() { myIsShaderReady = Standard_False; }
 
-    void BuildShader (const Handle(OpenGl_Workspace)& theWS, const Handle(Graphic3d_ShaderProgram)& theShader);
+    Standard_EXPORT void BuildShader (const Handle(OpenGl_Workspace)&        theWS,
+                                      const Handle(Graphic3d_ShaderProgram)& theShader);
 
     Handle(OpenGl_ShaderProgram) ShaderProgram;
     TCollection_AsciiString      ShaderProgramId;
index 55dc4d4..5eb2a13 100755 (executable)
@@ -568,14 +568,15 @@ void OpenGl_ShaderManager::UpdateMaterialStateTo (const Handle(OpenGl_ShaderProg
 {
   if (myMaterialStates.IsBound (theProgram))
   {
-    myMaterialStates.ChangeFind (theProgram).Set (theAspect);
+    OpenGl_MaterialState& aState = myMaterialStates.ChangeFind (theProgram);
+    aState.Set (theAspect);
+    aState.Update();
   }
   else
   {
-    myMaterialStates.Bind (theProgram, OpenGl_MaterialState (theAspect));
+    myMaterialStates.Bind       (theProgram, OpenGl_MaterialState (theAspect));
+    myMaterialStates.ChangeFind (theProgram).Update();
   }
-
-  myMaterialStates.ChangeFind (theProgram).Update();
 }
 
 // =======================================================================