Candera V3.0.0 Migration Guide
Following a guide how to uprade application code from V2.10.0 to V3.0.0 Candera Interfaces.
Besides interface changes, also the build system has been changed significantly in V3.0.0:
Regular Expression Search and Replace Patterns
Migration Guide for Backward Compatible Interface Changes
This page provides an overview about interface changes between Candera V2.10.0 and Candera V3.0.0, which are backward compatible.
Interface Changes with Deprecations
These changes do not require immediate adaptation of existing code. Although deprecated interfaces are still accessible, consider switching to the new interfaces as the deprecated interfaces will be removed with the next release.
| Description | Candera V2.10.0 | Candera V3.0.0 |
|---|---|---|
| TextAlignment | TextAlignment
Leading Middle Trailing |
HorizontalAlignment
HLeft HCenter HRightVerticalAlignment VTop VCenter VBottom |
| Effect shared pointer types |
[Effect]Ptr e.g. BitmapBrushPtr |
[Effect]SharedPointer e.g. BitmapBrush::SharedPointer |
| const TreeTraverser |
class MyTraverser : public TreeTraverserBase<Node> {
protected:
virtual TraverserAction ProcessConstNode(const Node& node)
{
...
}
};
|
class MyTraverser : public TreeTraverserBase<const Node> {
protected:
virtual TraverserAction ProcessNode(const Node& node)
{
...
}
};
|
| AssetDescriptor |
Candera::DefaultAssetProvider* provider = m_assetProvider; Candera::AssetContext* assetContext = provider->GetAssetContext(); if (assetContext != 0) { for (Int i = 0; i < assetContext->GetAnimationCount(); i++) { const Candera::Char* animation = assetContext->GetAnimationName(i); //Use animation name } } |
Candera::DefaultAssetProvider* provider = m_assetProvider; for (Candera::AssetDescriptor::AssetIdIterator animationIdIterator = provider->GetAssetDescriptor().GetAssetIdIterator(AnimationLib); animationIdIterator.IsValid(); ++animationIdIterator) { //use animation AssetId: *animationIdIterator //or use animation name: provider->GetNameById(AnimationLib, *animationIdIterator, 0)} |
| AssetId |
Bitmap::SharedPointer bitmap= Base::GetAssetProvider()->GetBitmap("MyModule#Imports#Models#myBmp");
|
Assign a Symbol Name "myBmp" to the Bitmap Asset and export headers in SceneComposer as "MyAssets.h".
#include "MyAssets.h" Bitmap::SharedPointer bitmap = Base::GetAssetProvider()->GetBitmapById(CgiAssetNames::myBmp); |
| Animation namespace |
Candera::InterpolationStrategy* interpolationStrategy =
Candera::LinearInterpolationStrategy::Create();
|
Animation::InterpolationStrategy::SharedPointer interpolationStrategy =
Animation::LinearInterpolationStrategy::Create();
|
| New namespace CgiWidgetLibrary | no namespace required |
using namespace CgiWidgetLibrary; |
| 3D Shallow cloning with flat traversing |
Node* clone = node->Clone();or Node* clone = node->Clone(Node::Flat); |
Node* clone = node->Clone(); |
| 3D Shallow cloning with deep traversing |
Node* clone = node->Clone(Node::Deep); |
Node* clone = TreeCloner().CreateClone(*node); |
| 2D Shallow cloning with flat traversing |
Node2D* clone = node->Clone();or Node2D* clone = node->Clone(Node2D::Flat);or Node2D* clone = node->Clone(TraverseFlat, CloneShallow); |
Node2D* clone = node->Clone(); |
| Bitmap type/format changes |
UInt8* pixels = GetBitmapDataFromArbitrarySource(); //exemplary
Bitmap* bitmap = &Bitmap(128, 128,
Bitmap::RgbaFormat, Bitmap::UnsignedByteType,
Bitmap::PackAlignment1, pixels, 0,
true, true);
|
UInt8* pixels = GetBitmapDataFromArbitrarySource(); //exemplary
Bitmap* bitmap = &Bitmap(128, 128,
Bitmap::RgbaUnsignedBytePixelFormat,
Bitmap::PackAlignment1, pixels, 0,0,
true, true);
|
| GetBoudingRectangle with ExcludeFinalAdvance, ActualTransversalSize |
bound = textRenderer.GetBoudingRectangle(layoutingOptions, shapingOptions, textProperties,
MeasuringOptions(ExcludeFinalAdvance, ActualTransversalSize));
|
GlyphTextMeasureContext context; textRenderer.Render(context, layoutingOptions, shapingOptions, textProperties); bound = context.GetTextRectangle(); |
| GetBoudingRectangle with IncludeFinalAdvance, ActualTransversalSize |
bound = textRenderer.GetBoudingRectangle(layoutingOptions, shapingOptions, textProperties,
MeasuringOptions(IncludeFinalAdvance, ActualTransversalSize));
|
CursorTextMeasureContext cursorContext;
GlyphTextMeasureContext glyphContext;
glyphContext.SetNextContext(&cursorContext);
textRenderer.Render(glyphContext, layoutingOptions, shapingOptions, textProperties);
glyphBound = glyphContext.GetTextRectangle();
cursorBound = cursorContext.GetTextRectangle();
bound = Rectangle(
glyphBound.GetLeft(),
glyphBound.GetTop(),
Math::Maximum(
cursorBound.GetWidth() - glyphBound.GetLeft(),
glyphBound.GetWidth()),
glyphBound.GetHeight());
|
| GetBoudingRectangle with ExcludeFinalAdvance, ContantTransversalSize |
bound = textRenderer.GetBoudingRectangle(layoutingOptions, shapingOptions, textProperties,
MeasuringOptions(IncludeFinalAdvance, ContantTransversalSize));
|
CursorTextMeasureContext cursorContext;
GlyphTextMeasureContext glyphContext;
glyphContext.SetNextContext(&cursorContext);
textRenderer.Render(glyphContext, layoutingOptions, shapingOptions, textProperties);
glyphBound = glyphContext.GetTextRectangle();
cursorBound = cursorContext.GetTextRectangle();
bound = Rectangle(
glyphBound.GetLeft(),
cursorBound.GetTop(),
glyphBound.GetWidth()),
cursorBound.GetHeight());
|
| GetBoudingRectangle with IncludeFinalAdvance, ContantTransversalSize |
bound = textRenderer.GetBoudingRectangle(layoutingOptions, shapingOptions, textProperties,
MeasuringOptions(IncludeFinalAdvance, ContantTransversalSize));
|
CursorTextMeasureContext cursorContext;
GlyphTextMeasureContext glyphContext;
glyphContext.SetNextContext(&cursorContext);
textRenderer.Render(glyphContext, layoutingOptions, shapingOptions, textProperties);
glyphBound = glyphContext.GetTextRectangle();
cursorBound = cursorContext.GetTextRectangle();
bound = Rectangle(
glyphBound.GetLeft(),
cursorBound.GetTop(),
Math::Maximum(
cursorBound.GetWidth() - glyphBound.GetLeft(),
glyphBound.GetWidth()),
cursorBound.GetHeight());
|
Extended Interfaces
These changes extend existing interfaces by adding new functionality and do not require any adaptation of existing code. However, custom implementations may be replaced by these library functions.
| Description | Candera V2.10.0 |
Candera V3.0.0 |
|---|---|---|
| 3D Deep cloning with flat traversing | No previous support. |
Node* clone = node->Clone(); DeepNodeCloneStrategy cloneStrategy; DeepNodeCloneStrategy::Pair pair(node, clone); cloneStrategy.Execute(pair, pair); |
| 3D Deep cloning with deep traversing | No previous support. |
Node* clone = DeepTreeCloner().CreateClone(*node);or TreeCloner treeCloner; DeepNodeCloneStrategy cloneStrategy; treeCloner.SetNodeCloneStrategy(&cloneStrategy); Node* clone = treeCloner.CreateClone(*node); |
Header File Relocations
In CGI Studio 2.x, some functionality had been moved from Candera into FeatStd, keeping redirection macros and header files for backward compatibility. In CGI Studio 3.0.0, redirection code has been removed to a large extent. Following is an overview about macros and header files that will be removed.
Candera/System/Diagnostics Cleanup
To ensure backward compatibility, macros and files formerly located in Candera/System/Diagnostics can still be accessed in CGI-Studio V3.0.0 . Please be aware that this access will be removed with the next release.
Header files from Candera/Systems/Diagnostics which only represented redirections to files located in FeatStd should no longer be used.
Please use respective files in FeatStd/Diagnostics and the namespace Featstd::Diagnostics instead.
| Deprecated | Use instead |
|---|---|
| Candera/System/Diagnostics/Appender.h | FeatStd/Diagnostics/Appender.h |
| Candera/System/Diagnostics/CharBuffer.h | FeatStd/Diagnostics/CharBuffer.h |
| Candera/System/Diagnostics/ConsoleAppender.h | FeatStd/Diagnostics/ConsoleAppender.h |
| Candera/System/Diagnostics/Debug.h | FeatStd/Diagnostics/Debug.h |
| Candera/System/Diagnostics/DebuggerOutSystemMemoryStatistic.h | FeatStd/Diagnostics/DebuggerOutSystemMemoryStatistic.h |
| Candera/System/Diagnostics/ErrorHandling.h | FeatStd/Diagnostics/ErrorHandling.h |
| Candera/System/Diagnostics/FileAppender.h | FeatStd/Diagnostics/FileAppender.h |
| Candera/System/Diagnostics/LocationInfo.h | FeatStd/Diagnostics/LocationInfo.h |
| Candera/System/Diagnostics/LogControl.h | FeatStd/Diagnostics/Log.h |
| Candera/System/Diagnostics/LogEvent.h | FeatStd/Diagnostics/LogEvent.h |
| Candera/System/Diagnostics/Logger.h | FeatStd/Diagnostics/Logger.h |
| Candera/System/Diagnostics/LoggerTyped.h | FeatStd/Diagnostics/LoggerTyped.h |
| Candera/System/Diagnostics/LogLevel.h | FeatStd/Diagnostics/LogLevel.h |
| Candera/System/Diagnostics/Measurable.h | FeatStd/Diagnostics/Measurable.h |
| Candera/System/Diagnostics/SystemMemoryStatistic.h | FeatStd/Diagnostics/SystemMemoryStatistic.h |
Similarly, all macros contained in files located in Candera/System/Diagnostics which only served as redirection to macros located in FeatStd should not be used any more.
| Deprecated | Use instead |
|---|---|
| CANDERA_DEBUG_BREAK | FEATSTD_DEBUG_BREAK |
| CANDERA_DEBUG_ASSERT | FEATSTD_DEBUG_ASSERT |
| CANDERA_DEBUG_FAIL | FEATSTD_DEBUG_FAIL |
| CANDERA_DEBUG_REENTRANCE_GUARD | FEATSTD_DEBUG_REENTRANCE_GUARD |
| CANDERA_COMPILETIME_ASSERT | FEATSTD_COMPILETIME_ASSERT |
| CANDERA_UNUSED_PARAMETER | FEATSTD_UNUSED |
| CANDERA_PANIC | FEATSTD_PANIC |
| CANDERA_PANIC_IF | FEATSTD_PANIC_IF |
| CANDERA_LOG_FUNC | FEATSTD_LOG_FUNC |
| CANDERA_LOG_LOCATION | FEATSTD_LOG_LOCATION |
| CANDERA_LOG_SET_REALM | FEATSTD_LOG_SET_REALM |
| CANDERA_LOG_DEBUG | FEATSTD_LOG_DEBUG |
| CANDERA_LOG_INFO | FEATSTD_LOG_INFO |
| CANDERA_LOG_WARN | FEATSTD_LOG_WARN |
| CANDERA_LOG_ERROR | FEATSTD_LOG_ERROR |
| CANDERA_LOG_FATAL | FEATSTD_LOG_FATAL |
| CANDERA_LOG_REALM | FEATSTD_LOG_REALM |
| CANDERA_LOG | FEATSTD_LOG |
Migration Guide for Breaking Interface Changes
These changes are incompatible with earlier versions of Candera and will require immediate adaptation of existing code.
Interface Changes without Deprecations
| Description | Candera V2.10.0 | Candera V3.0.0 |
|---|---|---|
| Shared pointers in animation framework |
AnimationController* animController = AnimationController::Create(); AnimationTimeDispatcher* animDispatcher = AnimationTimeDispatcher::Create(); InterpolationStrategy* interpolationStrategy = SplineInterpolationStrategy::Create(); BackEaseFunction backEase; |
AnimationController::SharedPointer animController = AnimationController::Create(); AnimationTimeDispatcher::SharedPointer animDispatcher = AnimationTimeDispatcher::Create(); InterpolationStrategy::SharedPointer interpolationStrategy = SplineInterpolationStrategy::Create(); BackEaseFunction::SharedPointer backEase = BackEaseFunction::Create(); |
| Shared pointers and Create methods for animation property setters instead of constructors | e.g.
Candera::Transformable2DTranslateYPropertySetter transitionPS(); Candera::MaterialPropertySetter materialPS(); |
e.g. Candera::Transformable2DTranslateYPropertySetter::SharedPointer transitionPS = Transformable2DTranslateYPropertySetter::Create(); Candera::MaterialPropertySetter::SharedPointer materialPS = MaterialPropertySetter::Create(); |
| Shared pointer destruction |
Bitmap* bmp = CANDERA_NEW(...); CANDERA_DELETE(bmp); bmp = 0; |
SharedPointers may not be manually disposed, freed or deleted. Additionally SharedPointers cannot be set to NULL in the same way as pointers. According code has to be removed: Bitmap::SharedPointer bmp = Bitmap::Create(...); // no manual destruction // no need to set to zero / NULL |
| Bitmap as SharedPointer |
Bitmap bitmap(...); |
Bitmap::SharedPointer bitmap = Bitmap::Create(...); |
| BitmapTextureImage, CubeMapTextureImage, BitmapImage2D setters take SharedPointer to Bitmap and no disposer function |
BitmapTextureImage textureImage = BitmapTextureImage::Create(); Bitmap bitmap = CANDERA_NEW(Bitmap)(...); textureImage->SetBitmap(bitmap, 0); |
BitmapTextureImage textureImage = BitmapTextureImage::Create(); Bitmap::SharedPointer bitmap = Bitmap::Create(...); textureImage->SetBitmap(bitmap); |
Header File Relocations
In CGI Studio 2.x, some functionality had been moved from Candera into FeatStd, keeping redirection macros and header files for backward compatibility. In CGI Studio 3.0.0, redirection code has been removed to a large extent. Following is an overview about removed macros and header files.
CanderaPlatform/OS Cleanup
| Removed | Use instead |
|---|---|
| CanderaPlatform/OS/FixedPoint | FeatStd/Platform/FixedPoint |
| CanderaPlatform/OS/FractionNumberMath.h | FeatStd/Platform/FractionNumberMath.h |
| CanderaPlatform/OS/FractionNumber.h | FeatStd/Platform/FractionNumber.h |
| CanderaPlatform/OS/CodePointIterator.h | FeatStd/Platform/CodePointIterator.h |
Candera TimePlatform
| Removed | Use instead |
|---|---|
| Candera/Time.h |
CanderaPlatform/OS/TimePlatform.h
|
Candera/FeatStd Build System Changes
Library Changes
Candera base feature libraries have been joined into the new common library called Candera.lib. The following libraries from CGI-Studio V2.x no longer exist separately:
- CanderaEngineBase.lib
- CanderaEngine2D.lib
- CanderaEngine3D.lib
- CanderaGlobalization.lib
- CanderaSystem.lib
- CanderaOsWin32.lib
- CanderaWidget.lib
CMake Switch Name Modification
The names of almost all CMake switches used in CGI-Studio V2.x have been revised to improve effect and feature association. The feature name now reflects, to which component the feature belongs to.
Please be aware, that even though the CMake Switch names and preprocessor defines from CGI-Studio V2.x still work in CGI-Studio V3.0.0, this backward compatibility is going to be removed with the next release.
Candera CMake Switch Changes
- For detailed information on Candera configuration please see Application Development > Build System Setup > Building Candera.
- For Candera compiler defines refer to Candera Configuration.
| V2.10.0 | V3.0.0 |
|---|---|
| CGIFEATURE_ENABLE_CANDERA_2D | CANDERA_2D_ENABLED |
| CGIFEATURE_ENABLE_CANDERA_3D | CANDERA_3D_ENABLED |
| CGIFEATURE_VRAM_ALLOCATOR_CHECK | CANDERA_VRAM_ALLOCATOR_CHECK_ENABLED |
| CGIFEATURE_VRAM_ALLOCATOR_STATISTICS | CANDERA_VRAM_ALLOCATOR_STATISTICS_ENABLED |
| CGIFEATURE_ENABLE_RENDER_STATE_CACHING | CANDERA_RENDER_STATE_CACHING_ENABLED |
| CGIFEATURE_ENABLE_GLOBALIZATION | CANDERA_GLOBALIZATION_ENABLED |
| CGIFEATURE_ENABLE_ASSET_DECOMPRESSION | CANDERA_ASSET_DECOMPRESSION_ENABLED |
| CGIFEATURE_TEXTSHAPER | CANDERA_TEXT_SHAPER |
| CGIFEATURE_ENABLE_BIDIRECTIONAL_TEXT | CANDERA_BIDIRECTIONAL_TEXT_ENABLED |
| CGIFEATURE_ENABLE_MULTILINE_TEXT | CANDERA_MULTILINE_TEXT_ENABLED |
| CGIFEATURE_ENABLE_VIDEO_MEMORY_STATISTIC FEATSTD_ENABLE_VIDEO_MEMORY_STATISTIC |
CANDERA_VIDEO_MEMORY_STATISTIC_ENABLED |
| CGIUNITTEST_ENABLED | CANDERA_UNITTEST_ENABLED |
| CGIUNITTEST_INCLUDE_ISOLATED | CANDERA_UNITTEST_INCLUDE_ISOLATED |
| CGIDEVICE_ENABLE_4BIT_GLYPH_CACHE | CANDERA_4BIT_GLYPH_CACHE_ENABLED |
| CGIFEATURE_ENABLE_LOG | FEATSTD_LOG_ENABLED |
| CGIFEATURE_ENABLE_MEMORYPOOL | FEATSTD_MEMORYPOOL_ENABLED |
| CGIFEATURE_ENABLE_TEXTENGINE_MEMORYPOOL | CANDERA_TEXTENGINE_MEMORYPOOL_ENABLED |
| CGIFEATURE_ENABLE_ASSETLOADER_MEMORYPOOL | CANDERA_ASSETLOADER_MEMORYPOOL_ENABLED |
| CGIFEATURE_ENABLE_MEMORY_STATISTIC | FEATSTD_SYSTEM_MEMORY_STATISTIC_ENABLED |
| CGIFEATURE_SYSTEM_MEMORY_STATISTIC_FILE_AND_LINE_TRACKING | FEATSTD_SYSTEM_MEMORY_STATISTIC_FILE _AND_LINE_TRACKING_ENABLED |
| CGIFEATURE_FRACTIONAL_NUMBER_TYPE | FEATSTD_FRACTIONAL_NUMBER_TYPE |
| CGIFEATURE_ENABLE_MONITOR | FEATSTD_MONITOR_ENABLED |
| CGISTUDIO_BUILD_FREETYPE | Has been removed, Freetype will be included automatically. |
FeatStd CMake Switch Changes
- Refer to the FeatStd 3.0.0 CMake Changelog to learn about FeatStd V3.0.0 CMake switch modifications.
- For FeatStd compiler defines refer to FeatStd Configuration.
Regular Expression Search and Replace Patterns
The following Regular Expression Search & Replace patterns may be used to quickly apply changes to existing source code. They aim at fixing many (breaking) changes introduced with the new version of Candera. However, as simple text replacement with regular expressions is used, corrections which resulted from applying these patterns may be incorrect in some situations. Therefore, the patterns are just provided as-is in the hope that they may be useful for code migration.
To apply the patterns Notepad++ or any other compatible Regular Expression Search & Replace tool can be used. When using Notepad++ please make sure to select the search method "Regular expression" and check "Match case".
Patterns for Fixing Breaking Changes
| Use case | Search pattern | Replace pattern |
|---|---|---|
| Declarations of AnimationPlayer pointer |
(\\S*)SharedPointer<AnimationPlayer> |
AnimationPlayer::SharedPointer |
| Declarations of AnimationGroupPlayer pointer |
(\\S*)SharedPointer<AnimationGroupPlayer> |
AnimationGroupPlayer::SharedPointer |
| Declarations of AnimationTimeDispatcher pointer variables |
((\\W)|(const\\s+))(Candera::)?AnimationTimeDispatcher((\\s*)\\*)(\\s*?[\\w:]+)(\\s*?=\\s*?(NULL|0))? |
$2$4AnimationTimeDispatcher::SharedPointer$6$7 |
| Declarations of AnimationController pointer variables |
((\\W)|(const\\s+))(Candera::)?AnimationController((\\s*)\\*)(\\s*?[\\w:]+)(\\s*?=\\s*?(NULL|0))? |
$2$4AnimationController::SharedPointer$6$7 |
| Declarations of InterpolationStrategy pointer variables |
((\\W)|(const\\s+))(Candera::)?InterpolationStrategy ((\\s*)\\*)(\\s*?[\\w:]+)(\\s*?=\\s*?(NULL|0))? |
$2$4InterpolationStrategy::SharedPointer$6$7 |
| Calls to AnimationKeyframeSequence::SetInterpolationStrategy() |
SetInterpolationStrategy\\(\\s*?&?\\s*?([\\w:\\(\\)]+),.*?\\) |
SetInterpolationStrategy \\($1\\) |
| Calls to AnimationPlayer::SetController() |
SetController\\(\\s*?&?\\s*?([\\w:\\(\\)]+),.*?\\) |
SetController\\($1\\) |
| Declarations of Animation PropertySetter pointer variables |
((\\W)|(const\\s+))(Candera::)?(\\w*)PropertySetter((\\s*)\\*?)(\\s*?\\w+)(\\s*?=\\s*?(NULL|0))? |
$2$4$5PropertySetter::SharedPointer$7$8 |
| Creation of Animation PropertySetter objects |
(CANDERA_NEW|FEATSTD_NEW)(\\s*?\\(\\s*?)(Candera::)?([\\w:]*)PropertySetter(\\s*\\)) |
$3$4PropertySetter::Create\\(\\) |
| Calls to AnimationBlendedProperty::SetAnimationPropertySetter() |
SetAnimationPropertySetter\\(\\s*?&?\\s*?([\\w:\\(\\)]+)\\) |
SetAnimationPropertySetter\\($1\\) |
| Forward declarations of classes for pointer declarations which are now SharedPointer instances |
(namespace Candera.*\\{.*)([\\r\\n\\s\\w;]*)(class AnimationController;.*[\\r\\n])
|
#include <Candera/EngineBase/Animation/AnimationController.h>\\n\\n$1 |
| Forward declarations of classes for pointer declarations which are now SharedPointer instances |
(namespace Candera.*\\{.*)([\\r\\n\\s\\w;]*)(class AnimationTimeDispatcher;.*[\\r\\n])
|
#include <Candera/EngineBase/Animation/AnimationTimeDispatcher.h>\\n\\n$1 |
| Declarations of Bitmap pointer variables |
((\\W)|(const\\s+))(Candera::)?Bitmap((\\s*)\\*)(\\s*?\\w+)(\\s*?=\\s*?(NULL|0))? |
$2$4Bitmap::SharedPointer$6$7 |
| Forward declarations of classes for pointer declarations which are now SharedPointer instances. |
(namespace Candera.*\\{.*)([\\r\\n\\s\\w;]*)(class Bitmap;.*[\\r\\n])
|
#include <Candera/EngineBase/Common/Bitmap.h>\\n\\n$1 |
| Calls to e.g. BitmapImage2D::SetBitmap() |
SetBitmap\\(\\s*?&?\\s*?([\\w:\\(\\)]+),.*?\\) |
SetBitmap\\($1\\) |
| Calls to CubeMapTextureImage::SetBitmapFace() |
SetBitmapFace\\(\\s*?&?\\s*?([\\w:\\(\\)]+),(.*?),.*?\\) |
SetBitmapFace\\($1,$2\\) |
| Use CanderaPlatform/OS/TimePlatform.h instead of Candera/Time.h |
(#include <Candera\\/Time\\.h>) |
#include <CanderaPlatform\\/OS\\/TimePlatform\\.h> |
| Use CanderaPlatform/OS/TimePlatform.h instead of Candera/Time.h |
([\\s=\\n\\(<])Time:: |
$1TimePlatform:: |
| Use headers in FeatStd, that were previously located in CanderaPlatform/OS |
#include <CanderaPlatform\\/OS\\/Diagnostics\\/(FixedPoint(.*)|FractionNumberMath.h|FractionNumber.h|CodePointIterator.h)> |
#include <FeatStd\\/Platform\\/$1.h> |
Patterns for fixing backward compatible changes
| Use case | Search pattern | Replace pattern |
|---|---|---|
| Usage of EaseFunction qualifier |
([^(\\w|(Animation::)|\\/|(enum )|(class ))]|\\(|(Candera::)|\\s)((Back|Bounce|Elastic|Power|Exponential)EaseFunction) |
$1Animation::$3 |
| Usage of InterpolationStrategy qualifier |
([^(\\w|(Animation::)|\\/|(enum )|(class ))]|\\(|(Candera::)|\\s)((Bezier|Ease|Linear|Spline|Step)?InterpolationStrategy) |
$1Animation::$3 |
| Usage of Animation core classes qualifier |
([^(\\w|(Animation::)|\\/|(enum )|(class ))]|\\(|(Candera::)|SharedPointer<|\\s)(Animation(BlendedProperty|Controller|GroupPlayer|KeyframeSequence|Player|PlayerBase|PlayerListener|PropertySetter|TimeDispatcher|TimeType))(\\W) |
$1Animation::$3$5 |
| Usage of Animation core classes qualifier |
([^(\\w|(Animation::)|\\/|(enum )|(class ))]|\\(|(Candera::)|\\s)(AbstractEasingFunction|CameraGroupAnimationPropertySetter|KeyframeSequence|SequenceTimeType) |
$1Animation::$3 |
| New namespace CgiWidgetLibrary |
public\\s+(Listener)\\s*?< |
public CgiWidgetLibrary::$1< |
| Removed indirection from Candera to FeatStd for Logging |
CANDERA_DEBUG_(\\w*)\\( |
FEATSTD_DEBUG_$1\\( |
| Removed indirection from Candera to FeatStd for Logging |
CANDERA_LOG(\\w*)\\( |
FEATSTD_LOG$1\\( |
| Removed indirection from Candera to FeatStd for Logging |
([^:\\/\\w]|\\s)(Log(Control|Level)) |
$1FeatStd::Diagnostics::$2 |
| Removed indirection from Candera to FeatStd |
CANDERA_PANIC(\\w*)\\( |
FEATSTD_PANIC$1\\( |
| Removed indirection from Candera to FeatStd |
CANDERA_COMPILETIME_ASSERT |
FEATSTD_COMPILETIME_ASSERT |
| Removed indirection from Candera to FeatStd |
CANDERA_UNUSED_PARAMETER |
FEATSTD_UNUSED |
| Removed indirection from Candera to FeatStd |
#include <Candera\\/Systems\\/Diagnostics\\/(Appender|CharBuffer|ConsoleAppender|Debug|DebuggerOutSystemmemoryStatistic|ErrorHandling|FileAppender|LocationInfo|Measurable|SystemMemoryStatistic|Log(ger(Typed)?|Event|Level|))(.h|Control.h)> |
#include <FeatStd\\/Diagnostics\\/$1.h> |
| Removed indirection from Candera to FeatStd |
#include <FeatStd\\/Diagnostics\\/LogRealm.h> |
#include <FeatStd\\/Diagnostics\\/Log.h> |