0029528: Visualization, TKOpenGl - allow defining sRGB textures
authorkgv <kgv@opencascade.com>
Thu, 29 Aug 2019 08:04:56 +0000 (11:04 +0300)
committerapn <apn@opencascade.com>
Tue, 22 Oct 2019 12:15:52 +0000 (15:15 +0300)
commitba00aab7a0f30b2a77d3faa4191249b32a9e03b0
treed973e4f00b5714e006d1cea528c3d201b07781c6
parentaaf8d6a98d5aa23513bbb7f0e8528764e1e0ebb4
0029528: Visualization, TKOpenGl - allow defining sRGB textures

OpenGL rendering is now done into sRGB framebuffer.
OpenGl_ShaderManager::prepareStdProgramFboBlit() has been extended
by programs resolving MSAA texture and applying gamma correction as fallbacks.

Quantity_Color definition has been modified to store RGB components
in linear color space within Quantity_TOC_RGB type.
Standard colors defined by Quantity_NameOfColor enumeration has been updated accordingly.
New Quantity_TOC_sRGB type has been introduced to handle RGB components in non-linear sRGB color space.

OpenGl_TextureFormat class definition has been moved to dedicated files.
New method OpenGl_TextureFormat::FindFormat() replaces OpenGl_Texture::GetDataFormat().
New method OpenGl_TextureFormat::FindSizedFormat() replaces OpenGl_FrameBuffer::getColorDataFormat()
and OpenGl_FrameBuffer::getDepthDataFormat().

Graphic3d_TextureRoot::IsColorMap() - introduced new property defining
if RGB(A)8 image formats should be loaded as sRGB(A) textures or as data RGB(A) textures.
OpenGl_Texture initialization methods have been extended with new theIsColorMap argument.

vreadpixel - added argument -sRGB printing color in sRGB color space.

