]> OCCT Git - occt-copy.git/commitdiff
0031715: Visualization, OpenGl_ShaderProgram - add access to proxy shader program.
authorosa <osa@opencascade.com>
Fri, 21 Aug 2020 08:35:49 +0000 (11:35 +0300)
committerosa <osa@opencascade.com>
Fri, 21 Aug 2020 08:48:16 +0000 (11:48 +0300)
Back porting of setting unique ID for shader program used to manage resource in graphic driver.

src/Graphic3d/Graphic3d_ShaderProgram.hxx
src/OpenGl/OpenGl_ShaderProgram.hxx

index 5118e177ffb254921bac597794b1345a6c7bc5c2..3ff305e319e34f358905f669b548ca910919e679 100755 (executable)
@@ -49,6 +49,11 @@ public:
   //! Returns unique ID used to manage resource in graphic driver.
   const TCollection_AsciiString& GetId() const { return myID; }
 
+  //! Sets unique ID used to manage resource in graphic driver.
+  //! WARNING! Graphic3d_ShaderProgram constructor generates a unique id for proper resource management;
+  //! however if application overrides it, it is responsibility of application to avoid name collisions.
+  void SetId (const TCollection_AsciiString& theId) { myID = theId; }
+
   //! Returns GLSL header (version code and extensions).
   const TCollection_AsciiString& Header() const { return myHeader; }
 
index 702b399a04fd5984fb1f0fed87ef04d29be2d84b..897525028dbe1d3f92d711614097698ffdfc4f14 100755 (executable)
@@ -201,6 +201,9 @@ public:
   //! Fetches uniform variables from proxy shader program.
   Standard_EXPORT Standard_Boolean ApplyVariables (const Handle(OpenGl_Context)& theCtx);
 
+  //! @return proxy shader program.
+  const Handle(Graphic3d_ShaderProgram)& Proxy() const { return myProxy; }
+
   //! @return true if current object was initialized
   inline bool IsValid() const
   {