]> OCCT Git - occt-copy.git/commit
0029283: Visualization - allow defining more than 8 light sources
authorkgv <kgv@opencascade.com>
Sat, 17 Mar 2018 11:21:22 +0000 (14:21 +0300)
committerkgv <kgv@opencascade.com>
Sat, 17 Mar 2018 12:30:06 +0000 (15:30 +0300)
commitb0b773e245bac7a09d48a6c54da0aa64b9232034
tree691865769c243bd6a3c9f06d4de8b1ddcb2d54f3
parent97bfa9cf11164bb68be19b6059a19868ac9f1f2c
0029283: Visualization - allow defining more than 8 light sources

OpenGl_ShaderManager now overrides THE_MAX_LIGHTS within built-in shading programs
so that maximum number of lights is now limited only by OpenGL hardware
(e.g. length of GLSL program, number of defined uniforms, result performance, etc.).
THE_MAX_CLIP_PLANES is now also defined by OpenGl_ShaderManager,
so that unused lights and clipping planes do not reserve extra uniforms in GLSL programs.

V3d_View::SetLightOn() does not throw exception anymore, when the number of lights exceeds 8.
Instead, OpenGl_ShaderManager::PushLightSourceState() emits warning
in case of usage of FFP providing consistent behavior with Clipping Planes number limit.

# Conflicts:
# src/V3d/V3d_View_2.cxx
13 files changed:
src/Graphic3d/Graphic3d_ShaderProgram.cxx
src/Graphic3d/Graphic3d_ShaderProgram.hxx
src/OpenGl/OpenGl_GraphicDriver.cxx
src/OpenGl/OpenGl_ShaderManager.cxx
src/OpenGl/OpenGl_ShaderManager.hxx
src/OpenGl/OpenGl_ShaderProgram.cxx
src/OpenGl/OpenGl_ShaderProgram.hxx
src/Shaders/Declarations.glsl
src/Shaders/DeclarationsImpl.glsl
src/Shaders/Shaders_DeclarationsImpl_glsl.pxx
src/Shaders/Shaders_Declarations_glsl.pxx
src/V3d/V3d_View_2.cxx
tests/v3d/glsl/phong_pos2 [new file with mode: 0644]