1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-24 13:50:49 +03:00

0024001: Stereographic rendering support

Deleted TODOs which were used when branch was built without OpenCL.
Modified test case bugs/vis/bug23747_2 (changed textured shape)
This commit is contained in:
duv
2014-01-23 14:44:31 +04:00
committed by bugmaster
parent 1190746b3c
commit b5ac8292b0
99 changed files with 5345 additions and 7308 deletions

View File

@@ -100,8 +100,10 @@ OpenGl_Context::OpenGl_Context (const Handle(OpenGl_Caps)& theCaps)
myMaxClipPlanes (6),
myGlVerMajor (0),
myGlVerMinor (0),
myIsFeedback (Standard_False),
myIsInitialized (Standard_False)
myRenderMode (GL_RENDER),
myIsInitialized (Standard_False),
myIsStereoBuffers (Standard_False),
myDrawBuffer (0)
{
#if defined(MAC_OS_X_VERSION_10_3) && !defined(MACOSX_USE_GLX)
// Vendors can not extend functionality on this system
@@ -193,6 +195,103 @@ Standard_Integer OpenGl_Context::MaxClipPlanes() const
return myMaxClipPlanes;
}
// =======================================================================
// function : SetDrawBufferLeft
// purpose :
// =======================================================================
void OpenGl_Context::SetDrawBufferLeft()
{
switch (myDrawBuffer)
{
case GL_BACK_RIGHT :
case GL_BACK :
glDrawBuffer (GL_BACK_LEFT);
myDrawBuffer = GL_BACK_LEFT;
break;
case GL_FRONT_RIGHT :
case GL_FRONT :
glDrawBuffer (GL_FRONT_LEFT);
myDrawBuffer = GL_FRONT_LEFT;
break;
case GL_FRONT_AND_BACK :
case GL_RIGHT :
glDrawBuffer (GL_LEFT);
myDrawBuffer = GL_LEFT;
break;
}
}
// =======================================================================
// function : SetDrawBufferRight
// purpose :
// =======================================================================
void OpenGl_Context::SetDrawBufferRight()
{
switch (myDrawBuffer)
{
case GL_BACK_LEFT :
case GL_BACK :
glDrawBuffer (GL_BACK_RIGHT);
myDrawBuffer = GL_BACK_RIGHT;
break;
case GL_FRONT_LEFT :
case GL_FRONT :
glDrawBuffer (GL_FRONT_RIGHT);
myDrawBuffer = GL_FRONT_RIGHT;
break;
case GL_FRONT_AND_BACK :
case GL_LEFT :
glDrawBuffer (GL_RIGHT);
myDrawBuffer = GL_RIGHT;
break;
}
}
// =======================================================================
// function : SetDrawBufferMono
// purpose :
// =======================================================================
void OpenGl_Context::SetDrawBufferMono()
{
switch (myDrawBuffer)
{
case GL_BACK_LEFT :
case GL_BACK_RIGHT :
glDrawBuffer (GL_BACK);
myDrawBuffer = GL_BACK;
break;
case GL_FRONT_LEFT :
case GL_FRONT_RIGHT :
glDrawBuffer (GL_FRONT);
myDrawBuffer = GL_FRONT;
break;
case GL_LEFT :
case GL_RIGHT :
glDrawBuffer (GL_FRONT_AND_BACK);
myDrawBuffer = GL_FRONT_AND_BACK;
break;
}
}
// =======================================================================
// function : FetchState
// purpose :
// =======================================================================
void OpenGl_Context::FetchState()
{
// cache feedback mode state
glGetIntegerv (GL_RENDER_MODE, &myRenderMode);
// cache draw buffer state
glGetIntegerv (GL_DRAW_BUFFER, &myDrawBuffer);
}
// =======================================================================
// function : Share
// purpose :
@@ -658,6 +757,11 @@ void OpenGl_Context::init()
// get number of maximum clipping planes
glGetIntegerv (GL_MAX_CLIP_PLANES, &myMaxClipPlanes);
glGetIntegerv (GL_MAX_TEXTURE_SIZE, &myMaxTexDim);
GLint aStereo;
glGetIntegerv (GL_STEREO, &aStereo);
myIsStereoBuffers = aStereo == 1;
if (extAnis)
{
glGetIntegerv (GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &myAnisoMax);
@@ -1003,23 +1107,6 @@ void OpenGl_Context::init()
core20 = myGlCore20;
}
}
// =======================================================================
// function : IsFeedback
// purpose :
// =======================================================================
Standard_Boolean OpenGl_Context::IsFeedback() const
{
return myIsFeedback;
}
// =======================================================================
// function : SetFeedback
// purpose :
// =======================================================================
void OpenGl_Context::SetFeedback (const Standard_Boolean theFeedbackOn)
{
myIsFeedback = theFeedbackOn;
}
// =======================================================================
// function : MemoryInfo