.. |supported| image:: /_assets/images/green_circle.png
.. |na| image:: /_assets/images/grey_circle.png
.. |unsupported| image:: /_assets/images/red_circle.png
.. |partialsupport| image:: /_assets/images/gray_green_circle.png

###############
HOOPS 3DF 31.00 
###############


Overview
========
HOOPS Visualize 3DF 31.00 is a stability‑focused release that delivers a set of important robustness improvements, crash fixes, and platform/tooling corrections. This version strengthens the handling of corrupt HSF data, improves rendering behavior in several edge cases, and resolves multiple regressions discovered in 30.x, especially around .NET packaging and OpenGL deployment.

This release also continues our ongoing work to modernize the 3DF toolchain and test infrastructure, helping ensure a more reliable pipeline for future Visualize releases.


Technology Update
=================

Platform Changes
----------------

  * As previously announced in 3DF 29.40, support for OpenGL on macOS and iOS ends with the 3DF 31.x line. Action for partners: migrate macOS/iOS deployments to Metal drivers to ensure ongoing support.
  * Platform Deprecation Announcement: Support for Visual Studio 2019 (toolchain 14.2) and .Net Framework 4.8 will be discontinued in 3DF 31.40. Continued support for this platform will only be available in 3DF 30-LTS beyond December 2026.


Library Compatibility Information
=================================

.. only:: not spatial

	.. csv-table::
		:header: "Library Name", "Version", "Windows", "Linux", "OS X", "Notes"

		"DGN Direct", "4.2", |supported|, |unsupported|, |unsupported|, ""
		"HOOPS Communicator", "2025.4.0", |supported|, |unsupported|, |unsupported|, "HTML HIO only works with Visual Studio v142."
		"HOOPS Exchange", "2026.1.0", |supported|, |supported|, |unsupported|, ""
		"HOOPS Luminate", "2025.3.0", |supported|, |supported|, |supported|, ""
		".NET Framework", "4.8", |supported|, |unsupported|, |unsupported|, "Required for VS 2019 libraries and samples."
		".NET Standard", "2.0", |supported|, |unsupported|, |unsupported|, "Required for VS 2019 and 2022 libraries."
		".NET Core", "8.0", |supported|, |unsupported|, |unsupported|, "Required for VS 2022 samples."
		"Parasolid", "35.1", |supported|, |supported|, |unsupported|, ""
		"Qt", "6.5.3", |supported|, |unsupported|, |unsupported|, ""
		"Qt", "5.12.7", |unsupported|, |supported|, |unsupported|, "Visualize is compatible with Qt 5.4 only on OSX "
		"RealDWG", "2023", |supported|, |unsupported|, |unsupported|, "RealDWG 2023 is only compatible with Visual Studio 2019 (v142 toolchain) "
		"RealDWG", "2025", |supported|, |unsupported|, |unsupported|, "RealDWG 2025 is only compatible with Visual Studio 2022 (v143 toolchain) "
		"SketchUp", "2023", |supported|, |unsupported|, |unsupported|, "64-bit Windows only. Requires Visual Studio 2019 Redistributable."

.. only:: spatial

	.. csv-table::
		:header: "Library Name", "Version", "Windows", "Linux", "OS X", "Notes"

		"DGN Direct", "4.2", |supported|, |unsupported|, |unsupported|, ""
        ".NET Framework", "4.8", |supported|, |unsupported|, |unsupported|, "Required for VS 2019 libraries and samples."
		".NET Standard", "2.0", |supported|, |unsupported|, |unsupported|, "Required for VS 2019 and 2022 libraries."
		".NET Core", "8.0", |supported|, |unsupported|, |unsupported|, "Required for VS 2022 samples."
		"Qt", "6.5.3", |supported|, |unsupported|, |unsupported|, ""
		"Qt", "5.12.7", |unsupported|, |supported|, |unsupported|, "Visualize is compatible with Qt 5.4 only on OSX "
		"RealDWG", "2023", |supported|, |unsupported|, |unsupported|, "RealDWG 2023 is only compatible with Visual Studio 2019 (v142 toolchain) "
		"RealDWG", "2025", |supported|, |unsupported|, |unsupported|, "RealDWG 2025 is only compatible with Visual Studio 2022 (v143 toolchain) "


Enhancements
============

  * 3DF now supports setting and retrieving font names that contain non‑ASCII characters. This improves internationalization and allows applications to use localized font names more reliably in their Visualize integrations.
  * Internal handling of enum values in opcode processing has been tightened to ensure only valid values are accepted. This reduces the risk of undefined behavior or crashes when encountering invalid or unexpected data.


Functional Changes
==================

  * Multiple crashes triggered by corrupted or intentionally malformed HSF files have been addressed. 3DF now fails gracefully when encountering these invalid inputs rather than crashing, improving robustness and security posture when handling untrusted or damaged data.
  * Fixed an issue where HC_Compute_Text_Extent_By_Path could fail if a local window lay outside of its outer window. Text extent computation is now robust to this configuration, improving reliability for advanced windowing setups and custom GUI layouts.
  * Restored the hopengl32.dll library that had been missing since 30.40, resolving failures in workflows or deployments that depended on this DLL being present.


Fixed Bugs
==========

.. csv-table::
    :header: "Issue", "Description"

    "SDHV-21478", "Strong signing added back."
    "SDHV-21444", "Strong signing added back."
    "SDHV-21422", "Prevented AA activation with sample equal to one after having downscale it."
    "SDHV-21411", "Fix static tree color setting management."
    "SDHV-21410", "Improved text extent computation."
    "SDHV-21389", "Fixed HOOPS stream issues and vulnerabilities."
    "SDHV-21388", "Fixed HOOPS stream issues and vulnerabilities."
    "SDHV-21387", "Fixed HOOPS stream issues and vulnerabilities."
    "SDHV-21345", "Fixed HOOPS stream issues and vulnerabilities."
    "SDHV-21344", "Fixed HOOPS stream issues and vulnerabilities."