mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
0026672: Visualization, TKOpenGl - workaround mobile hardware with extremely low precision of mod() in GLSL
This commit is contained in:
@@ -1638,7 +1638,7 @@ Standard_Boolean OpenGl_ShaderManager::prepareStdProgramStereo (Handle(OpenGl_Sh
|
||||
EOL"{"
|
||||
EOL" vec4 aColorL = occTexture2D (uLeftSampler, TexCoord);"
|
||||
EOL" vec4 aColorR = occTexture2D (uRightSampler, TexCoord);"
|
||||
EOL" if (int (mod (gl_FragCoord.y + 1.5, 2.0)) == 1)"
|
||||
EOL" if (int (mod (gl_FragCoord.y - 1023.5, 2.0)) != 1)"
|
||||
EOL" {"
|
||||
EOL" occFragColor = aColorL;"
|
||||
EOL" }"
|
||||
@@ -1661,7 +1661,7 @@ Standard_Boolean OpenGl_ShaderManager::prepareStdProgramStereo (Handle(OpenGl_Sh
|
||||
EOL"{"
|
||||
EOL" vec4 aColorL = occTexture2D (uLeftSampler, TexCoord);"
|
||||
EOL" vec4 aColorR = occTexture2D (uRightSampler, TexCoord);"
|
||||
EOL" if (int (mod (gl_FragCoord.x + 1.5, 2.0)) != 1)"
|
||||
EOL" if (int (mod (gl_FragCoord.x - 1023.5, 2.0)) == 1)"
|
||||
EOL" {"
|
||||
EOL" occFragColor = aColorL;"
|
||||
EOL" }"
|
||||
@@ -1684,8 +1684,8 @@ Standard_Boolean OpenGl_ShaderManager::prepareStdProgramStereo (Handle(OpenGl_Sh
|
||||
EOL"{"
|
||||
EOL" vec4 aColorL = occTexture2D (uLeftSampler, TexCoord);"
|
||||
EOL" vec4 aColorR = occTexture2D (uRightSampler, TexCoord);"
|
||||
EOL" bool isEvenX = int(mod(floor(gl_FragCoord.x + 1.5), 2.0)) == 1;"
|
||||
EOL" bool isEvenY = int(mod(floor(gl_FragCoord.y + 1.5), 2.0)) != 1;"
|
||||
EOL" bool isEvenX = int(mod(floor(gl_FragCoord.x - 1023.5), 2.0)) != 1;"
|
||||
EOL" bool isEvenY = int(mod(floor(gl_FragCoord.y - 1023.5), 2.0)) == 1;"
|
||||
EOL" if ((isEvenX && isEvenY) || (!isEvenX && !isEvenY))"
|
||||
EOL" {"
|
||||
EOL" occFragColor = aColorL;"
|
||||
|
Reference in New Issue
Block a user