.. include:: <xhtml1-special.txt>

.. role:: raw-html(raw)
    :format: html

===================
Supported platforms
===================
   
.. csv-table::
	:header: "Platform", "Architecture", "Minimum Supported OS", "Required Compiler"
	
	"Windows", "x64", "Windows 10", "Visual Studio 2015 Update 3 or Visual Studio 2017"
	"Linux", "x64", "CentOS 7 / Red Hat Enterprise Linux 7 (glibc 2.17)", "devtoolset 8 / gcc/g++ 8.2.3"
	"OS X :raw-html:`<sup>&dagger;</sup>`", "x64, ARM", "macOS X 10.14", "Xcode 12.2 (LLVM)"

:raw-html:`<p style="font-size:small;"><sup>&dagger;</sup>&nbsp;Java is not supported on OS X.`


HOOPS Visualize on macOS
========================

For users targeting macOS, please be aware of special requirements when creating and managing windows. Specifically, window creation must occur on the main thread. Additionally, after the window is resized, the application must make an update on the main thread. Typically this will happen in the ``NSView::drawRect`` method.

If you do not manage your windows this way, it could lead to undefined behavior!


Using HOOPS Visualize on a virtual machine
==========================================

The above operating systems are thoroughly tested and officially supported when installed on bare metal, and Developer Support will attempt to reproduce and troubleshoot HOOPS Visualize problems that you may encounter when using a bare metal configuration. We recognize that developers and end-users may wish to utilize an operating system as a virtual machine (VM), but as there are several dozen VM products, we cannot provide official testing and support for VMs. HOOPS Visualize can function on a VM, but the behavior depends on how the following conditions are met:

	#. The VM operating system must meet the HOOPS Visualize system requirements, which includes `fully compliant OpenGL or Direct3D runtime support <http://developer.techsoft3d.com/hoops/hoops-visualize/graphics-cards/>`_. To verify that a VM operating system is set up to run one (or both) of those interfaces, you should utilize one of the 3D configuration tools included with the operating system. The glxinfo utility validates that OpenGL is set up on Linux systems, and the *DxDiag.exe* utility validates that DirectX is set up on Windows. In order to validate the OpenGL set up on Windows, you could utilize a 3rd party or open source utility such as GLMark.

	#. The VM vendor must provide a compliant and stable VM implementation of the operating system and 3D APIs. Note that 3D performance, stability, and functionality may vary greatly depending on the VM product being used. For example, additional VM modules may be required for 3D support, the VM vendor may support a limited range of GPUs, OpenGL/Direct3D support may be emulated in software, etc...

Please consult your VM documentation or vendor for details about how to meet the HOOPS Visualize system requirements and address any VM performance or functionality limitations. Tech Soft 3D does not provide technical support for VM-specific problems which are not reproducible on a bare metal installation.
    