]> OCCT Git - occt-copy.git/commitdiff
0031457: Visualization - interface to find an active frame buffer CR0_SHI_week7
authornds <nds@opencascade.com>
Sat, 21 Mar 2020 17:13:55 +0000 (20:13 +0300)
committerNatalia ERMOLAEVA <nds@nnov.opencascade.com>
Fri, 27 Mar 2020 05:38:58 +0000 (08:38 +0300)
src/OpenGl/OpenGl_Context.hxx
src/OpenGl/OpenGl_FrameBuffer.cxx

index 98085448354954825e15c714a7d5e3c32baff0bb..dd079ceb72dfa7d4ed862803fa06609a1231fc41 100644 (file)
@@ -895,6 +895,18 @@ public: //! @name methods to alter or retrieve current state
   //! Bind default Vertex Array Object
   Standard_EXPORT void BindDefaultVao();
 
+  //! Active Frame Buffer Object.
+  const Handle(OpenGl_FrameBuffer)& ActiveFrameBuffer() const
+  {
+    return myActiveFbo;
+  }
+
+  //! Setup Active Frame Buffer Object.
+  Standard_EXPORT void SetActiveFrameBuffer (const Handle(OpenGl_FrameBuffer)& theFbo)
+  {
+    myActiveFbo = theFbo;
+  }
+
   //! Default Frame Buffer Object.
   const Handle(OpenGl_FrameBuffer)& DefaultFrameBuffer() const
   {
@@ -1132,6 +1144,7 @@ private: //! @name fields tracking current state
                                                    //!< currently active sampler objects
   Standard_Integer              myActiveMockTextures; //!< currently active mock sampler objects
   Handle(OpenGl_FrameBuffer)    myDefaultFbo;      //!< default Frame Buffer Object
+  Handle(OpenGl_FrameBuffer)    myActiveFbo;       //!< active Frame Buffer Object
   Handle(OpenGl_LineAttributes) myHatchStyles;     //!< resource holding predefined hatch styles patterns
   Handle(OpenGl_Texture)        myTextureRgbaBlack;//!< mock black texture returning (0, 0, 0, 0)
   Handle(OpenGl_Texture)        myTextureRgbaWhite;//!< mock white texture returning (1, 1, 1, 1)
index a05e3216600c61fe4649d167a33f3b1372c024ba..00fd8c2f8417f963c1014a438ae7108ec2ced98f 100644 (file)
@@ -692,6 +692,8 @@ void OpenGl_FrameBuffer::BindBuffer (const Handle(OpenGl_Context)& theGlCtx)
 {
   theGlCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, myGlFBufferId);
   theGlCtx->SetFrameBufferSRGB (true);
+  
+  theGlCtx->SetActiveFrameBuffer (this);
 }
 
 // =======================================================================