Test cases have been updated to new sRGB rendered results.
137 files changed:
dox/dev_guides/upgrade/upgrade.md
src/Cocoa/Cocoa_Window.mm
src/D3DHost/D3DHost_FrameBuffer.cxx
src/Graphic3d/Graphic3d_MaterialAspect.cxx
src/Graphic3d/Graphic3d_TextureMap.hxx
src/Graphic3d/Graphic3d_TextureRoot.cxx
src/Graphic3d/Graphic3d_TextureRoot.hxx
src/Graphic3d/Graphic3d_TypeOfLimit.hxx
src/IGESCAFControl/IGESCAFControl_Reader.cxx
src/IGESCAFControl/IGESCAFControl_Writer.cxx
src/MeshVS/MeshVS_TwoColors.cxx
src/OpenGl/FILES
src/OpenGl/OpenGl_AspectsSprite.cxx
src/OpenGl/OpenGl_BackgroundArray.cxx
src/OpenGl/OpenGl_BackgroundArray.hxx
src/OpenGl/OpenGl_Caps.cxx
src/OpenGl/OpenGl_Caps.hxx
src/OpenGl/OpenGl_Context.cxx
src/OpenGl/OpenGl_Context.hxx
src/OpenGl/OpenGl_Font.cxx
src/OpenGl/OpenGl_FrameBuffer.cxx
src/OpenGl/OpenGl_FrameBuffer.hxx
src/OpenGl/OpenGl_GlFunctions.hxx
src/OpenGl/OpenGl_GraphicDriver.cxx
src/OpenGl/OpenGl_Material.hxx
src/OpenGl/OpenGl_ShaderManager.cxx
src/OpenGl/OpenGl_ShaderManager.hxx
src/OpenGl/OpenGl_Texture.cxx
src/OpenGl/OpenGl_Texture.hxx
src/OpenGl/OpenGl_TextureFormat.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_TextureFormat.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_TileSampler.cxx
src/OpenGl/OpenGl_View.cxx
src/OpenGl/OpenGl_View.hxx
src/OpenGl/OpenGl_View_Raytrace.cxx
src/OpenGl/OpenGl_View_Redraw.cxx
src/OpenGl/OpenGl_Window.cxx
src/OpenGl/OpenGl_Workspace.cxx
src/QABugs/QABugs_17.cxx
src/QABugs/QABugs_19.cxx
src/Quantity/Quantity_Color.cxx
src/Quantity/Quantity_Color.hxx
src/Quantity/Quantity_ColorRGBA.cxx
src/Quantity/Quantity_ColorRGBA.hxx
src/Quantity/Quantity_ColorTable.pxx
src/Quantity/Quantity_TypeOfColor.hxx
src/RWGltf/RWGltf_GltfJsonParser.cxx
src/RWGltf/RWGltf_MaterialCommon.hxx
src/RWObj/RWObj_Material.hxx
src/RWObj/RWObj_MtlReader.cxx
src/STEPCAFControl/STEPCAFControl_Writer.cxx
src/STEPConstruct/STEPConstruct_Styles.cxx
src/Shaders/Display.fs
src/Shaders/PathtraceBase.fs
src/Shaders/Shaders_Display_fs.pxx
src/Shaders/Shaders_PathtraceBase_fs.pxx
src/StdSelect/StdSelect_ViewerSelector3d.cxx
src/ViewerTest/ViewerTest.cxx
src/ViewerTest/ViewerTest_OpenGlCommands.cxx
src/ViewerTest/ViewerTest_ViewerCommands.cxx
src/Vrml/Vrml_DirectionalLight.cxx
src/Vrml/Vrml_Material.cxx
src/Vrml/Vrml_PointLight.cxx
src/Vrml/Vrml_SpotLight.cxx
src/VrmlAPI/VrmlAPI_Writer.cxx
src/VrmlData/VrmlData_Color.hxx
src/VrmlData/VrmlData_Material.cxx
src/VrmlData/VrmlData_ShapeConvert.cxx
tests/bugs/modalg_6/bug26379_1
tests/bugs/modalg_6/bug26379_2
tests/bugs/step/bug30189_1
tests/bugs/vis/bug22048
tests/bugs/vis/bug22879 [deleted file]
tests/bugs/vis/bug24762_coloredshape
tests/bugs/vis/bug25136
tests/bugs/vis/bug25340
tests/bugs/vis/bug25459_coloredshape
tests/bugs/vis/bug25544_graytexture
tests/bugs/vis/bug25552
tests/bugs/vis/bug25695
tests/bugs/vis/bug25723
tests/bugs/vis/bug25723_1
tests/bugs/vis/bug26028
tests/bugs/vis/bug26217
tests/bugs/vis/bug26344
tests/bugs/vis/bug26357
tests/bugs/vis/bug26680
tests/bugs/vis/bug26719_1
tests/bugs/vis/bug26940
tests/bugs/vis/bug26960
tests/bugs/vis/bug27083
tests/bugs/vis/bug27536
tests/bugs/vis/bug27618
tests/bugs/vis/bug27629
tests/bugs/vis/bug27796
tests/bugs/vis/bug27797
tests/bugs/vis/bug27817
tests/bugs/vis/bug27836
tests/bugs/vis/bug27945
tests/bugs/vis/bug27986_1
tests/bugs/vis/bug27986_2
tests/bugs/vis/bug28004
tests/bugs/vis/bug28036_1
tests/bugs/vis/bug28036_2
tests/bugs/vis/bug28127
tests/bugs/vis/bug28527
tests/bugs/vis/bug28988
tests/bugs/vis/bug29051
tests/bugs/vis/bug29262
tests/bugs/vis/bug29768
tests/bugs/vis/bug29791
tests/bugs/vis/bug30672
tests/bugs/vis/bug30756
tests/bugs/vis/bug30906
tests/bugs/vis/bug30949
tests/bugs/xde/bug23193
tests/bugs/xde/bug25381
tests/bugs/xde/bug28641
tests/bugs/xde/bug30779
tests/v3d/anim/objects
tests/v3d/anim/rotate
tests/v3d/anim/scale
tests/v3d/anim/translate
tests/v3d/face/F3
tests/v3d/glsl/clipping1
tests/v3d/glsl/distinguish_off
tests/v3d/glsl/gouraud_pos1
tests/v3d/glsl/gouraud_spot1
tests/v3d/glsl/phong_plastic
tests/v3d/glsl/phong_pos1
tests/v3d/glsl/phong_spot1
tests/v3d/glsl/texture_trsf
tests/v3d/glsl/texture_trsf2
tests/v3d/materials/bug27617
tests/v3d/materials/bug27818_1
tests/v3d/materials/bug27818_2
tests/v3d/viewcube/default