Afterwarp Framework v3.5.1, dated April 15, 2025
Copyright (c) 2015 - 2025 Dr. Yuriy Kotsarenko

          http://afterwarp.io
-------------------------------------------------------------------------------------------------------------

This distribution includes framework binaries, header and library files, examples and documentation,
fully supporting C/C++, C# (.NET), Delphi and FreePascal/Lazarus.

The framework does not require any special installation steps, just make sure to extract the SDK into
some folder preserving sub-folder structure. However, to use the framework, please make sure to copy
the appropriate framework binary (e.g. "Afterwarp.DLL" on Windows) into your application's executable
directory. Alternatively, add path to the location of the binary in Environment Options on Windows.

-------------------------------------------------------------------------------------------------------------

A high-performance and high-quality (using 64-bit floats internally) binary compiled with Clang toolset is
provided, which requires a processor supporting AVX512 instruction set (Intel Xeon or AMD Zen 4 or later).
The binary files are located in:

  \Bin\Windows\x64_avx512
  \Bin\Windows\x32_avx512

A high-performance binary compiled with Clang toolset is provided, requiring an Intel Haswell processor or
equivalent supporting AVX2 instruction set. These binaries is what you should normally use.
The binary files are located in:

  \Bin\Windows\x64_avx2
  \Bin\Windows\x32_avx2

For Windows on ARM (WoA), ARM 64-bit binary files are located in:

  \Bin\Windows\arm64
  \Bin\Windows\arm64ec

Please note that for Delphi and FreePascal/Lazarus 64-bit applications running on Windows on ARM,
it is recommended to use "arm64ec" binary. This enables improved performance by using a hybrid approach,
where x86-64 application uses ARM64 native code directly.

For a wide range of compatibility with different hardware and software, 32-bit and 64-bit binaries are
located in:

  \Bin\Windows\x64    -  Windows 64-bit
  \Bin\Windows\x32    -  Windows 32-bit

High-performance Linux binaries are provided for Debian 11 64-bit or later. Two different flavors for GTK3
and X11 are provided, although the later includes support for raw mouse input along with improved rendering
loop. Each of the binary files are located in:

  /Bin/Linux/x64      -  Linux 64-bit
  /Bin/Linux/armv7a   -  Linux ARM 32-bit
  /Bin/Linux/aarch64  -  Linux ARM 64-bit

-------------------------------------------------------------------------------------------------------------

Pre-compiled example executables are located in:

  \Samples\Bin

Please note that most advanced 3D examples use real-time ambient occlusion effect, which requires a fairly
powerful GPU to have decent performance. This effect can be disabled in texture cabinet attributes.

-------------------------------------------------------------------------------------------------------------

For C/C++ development, include files and documentation are located in:

  \Include
  \Help

C/C++ examples can be compiled with CMake. Alternatively, Visual Studio and CodeLite projects are located in:

  \Samples\VisualStudio
  \Samples\CodeLite

For C/C++ projects, include "Afterwarp.h" header to use the framework. Additionally, a header-only helper
file "Afterwarp.Vectors.h" can be included to provide vector math and service utility functions.
Please see existing C examples on how to use it.

-------------------------------------------------------------------------------------------------------------

.NET bindings, framework assembly and examples for C# language are located in:

  \DotNet\CSharp\Examples   - C# Examples
  \DotNet\CSharp\Assembly   - Assembly project (needs to be compiled first before trying the examples)
  \DotNet\CSharp\Source     - API bindings and high-level wrapper source code

The framework requires at minimum .NET 8 (Long-Term Support) and the appropriate version of C# language.
If you need to target .NET Framework or older version of .NET (Core), we offer personalized API bindings and
high-level wrappers on per-client basis upon request for an additional cost. Please contact us for a quote.

-------------------------------------------------------------------------------------------------------------

Delphi and FreePascal/Lazarus SDK with API headers, high-level wrappers source code, examples and
documentation is also provided in the following folders:

  \Pascal\Examples   -  Examples for Delphi and FreePascal/Lazarus
  \Pascal\Help       -  Documentation for API headers and high-level wrappers.
  \Pascal\Source     -  Source code for Delphi and FreePascal/Lazarus

-------------------------------------------------------------------------------------------------------------

Tools for manipulating meshes and voxel representations are located in:

  \Tools\Windows\x32    -  Windows 32-bit tools
  \Tools\Windows\x64    -  Windows 64-bit tools
  \Tools\Windows\arm64  -  Windows for ARM 64-bit
  \Tools\Linux\x64      -  Linux 64-bit tools
  \Tools\Linux\armv7a   -  Linux ARM 32-bit
  \Tools\Linux\aarch64  -  Linux ARM 64-bit

"ModelForge" tool can load and save 3D meshes in different formats, create voxel representation for precise
object picking and edit latches. The latches are required for connecting different parts of meshes together
or for defining movement waypoints. The voxel representation, along with the original mesh format enable
high-precision 3D object picking in real-time. The recommended voxel format extension is ".voxel", which can
be understood and properly visualized by the included "ModelViewer" tool.

Please note that the framework natively supports loading and saving Wavefront OBJ files with their
accompanying material files. For other formats, the framework will dynamically load Assimp third-party
library.

-------------------------------------------------------------------------------------------------------------

For support, please visit our web site for more information or e-mail us at: support@afterwarp.io