Documentation

    Table of Content
    • CodePorting.Native Product Family
      • CodePorting.Native Cs2Cpp
        • Getting Started
          • Product Overview
          • Installation
          • Licensing
          • How to use CodePorting.Native Cs2Cpp
            • How to Use Command line to port and build Projects
            • How to Use GUI to port and build Projects
        • Developer Guide
          • Porting Simple C# Projects
            • Porting Simple Console Application
            • Porting Simple Library
            • Porting Simple NUnit Test
          • Porting Dependent C# Projects
            • Porting Dependent Console Application
            • Porting Dependent Library
            • Porting Dependent NUnit Test
          • Porting Complex C# Projects
            • How to Convert Complex C# Console Application to C++
            • How to Convert Complex C# Library to C++
            • How to Convert Complex C# NUnit Test to C++
          • What Converts to What
            • Abstract Classes
            • Auto Properties
            • Break Statements
            • Class Constructors
            • Continue Statements
            • Delegates
            • Do While Statemetns
            • Enums TypeCast
            • Enums
            • Events
            • Exceptions
            • Expected Exceptions
            • Finalizers
            • For Statements
            • ForEach Statements
            • Generic Classes
            • Generic Delegates
            • Generic Interfaces
            • Generic Methods
            • Generic Structs
            • If Statements
            • Indexers
            • Lambda Expressions
            • Methods
            • Nested Classes
            • Properties
            • Return Statements
            • Simple Class
            • Simple Interface
            • Simple Struct
            • Simple Test
            • Standard TypeCast
            • Static Class
            • Static Constructor
            • Static-Methods
            • Static Properties
            • Switch Statements
            • Test with Setup Methods
            • Throw Statements
            • Try Catch Finally Statements
            • Try Catch Statements
            • Try Finally Statements
            • Var Expressions
            • Virtual Methods
            • While Statements
          • CodePorting Native Cs2Cpp Attributes
          • CodePorting Native Cs2Cpp Configuration File
            • CodePorting.Native Cs2Cpp Configuration File Structure
            • Attributes in Configuration file
            • Configuration file Nodes
            • Configuration file Options
          • Memory Management Model
            • Using aliasing constructor to create a smart pointer
          • Cmake Support
          • Limitations and Bugs
            • Porter Limitations and Bugs
            • Library Limitations and Bugs
            • Cpp Code Injection
        • Release Notes
          • 2021
            • CodePorting.Native Cs2Cpp 21.4
            • CodePorting.Native Cs2Cpp 21.3
            • CodePorting.Native Cs2Cpp 21.2
            • CodePorting.Native Cs2Cpp 21.1
          • 2020
            • CodePorting.Native Cs2Cpp 20.12
            • CodePorting.Native Cs2Cpp 20.11
            • CodePorting.Native Cs2Cpp 20.10
            • CodePorting.Native Cs2Cpp 20.9
            • CodePorting.Native Cs2Cpp 20.8
            • CodePorting.Native Cs2Cpp 20.7
            • CodePorting.Native Cs2Cpp 20.6
            • CodePorting.Native Cs2Cpp 20.5
            • CodePorting.Native Cs2Cpp 20.4
            • CodePorting.Native Cs2Cpp 20.3
            • CodePorting.Native Cs2Cpp 20.2
            • CodePorting.Native Cs2Cpp 20.1
          • 2019
            • CodePorting.Native Cs2Cpp 19.1
            • CodePorting.Native Cs2Cpp 19.2
            • CodePorting.Native Cs2Cpp 19.3
            • CodePorting.Native Cs2Cpp 19.4
            • CodePorting.Native Cs2Cpp 19.4.1
            • CodePorting.Native Cs2Cpp 19.5
            • CodePorting.Native Cs2Cpp 19.6
            • CodePorting.Native Cs2Cpp 19.7
            • CodePorting.Native Cs2Cpp 19.8
            • CodePorting.Native Cs2Cpp 19.9
            • CodePorting.Native Cs2Cpp 19.10
            • CodePorting.Native Cs2Cpp 19.11
            • CodePorting.Native Cs2Cpp 19.12
          • 2018
            • CodePorting.Native Cs2Cpp 18.9
            • CodePorting.Native Cs2Cpp 18.9.1
            • CodePorting.Native Cs2Cpp 18.10
            • CodePorting.Native Cs2Cpp 18.11
            • CodePorting.Native Cs2Cpp 18.12
    1. Home
    2. CodePorting.Native Product Family
    3. CodePorting.Native Cs2Cpp
    4. Release Notes
    5. 2020
    6. CodePorting.Native Cs2Cpp 20.6

    CodePorting.Native Cs2Cpp 20.6

    What's on this Page

      • Major Features
      • Minor fixes
      • Full List of Issues Covering all Changes in this Release
      • Public API and Backward Incompatible Changes

    Major Features

    1. The graphic subsystem was reworked significantly. Many rendering bugs were fixed. Image manipulation results are now closer to such in .Net.
    2. The Skia version used was updated.
    3. More LINQ methods were supported in ported code. This includes Select, OfType, Cast, Contains, Last, LastOrDefault. FirstOrDefault and First methods were fixed.

    Minor fixes

    1. Boundry checks for System::String::SubString() are now consistent with .Net behavior.
    2. Streams and enumerable objects comparison in ported tests is now being done the same way as in NUnit.
    3. Retrieval of 64-bit long file sizes was fixed.
    4. System::String::LastIndexOf() now supports invariant culture.
    5. Exceptions being thrown by the methods of System::String is now consistent with such in .Net.
    6. Signatures of System::String::StartsWith() and System::String::EndsWith() methods were put in line with .Net implementations.
    7. Performance of System::IO::Path::HasInvalidChars() method was slightly improved.
    8. Porter was fixed to work properly with command-line arguments with spaces in them.
    9. ‘for_each_member_short_names’ option was supported by porter. By default, porter now generates for_each_member-related information with long names instead of short ones.
    10. has_operator_equal predicate was fixed to compile OK with GCC.
    11. LittleCMS dependency was dropped.
    12. The translation of the ‘string + Nullable’ operator was fixed.
    13. A potential unreported error issue with XmlTextReader was fixed.
    14. Behavior of CompareInfo::Compare(const String& a, const String& b, CompareOptions options) was fixed for some combinations of parameters.
    15. Some improvements were made to Doxygen comments.
    16. ‘Unbox to nullable’ behavior was fixed to behave in line with .Net implementation.
    17. Assertion ported code for fixed for some cases involving nullable types and/or enums.
    18. References to arithmetic types were fixed in Doxygen documentation produced by the porter.
    19. XmlTextWriter no longer produces an error if the underlying stream was disposed of.
    20. Equals() call was fixed for Nullable types.
    21. Porter now processes documentation for public fields.
    22. The behavior of the ‘nunit_categories’ configuration file node was extended, making it possible to include all categories that are not excluded explicitly.
    23. ‘emit’ method of MulticastDelegate class was renamed to ‘invoke’ to avoid issues when compiling the code in the Qt environment.
    24. A compiler warning was fixed coming from System::List’s IndexOf(T, int) method.
    25. Documentation for System::Boolean type was fixed.
    26. Func class is now capable of holding null-reference.

    Please consult the respective sections of our wiki for more information.

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    EMAILCPP-218Fix nullptr cast to NullableBug
    SLIDESCPP-1873Rework Drawing::Pen without using SkLayerRasterizerTask
    SLIDESCPP-1874Build asposecpplib using an updated Skia libraryTask
    SLIDESCPP-1892Integrate Skia patches for CMakeTask
    SLIDESCPP-1894Implement dash caps drawing via SkPathEffectTask
    SLIDESCPP-1896Fix errors when compiling fontsTask
    SLIDESCPP-1897Fix errors when compiling brushesTask
    SLIDESCPP-1901Fix a wrong drawing the custom line capBug
    SLIDESCPP-1910Adjust build scripts for using Skia with aspose-cpp-libsTask
    SLIDESCPP-1913Fix incorrect line fillingBug
    SLIDESCPP-1924Fix DashCap drawing for solid dash style linesBug
    SLIDESCPP-1930Fix tests asposecpplib with ClangBug
    SLIDESCPP-1931Fix a wrong scale for line capBug
    SLIDESCPP-1935Check color blending when using the reworked Drawing::Pen class.Task
    SLIDESCPP-1939Fix errors when compile Drawing::ImageTask
    SLIDESCPP-1943Fix errors when compiling asposecpplibTask
    SLIDESCPP-1945Rework simple places in commented codeTask
    SLIDESCPP-1946Fix a text drawingTask
    SLIDESCPP-1947Rework a use of the color paletteTask
    SLIDESCPP-1948Rework a use of the SkClipStack in the Drawing::GraphicsTask
    SLIDESCPP-1949Rework a use of the SkTextBox in the Drawing::GraphicsTask
    SLIDESCPP-1959Rework Drawing::TextureBrush for WrapMode::ClampTask
    SLIDESCPP-1960Rework PathGradientBrush::ApplyPathGradientTask
    SLIDESCPP-1961Rework GraphicsPath::AddStringImplTask
    SLIDESCPP-1975Fix GraphicsTest.DrawStringLayoutTest_05 testBug
    SLIDESCPP-1976Fix GraphicsTest.DrawStringLayoutTest_06 testBug
    SLIDESCPP-1981Add UTF16 support to the new SkShaperTask
    SLIDESCPP-1982Move the functionality from the old SkShaper to the new oneTask
    SLIDESCPP-1983Fix memory leak in Drawing::GraphicsBug
    SLIDESCPP-1985Fix LinearGradientBrushTest.GammaCorrectionTestBug
    SLIDESCPP-1986Fix PenTest.CompoundArrayTest1Bug
    SLIDESCPP-1987Fix PenTest.DashCapTest_01_FlatBug
    SLIDESCPP-1988Fix BGRA color tests for tiff formatBug
    SLIDESCPP-1989Fix Pen tests WidthTest_01 and WidthTest_02Bug
    SLIDESCPP-1990Fix GifSupportTest.ConvertTest_BGRA_8888Bug
    SLIDESCPP-1991Fix GraphicsTest.AntiAliasingTest_01Bug
    SLIDESCPP-1992Fix BitmapTest.RotateFlipTestBug
    SLIDESCPP-1994Fix tests when load jpeg with CMYK color schemeBug
    SLIDESCPP-1999Fix TextRenderingHint settings usage when rendering textBug
    SLIDESCPP-2000Fix glyphs positioning in GraphicsPath::AddString callsBug
    SLIDESCPP-2002Merge two implementations of Graphics::DrawString methods into oneTask
    SLIDESCPP-2007Fix glyphs positioning in Graphics::DrawString callsBug
    SLIDESCPP-2022Implement conversion using a color profile in SkTiffCodecTask
    SLIDESCPP-2040Fix GraphicsTest.MeasureDrawString_01 testBug
    SLIDESCPP-2049Fix GifSupportTest.ConvertTest_Index_8 testBug
    SLIDESCPP-2050Fix GifSupportTest.ConvertTest_Index_8_4bit testBug
    SLIDESCPP-2057Fix pixel format definition in Drawing::BitmapTask
    SLIDESCPP-2066Build asposecpplib under LinuxTask
    SLIDESCPP-2069Fix a palette loss after calling Bitmap::RotateFlipBug
    SLIDESCPP-2078Fix GraphicsTest.MeasureStringTest_10 testBug
    SLIDESCPP-2079Fix DrawStringTests.Test_11 testBug
    SLIDESCPP-2080Fix TiffSupportTest.ColorfullTest_cmyk test that failed on LinuxBug
    SLIDESCPP-2084Fix DrawStringTests.Test_08 testBug
    SLIDESCPP-2085Fix DrawStringTests.Test_13 testBug
    SLIDESCPP-2126Update implementation of Bitmap::LockBits/UnlockBits for new SkiaTask
    SLIDESCPP-2127Update implementation of Graphics::MeasureCharacterRanges for new SkiaTask
    SLIDESCPP-2134Fix GraphicsTest.MeasureStringTest_07 testBug
    SLIDESCPP-2139Analyze Aspose.Slides for C++ errors built with new SkiaTask
    SLIDESCPP-2144Fix GifSupportTest.LoadTest1BppGif testBug
    SLIDESCPP-2145Fix BitmapTest.LockBitsWithPixeFormat testBug
    SLIDESCPP-2146Fix TextureBrushTests.AlphaChannelTest testBug
    SLIDESCPP-2151Check currently disabled graphics tests with the new SkiaTask
    SLIDESCPP-2180Fix symbolic fonts rendering in LinuxBug
    SLIDESCPP-2184Configure parameters saving images in PNG formatTask
    SLIDESCPP-2192Analyze errors in the Aspose.Slides for C++ built with the new Skia (v20.1)Task
    SLIDESCPP-2222Fix RegressionTests_v19_8.SLIDESNET_35683 testBug
    SLIDESCPP-2224Fix the calculation of System::Drawing::Font heightBug
    SLIDESCPP-2225Fix RegressionTests_v19_2.SLIDESNET_40624 testBug
    SLIDESCPP-2230Fix ArgumentException thrown from the Bitmap constructorBug
    SLIDESCPP-2242Fix text drawing in test RegressionTests_v18_2.SLIDESNET_39697Bug
    SLIDESCPP-2243Fix background drawing in test RegressionTests_v19_2.SLIDESNET_34567Bug
    SLIDESCPP-2256Fix test BitmapTest.ImageWithErrorInDataFormat_Png in LinuxBug
    SLIDESCPP-2270Fix text rendering issues in SLIDESJAVA_33709 testBug
    SLIDESCPP-2276Fix incorrect text clippingBug
    SLIDESCPP-2277Incorrect line spacingBug
    SLIDESCPP-2286Fix SEH exception in Bitmap::set_PaletteBug
    SLIDESCPP-2291Fix an issue with saving PNGBug
    SLIDESCPP-2320Сlean code as a result of code reviewTask
    SLIDESCPP-2321Remove lcms2 dependencyBug
    SLIDESCPP-2322Fix failed graphics tests on the branch with new Skia in LinuxBug
    SLIDESCPP-2326Move the Tiff changes(dpi, compression, pixel format) to new SkiaTask
    SLIDESCPP-2381Fix performance of the System::Drawing::Region::IsVisible methodImprovement
    SLIDESCPP-2388Fix an issue with saving 8bpp tiff imageBug
    SLIDESCPP-2434Incorrect font in a chartBug
    TASKSCPP-1409Improve nullable +/- ops to avoid “sting + nullable” ambiguityBug
    CSPORTCPP-3315Check releaseTask
    SLIDESCPP-2385Disable failed functional for test FormulaTests_Common.ComparisonOperatorTestBug
    TASKSCPP-1414Implement equality assertions for IEnumerable instances.Task
    SLIDESCPP-2416Fix references to POD types in the generated documentationBug
    PDFCPP-1297Generate examples for converting pdf to/from tex, xslfo, etc.Task
    SLIDESCPP-2103Porter: Implement documentation comments translation for public fieldsTask
    SLIDESCPP-2423Porter: Make an option to include all non-excluded test categoriesTask
    TASKSCPP-1415Fix a C++ compiler warning on System::List’s IndexOf(T, int) method call (casting int64 to int)Task
    CSPORTCPP-3331Fix error 404 for System::Boolean documentationBug
    WORDSCPP-969Implement IEnumerable extension methodsTask

    Public API and Backward Incompatible Changes

    1. Multiple changes were made to rendering results and graphics API.
    2. ZipEntry::GetCompressedBytes() method was supported.
    3. An overload of MemberInfo::GetCustomAttributes(bool) was supported.
    4. StringBuilder::set_Capacity() was implemented.
    5. A stub was added for XmlNode::Normalize().
    6. A default constructor was added into System::Func class.