######################
REDsdk 5.2 API Changes
######################

+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| File name                  | Change details                                                                                                                                                                                                                      |
+============================+=====================================================================================================================================================================================================================================+
| ARTIAssetManager.h         | .. rubric:: New methods and defines                                                                                                                                                                                                 |
|                            |                                                                                                                                                                                                                                     |
|                            | * ART_GEOMETRY_AO_GROUND_FIELD_RESOLUTION: This is the fixed size of a geometry ground texture.                                                                                                                                     |
|                            | * New ART::IAssetManager::BuildGeometryREDGraph, simpler than other methods and accessing only the created graph.                                                                                                                   |
|                            |                                                                                                                                                                                                                                     |
|                            | .. rubric:: Modified methods                                                                                                                                                                                                        |
|                            |                                                                                                                                                                                                                                     |
|                            | * ART::IAssetManager::GenerateGeometryVertexAO: More precise specification for the ground.                                                                                                                                          |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ARTIGeometry.h             | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * ART::IGeometry::GetMemoryUsage to get an estimate of the CPU & GPU memory taken by the geometry.                                                                                                                                  |
|                            | * ART::IGeometry::GetMaterialsCount, ART::IGeometry::GetMaterial: Material access API.                                                                                                                                              |
|                            | * A set of selection handling methods to have a selection feedback for some parts in the geometry.                                                                                                                                  |
|                            |                                                                                                                                                                                                                                     |
|                            | .. rubric:: Modified methods                                                                                                                                                                                                        |
|                            |                                                                                                                                                                                                                                     |
|                            | * ART::IGeometry::SetGroundAOCache, now specifying the size of the source AO information.                                                                                                                                           |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ART::ILight.h              | .. rubric:: Removed defined                                                                                                                                                                                                         |
|                            |                                                                                                                                                                                                                                     |
|                            | * ART::LT_SPOT: Is now assimilated to the ART::LT_POINT with a spot angle.                                                                                                                                                          |
|                            |                                                                                                                                                                                                                                     |
|                            | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * ART::ILight::GetPhysicalColor, ART::ILight::SetPhysicalColor: Setup a physical light.                                                                                                                                             |
|                            | * ART::ILight::GetLuminousFlux, ART::ILight::SetLuminousFlux: Setup a physical light.                                                                                                                                               |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ARTIMaterial.h             | All new methods for the setup and configuration of a material.                                                                                                                                                                      |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ARTIOptions.h              | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * ART::IOptions::SetAllDefaultOptions: Reset everything to default values.                                                                                                                                                          |
|                            | * ART::IOptions::ForcePrismsRealMeshShadows, ART::IOptions::IsForcedPrismsRealMeshShadows: Override prisms shadow settings.                                                                                                         |
|                            | * ART::IOptions::SetPrismsMeshFadeOffset, ART::IOptions::GetPrismsMeshFadeOffset: Shift prisms meshes display distances.                                                                                                            |
|                            | * ART::IOptions::SetPrismsExactSpawn, ART::IOptions::GetPrismsExactSpawn: Set an increased accuracy for prisms scattering.                                                                                                          |
|                            | * ART::IOptions::SetPrismsSpawnOffset, ART::IOptions::GetPrismsSpawnOffset: Shift the prisms scattering landscape subdivision.                                                                                                      |
|                            | * ART::IOptions::SetPrismsPassesCount, ART::IOptions::GetPrismsPassesCount: Set the number of prisms rendering passes.                                                                                                              |
|                            | * ART::IOptions::SetCloudsRelighting, ART::IOptions::GetCloudsRelighting: Specify the amount of sky relighting generated by clouds.                                                                                                 |
|                            | * ART::IOptions::SetFullSceneAntiAliasing, ART::IOptions::GetFullSceneAntiAliasing: Setup FSAA.                                                                                                                                     |
|                            | * All SSAO and SSR new methods.                                                                                                                                                                                                     |
|                            |                                                                                                                                                                                                                                     |
|                            | .. rubric:: Modified methods                                                                                                                                                                                                        |
|                            |                                                                                                                                                                                                                                     |
|                            | * ART::IOptions::SetPlanetGeometricalUpdateTime becomes ART::IOptions::SetPlanetGeometricalOpsPerFrame: uses a fixed number of operations rather than a timer. Generates more stable FPS.                                           |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ARTIWorld.h                | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * ART::IWorld::IsLandscapeUpdateDone: Get an information on the landscape synchronization.                                                                                                                                          |
|                            | * ART::IWorld::GetWindow: Get the REDsdk rendering window.                                                                                                                                                                          |
|                            | * ART::IWorld::SetOffscreenRendering: Force the rendering of REDart into an auxiliary VRL to let the main window VRL free.                                                                                                          |
|                            | * New picking methods: ART::IWorld::PickCloudsCovers, ART::IWorld::PickCustomShapes.                                                                                                                                                |
|                            | * New HTC Vive VR methods: ART::IWorld::StartOpenVRRendering, ART::IWorld::StopOpenVRRendering, ART::IWorld::IsOpenVRRendering.                                                                                                     |
|                            |                                                                                                                                                                                                                                     |
|                            | .. rubric:: Modified methods                                                                                                                                                                                                        |
|                            |                                                                                                                                                                                                                                     |
|                            | * ART::IWorld::Pick: More details on picked items.                                                                                                                                                                                  |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| RED.h                      | New defines for error code handling.                                                                                                                                                                                                |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDBoundingSphere.h        | New methods for handling AABBs (informative only. AABBs are not used internally).                                                                                                                                                   |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDIImage2D.h              | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::IImage2D::ScaleNormalMap: Change the intensity of a normal map.                                                                                                                                                              |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDImageTools.h            | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::ImageTools::Resize: Image resizing helper with complete filtering.                                                                                                                                                           |
|                            | * RED::ImageTools::ConvertFormat: Image format conversion tool.                                                                                                                                                                     |
|                            | * RED::ImageTools::ConvertMetallicToRealisticMaterial: Conversion of a PBR material to a realistic material.                                                                                                                        |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDIMaterial.h             | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::IMaterial::UpdateShader: Update any shader in place within the material configuration.                                                                                                                                       |
|                            | * RED::IMaterial::RemoveShaderFromLayerSets, RED::IMaterial::RemoveShaderFromPasses, RED::IMaterial::RemoveShader: shader list helpers.                                                                                             |
|                            | * RED::IMaterial::ClearShaderLayerSet: shader list helpers.                                                                                                                                                                         |
|                            | * RED::IMaterial::GetShaders: Shader access with more combinations for an easier usage.                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | .. rubric:: Modified methods                                                                                                                                                                                                        |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::IMaterial::SetupGenericMaterial: Added a real-time refraction toggle flag.                                                                                                                                                   |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDIMaterialController.h   | .. rubric:: New defines                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED_MATCTRL_REALTIME_REFRACTION and RED_MATCTRL_REALTIME_REFRACTION_DESC for the generic material real-time refraction prop.                                                                                                      |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDIMeshShape.h            | .. rubric:: Modified methods                                                                                                                                                                                                        |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::IMeshShape::Polygon: Added a polygon normal definition flag that was implicit before.                                                                                                                                        |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDIOptions.h              | .. rubric:: New options                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::OPTIONS_OPENGL_CONTEXT_DEBUG, RED::OPTIONS_OPENGL_CONTEXT_MAJOR, RED::OPTIONS_OPENGL_CONTEXT_MINOR: OpenGL context creation options.                                                                                         |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDIOTools.h               | .. rubric:: Modified methods                                                                                                                                                                                                        |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::IOTools::Save: Added a local images source control flag.                                                                                                                                                                     |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDIPhysicalLightShape.h   | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::IPhysicalLightShape::SetIESMatrix and RED::IPhysicalLightShape::GetIESMatrix: custom control of the IES orientation from within the light.                                                                                   |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDIResourceManager.h      | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::IResourceManager::SetAliveImagesCheck, RED::IResourceManager::IsAliveImagesCheck: Turn on or off the testing of images addresses during updates. Can be disabled for performance critical applications.                      |
|                            | * RED::IResourceManager::SetSynchronizationLock, RED::IResourceManager::IsSynchronizationLock: turn on or off the internal synchro lock for performance critical applications.                                                      |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDIShape.h                | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::IShape::GetParentViewpoints: Helper to ascend a shape's tree and get its anchoring viewpoints.                                                                                                                               |
|                            | * RED::IShape::ForceUpdate: Method to declare a shape change without effectively modifying it.                                                                                                                                      |
|                            | * RED::IShape::InDestroy: Is the shape already registered for a destruction?                                                                                                                                                        |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDISoftRenderingContext.h | .. rubric:: Modfied methods                                                                                                                                                                                                         |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::ISoftRenderingContext::GetBackgroundImagesIntensityScale turned into two new methods: RED::ISoftRenderingContext::GetBackgroundImagesIntensityScaleCube and RED::ISoftRenderingContext::GetBackgroundImagesIntensityScale2D. |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDITextShape.h            | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::ITextShape::InsertStringsFrom: Merge two shapes' strings.                                                                                                                                                                    |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDIViewpointRenderList.h  | .. rubric:: Modfied methods                                                                                                                                                                                                         |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::IViewpointRenderList::SetBackgroundImages now with two distinct multipliers, one for each background image.                                                                                                                  |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDQuaternion.h            | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::Quaternion::Log, RED::Quaternion::Exp: Quaternion manipulation helpers.                                                                                                                                                      |
|                            | * RED::Quaternion::Squad, RED::Quaternion::InnerQuadrangle: Quaternion interpolation helpers.                                                                                                                                       |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDRandom.h                | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::RNG::RandD: Generates a random number in [ 0, 1 ].                                                                                                                                                                           |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDRenderCode.h            | .. rubric:: New methods                                                                                                                                                                                                             |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::RenderCode::SetGenericGLSLBindings, RED::RenderCode::IsGenericGLSLBindings: Customization of the GLSL behavior for shaders.                                                                                                  |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDRenderShaderParameter.h | .. rubric:: New references                                                                                                                                                                                                          |
|                            |                                                                                                                                                                                                                                     |
|                            | * RED::RenderShaderParameter::REF_VRL_BACKGROUND_2D_IMAGE_INTENSITY_SCALE,                                                                                                                                                          |
|                            | * RED::RenderShaderParameter::REF_VRL_BACKGROUND_CUBE_IMAGE_INTENSITY_SCALE.                                                                                                                                                        |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDShaderString.h          | New Apple Metal helpers.                                                                                                                                                                                                            |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| REDVersion.h               | Modified constructor and new helper to handle the source code branch number.                                                                                                                                                        |
+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
