0033370: Foundation Classes - Moving into STL and Boost functionality NCollection containers update: - NCollection_Array1 - updated functionality - NCollection_Array2 - NCollection_Array1 as a wrapper for 2array - NCollection_Vector -> NCollection_DynamicArray was renamed and reworked. TCollection: - Use static empty string to avoid allocations on empty string NCollection allocators update: - NCollection_Allocator - allocator that used Standard::Allocate - NCollection_OccAllocator - allocator-wrapper that used OCC BaseAllocator objects - NCollection_IncAllocator - rework to increase performance Standard: - Rework functionality to use different allocation libs - Implement basic of new way to wrap allocations tools - Define 4 ways to allocation (defines in configure stage) Additional changes: - Hash function uses std::hash functionality - size_t as a hash value - New HashUtils with Murmur and FVN hash algo for x32 and x64 - Deprecated _0.cxx and .gxx DE classes reorganized - Create own utility for std memory - Update Standard_Transient to be more platform-independent Math TK changes: - math_Vector -> match_BaseVector<> - Buffer decreased to cash 32 elements instead of 512
0032862: Visualization, Graphic3d_TextureMap - add 3D texture definition Image_PixMap has been extended to support definition of 3D bitmap (as an array of 2D slices). Graphic3d_TypeOfTexture enumeration values have been renamed to include full enum prefix. Added Graphic3d_TypeOfTexture_3D redirecting to GL_TEXTURE_3D. OpenGl_Texture::Init() has been extended to allow initialization of 3D texture. Graphic3d_Texture2Dmanual merged into Graphic3d_Texture2D and marked as deprecated alias. Graphic3d_TOT_2D_MIPMAP has been deprecated in favor of dedicated Graphic3d_TextureRoot::SetMipMaps(). Added Graphic3d_Texture3D class. vtexture - added argument -3d for uploading 3D texture.
0032841: Visualization - add 16-bit grayscale pixel format to Image_PixMap Added Image_Format_Gray16 pixel format definition, which could be uploaded into GL_R16 texture. Added Image_Format_GrayF_half mapped to GL_R16F texture.
0032352: Coding Rules - clean up code from compatibility hacks with pre-C++11 compilers Removed usage of std::auto_ptr. opencascade::std workarounds for VS2008 have been dropped, when possible. OCCT_NO_RVALUE_REFERENCE workaround for VS2008 has been removed.
0024975: Improve of preprocessor directives in header files to be equal to the file name Preprocessor directives were changed or created by function "check_headers" from script adm/upgrade.tcl (CR24816)
0032114: Visualization, TKOpenGl - broken PBR LUT on OpenGL ES 2.0 Added image formats Image_Format_RGF_half/Image_Format_RGBAF_half with manual conversion between 32-bit float and 16-bit half-float values. PBR LUT table is now converted into GL_HALF_FLOAT_OES data format in case of OpenGL ES 2.0.
0032093: Visualization, TKOpenGl - loading texture in BGR format fails in OpenGL ES Graphic3d_TextureRoot::convertToCompatible() - fixed handling of Image_Format_BGR and Image_Format_BGRA formats. OpenGl_Texture - added error message for unsupported pixel format; error messages have been extended by resource id. OpenGl_Texture::InitCubeMap() now does not release cubemap on mipmaps generation failure. Image_PixMap::ImageFormatToString() - added method returning name of pixel format.
0032056: Coding Rules - remove package MMgt and other types deprecated since OCCT 7.2.0 Removed functionality deprecated since OCCT 7.1.0: - 0027834 built-in iterator in class SelectMgr_ViewerSelector; - 0027900 obsolete constructor of V3d_Viewer class; - 0027816 obsolete clipping plane setters V3d_View/PrsMgr_PresentableObject:SetClipPlanes(); - 0027860 obsolete transformation persistence methods from class PrsMgr_PresentableObject; - 0027756 obsolete methods Prs3d_Text::Draw(); - 0024393 obsolete enum Graphic3d_ZLayerSetting; - 0025180 obsolete method Graphic3d_Structure::Transform(). Removed functionality deprecated since OCCT 7.2.0: - 0028832 obsolete class MMgt_TShared; - 0026937 obsolete property Standard_Failure::Caught(); - 0028799 obsolete types defined within Quantity package; - 0028441 obsolete nested enum Image_PixMap::ImgFormat; - 0025695 obsolete method PrsMgr_PresentationManager::Unhighlight(); - 0028205 obsolete class MeshVS_ColorHasher; - 0027958 obsolete methods from Prs3d_DatumAspect class; - 0025695 obsolete class Graphic3d_HighlightStyle; - 0027954 obsolete BRepOffsetAPI_MakeOffsetShape,BRepOffsetAPI_MakeThickSolid constructors.
0031703: Data Exchange, RWGltf_CafWriter - add option putting textures inside GLB file as alternative to external references RWGltf_CafWriter::ToEmbedTexturesInGlb() - added option embedding textures into GLB file enabled by default. Fixed uninitialized class field RWGltf_CafWriter::myIsForcedUVExport. Image_Texture::MimeType() - added method returning MIME type based on image file format. Image_Texture::WriteImage() - added method writing image into stream.
0031705: Visualization - move out construction of predefined markers from OpenGl_AspectsSprite to Graphic3d_MarkerImage Built-in markers definition has been moved from OpenGl_AspectsSprite to Graphic3d_MarkerImage and generalized. RGBA8 pixel format is now preferred over BGRA8. Fallback OpenGL 1.1 rendering code now supports drawing of colored markers using glDrawPixels(). Added function Image_PixMap::FlipY() flipping image rows.
0031478: Visualization, TKOpenGl - allow uploading Cubemap in compressed DDS format when supported by GPU Graphic3d_TextureRoot::GetCompressedImage() - added new interface for fetching compressed texture image. Default implementation detects DDS image files using Image_DDSParser parser. Graphic3d_TextureRoot::GetImage() has been extended with new parameter - the list of image formats supported by OpenGL driver. Graphic3d_TextureRoot::convertToCompatible() implicitly converts BGRA image to RGBA on OpenGL ES, which normally does not support BGR formats. OpenGl_Caps::isTopDownTextureUV - new property defines how application defines UV texture coordinates in primitive arrays. OpenGl_Context::SetTextureMatrix() compares this flag with OpenGl_Texture::IsTopDown() and automatically flips V coordinate in case of mismatch. OpenGl_Texture now holds exact number of mipmap levels instead of Boolean flag indicating that they are defined. This allows loading DDS files with incomplete mipmap level set by setting GL_TEXTURE_MAX_LEVEL to appropriate value instead of default 1000 (causing black textures in case if mipmap levels are not defined till 1x1). Fixed order of texture coordinates transformation within GLSL program to match FFP matrix: Rotate -> Translate -> Scale (previously Rotation was applied afterwards).
0031501: Foundation Classes, Message_Printer - remove theToPutEndl argument -- use shortcuts Message::DefaultMessenger()->Send() have been replaced by shortcuts Message::Send().
0031313: Foundation Classes - Dump improvement for classes - Provide DumpJson for geometrical, ocaf and visualization classes; - Change depth parameter of DumpJson (constant is not obligate here) - Introduce a new macro for transient objects to be called as the first row in DumpJson: OCCT_DUMP_TRANSIENT_CLASS_BEGIN. We need not put the class name in the macro, using get_type_name of Standard_Transient for it. - change implementation of OCCT_DUMP_CLASS_BEGIN and OCCT_DUMP_TRANSIENT_CLASS_BEGIN. It is not an sentry more and it does not create a new hierarchy level. It appends a new row into the output stream: "className": <className> - OCCT_DUMP_* does not require semicolon - class header is included first in source files of TDataStd, TDocStd, TCAFDoc