Courier V3.0.2
3.0.0-1 Message Processing
1. New Courier::Component::PostProcess method has been added. This method is called after a component has been processed. A custom component is able to react on each process of a component.
2. New Courier::MessageReceiver::Deactivate method has been added. This method deactivates the message receiver in the system. After calling this method the message router stops serving this receiver with appropriate messages (means the method Receive() is called). If a custom message receiver is used this method should be called before destroying the custom message receiver instance.
3.0.0-2 Input Handling
New methods where added for setting custom names for GenericConsoleListener and PosixTerminalListener. These are:
- Courier::Platform::ExtComm::Generic::GenericConsoleInputHandler::SetConsoleListenerName
- Courier::Platform::ExtComm::Posix::SetTerminalListenerName
Corresponding getter methods were also provided.
3.0.0-3 Camera Groups
Activation and enable /disable rendering for views have been reworked to fix different aspects related to handling views together with camera groups.
For this the following modifications have been made:
- New Courier::CameraGroupHandler::OnViewInitContent method added for correctly initializing the cameras of a camera group, when their associated views are recreated.This method retrieves a camera if it has been lost, adds it to the camera group and makes all necessary settings for it to correctly be handled;
- New Courier::ViewScene::ActivateForCamera method has been added. This method activates / deactivates the view for message receiving, regardless of its rendering state and manages a reference count for activation requests for a specific camera of the view;
- New Courier::ViewScene::EnableRenderingForCamera method has been added. This method enables / disables rendering for the current ViewScene and a specific camera and manages a reference count for rendering requests for a specific camera of the view;
- Courier::ViewScene::IsRenderingEnabled method has been moved from Courier::ViewScene2D and Courier::ViewScene3D to Courier::ViewScene. This method returns true if the view is enabled for rendering;
- New Courier::ViewScene::OnActivate protected method has been added. This method delegates Courier::ParentViewActivateEvent event to controller and widgets;
- New protected methods Courier::ViewScene2D::ActivateImpl and Courier::ViewScene3D::ActivateImpl were added. These are actual implementations for Courier::ViewScene2D::Activate and Courier::ViewScene3D::Activate methods;
- New protected methods Courier::ViewScene2D::EnableRenderingImpl and Courier::ViewScene3D::EnableRenderingImpl were added. These are actual implementations for Courier::ViewScene2D::EnableRendering and Courier::ViewScene3D::EnableRendering methods;
- Courier::ViewScene2D::EnableRenderingScene and Courier::ViewScene3D::EnableRenderingScene have been made protected;
- New protected and virtual method Courier::ViewScene::UpdateCameraRenderingState has been added. This is overridden by Courier::ViewScene2D::UpdateCameraRenderingState and Courier::ViewScene3D::UpdateCameraRenderingState methods. These methods set the rendering state for the actual camera from Candera.
3.0.0-4 Render Configuration
A new option Courier::RenderConfiguration::ClearRenderTargetOnUpload was added for configurating the rendering.
This option enables / disables the automatic clearing of the render targets on the next upload. By default, to keep backwards compatibility, this option is set to false.
The interface of Courier::Gdu class has also been modified to support the above change. Therefore Courier::Gdu::Upload and Courier::Gdu::Unload now have a renderer parameter which is a pointer to Courier::Renderer.
Also Courier::Renderer::DeleteRenderJobs method has been made public, so it can be used by Courier::Gdu class.
3.0.0-5 Visualization
1. A new Courier::ViewAction::ClearCameraViewports is added to the Courier::ViewReqMsg. This new Courier::ViewAction::ClearCameraViewports will only clear the areas that are rendered by the cameras of the view.
For this, the following changes have been made:
- a new enumeration value has been added to Courier::ViewAction;
- a new onlyCameraViewPorts parameter has been added to Courier::View::Clear, Courier::ViewContainer::Clear, Courier::ViewScene2D::Clear and Courier::ViewScene3D::Clear methods.
2. New Courier::Renderer::SetIs2DRequest method has been added to Courier::Renderer, which sets a flag for determining if load/unload on a certain layer is requested by a 2D View. Corresponding getter method was also provided.