1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-07-20 12:45:50 +03:00

0026810: Visualization, TKOpenGl - line is shown without stipple aspect with FFP turned off on OpenGL before 3.2

OpenGl_ShaderManager::prepareStdProgramFlat() enable stipple line GLSL program
within OpenGL 3.0+, OpenGL ES 3.0+ and OpenGL 2.0+ with GL_EXT_gpu_shader4 extension.
This commit is contained in:
kgv 2015-10-24 17:32:36 +03:00 committed by bugmaster
parent 15478b1b87
commit 959a265a68

View File

@ -1260,22 +1260,27 @@ Standard_Boolean OpenGl_ShaderManager::prepareStdProgramFlat (Handle(OpenGl_Shad
TCollection_AsciiString aSrcVertEndMain; TCollection_AsciiString aSrcVertEndMain;
if ((theBits & OpenGl_PO_StippleLine) != 0) if ((theBits & OpenGl_PO_StippleLine) != 0)
{ {
bool hasCaps = false; bool hasGlslBitOps = false;
#if defined(GL_ES_VERSION_2_0) #if defined(GL_ES_VERSION_2_0)
if (myContext->IsGlGreaterEqual (3, 0)) if (myContext->IsGlGreaterEqual (3, 0))
{ {
aProgramSrc->SetHeader ("#version 300 es"); aProgramSrc->SetHeader ("#version 300 es");
hasCaps = true; hasGlslBitOps = true;
} }
#else #else
if (myContext->core32 != NULL) if (myContext->IsGlGreaterEqual (3, 0))
{ {
aProgramSrc->SetHeader ("#version 150"); aProgramSrc->SetHeader ("#version 130");
hasCaps = true; hasGlslBitOps = true;
}
else if(myContext->CheckExtension("GL_EXT_gpu_shader4"))
{
aProgramSrc->SetHeader ("#extension GL_EXT_gpu_shader4 : enable");
hasGlslBitOps = true;
} }
#endif #endif
if (hasCaps) if (hasGlslBitOps)
{ {
aSrcVertExtraOut += aSrcVertExtraOut +=
EOL"THE_SHADER_OUT vec2 ScreenSpaceCoord;"; EOL"THE_SHADER_OUT vec2 ScreenSpaceCoord;";