mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-09-08 14:17:06 +03:00
0032077: Visualization - setting custom default frame buffer object for OpenGl context
This commit is contained in:
@@ -111,6 +111,29 @@ namespace
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static GLuint NoFrameBuffer = 0;
|
||||||
|
static GLuint NoRenderBuffer = 0;
|
||||||
|
|
||||||
|
GLuint OpenGl_Context::NO_FRAMEBUFFER()
|
||||||
|
{
|
||||||
|
return NoFrameBuffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
GLuint OpenGl_Context::NO_RENDERBUFFER()
|
||||||
|
{
|
||||||
|
return NoRenderBuffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGl_Context::SET_NO_FRAMEBUFFER(GLuint val)
|
||||||
|
{
|
||||||
|
NoFrameBuffer = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGl_Context::SET_NO_RENDERBUFFER(GLuint val)
|
||||||
|
{
|
||||||
|
NoRenderBuffer = val;
|
||||||
|
}
|
||||||
|
|
||||||
// =======================================================================
|
// =======================================================================
|
||||||
// function : OpenGl_Context
|
// function : OpenGl_Context
|
||||||
// purpose :
|
// purpose :
|
||||||
@@ -453,7 +476,7 @@ void OpenGl_Context::SetReadBuffer (const Standard_Integer theReadBuffer)
|
|||||||
if (myReadBuffer < GL_COLOR_ATTACHMENT0
|
if (myReadBuffer < GL_COLOR_ATTACHMENT0
|
||||||
&& arbFBO != NULL)
|
&& arbFBO != NULL)
|
||||||
{
|
{
|
||||||
arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_FrameBuffer::NO_FRAMEBUFFER);
|
arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_Context::NO_FRAMEBUFFER()/*OpenGl_FrameBuffer::NO_FRAMEBUFFER*/);
|
||||||
}
|
}
|
||||||
::glReadBuffer (myReadBuffer);
|
::glReadBuffer (myReadBuffer);
|
||||||
#else
|
#else
|
||||||
@@ -472,7 +495,7 @@ void OpenGl_Context::SetDrawBuffer (const Standard_Integer theDrawBuffer)
|
|||||||
if (aDrawBuffer < GL_COLOR_ATTACHMENT0
|
if (aDrawBuffer < GL_COLOR_ATTACHMENT0
|
||||||
&& arbFBO != NULL)
|
&& arbFBO != NULL)
|
||||||
{
|
{
|
||||||
arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_FrameBuffer::NO_FRAMEBUFFER);
|
arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_Context::NO_FRAMEBUFFER()/*OpenGl_FrameBuffer::NO_FRAMEBUFFER*/);
|
||||||
}
|
}
|
||||||
::glDrawBuffer (aDrawBuffer);
|
::glDrawBuffer (aDrawBuffer);
|
||||||
|
|
||||||
@@ -512,7 +535,7 @@ void OpenGl_Context::SetDrawBuffers (const Standard_Integer theNb, const Standar
|
|||||||
}
|
}
|
||||||
if (arbFBO != NULL && useDefaultFbo)
|
if (arbFBO != NULL && useDefaultFbo)
|
||||||
{
|
{
|
||||||
arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_FrameBuffer::NO_FRAMEBUFFER);
|
arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_Context::NO_FRAMEBUFFER()/*OpenGl_FrameBuffer::NO_FRAMEBUFFER*/);
|
||||||
}
|
}
|
||||||
|
|
||||||
myFuncs->glDrawBuffers (theNb, (const GLenum*)theDrawBuffers);
|
myFuncs->glDrawBuffers (theNb, (const GLenum*)theDrawBuffers);
|
||||||
|
@@ -214,6 +214,12 @@ class OpenGl_Context : public Standard_Transient
|
|||||||
friend class OpenGl_Window;
|
friend class OpenGl_Window;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
Standard_EXPORT static GLuint NO_FRAMEBUFFER();
|
||||||
|
Standard_EXPORT static GLuint NO_RENDERBUFFER();
|
||||||
|
|
||||||
|
Standard_EXPORT static void SET_NO_FRAMEBUFFER(GLuint val);
|
||||||
|
Standard_EXPORT static void SET_NO_RENDERBUFFER(GLuint val);
|
||||||
|
|
||||||
typedef NCollection_Shared< NCollection_DataMap<TCollection_AsciiString, Handle(OpenGl_Resource)> > OpenGl_ResourcesMap;
|
typedef NCollection_Shared< NCollection_DataMap<TCollection_AsciiString, Handle(OpenGl_Resource)> > OpenGl_ResourcesMap;
|
||||||
|
|
||||||
//! Function for getting power of to number larger or equal to input number.
|
//! Function for getting power of to number larger or equal to input number.
|
||||||
|
@@ -71,9 +71,9 @@ OpenGl_FrameBuffer::OpenGl_FrameBuffer()
|
|||||||
myVPSizeY (0),
|
myVPSizeY (0),
|
||||||
myNbSamples (0),
|
myNbSamples (0),
|
||||||
myDepthFormat (GL_DEPTH24_STENCIL8),
|
myDepthFormat (GL_DEPTH24_STENCIL8),
|
||||||
myGlFBufferId (NO_FRAMEBUFFER),
|
myGlFBufferId (OpenGl_Context::NO_FRAMEBUFFER()/*NO_FRAMEBUFFER*/),
|
||||||
myGlColorRBufferId (NO_RENDERBUFFER),
|
myGlColorRBufferId (OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/),
|
||||||
myGlDepthRBufferId (NO_RENDERBUFFER),
|
myGlDepthRBufferId (OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/),
|
||||||
myIsOwnBuffer (false),
|
myIsOwnBuffer (false),
|
||||||
myIsOwnDepth (false),
|
myIsOwnDepth (false),
|
||||||
myDepthStencilTexture (new OpenGl_Texture())
|
myDepthStencilTexture (new OpenGl_Texture())
|
||||||
@@ -339,7 +339,7 @@ Standard_Boolean OpenGl_FrameBuffer::Init (const Handle(OpenGl_Context)& theGlCo
|
|||||||
theGlContext->arbFBO->glGenRenderbuffers (1, &myGlDepthRBufferId);
|
theGlContext->arbFBO->glGenRenderbuffers (1, &myGlDepthRBufferId);
|
||||||
theGlContext->arbFBO->glBindRenderbuffer (GL_RENDERBUFFER, myGlDepthRBufferId);
|
theGlContext->arbFBO->glBindRenderbuffer (GL_RENDERBUFFER, myGlDepthRBufferId);
|
||||||
theGlContext->arbFBO->glRenderbufferStorage (GL_RENDERBUFFER, aDepthStencilFormat, aSizeX, aSizeY);
|
theGlContext->arbFBO->glRenderbufferStorage (GL_RENDERBUFFER, aDepthStencilFormat, aSizeX, aSizeY);
|
||||||
theGlContext->arbFBO->glBindRenderbuffer (GL_RENDERBUFFER, NO_RENDERBUFFER);
|
theGlContext->arbFBO->glBindRenderbuffer (GL_RENDERBUFFER, OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -371,7 +371,7 @@ Standard_Boolean OpenGl_FrameBuffer::Init (const Handle(OpenGl_Context)& theGlCo
|
|||||||
myDepthStencilTexture->GetTarget(), myDepthStencilTexture->TextureId(), 0);
|
myDepthStencilTexture->GetTarget(), myDepthStencilTexture->TextureId(), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (myGlDepthRBufferId != NO_RENDERBUFFER)
|
else if (myGlDepthRBufferId != OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/)
|
||||||
{
|
{
|
||||||
if (hasDepthStencilAttach (theGlContext) && hasStencilRB)
|
if (hasDepthStencilAttach (theGlContext) && hasStencilRB)
|
||||||
{
|
{
|
||||||
@@ -486,7 +486,7 @@ Standard_Boolean OpenGl_FrameBuffer::InitWithRB (const Handle(OpenGl_Context)& t
|
|||||||
const Standard_Integer aSizeY = theSizeY > 0 ? theSizeY : 2;
|
const Standard_Integer aSizeY = theSizeY > 0 ? theSizeY : 2;
|
||||||
|
|
||||||
// Create the render-buffers
|
// Create the render-buffers
|
||||||
if (theColorRBufferFromWindow != NO_RENDERBUFFER)
|
if (theColorRBufferFromWindow != OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/)
|
||||||
{
|
{
|
||||||
myGlColorRBufferId = theColorRBufferFromWindow;
|
myGlColorRBufferId = theColorRBufferFromWindow;
|
||||||
}
|
}
|
||||||
@@ -506,7 +506,7 @@ Standard_Boolean OpenGl_FrameBuffer::InitWithRB (const Handle(OpenGl_Context)& t
|
|||||||
theGlCtx->arbFBO->glGenRenderbuffers (1, &myGlDepthRBufferId);
|
theGlCtx->arbFBO->glGenRenderbuffers (1, &myGlDepthRBufferId);
|
||||||
theGlCtx->arbFBO->glBindRenderbuffer (GL_RENDERBUFFER, myGlDepthRBufferId);
|
theGlCtx->arbFBO->glBindRenderbuffer (GL_RENDERBUFFER, myGlDepthRBufferId);
|
||||||
theGlCtx->arbFBO->glRenderbufferStorage (GL_RENDERBUFFER, myDepthFormat, aSizeX, aSizeY);
|
theGlCtx->arbFBO->glRenderbufferStorage (GL_RENDERBUFFER, myDepthFormat, aSizeX, aSizeY);
|
||||||
theGlCtx->arbFBO->glBindRenderbuffer (GL_RENDERBUFFER, NO_RENDERBUFFER);
|
theGlCtx->arbFBO->glBindRenderbuffer (GL_RENDERBUFFER, OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/);
|
||||||
}
|
}
|
||||||
|
|
||||||
// create FBO
|
// create FBO
|
||||||
@@ -514,7 +514,7 @@ Standard_Boolean OpenGl_FrameBuffer::InitWithRB (const Handle(OpenGl_Context)& t
|
|||||||
theGlCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, myGlFBufferId);
|
theGlCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, myGlFBufferId);
|
||||||
theGlCtx->arbFBO->glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
|
theGlCtx->arbFBO->glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
|
||||||
GL_RENDERBUFFER, myGlColorRBufferId);
|
GL_RENDERBUFFER, myGlColorRBufferId);
|
||||||
if (myGlDepthRBufferId != NO_RENDERBUFFER)
|
if (myGlDepthRBufferId != OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/)
|
||||||
{
|
{
|
||||||
if (hasDepthStencilAttach (theGlCtx) && hasStencilRB)
|
if (hasDepthStencilAttach (theGlCtx) && hasStencilRB)
|
||||||
{
|
{
|
||||||
@@ -558,9 +558,9 @@ Standard_Boolean OpenGl_FrameBuffer::InitWrapper (const Handle(OpenGl_Context)&
|
|||||||
// clean up previous state
|
// clean up previous state
|
||||||
Release (theGlCtx.operator->());
|
Release (theGlCtx.operator->());
|
||||||
|
|
||||||
GLint anFbo = GLint(NO_FRAMEBUFFER);
|
GLint anFbo = GLint(OpenGl_Context::NO_FRAMEBUFFER()/*NO_FRAMEBUFFER*/);
|
||||||
::glGetIntegerv (GL_FRAMEBUFFER_BINDING, &anFbo);
|
::glGetIntegerv (GL_FRAMEBUFFER_BINDING, &anFbo);
|
||||||
if (anFbo == GLint(NO_FRAMEBUFFER))
|
if (anFbo == GLint(OpenGl_Context::NO_FRAMEBUFFER()/*NO_FRAMEBUFFER*/))
|
||||||
{
|
{
|
||||||
return Standard_False;
|
return Standard_False;
|
||||||
}
|
}
|
||||||
@@ -606,16 +606,16 @@ Standard_Boolean OpenGl_FrameBuffer::InitWrapper (const Handle(OpenGl_Context)&
|
|||||||
}
|
}
|
||||||
|
|
||||||
// retrieve dimensions
|
// retrieve dimensions
|
||||||
GLuint aRBuffer = myGlColorRBufferId != NO_RENDERBUFFER ? myGlColorRBufferId : myGlDepthRBufferId;
|
GLuint aRBuffer = myGlColorRBufferId != OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/ ? myGlColorRBufferId : myGlDepthRBufferId;
|
||||||
if (aRBuffer != NO_RENDERBUFFER)
|
if (aRBuffer != OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/)
|
||||||
{
|
{
|
||||||
theGlCtx->arbFBO->glBindRenderbuffer (GL_RENDERBUFFER, aRBuffer);
|
theGlCtx->arbFBO->glBindRenderbuffer (GL_RENDERBUFFER, aRBuffer);
|
||||||
theGlCtx->arbFBO->glGetRenderbufferParameteriv (GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &myVPSizeX);
|
theGlCtx->arbFBO->glGetRenderbufferParameteriv (GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &myVPSizeX);
|
||||||
theGlCtx->arbFBO->glGetRenderbufferParameteriv (GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &myVPSizeY);
|
theGlCtx->arbFBO->glGetRenderbufferParameteriv (GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &myVPSizeY);
|
||||||
theGlCtx->arbFBO->glBindRenderbuffer (GL_RENDERBUFFER, NO_RENDERBUFFER);
|
theGlCtx->arbFBO->glBindRenderbuffer (GL_RENDERBUFFER, OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/);
|
||||||
}
|
}
|
||||||
|
|
||||||
return aRBuffer != NO_RENDERBUFFER;
|
return aRBuffer != OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/;
|
||||||
}
|
}
|
||||||
|
|
||||||
// =======================================================================
|
// =======================================================================
|
||||||
@@ -633,18 +633,18 @@ void OpenGl_FrameBuffer::Release (OpenGl_Context* theGlCtx)
|
|||||||
&& myIsOwnBuffer)
|
&& myIsOwnBuffer)
|
||||||
{
|
{
|
||||||
theGlCtx->arbFBO->glDeleteFramebuffers (1, &myGlFBufferId);
|
theGlCtx->arbFBO->glDeleteFramebuffers (1, &myGlFBufferId);
|
||||||
if (myGlColorRBufferId != NO_RENDERBUFFER)
|
if (myGlColorRBufferId != OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/)
|
||||||
{
|
{
|
||||||
theGlCtx->arbFBO->glDeleteRenderbuffers (1, &myGlColorRBufferId);
|
theGlCtx->arbFBO->glDeleteRenderbuffers (1, &myGlColorRBufferId);
|
||||||
}
|
}
|
||||||
if (myGlDepthRBufferId != NO_RENDERBUFFER)
|
if (myGlDepthRBufferId != OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/)
|
||||||
{
|
{
|
||||||
theGlCtx->arbFBO->glDeleteRenderbuffers (1, &myGlDepthRBufferId);
|
theGlCtx->arbFBO->glDeleteRenderbuffers (1, &myGlDepthRBufferId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
myGlFBufferId = NO_FRAMEBUFFER;
|
myGlFBufferId = OpenGl_Context::NO_FRAMEBUFFER()/*NO_FRAMEBUFFER*/;
|
||||||
myGlColorRBufferId = NO_RENDERBUFFER;
|
myGlColorRBufferId = OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/;
|
||||||
myGlDepthRBufferId = NO_RENDERBUFFER;
|
myGlDepthRBufferId = OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/;
|
||||||
myIsOwnBuffer = false;
|
myIsOwnBuffer = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -726,7 +726,7 @@ void OpenGl_FrameBuffer::UnbindBuffer (const Handle(OpenGl_Context)& theGlCtx)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
theGlCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, NO_FRAMEBUFFER);
|
theGlCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_Context::NO_FRAMEBUFFER()/*NO_FRAMEBUFFER*/);
|
||||||
theGlCtx->SetFrameBufferSRGB (false);
|
theGlCtx->SetFrameBufferSRGB (false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -993,12 +993,12 @@ Standard_Size OpenGl_FrameBuffer::EstimatedDataSize() const
|
|||||||
{
|
{
|
||||||
aSize += myDepthStencilTexture->EstimatedDataSize();
|
aSize += myDepthStencilTexture->EstimatedDataSize();
|
||||||
}
|
}
|
||||||
if (myGlColorRBufferId != NO_RENDERBUFFER
|
if (myGlColorRBufferId != OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/
|
||||||
&& !myColorFormats.IsEmpty())
|
&& !myColorFormats.IsEmpty())
|
||||||
{
|
{
|
||||||
aSize += OpenGl_Texture::PixelSizeOfPixelFormat (myColorFormats.First()) * myInitVPSizeX * myInitVPSizeY;
|
aSize += OpenGl_Texture::PixelSizeOfPixelFormat (myColorFormats.First()) * myInitVPSizeX * myInitVPSizeY;
|
||||||
}
|
}
|
||||||
if (myGlDepthRBufferId != NO_RENDERBUFFER)
|
if (myGlDepthRBufferId != OpenGl_Context::NO_RENDERBUFFER()/*NO_RENDERBUFFER*/)
|
||||||
{
|
{
|
||||||
aSize += OpenGl_Texture::PixelSizeOfPixelFormat (myDepthFormat) * myInitVPSizeX * myInitVPSizeY;
|
aSize += OpenGl_Texture::PixelSizeOfPixelFormat (myDepthFormat) * myInitVPSizeX * myInitVPSizeY;
|
||||||
}
|
}
|
||||||
|
@@ -806,7 +806,7 @@ void OpenGl_View::RedrawImmediate()
|
|||||||
|
|
||||||
if (aCtx->arbFBO != NULL)
|
if (aCtx->arbFBO != NULL)
|
||||||
{
|
{
|
||||||
aCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_FrameBuffer::NO_FRAMEBUFFER);
|
aCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_Context::NO_FRAMEBUFFER()/*OpenGl_FrameBuffer::NO_FRAMEBUFFER*/);
|
||||||
}
|
}
|
||||||
#if !defined(GL_ES_VERSION_2_0)
|
#if !defined(GL_ES_VERSION_2_0)
|
||||||
if (anImmFbos[0] == NULL)
|
if (anImmFbos[0] == NULL)
|
||||||
@@ -831,7 +831,7 @@ void OpenGl_View::RedrawImmediate()
|
|||||||
|
|
||||||
if (aCtx->arbFBO != NULL)
|
if (aCtx->arbFBO != NULL)
|
||||||
{
|
{
|
||||||
aCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_FrameBuffer::NO_FRAMEBUFFER);
|
aCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_Context::NO_FRAMEBUFFER()/*OpenGl_FrameBuffer::NO_FRAMEBUFFER*/);
|
||||||
}
|
}
|
||||||
#if !defined(GL_ES_VERSION_2_0)
|
#if !defined(GL_ES_VERSION_2_0)
|
||||||
if (anImmFbos[1] == NULL)
|
if (anImmFbos[1] == NULL)
|
||||||
@@ -1275,7 +1275,7 @@ void OpenGl_View::renderStructs (Graphic3d_Camera::Projection theProjection,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aCtx->arbFBO->glBindFramebuffer (GL_DRAW_FRAMEBUFFER, 0);
|
aCtx->arbFBO->glBindFramebuffer (GL_DRAW_FRAMEBUFFER, OpenGl_Context::NO_FRAMEBUFFER());
|
||||||
aCtx->SetFrameBufferSRGB (false);
|
aCtx->SetFrameBufferSRGB (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1291,7 +1291,7 @@ void OpenGl_View::renderStructs (Graphic3d_Camera::Projection theProjection,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, 0);
|
aCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_Context::NO_FRAMEBUFFER());
|
||||||
aCtx->SetFrameBufferSRGB (false);
|
aCtx->SetFrameBufferSRGB (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1411,7 +1411,7 @@ void OpenGl_View::bindDefaultFbo (OpenGl_FrameBuffer* theCustomFbo)
|
|||||||
#else
|
#else
|
||||||
if (aCtx->arbFBO != NULL)
|
if (aCtx->arbFBO != NULL)
|
||||||
{
|
{
|
||||||
aCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_FrameBuffer::NO_FRAMEBUFFER);
|
aCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_Context::NO_FRAMEBUFFER()/*OpenGl_FrameBuffer::NO_FRAMEBUFFER*/);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
const Standard_Integer aViewport[4] = { 0, 0, myWindow->Width(), myWindow->Height() };
|
const Standard_Integer aViewport[4] = { 0, 0, myWindow->Width(), myWindow->Height() };
|
||||||
@@ -1489,7 +1489,7 @@ bool OpenGl_View::blitBuffers (OpenGl_FrameBuffer* theReadFbo,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_FrameBuffer::NO_FRAMEBUFFER);
|
aCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_Context::NO_FRAMEBUFFER()/*OpenGl_FrameBuffer::NO_FRAMEBUFFER*/);
|
||||||
aCtx->SetFrameBufferSRGB (false);
|
aCtx->SetFrameBufferSRGB (false);
|
||||||
}
|
}
|
||||||
const Standard_Integer aViewport[4] = { 0, 0, aDrawSizeX, aDrawSizeY };
|
const Standard_Integer aViewport[4] = { 0, 0, aDrawSizeX, aDrawSizeY };
|
||||||
@@ -1534,7 +1534,7 @@ bool OpenGl_View::blitBuffers (OpenGl_FrameBuffer* theReadFbo,
|
|||||||
{
|
{
|
||||||
aCopyMask |= GL_DEPTH_BUFFER_BIT;
|
aCopyMask |= GL_DEPTH_BUFFER_BIT;
|
||||||
}
|
}
|
||||||
aCtx->arbFBO->glBindFramebuffer (GL_DRAW_FRAMEBUFFER, OpenGl_FrameBuffer::NO_FRAMEBUFFER);
|
aCtx->arbFBO->glBindFramebuffer (GL_DRAW_FRAMEBUFFER, OpenGl_Context::NO_FRAMEBUFFER()/*OpenGl_FrameBuffer::NO_FRAMEBUFFER*/);
|
||||||
aCtx->SetFrameBufferSRGB (false);
|
aCtx->SetFrameBufferSRGB (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1575,7 +1575,7 @@ bool OpenGl_View::blitBuffers (OpenGl_FrameBuffer* theReadFbo,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_FrameBuffer::NO_FRAMEBUFFER);
|
aCtx->arbFBO->glBindFramebuffer (GL_FRAMEBUFFER, OpenGl_Context::NO_FRAMEBUFFER()/*OpenGl_FrameBuffer::NO_FRAMEBUFFER*/);
|
||||||
aCtx->SetFrameBufferSRGB (false);
|
aCtx->SetFrameBufferSRGB (false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user