diff --git a/PhysXCommon_32.dll b/PhysXCommon_32.dll
new file mode 100644
index 0000000..fe50ffc
Binary files /dev/null and b/PhysXCommon_32.dll differ
diff --git a/PhysXCooking_32.dll b/PhysXCooking_32.dll
new file mode 100644
index 0000000..8617ed9
Binary files /dev/null and b/PhysXCooking_32.dll differ
diff --git a/PhysXDevice.dll b/PhysXDevice.dll
new file mode 100644
index 0000000..1d435bb
Binary files /dev/null and b/PhysXDevice.dll differ
diff --git a/PhysXFoundation_32.dll b/PhysXFoundation_32.dll
new file mode 100644
index 0000000..bd37c68
Binary files /dev/null and b/PhysXFoundation_32.dll differ
diff --git a/PhysXGpu_32.dll b/PhysXGpu_32.dll
new file mode 100644
index 0000000..8ec59cf
Binary files /dev/null and b/PhysXGpu_32.dll differ
diff --git a/PhysX_32.dll b/PhysX_32.dll
new file mode 100644
index 0000000..b9f298e
Binary files /dev/null and b/PhysX_32.dll differ
diff --git a/assimp-vc141-mt.dll b/assimp-vc141-mt.dll
new file mode 100644
index 0000000..86f52a0
Binary files /dev/null and b/assimp-vc141-mt.dll differ
diff --git a/assimp-vc141-mtd.dll b/assimp-vc141-mtd.dll
new file mode 100644
index 0000000..2e5fd66
Binary files /dev/null and b/assimp-vc141-mtd.dll differ
diff --git a/dependencies/glm/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json b/dependencies/glm/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json
new file mode 100644
index 0000000..7d776af
--- /dev/null
+++ b/dependencies/glm/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json
@@ -0,0 +1 @@
+{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2},{"kind":"toolchains","version":1}]}
\ No newline at end of file
diff --git a/dependencies/glm/out/build/x64-Debug/VSInheritEnvironments.txt b/dependencies/glm/out/build/x64-Debug/VSInheritEnvironments.txt
new file mode 100644
index 0000000..f8cc9d8
--- /dev/null
+++ b/dependencies/glm/out/build/x64-Debug/VSInheritEnvironments.txt
@@ -0,0 +1 @@
+msvc_x64_x64
\ No newline at end of file
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json
new file mode 100644
index 0000000..7d776af
--- /dev/null
+++ b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json
@@ -0,0 +1 @@
+{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2},{"kind":"toolchains","version":1}]}
\ No newline at end of file
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeCache.txt b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeCache.txt
new file mode 100644
index 0000000..f000157
--- /dev/null
+++ b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeCache.txt
@@ -0,0 +1,349 @@
+# This is the CMakeCache file.
+# For build in directory: j:/Desktop/grk-cw/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug
+# It was generated by CMake: C:/software/vs19/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Path to a program.
+CMAKE_AR:FILEPATH=C:/software/vs19/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/lib.exe
+
+//No help, variable specified on the command line.
+CMAKE_BUILD_TYPE:STRING=Debug
+
+//CXX compiler
+CMAKE_CXX_COMPILER:STRING=C:/software/vs19/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
+
+//Flags used by the CXX compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3 /GR /EHsc
+
+//Flags used by the CXX compiler during DEBUG builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1
+
+//Flags used by the CXX compiler during MINSIZEREL builds.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG
+
+//Flags used by the CXX compiler during RELEASE builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG
+
+//Flags used by the CXX compiler during RELWITHDEBINFO builds.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG
+
+//Libraries linked by default with all C++ applications.
+CMAKE_CXX_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
+
+//C compiler
+CMAKE_C_COMPILER:STRING=C:/software/vs19/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
+
+//Flags used by the C compiler during all build types.
+CMAKE_C_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3
+
+//Flags used by the C compiler during DEBUG builds.
+CMAKE_C_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1
+
+//Flags used by the C compiler during MINSIZEREL builds.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG
+
+//Flags used by the C compiler during RELEASE builds.
+CMAKE_C_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG
+
+//Flags used by the C compiler during RELWITHDEBINFO builds.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG
+
+//Libraries linked by default with all C applications.
+CMAKE_C_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
+
+//Flags used by the linker during all build types.
+CMAKE_EXE_LINKER_FLAGS:STRING=/machine:x64
+
+//Flags used by the linker during DEBUG builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
+
+//Flags used by the linker during MINSIZEREL builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during RELEASE builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during RELWITHDEBINFO builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
+
+//No help, variable specified on the command line.
+CMAKE_INSTALL_PREFIX:PATH=j:/Desktop/grk-cw/dependencies/physx-4.1/source/compiler/cmake/out/install/x64-Debug
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=C:/software/vs19/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/link.exe
+
+//No help, variable specified on the command line.
+CMAKE_MAKE_PROGRAM:UNINITIALIZED=C:\SOFTWARE\VS19\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\Ninja\ninja.exe
+
+//Flags used by the linker during the creation of modules during
+// all build types.
+CMAKE_MODULE_LINKER_FLAGS:STRING=/machine:x64
+
+//Flags used by the linker during the creation of modules during
+// DEBUG builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
+
+//Flags used by the linker during the creation of modules during
+// MINSIZEREL builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during the creation of modules during
+// RELEASE builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during the creation of modules during
+// RELWITHDEBINFO builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
+
+//Path to a program.
+CMAKE_MT:FILEPATH=C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/mt.exe
+
+//Value Computed by CMake
+CMAKE_PROJECT_DESCRIPTION:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=PhysX
+
+//RC compiler
+CMAKE_RC_COMPILER:FILEPATH=C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/rc.exe
+
+//Flags for Windows Resource Compiler during all build types.
+CMAKE_RC_FLAGS:STRING=-DWIN32
+
+//Flags for Windows Resource Compiler during DEBUG builds.
+CMAKE_RC_FLAGS_DEBUG:STRING=-D_DEBUG
+
+//Flags for Windows Resource Compiler during MINSIZEREL builds.
+CMAKE_RC_FLAGS_MINSIZEREL:STRING=
+
+//Flags for Windows Resource Compiler during RELEASE builds.
+CMAKE_RC_FLAGS_RELEASE:STRING=
+
+//Flags for Windows Resource Compiler during RELWITHDEBINFO builds.
+CMAKE_RC_FLAGS_RELWITHDEBINFO:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during all build types.
+CMAKE_SHARED_LINKER_FLAGS:STRING=/machine:x64
+
+//Flags used by the linker during the creation of shared libraries
+// during DEBUG builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
+
+//Flags used by the linker during the creation of shared libraries
+// during MINSIZEREL builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during the creation of shared libraries
+// during RELEASE builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during the creation of shared libraries
+// during RELWITHDEBINFO builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries
+// during all build types.
+CMAKE_STATIC_LINKER_FLAGS:STRING=/machine:x64
+
+//Flags used by the linker during the creation of static libraries
+// during DEBUG builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during MINSIZEREL builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELEASE builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELWITHDEBINFO builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make. This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Export low level pdb's
+PX_EXPORT_LOWLEVEL_PDB:BOOL=OFF
+
+//Generate static libraries
+PX_GENERATE_STATIC_LIBRARIES:BOOL=OFF
+
+//Disable SIMD math
+PX_SCALAR_MATH:BOOL=OFF
+
+//Value Computed by CMake
+PhysX_BINARY_DIR:STATIC=J:/Desktop/grk-cw/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug
+
+//Value Computed by CMake
+PhysX_SOURCE_DIR:STATIC=J:/Desktop/grk-cw/dependencies/physx-4.1/source/compiler/cmake
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=j:/Desktop/grk-cw/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=20
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=21032501
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=C:/software/vs19/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=C:/software/vs19/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cpack.exe
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=C:/software/vs19/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/ctest.exe
+//ADVANCED property for variable: CMAKE_CXX_COMPILER
+CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES
+CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER
+CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES
+CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Ninja
+//Generator instance identifier.
+CMAKE_GENERATOR_INSTANCE:INTERNAL=
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=J:/Desktop/grk-cw/dependencies/physx-4.1/source/compiler/cmake
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MT
+CMAKE_MT-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
+//Platform information initialized
+CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
+//noop for ranlib
+CMAKE_RANLIB:INTERNAL=:
+//ADVANCED property for variable: CMAKE_RC_COMPILER
+CMAKE_RC_COMPILER-ADVANCED:INTERNAL=1
+CMAKE_RC_COMPILER_WORKS:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS
+CMAKE_RC_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS_DEBUG
+CMAKE_RC_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS_MINSIZEREL
+CMAKE_RC_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS_RELEASE
+CMAKE_RC_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS_RELWITHDEBINFO
+CMAKE_RC_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=C:/software/vs19/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+//Root of the PhysX source tree
+PHYSX_ROOT_DIR:INTERNAL=
+
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeCCompiler.cmake b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeCCompiler.cmake
new file mode 100644
index 0000000..378d8e8
--- /dev/null
+++ b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeCCompiler.cmake
@@ -0,0 +1,78 @@
+set(CMAKE_C_COMPILER "C:/software/vs19/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "MSVC")
+set(CMAKE_C_COMPILER_VERSION "19.29.30133.0")
+set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_C_COMPILER_WRAPPER "")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "90")
+set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_std_99;c_std_11;c_function_prototypes;c_variadic_macros;c_restrict;c_static_assert")
+set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
+set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_variadic_macros;c_restrict")
+set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
+
+set(CMAKE_C_PLATFORM_ID "Windows")
+set(CMAKE_C_SIMULATE_ID "")
+set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")
+set(CMAKE_C_SIMULATE_VERSION "")
+set(CMAKE_C_COMPILER_ARCHITECTURE_ID x64)
+
+set(MSVC_C_ARCHITECTURE_ID x64)
+
+set(CMAKE_AR "C:/software/vs19/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/lib.exe")
+set(CMAKE_C_COMPILER_AR "")
+set(CMAKE_RANLIB ":")
+set(CMAKE_C_COMPILER_RANLIB "")
+set(CMAKE_LINKER "C:/software/vs19/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/link.exe")
+set(CMAKE_MT "C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/mt.exe")
+set(CMAKE_COMPILER_IS_GNUCC )
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS TRUE)
+set(CMAKE_C_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+ set(CYGWIN 1)
+ set(UNIX 1)
+endif()
+
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
+
+if(CMAKE_COMPILER_IS_MINGW)
+ set(MINGW 1)
+endif()
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "8")
+set(CMAKE_C_COMPILER_ABI "")
+set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "")
+endif()
+
+set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "Note: including file: ")
+if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
+ set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "")
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeCXXCompiler.cmake b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeCXXCompiler.cmake
new file mode 100644
index 0000000..f2232be
--- /dev/null
+++ b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeCXXCompiler.cmake
@@ -0,0 +1,91 @@
+set(CMAKE_CXX_COMPILER "C:/software/vs19/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "MSVC")
+set(CMAKE_CXX_COMPILER_VERSION "19.29.30133.0")
+set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_CXX_COMPILER_WRAPPER "")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
+set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20")
+set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
+set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
+set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
+set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
+set(CMAKE_CXX23_COMPILE_FEATURES "")
+
+set(CMAKE_CXX_PLATFORM_ID "Windows")
+set(CMAKE_CXX_SIMULATE_ID "")
+set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")
+set(CMAKE_CXX_SIMULATE_VERSION "")
+set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID x64)
+
+set(MSVC_CXX_ARCHITECTURE_ID x64)
+
+set(CMAKE_AR "C:/software/vs19/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/lib.exe")
+set(CMAKE_CXX_COMPILER_AR "")
+set(CMAKE_RANLIB ":")
+set(CMAKE_CXX_COMPILER_RANLIB "")
+set(CMAKE_LINKER "C:/software/vs19/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/link.exe")
+set(CMAKE_MT "C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/mt.exe")
+set(CMAKE_COMPILER_IS_GNUCXX )
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS TRUE)
+set(CMAKE_CXX_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+ set(CYGWIN 1)
+ set(UNIX 1)
+endif()
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
+
+if(CMAKE_COMPILER_IS_MINGW)
+ set(MINGW 1)
+endif()
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+
+foreach (lang C OBJC OBJCXX)
+ if (CMAKE_${lang}_COMPILER_ID_RUN)
+ foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
+ list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
+ endforeach()
+ endif()
+endforeach()
+
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
+set(CMAKE_CXX_COMPILER_ABI "")
+set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "")
+endif()
+
+set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "Note: including file: ")
+if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
+ set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "")
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeDetermineCompilerABI_C.bin b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeDetermineCompilerABI_C.bin
new file mode 100644
index 0000000..fd40a1f
Binary files /dev/null and b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeDetermineCompilerABI_C.bin differ
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeDetermineCompilerABI_CXX.bin b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeDetermineCompilerABI_CXX.bin
new file mode 100644
index 0000000..8b2f04c
Binary files /dev/null and b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeDetermineCompilerABI_CXX.bin differ
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeRCCompiler.cmake b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeRCCompiler.cmake
new file mode 100644
index 0000000..8af8852
--- /dev/null
+++ b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeRCCompiler.cmake
@@ -0,0 +1,6 @@
+set(CMAKE_RC_COMPILER "C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/rc.exe")
+set(CMAKE_RC_COMPILER_ARG1 "")
+set(CMAKE_RC_COMPILER_LOADED 1)
+set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc;RC)
+set(CMAKE_RC_OUTPUT_EXTENSION .res)
+set(CMAKE_RC_COMPILER_ENV_VAR "RC")
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeSystem.cmake b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeSystem.cmake
new file mode 100644
index 0000000..25b9ba9
--- /dev/null
+++ b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Windows-10.0.17763")
+set(CMAKE_HOST_SYSTEM_NAME "Windows")
+set(CMAKE_HOST_SYSTEM_VERSION "10.0.17763")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64")
+
+
+
+set(CMAKE_SYSTEM "Windows-10.0.17763")
+set(CMAKE_SYSTEM_NAME "Windows")
+set(CMAKE_SYSTEM_VERSION "10.0.17763")
+set(CMAKE_SYSTEM_PROCESSOR "AMD64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdC/CMakeCCompilerId.c b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 0000000..8aeb2c1
--- /dev/null
+++ b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,743 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+#if defined(__18CXX)
+# define ID_VOID_MAIN
+#endif
+#if defined(__CLASSIC_C__)
+/* cv-qualifiers did not exist in K&R C */
+# define const
+# define volatile
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+ Version date components: YYYY=Year, MM=Month, DD=Day */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+# endif
+ /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+ /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
+# define COMPILER_ID "IntelLLVM"
+#if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+#endif
+/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
+ * later. Look for 6 digit vs. 8 digit version number to decide encoding.
+ * VVVV is no smaller than the current year when a versio is released.
+ */
+#if __INTEL_LLVM_COMPILER < 1000000L
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
+#else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
+#endif
+#if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+#elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+#endif
+#if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+#endif
+#if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+#endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+ /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+ /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+ /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_C)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_C >= 0x5100
+ /* __SUNPRO_C = 0xVRRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
+# else
+ /* __SUNPRO_CC = 0xVRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
+# endif
+
+#elif defined(__HP_cc)
+# define COMPILER_ID "HP"
+ /* __HP_cc = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
+
+#elif defined(__DECC)
+# define COMPILER_ID "Compaq"
+ /* __DECC_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
+
+#elif defined(__IBMC__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+
+#elif defined(__ibmxl__) && defined(__clang__)
+# define COMPILER_ID "XLClang"
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
+# define COMPILER_ID "XL"
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
+# define COMPILER_ID "VisualAge"
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+
+#elif defined(__NVCOMPILER)
+# define COMPILER_ID "NVHPC"
+# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
+# if defined(__NVCOMPILER_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
+# endif
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+ /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__ghs__)
+# define COMPILER_ID "GHS"
+/* __GHS_VERSION_NUMBER = VVVVRP */
+# ifdef __GHS_VERSION_NUMBER
+# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
+# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
+# endif
+
+#elif defined(__TINYC__)
+# define COMPILER_ID "TinyCC"
+
+#elif defined(__BCC__)
+# define COMPILER_ID "Bruce"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__ARMCC_VERSION) && !defined(__clang__)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+ /* __ARMCC_VERSION = VRRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#else
+ /* __ARMCC_VERSION = VRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#endif
+
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
+# define COMPILER_ID "ARMClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000)
+# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+ /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+# if _MSC_VER >= 1400
+ /* _MSC_FULL_VER = VVRRPPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+# else
+ /* _MSC_FULL_VER = VVRRPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+# endif
+# endif
+# if defined(_MSC_BUILD)
+# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+ /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__) && defined(__ICCARM__)
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
+# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
+# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
+# define COMPILER_ID "SDCC"
+# if defined(__SDCC_VERSION_MAJOR)
+# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
+# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
+# else
+ /* SDCC = VRP */
+# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
+# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+ identification macro. Try to identify the platform and guess that
+ it is the native compiler. */
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name. */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+# define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+# define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+# define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+# define PLATFORM_ID "Windows3x"
+
+# elif defined(__VXWORKS__)
+# define PLATFORM_ID "VxWorks"
+
+# else /* unknown platform */
+# define PLATFORM_ID
+# endif
+
+#elif defined(__INTEGRITY)
+# if defined(INT_178B)
+# define PLATFORM_ID "Integrity178"
+
+# else /* regular Integrity */
+# define PLATFORM_ID "Integrity"
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+ the architecture of the compiler being used. This is because
+ the compilers do not have flags that can change the architecture,
+ but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+# define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_ARM64EC)
+# define ARCHITECTURE_ID "ARM64EC"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+# define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+# if _M_ARM == 4
+# define ARCHITECTURE_ID "ARMV4I"
+# elif _M_ARM == 5
+# define ARCHITECTURE_ID "ARMV5I"
+# else
+# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+# endif
+
+# elif defined(_M_MIPS)
+# define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+# define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+# define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCRX__)
+# define ARCHITECTURE_ID "RX"
+
+# elif defined(__ICCRH850__)
+# define ARCHITECTURE_ID "RH850"
+
+# elif defined(__ICCRL78__)
+# define ARCHITECTURE_ID "RL78"
+
+# elif defined(__ICCRISCV__)
+# define ARCHITECTURE_ID "RISCV"
+
+# elif defined(__ICCAVR__)
+# define ARCHITECTURE_ID "AVR"
+
+# elif defined(__ICC430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__ICCV850__)
+# define ARCHITECTURE_ID "V850"
+
+# elif defined(__ICC8051__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__ICCSTM8__)
+# define ARCHITECTURE_ID "STM8"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__ghs__)
+# if defined(__PPC64__)
+# define ARCHITECTURE_ID "PPC64"
+
+# elif defined(__ppc__)
+# define ARCHITECTURE_ID "PPC"
+
+# elif defined(__ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__x86_64__)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(__i386__)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__TI_COMPILER_VERSION__)
+# if defined(__TI_ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__MSP430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__TMS320C28XX__)
+# define ARCHITECTURE_ID "TMS320C28x"
+
+# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
+# define ARCHITECTURE_ID "TMS320C6x"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#else
+# define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals. */
+#define DEC(n) \
+ ('0' + (((n) / 10000000)%10)), \
+ ('0' + (((n) / 1000000)%10)), \
+ ('0' + (((n) / 100000)%10)), \
+ ('0' + (((n) / 10000)%10)), \
+ ('0' + (((n) / 1000)%10)), \
+ ('0' + (((n) / 100)%10)), \
+ ('0' + (((n) / 10)%10)), \
+ ('0' + ((n) % 10))
+
+/* Convert integer to hex digit literals. */
+#define HEX(n) \
+ ('0' + ((n)>>28 & 0xF)), \
+ ('0' + ((n)>>24 & 0xF)), \
+ ('0' + ((n)>>20 & 0xF)), \
+ ('0' + ((n)>>16 & 0xF)), \
+ ('0' + ((n)>>12 & 0xF)), \
+ ('0' + ((n)>>8 & 0xF)), \
+ ('0' + ((n)>>4 & 0xF)), \
+ ('0' + ((n) & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+ COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+ '.', COMPILER_VERSION_MINOR,
+# ifdef COMPILER_VERSION_PATCH
+ '.', COMPILER_VERSION_PATCH,
+# ifdef COMPILER_VERSION_TWEAK
+ '.', COMPILER_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+ 'i','n','t','e','r','n','a','l','[',
+ COMPILER_VERSION_INTERNAL,']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+ SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+ '.', SIMULATE_VERSION_MINOR,
+# ifdef SIMULATE_VERSION_PATCH
+ '.', SIMULATE_VERSION_PATCH,
+# ifdef SIMULATE_VERSION_TWEAK
+ '.', SIMULATE_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+#if !defined(__STDC__)
+# if (defined(_MSC_VER) && !defined(__clang__)) \
+ || (defined(__ibmxl__) || defined(__IBMC__))
+# define C_DIALECT "90"
+# else
+# define C_DIALECT
+# endif
+#elif __STDC_VERSION__ >= 201000L
+# define C_DIALECT "11"
+#elif __STDC_VERSION__ >= 199901L
+# define C_DIALECT "99"
+#else
+# define C_DIALECT "90"
+#endif
+const char* info_language_dialect_default =
+ "INFO" ":" "dialect_default[" C_DIALECT "]";
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void main() {}
+#else
+# if defined(__CLASSIC_C__)
+int main(argc, argv) int argc; char *argv[];
+# else
+int main(int argc, char* argv[])
+# endif
+{
+ int require = 0;
+ require += info_compiler[argc];
+ require += info_platform[argc];
+ require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+ require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+ require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+ require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+ require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+ require += info_cray[argc];
+#endif
+ require += info_language_dialect_default[argc];
+ (void)argv;
+ return require;
+}
+#endif
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdC/CMakeCCompilerId.exe b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdC/CMakeCCompilerId.exe
new file mode 100644
index 0000000..8c74e08
Binary files /dev/null and b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdC/CMakeCCompilerId.exe differ
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdC/CMakeCCompilerId.obj b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdC/CMakeCCompilerId.obj
new file mode 100644
index 0000000..aaadc58
Binary files /dev/null and b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdC/CMakeCCompilerId.obj differ
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file mode 100644
index 0000000..356dbc6
--- /dev/null
+++ b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.cpp
@@ -0,0 +1,734 @@
+/* This source file must have a .cpp extension so that all C++ compilers
+ recognize the extension without flags. Borland does not know .cxx for
+ example. */
+#ifndef __cplusplus
+# error "A C compiler has been selected for C++."
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+ Version date components: YYYY=Year, MM=Month, DD=Day */
+
+#if defined(__COMO__)
+# define COMPILER_ID "Comeau"
+ /* __COMO_VERSION__ = VRR */
+# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
+
+#elif defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+# endif
+ /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+ /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
+# define COMPILER_ID "IntelLLVM"
+#if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+#endif
+/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
+ * later. Look for 6 digit vs. 8 digit version number to decide encoding.
+ * VVVV is no smaller than the current year when a versio is released.
+ */
+#if __INTEL_LLVM_COMPILER < 1000000L
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
+#else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
+#endif
+#if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+#elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+#endif
+#if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+#endif
+#if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+#endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+ /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+ /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+ /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_CC)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_CC >= 0x5100
+ /* __SUNPRO_CC = 0xVRRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
+# else
+ /* __SUNPRO_CC = 0xVRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
+# endif
+
+#elif defined(__HP_aCC)
+# define COMPILER_ID "HP"
+ /* __HP_aCC = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
+
+#elif defined(__DECCXX)
+# define COMPILER_ID "Compaq"
+ /* __DECCXX_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
+
+#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__ibmxl__) && defined(__clang__)
+# define COMPILER_ID "XLClang"
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
+# define COMPILER_ID "XL"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
+# define COMPILER_ID "VisualAge"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__NVCOMPILER)
+# define COMPILER_ID "NVHPC"
+# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
+# if defined(__NVCOMPILER_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
+# endif
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+ /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__ghs__)
+# define COMPILER_ID "GHS"
+/* __GHS_VERSION_NUMBER = VVVVRP */
+# ifdef __GHS_VERSION_NUMBER
+# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
+# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
+# endif
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__ARMCC_VERSION) && !defined(__clang__)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+ /* __ARMCC_VERSION = VRRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#else
+ /* __ARMCC_VERSION = VRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#endif
+
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
+# define COMPILER_ID "ARMClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000)
+# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__) || defined(__GNUG__)
+# define COMPILER_ID "GNU"
+# if defined(__GNUC__)
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# else
+# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+ /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+# if _MSC_VER >= 1400
+ /* _MSC_FULL_VER = VVRRPPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+# else
+ /* _MSC_FULL_VER = VVRRPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+# endif
+# endif
+# if defined(_MSC_BUILD)
+# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+ /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__) && defined(__ICCARM__)
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
+# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
+# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+ identification macro. Try to identify the platform and guess that
+ it is the native compiler. */
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name. */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+# define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+# define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+# define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+# define PLATFORM_ID "Windows3x"
+
+# elif defined(__VXWORKS__)
+# define PLATFORM_ID "VxWorks"
+
+# else /* unknown platform */
+# define PLATFORM_ID
+# endif
+
+#elif defined(__INTEGRITY)
+# if defined(INT_178B)
+# define PLATFORM_ID "Integrity178"
+
+# else /* regular Integrity */
+# define PLATFORM_ID "Integrity"
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+ the architecture of the compiler being used. This is because
+ the compilers do not have flags that can change the architecture,
+ but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+# define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_ARM64EC)
+# define ARCHITECTURE_ID "ARM64EC"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+# define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+# if _M_ARM == 4
+# define ARCHITECTURE_ID "ARMV4I"
+# elif _M_ARM == 5
+# define ARCHITECTURE_ID "ARMV5I"
+# else
+# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+# endif
+
+# elif defined(_M_MIPS)
+# define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+# define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+# define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCRX__)
+# define ARCHITECTURE_ID "RX"
+
+# elif defined(__ICCRH850__)
+# define ARCHITECTURE_ID "RH850"
+
+# elif defined(__ICCRL78__)
+# define ARCHITECTURE_ID "RL78"
+
+# elif defined(__ICCRISCV__)
+# define ARCHITECTURE_ID "RISCV"
+
+# elif defined(__ICCAVR__)
+# define ARCHITECTURE_ID "AVR"
+
+# elif defined(__ICC430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__ICCV850__)
+# define ARCHITECTURE_ID "V850"
+
+# elif defined(__ICC8051__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__ICCSTM8__)
+# define ARCHITECTURE_ID "STM8"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__ghs__)
+# if defined(__PPC64__)
+# define ARCHITECTURE_ID "PPC64"
+
+# elif defined(__ppc__)
+# define ARCHITECTURE_ID "PPC"
+
+# elif defined(__ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__x86_64__)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(__i386__)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__TI_COMPILER_VERSION__)
+# if defined(__TI_ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__MSP430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__TMS320C28XX__)
+# define ARCHITECTURE_ID "TMS320C28x"
+
+# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
+# define ARCHITECTURE_ID "TMS320C6x"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#else
+# define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals. */
+#define DEC(n) \
+ ('0' + (((n) / 10000000)%10)), \
+ ('0' + (((n) / 1000000)%10)), \
+ ('0' + (((n) / 100000)%10)), \
+ ('0' + (((n) / 10000)%10)), \
+ ('0' + (((n) / 1000)%10)), \
+ ('0' + (((n) / 100)%10)), \
+ ('0' + (((n) / 10)%10)), \
+ ('0' + ((n) % 10))
+
+/* Convert integer to hex digit literals. */
+#define HEX(n) \
+ ('0' + ((n)>>28 & 0xF)), \
+ ('0' + ((n)>>24 & 0xF)), \
+ ('0' + ((n)>>20 & 0xF)), \
+ ('0' + ((n)>>16 & 0xF)), \
+ ('0' + ((n)>>12 & 0xF)), \
+ ('0' + ((n)>>8 & 0xF)), \
+ ('0' + ((n)>>4 & 0xF)), \
+ ('0' + ((n) & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+ COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+ '.', COMPILER_VERSION_MINOR,
+# ifdef COMPILER_VERSION_PATCH
+ '.', COMPILER_VERSION_PATCH,
+# ifdef COMPILER_VERSION_TWEAK
+ '.', COMPILER_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+ 'i','n','t','e','r','n','a','l','[',
+ COMPILER_VERSION_INTERNAL,']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+ SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+ '.', SIMULATE_VERSION_MINOR,
+# ifdef SIMULATE_VERSION_PATCH
+ '.', SIMULATE_VERSION_PATCH,
+# ifdef SIMULATE_VERSION_TWEAK
+ '.', SIMULATE_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L
+# if defined(__INTEL_CXX11_MODE__)
+# if defined(__cpp_aggregate_nsdmi)
+# define CXX_STD 201402L
+# else
+# define CXX_STD 201103L
+# endif
+# else
+# define CXX_STD 199711L
+# endif
+#elif defined(_MSC_VER) && defined(_MSVC_LANG)
+# define CXX_STD _MSVC_LANG
+#else
+# define CXX_STD __cplusplus
+#endif
+
+const char* info_language_dialect_default = "INFO" ":" "dialect_default["
+#if CXX_STD > 202002L
+ "23"
+#elif CXX_STD > 201703L
+ "20"
+#elif CXX_STD >= 201703L
+ "17"
+#elif CXX_STD >= 201402L
+ "14"
+#elif CXX_STD >= 201103L
+ "11"
+#else
+ "98"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+ int require = 0;
+ require += info_compiler[argc];
+ require += info_platform[argc];
+#ifdef COMPILER_VERSION_MAJOR
+ require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+ require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+ require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+ require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+ require += info_cray[argc];
+#endif
+ require += info_language_dialect_default[argc];
+ (void)argv;
+ return require;
+}
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe
new file mode 100644
index 0000000..c3463a8
Binary files /dev/null and b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe differ
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.obj b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.obj
new file mode 100644
index 0000000..d24408a
Binary files /dev/null and b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.obj differ
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/CMakeOutput.log b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/CMakeOutput.log
new file mode 100644
index 0000000..27c58db
--- /dev/null
+++ b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/CMakeOutput.log
@@ -0,0 +1,65 @@
+The system is: Windows - 10.0.17763 - AMD64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: C:/software/vs19/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+Microsoft (R) C/C++ Optimizing Compiler Version 19.29.30133 for x64
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+CMakeCCompilerId.c
+Microsoft (R) Incremental Linker Version 14.29.30133.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCCompilerId.exe
+CMakeCCompilerId.obj
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
+
+The C compiler identification is MSVC, found in "J:/Desktop/grk-cw/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdC/CMakeCCompilerId.exe"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: C:/software/vs19/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
+Build flags:
+Id flags:
+
+The output was:
+0
+Microsoft (R) C/C++ Optimizing Compiler Version 19.29.30133 for x64
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+CMakeCXXCompilerId.cpp
+Microsoft (R) Incremental Linker Version 14.29.30133.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+/out:CMakeCXXCompilerId.exe
+CMakeCXXCompilerId.obj
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.exe"
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.obj"
+
+The CXX compiler identification is MSVC, found in "J:/Desktop/grk-cw/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/3.20.21032501-MSVC_2/CompilerIdCXX/CMakeCXXCompilerId.exe"
+
+Detecting C compiler ABI info compiled with the following output:
+Change Dir: J:/Desktop/grk-cw/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/CMakeTmp
+
+Run Build Command(s):C:\SOFTWARE\VS19\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\Ninja\ninja.exe cmTC_912c9 && [1/2] Building C object CMakeFiles\cmTC_912c9.dir\CMakeCCompilerABI.c.obj
+[2/2] Linking C executable cmTC_912c9.exe
+
+
+
+Detecting CXX compiler ABI info compiled with the following output:
+Change Dir: J:/Desktop/grk-cw/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/CMakeTmp
+
+Run Build Command(s):C:\SOFTWARE\VS19\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\Ninja\ninja.exe cmTC_2bf4a && [1/2] Building CXX object CMakeFiles\cmTC_2bf4a.dir\CMakeCXXCompilerABI.cpp.obj
+[2/2] Linking CXX executable cmTC_2bf4a.exe
+
+
+
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/ShowIncludes/foo.h b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/ShowIncludes/foo.h
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/ShowIncludes/foo.h
@@ -0,0 +1 @@
+
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/ShowIncludes/main.c b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/ShowIncludes/main.c
new file mode 100644
index 0000000..cd3cbc1
--- /dev/null
+++ b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/ShowIncludes/main.c
@@ -0,0 +1,2 @@
+#include "foo.h"
+int main(){}
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/ShowIncludes/main.obj b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/ShowIncludes/main.obj
new file mode 100644
index 0000000..bc1bccf
Binary files /dev/null and b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/ShowIncludes/main.obj differ
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/cmake.check_cache b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/cmake.check_cache
new file mode 100644
index 0000000..3dccd73
--- /dev/null
+++ b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/VSInheritEnvironments.txt b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/VSInheritEnvironments.txt
new file mode 100644
index 0000000..f8cc9d8
--- /dev/null
+++ b/dependencies/physx-4.1/source/compiler/cmake/out/build/x64-Debug/VSInheritEnvironments.txt
@@ -0,0 +1 @@
+msvc_x64_x64
\ No newline at end of file
diff --git a/freeglut.dll b/freeglut.dll
new file mode 100644
index 0000000..c768c15
Binary files /dev/null and b/freeglut.dll differ
diff --git a/glew32.dll b/glew32.dll
new file mode 100644
index 0000000..8a49a3b
Binary files /dev/null and b/glew32.dll differ
diff --git a/grafika_projekt/Debug/Camera.obj b/grafika_projekt/Debug/Camera.obj
index bbd4327..b6e96be 100644
Binary files a/grafika_projekt/Debug/Camera.obj and b/grafika_projekt/Debug/Camera.obj differ
diff --git a/grafika_projekt/Debug/Render_Utils.obj b/grafika_projekt/Debug/Render_Utils.obj
new file mode 100644
index 0000000..557debc
Binary files /dev/null and b/grafika_projekt/Debug/Render_Utils.obj differ
diff --git a/grafika_projekt/Debug/SOIL.obj b/grafika_projekt/Debug/SOIL.obj
index f7579fb..5ef5e86 100644
Binary files a/grafika_projekt/Debug/SOIL.obj and b/grafika_projekt/Debug/SOIL.obj differ
diff --git a/grafika_projekt/Debug/Shader_Loader.obj b/grafika_projekt/Debug/Shader_Loader.obj
index 2ee051f..d8ac765 100644
Binary files a/grafika_projekt/Debug/Shader_Loader.obj and b/grafika_projekt/Debug/Shader_Loader.obj differ
diff --git a/grafika_projekt/Debug/Texture.obj b/grafika_projekt/Debug/Texture.obj
new file mode 100644
index 0000000..978531c
Binary files /dev/null and b/grafika_projekt/Debug/Texture.obj differ
diff --git a/grafika_projekt/Debug/grafika_projekt.exe.recipe b/grafika_projekt/Debug/grafika_projekt.exe.recipe
index c1f4946..1e10dba 100644
--- a/grafika_projekt/Debug/grafika_projekt.exe.recipe
+++ b/grafika_projekt/Debug/grafika_projekt.exe.recipe
@@ -2,7 +2,7 @@
- J:\source\repos\grafika_projekt\Debug\grafika_projekt.exe
+ C:\Users\sanan\source\repos\GRK-Projekt\Debug\grafika_projekt.exe
diff --git a/grafika_projekt/Debug/grafika_projekt.ilk b/grafika_projekt/Debug/grafika_projekt.ilk
index 33e3b66..23441cf 100644
Binary files a/grafika_projekt/Debug/grafika_projekt.ilk and b/grafika_projekt/Debug/grafika_projekt.ilk differ
diff --git a/grafika_projekt/Debug/grafika_projekt.log b/grafika_projekt/Debug/grafika_projekt.log
index 18e41ec..b5de715 100644
--- a/grafika_projekt/Debug/grafika_projekt.log
+++ b/grafika_projekt/Debug/grafika_projekt.log
@@ -1 +1 @@
- grafika_projekt.vcxproj -> J:\source\repos\grafika_projekt\Debug\grafika_projekt.exe
+ grafika_projekt.vcxproj -> C:\Users\sanan\source\repos\GRK-Projekt\Debug\grafika_projekt.exe
diff --git a/grafika_projekt/Debug/grafika_projekt.tlog/CL.command.1.tlog b/grafika_projekt/Debug/grafika_projekt.tlog/CL.command.1.tlog
index 7604d17..5467bb7 100644
Binary files a/grafika_projekt/Debug/grafika_projekt.tlog/CL.command.1.tlog and b/grafika_projekt/Debug/grafika_projekt.tlog/CL.command.1.tlog differ
diff --git a/grafika_projekt/Debug/grafika_projekt.tlog/CL.read.1.tlog b/grafika_projekt/Debug/grafika_projekt.tlog/CL.read.1.tlog
index df09990..d445d90 100644
Binary files a/grafika_projekt/Debug/grafika_projekt.tlog/CL.read.1.tlog and b/grafika_projekt/Debug/grafika_projekt.tlog/CL.read.1.tlog differ
diff --git a/grafika_projekt/Debug/grafika_projekt.tlog/CL.write.1.tlog b/grafika_projekt/Debug/grafika_projekt.tlog/CL.write.1.tlog
index 9b31983..96f7206 100644
Binary files a/grafika_projekt/Debug/grafika_projekt.tlog/CL.write.1.tlog and b/grafika_projekt/Debug/grafika_projekt.tlog/CL.write.1.tlog differ
diff --git a/grafika_projekt/Debug/grafika_projekt.tlog/grafika_projekt.lastbuildstate b/grafika_projekt/Debug/grafika_projekt.tlog/grafika_projekt.lastbuildstate
index 75ee353..27b00a3 100644
--- a/grafika_projekt/Debug/grafika_projekt.tlog/grafika_projekt.lastbuildstate
+++ b/grafika_projekt/Debug/grafika_projekt.tlog/grafika_projekt.lastbuildstate
@@ -1,2 +1,2 @@
-PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.29.30133:TargetPlatformVersion=10.0.19041.0:
-Debug|Win32|J:\source\repos\grafika_projekt\|
+PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.29.30133:VCServicingVersionATL=14.29.30136:VCServicingVersionCrtHeaders=14.29.30136:VCServicingVersionCompilers=14.29.30136:TargetPlatformVersion=10.0.19041.0:
+Debug|Win32|C:\Users\sanan\source\repos\GRK-Projekt\|
diff --git a/grafika_projekt/Debug/grafika_projekt.tlog/link.command.1.tlog b/grafika_projekt/Debug/grafika_projekt.tlog/link.command.1.tlog
index a85917c..87fd8f2 100644
Binary files a/grafika_projekt/Debug/grafika_projekt.tlog/link.command.1.tlog and b/grafika_projekt/Debug/grafika_projekt.tlog/link.command.1.tlog differ
diff --git a/grafika_projekt/Debug/grafika_projekt.tlog/link.read.1.tlog b/grafika_projekt/Debug/grafika_projekt.tlog/link.read.1.tlog
index 2ea581e..e068664 100644
Binary files a/grafika_projekt/Debug/grafika_projekt.tlog/link.read.1.tlog and b/grafika_projekt/Debug/grafika_projekt.tlog/link.read.1.tlog differ
diff --git a/grafika_projekt/Debug/grafika_projekt.tlog/link.write.1.tlog b/grafika_projekt/Debug/grafika_projekt.tlog/link.write.1.tlog
index 1a568de..a4ec73a 100644
Binary files a/grafika_projekt/Debug/grafika_projekt.tlog/link.write.1.tlog and b/grafika_projekt/Debug/grafika_projekt.tlog/link.write.1.tlog differ
diff --git a/grafika_projekt/Debug/image_DXT.obj b/grafika_projekt/Debug/image_DXT.obj
index 1784974..414922f 100644
Binary files a/grafika_projekt/Debug/image_DXT.obj and b/grafika_projekt/Debug/image_DXT.obj differ
diff --git a/grafika_projekt/Debug/image_helper.obj b/grafika_projekt/Debug/image_helper.obj
index bb140ea..2384e2c 100644
Binary files a/grafika_projekt/Debug/image_helper.obj and b/grafika_projekt/Debug/image_helper.obj differ
diff --git a/grafika_projekt/Debug/main.obj b/grafika_projekt/Debug/main.obj
index 826dd0d..280b717 100644
Binary files a/grafika_projekt/Debug/main.obj and b/grafika_projekt/Debug/main.obj differ
diff --git a/grafika_projekt/Debug/stb_image_aug.obj b/grafika_projekt/Debug/stb_image_aug.obj
index b5d74ff..7de64ca 100644
Binary files a/grafika_projekt/Debug/stb_image_aug.obj and b/grafika_projekt/Debug/stb_image_aug.obj differ
diff --git a/grafika_projekt/Debug/vc142.idb b/grafika_projekt/Debug/vc142.idb
index eedc400..0b06820 100644
Binary files a/grafika_projekt/Debug/vc142.idb and b/grafika_projekt/Debug/vc142.idb differ
diff --git a/grafika_projekt/Debug/vc142.pdb b/grafika_projekt/Debug/vc142.pdb
index 6777003..c4bb8a8 100644
Binary files a/grafika_projekt/Debug/vc142.pdb and b/grafika_projekt/Debug/vc142.pdb differ
diff --git a/grafika_projekt/Textures.h b/grafika_projekt/Textures.h
new file mode 100644
index 0000000..649a53a
--- /dev/null
+++ b/grafika_projekt/Textures.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "glew.h"
+#include "freeglut.h"
+#include
+#include
+
+namespace Core
+{
+ GLuint LoadTexture(const char* filepath);
+
+ // textureID - identyfikator tekstury otrzymany z funkcji LoadTexture
+ // shaderVariableName - nazwa zmiennej typu 'sampler2D' w shaderze, z ktora ma zostac powiazana tekstura
+ // programID - identyfikator aktualnego programu karty graficznej
+ // textureUnit - indeks jednostki teksturujacej - liczba od 0 do 7. Jezeli uzywa sie wielu tekstur w jednym shaderze, to kazda z nich nalezy powiazac z inna jednostka.
+ void SetActiveTexture(GLuint textureID, const char* shaderVariableName, GLuint programID, int textureUnit);
\ No newline at end of file
diff --git a/grafika_projekt/grafika_projekt.vcxproj b/grafika_projekt/grafika_projekt.vcxproj
index 56eaee5..a8e3dc4 100644
--- a/grafika_projekt/grafika_projekt.vcxproj
+++ b/grafika_projekt/grafika_projekt.vcxproj
@@ -144,14 +144,18 @@
+
+
+
+
@@ -159,10 +163,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/grafika_projekt/grafika_projekt.vcxproj.filters b/grafika_projekt/grafika_projekt.vcxproj.filters
index 70210fd..106fd4e 100644
--- a/grafika_projekt/grafika_projekt.vcxproj.filters
+++ b/grafika_projekt/grafika_projekt.vcxproj.filters
@@ -36,6 +36,12 @@
Source Files
+
+ Source Files
+
+
+ Source Files
+
@@ -62,9 +68,33 @@
Source Files
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/grafika_projekt/grafika_projekt.vcxproj.user b/grafika_projekt/grafika_projekt.vcxproj.user
index 5df420f..966b4ff 100644
--- a/grafika_projekt/grafika_projekt.vcxproj.user
+++ b/grafika_projekt/grafika_projekt.vcxproj.user
@@ -1,6 +1,6 @@
- false
+ true
\ No newline at end of file
diff --git a/grafika_projekt/models/spaceship.obj b/grafika_projekt/models/spaceship.obj
deleted file mode 100644
index e96c964..0000000
--- a/grafika_projekt/models/spaceship.obj
+++ /dev/null
@@ -1,464 +0,0 @@
-# Exported from Wings 3D 1.0.1
-#48 vertices, 92 faces
-v -0.46604296 -4.6098739e-2 6.1004010e-2
-v -0.46604296 4.5631895e-2 6.1004010e-2
-v -0.28477197 -9.3266190e-2 -0.41163609
-v -0.28477197 4.5631895e-2 -0.41163609
-v -5.3436673e-2 -4.9075029e-2 0.72044817
-v -5.3436673e-2 -0.10214269 0.72044817
-v 0.0000000e+0 -4.9075029e-2 0.74414179
-v 0.0000000e+0 -0.11873436 0.74414179
-v 0.0000000e+0 0.11653721 -0.35075536
-v 0.0000000e+0 -0.16403757 -0.35075536
-v 0.0000000e+0 0.16403757 6.1004010e-2
-v 0.0000000e+0 -0.16403757 6.1004010e-2
-v -0.64756828 -3.8727536e-2 -0.23804752
-v -0.64756828 7.1441743e-2 -0.23804752
-v -0.49663244 7.1441743e-2 -0.74414179
-v -0.49663244 -3.8727536e-2 -0.74414179
-v -4.0833684e-2 -0.10214269 0.73456352
-v -4.0833684e-2 -4.9075029e-2 0.73456352
-v -0.16961230 0.11653721 -0.38119573
-v -0.16961230 -0.14744589 -0.38119573
-v -0.16961230 0.16403757 6.1004010e-2
-v -0.16961230 -0.14744589 6.1004010e-2
-v -9.1308654e-2 4.5778787e-2 0.47242135
-v -9.1308654e-2 -0.10009243 0.47242135
-v 0.0000000e+0 4.5778787e-2 0.47242135
-v 0.0000000e+0 -0.11668411 0.47242135
-v -0.18261731 -6.9341139e-2 0.47242135
-v -0.18261731 -1.7215671e-3 0.47242135
-v 0.46604296 -4.6098739e-2 6.1004010e-2
-v 0.46604296 4.5631895e-2 6.1004010e-2
-v 0.28477197 -9.3266190e-2 -0.41163609
-v 0.28477197 4.5631895e-2 -0.41163609
-v 5.3436673e-2 -4.9075029e-2 0.72044817
-v 5.3436673e-2 -0.10214269 0.72044817
-v 0.64756828 -3.8727536e-2 -0.23804752
-v 0.64756828 7.1441743e-2 -0.23804752
-v 0.49663244 7.1441743e-2 -0.74414179
-v 0.49663244 -3.8727536e-2 -0.74414179
-v 4.0833684e-2 -0.10214269 0.73456352
-v 4.0833684e-2 -4.9075029e-2 0.73456352
-v 0.16961230 0.11653721 -0.38119573
-v 0.16961230 -0.14744589 -0.38119573
-v 0.16961230 0.16403757 6.1004010e-2
-v 0.16961230 -0.14744589 6.1004010e-2
-v 9.1308654e-2 4.5778787e-2 0.47242135
-v 9.1308654e-2 -0.10009243 0.47242135
-v 0.18261731 -6.9341139e-2 0.47242135
-v 0.18261731 -1.7215671e-3 0.47242135
-vt 0.0000000e+0 0.69053970
-vt 4.2285593e-2 0.71525416
-vt 0.11847455 0.48783383
-vt 0.16076015 0.51254829
-vt 0.16331352 0.33807909
-vt 0.17536475 0.59545214
-vt 0.18715376 0.64617830
-vt 0.21512694 0.12420912
-vt 0.23028866 0.37309998
-vt 0.27933871 3.3287708e-2
-vt 0.29111566 1.8231410e-2
-vt 0.29780728 0.0000000e+0
-vt 0.30306274 0.16395866
-vt 0.32256180 5.8152293e-2
-vt 0.33503069 5.1982011e-2
-vt 0.34659842 0.15855392
-vt 0.34866807 4.3914835e-2
-vt 0.35966131 0.56514644
-vt 0.36786859 0.34315696
-vt 0.38304782 0.66577476
-vt 0.38362189 0.14708561
-vt 0.40944282 0.52981351
-vt 0.43912922 0.32433135
-vt 0.44897715 0.70072227
-vt 0.48119448 0.50585981
-vt 0.52771590 0.47388085
-vt 0.52771590 0.68855148
-vt 0.53171542 0.29271280
-vt 0.54359004 0.11090107
-vt 0.54696463 8.9466723e-4
-vt 0.56615771 0.0000000e+0
-vt 0.58393029 6.3125387e-4
-vt 0.58452235 0.11195282
-vt 0.60240334 0.48892951
-vt 0.60614015 0.29553098
-vt 0.62473227 0.11194349
-vt 0.66991430 0.50491521
-vt 0.75162596 0.29695078
-vt 0.77873865 0.65209135
-vt 0.84024960 0.13148316
-vt 0.84024960 0.42828199
-vt 0.90677601 0.35344281
-vt 0.92024753 0.0000000e+0
-vt 1.00000000 0.20728785
-vn -0.85484036 0.0000000e+0 0.51889108
-vn -0.25024660 -0.96818192 6.4366946e-4
-vn -0.41030048 -0.90951551 -6.6596220e-2
-vn -0.82350309 0.0000000e+0 0.56731178
-vn -0.31890558 -0.93276809 0.16805628
-vn -0.31484356 -0.93485312 0.16408281
-vn -2.7217819e-2 -0.99959657 -8.1173501e-3
-vn -0.32350669 -0.94622588 0.0000000e+0
-vn -0.82350309 0.0000000e+0 0.56731178
-vn -0.85484036 0.0000000e+0 0.51889108
-vn -0.85484036 0.0000000e+0 0.51889108
-vn 8.6753709e-2 0.99567401 3.3272527e-2
-vn -0.36724289 0.91939897 -0.14084814
-vn -0.34874278 0.87308361 0.34073961
-vn -0.82350309 0.0000000e+0 0.56731178
-vn 0.84335584 0.0000000e+0 -0.53735549
-vn -0.25024660 -0.96818192 6.4366946e-4
-vn -0.41030048 -0.90951551 -6.6596220e-2
-vn 0.25555460 0.0000000e+0 -0.96679462
-vn 8.6753709e-2 0.99567401 3.3272527e-2
-vn 0.84335584 0.0000000e+0 -0.53735549
-vn 0.25555460 0.0000000e+0 -0.96679462
-vn -0.36724289 0.91939897 -0.14084814
-vn 0.84335584 0.0000000e+0 -0.53735549
-vn 0.25555460 0.0000000e+0 -0.96679462
-vn -0.50427448 0.85860405 -9.2229808e-2
-vn 8.2673579e-2 0.99627162 2.4656288e-2
-vn -0.88691408 0.0000000e+0 0.46193442
-vn -0.74593766 0.0000000e+0 0.66601577
-vn -0.42279812 0.82385482 0.37749832
-vn -0.88691408 0.0000000e+0 0.46193442
-vn -0.74593766 0.0000000e+0 0.66601577
-vn 1.1166894e-2 -0.99988794 -9.9704414e-3
-vn -0.88691408 0.0000000e+0 0.46193442
-vn -0.31890277 -0.94690597 4.0866878e-2
-vn -0.74593766 0.0000000e+0 0.66601577
-vn -0.22836934 0.0000000e+0 0.97357457
-vn -7.7079267e-2 0.94131828 0.32860109
-vn 0.22836934 0.0000000e+0 0.97357457
-vn 7.7079267e-2 0.94131828 0.32860109
-vn -0.22836934 0.0000000e+0 0.97357457
-vn -0.38916924 -0.91867155 6.7748717e-2
-vn -0.22836934 0.0000000e+0 0.97357457
-vn -0.17877724 -0.98386157 -7.4236827e-3
-vn 0.22836934 0.0000000e+0 0.97357457
-vn 0.38916924 -0.91867155 6.7748717e-2
-vn 0.22836934 0.0000000e+0 0.97357457
-vn 0.17877724 -0.98386157 -7.4236827e-3
-vn 0.17664795 0.0000000e+0 -0.98427410
-vn 0.0000000e+0 0.99341178 -0.11459949
-vn 0.17664795 0.0000000e+0 -0.98427410
-vn 1.9164607e-2 0.99409750 -0.10678429
-vn -0.17664795 0.0000000e+0 -0.98427410
-vn 0.0000000e+0 0.99341178 -0.11459949
-vn -0.17664795 0.0000000e+0 -0.98427410
-vn -1.9164607e-2 0.99409750 -0.10678429
-vn -9.7356475e-2 -0.99524958 0.0000000e+0
-vn 0.17664795 0.0000000e+0 -0.98427410
-vn 9.7356475e-2 -0.99524958 0.0000000e+0
-vn -0.17664795 0.0000000e+0 -0.98427410
-vn 0.0000000e+0 0.99341178 -0.11459949
-vn 0.0000000e+0 0.96108401 0.27625628
-vn 0.0000000e+0 0.99341178 -0.11459949
-vn 0.0000000e+0 0.96108401 0.27625628
-vn -9.7356475e-2 -0.99524958 0.0000000e+0
-vn -9.6505640e-2 -0.98655171 0.13191807
-vn -9.7356475e-2 -0.99524958 0.0000000e+0
-vn -0.17764671 -0.97763993 0.11252476
-vn 9.7356475e-2 -0.99524958 0.0000000e+0
-vn 9.6505640e-2 -0.98655171 0.13191807
-vn 9.7356475e-2 -0.99524958 0.0000000e+0
-vn 0.17764671 -0.97763993 0.11252476
-vn -2.7217819e-2 -0.99959657 -8.1173501e-3
-vn -0.95829012 0.0000000e+0 -0.28579720
-vn -0.85484036 0.0000000e+0 0.51889108
-vn -0.95829012 0.0000000e+0 -0.28579720
-vn -0.85484036 0.0000000e+0 0.51889108
-vn 8.6753709e-2 0.99567401 3.3272527e-2
-vn 8.2673579e-2 0.99627162 2.4656288e-2
-vn -0.95829012 0.0000000e+0 -0.28579720
-vn -0.85484036 0.0000000e+0 0.51889108
-vn -0.95829012 0.0000000e+0 -0.28579720
-vn 0.84335584 0.0000000e+0 -0.53735549
-vn 8.2673579e-2 0.99627162 2.4656288e-2
-vn -0.95829012 0.0000000e+0 -0.28579720
-vn 0.84335584 0.0000000e+0 -0.53735549
-vn -0.25024660 -0.96818192 6.4366946e-4
-vn -2.7217819e-2 -0.99959657 -8.1173501e-3
-vn 0.84335584 0.0000000e+0 -0.53735549
-vn -0.95829012 0.0000000e+0 -0.28579720
-vn 1.1166894e-2 -0.99988794 -9.9704414e-3
-vn -0.38916924 -0.91867155 6.7748717e-2
-vn -0.22836934 0.0000000e+0 0.97357457
-vn -0.74593766 0.0000000e+0 0.66601577
-vn -0.22836934 0.0000000e+0 0.97357457
-vn -7.7079267e-2 0.94131828 0.32860109
-vn -0.74593766 0.0000000e+0 0.66601577
-vn -0.42279812 0.82385482 0.37749832
-vn -0.22836934 0.0000000e+0 0.97357457
-vn -0.42702825 0.82086493 0.37924616
-vn -0.74593766 0.0000000e+0 0.66601577
-vn 0.0000000e+0 0.94033441 0.34025166
-vn 0.25555460 0.0000000e+0 -0.96679462
-vn 0.17664795 0.0000000e+0 -0.98427410
-vn 1.9164607e-2 0.99409750 -0.10678429
-vn -0.50427448 0.85860405 -9.2229808e-2
-vn -9.7356475e-2 -0.99524958 0.0000000e+0
-vn 0.17664795 0.0000000e+0 -0.98427410
-vn -0.41030048 -0.90951551 -6.6596220e-2
-vn 0.25555460 0.0000000e+0 -0.96679462
-vn 0.25555460 0.0000000e+0 -0.96679462
-vn 0.17664795 0.0000000e+0 -0.98427410
-vn -9.7356475e-2 -0.99524958 0.0000000e+0
-vn -0.32350669 -0.94622588 0.0000000e+0
-vn 0.0000000e+0 0.99341178 -0.11459949
-vn -0.36724289 0.91939897 -0.14084814
-vn -0.34874278 0.87308361 0.34073961
-vn 0.0000000e+0 0.96108401 0.27625628
-vn 1.9164607e-2 0.99409750 -0.10678429
-vn 0.0000000e+0 0.96108401 0.27625628
-vn -0.43656100 0.83918947 0.32430777
-vn -0.50427448 0.85860405 -9.2229808e-2
-vn -9.6505640e-2 -0.98655171 0.13191807
-vn -0.31890558 -0.93276809 0.16805628
-vn -9.7356475e-2 -0.99524958 0.0000000e+0
-vn -0.32350669 -0.94622588 0.0000000e+0
-vn 0.0000000e+0 0.96108401 0.27625628
-vn -0.43656100 0.83918947 0.32430777
-vn -0.42702825 0.82086493 0.37924616
-vn 0.0000000e+0 0.94033441 0.34025166
-vn -9.6505640e-2 -0.98655171 0.13191807
-vn 1.1166894e-2 -0.99988794 -9.9704414e-3
-vn -0.38916924 -0.91867155 6.7748717e-2
-vn -0.31890558 -0.93276809 0.16805628
-vn -0.17877724 -0.98386157 -7.4236827e-3
-vn -0.31484356 -0.93485312 0.16408281
-vn -0.17764671 -0.97763993 0.11252476
-vn -0.31890277 -0.94690597 4.0866878e-2
-vn -7.7079267e-2 0.94131828 0.32860109
-vn 0.0000000e+0 0.96108401 0.27625628
-vn 0.0000000e+0 0.96108401 0.27625628
-vn 0.0000000e+0 0.94033441 0.34025166
-vn 7.7079267e-2 0.94131828 0.32860109
-vn 0.0000000e+0 0.96108401 0.27625628
-vn 0.0000000e+0 0.96108401 0.27625628
-vn 0.0000000e+0 0.94033441 0.34025166
-vn -0.17877724 -0.98386157 -7.4236827e-3
-vn -0.17764671 -0.97763993 0.11252476
-vn 0.17877724 -0.98386157 -7.4236827e-3
-vn 0.17764671 -0.97763993 0.11252476
-vn -0.31484356 -0.93485312 0.16408281
-vn -0.88691408 0.0000000e+0 0.46193442
-vn -0.82350309 0.0000000e+0 0.56731178
-vn -0.31890277 -0.94690597 4.0866878e-2
-vn -0.88691408 0.0000000e+0 0.46193442
-vn -0.34874278 0.87308361 0.34073961
-vn -0.82350309 0.0000000e+0 0.56731178
-vn -0.42279812 0.82385482 0.37749832
-vn -0.43656100 0.83918947 0.32430777
-vn -0.88691408 0.0000000e+0 0.46193442
-vn -0.82350309 0.0000000e+0 0.56731178
-vn -0.42702825 0.82086493 0.37924616
-vn 0.85484036 0.0000000e+0 0.51889108
-vn 0.25024660 -0.96818192 6.4366946e-4
-vn 0.41030048 -0.90951551 -6.6596220e-2
-vn 0.82350309 0.0000000e+0 0.56731178
-vn 0.31890558 -0.93276809 0.16805628
-vn 0.31484356 -0.93485312 0.16408281
-vn 2.7217819e-2 -0.99959657 -8.1173501e-3
-vn 0.32350669 -0.94622588 0.0000000e+0
-vn 0.82350309 0.0000000e+0 0.56731178
-vn 0.85484036 0.0000000e+0 0.51889108
-vn 0.85484036 0.0000000e+0 0.51889108
-vn -8.6753709e-2 0.99567401 3.3272527e-2
-vn 0.36724289 0.91939897 -0.14084814
-vn 0.34874278 0.87308361 0.34073961
-vn 0.82350309 0.0000000e+0 0.56731178
-vn -0.84335584 0.0000000e+0 -0.53735549
-vn 0.25024660 -0.96818192 6.4366946e-4
-vn 0.41030048 -0.90951551 -6.6596220e-2
-vn -0.25555460 0.0000000e+0 -0.96679462
-vn -8.6753709e-2 0.99567401 3.3272527e-2
-vn -0.84335584 0.0000000e+0 -0.53735549
-vn -0.25555460 0.0000000e+0 -0.96679462
-vn 0.36724289 0.91939897 -0.14084814
-vn -0.84335584 0.0000000e+0 -0.53735549
-vn -0.25555460 0.0000000e+0 -0.96679462
-vn 0.50427448 0.85860405 -9.2229808e-2
-vn -8.2673579e-2 0.99627162 2.4656288e-2
-vn 0.88691408 0.0000000e+0 0.46193442
-vn 0.74593766 0.0000000e+0 0.66601577
-vn 0.42279812 0.82385482 0.37749832
-vn 0.88691408 0.0000000e+0 0.46193442
-vn 0.74593766 0.0000000e+0 0.66601577
-vn -1.1166894e-2 -0.99988794 -9.9704414e-3
-vn 0.88691408 0.0000000e+0 0.46193442
-vn 0.31890277 -0.94690597 4.0866878e-2
-vn 0.74593766 0.0000000e+0 0.66601577
-vn 2.7217819e-2 -0.99959657 -8.1173501e-3
-vn 0.95829012 0.0000000e+0 -0.28579720
-vn 0.85484036 0.0000000e+0 0.51889108
-vn 0.95829012 0.0000000e+0 -0.28579720
-vn 0.85484036 0.0000000e+0 0.51889108
-vn -8.6753709e-2 0.99567401 3.3272527e-2
-vn -8.2673579e-2 0.99627162 2.4656288e-2
-vn 0.95829012 0.0000000e+0 -0.28579720
-vn 0.85484036 0.0000000e+0 0.51889108
-vn 0.95829012 0.0000000e+0 -0.28579720
-vn -0.84335584 0.0000000e+0 -0.53735549
-vn -8.2673579e-2 0.99627162 2.4656288e-2
-vn 0.95829012 0.0000000e+0 -0.28579720
-vn -0.84335584 0.0000000e+0 -0.53735549
-vn 0.25024660 -0.96818192 6.4366946e-4
-vn 2.7217819e-2 -0.99959657 -8.1173501e-3
-vn -0.84335584 0.0000000e+0 -0.53735549
-vn 0.95829012 0.0000000e+0 -0.28579720
-vn -1.1166894e-2 -0.99988794 -9.9704414e-3
-vn 0.38916924 -0.91867155 6.7748717e-2
-vn 0.22836934 0.0000000e+0 0.97357457
-vn 0.74593766 0.0000000e+0 0.66601577
-vn 0.22836934 0.0000000e+0 0.97357457
-vn 7.7079267e-2 0.94131828 0.32860109
-vn 0.74593766 0.0000000e+0 0.66601577
-vn 0.42279812 0.82385482 0.37749832
-vn 0.22836934 0.0000000e+0 0.97357457
-vn 0.42702825 0.82086493 0.37924616
-vn 0.74593766 0.0000000e+0 0.66601577
-vn 0.0000000e+0 0.94033441 0.34025166
-vn -0.25555460 0.0000000e+0 -0.96679462
-vn -0.17664795 0.0000000e+0 -0.98427410
-vn -1.9164607e-2 0.99409750 -0.10678429
-vn 0.50427448 0.85860405 -9.2229808e-2
-vn 9.7356475e-2 -0.99524958 0.0000000e+0
-vn -0.17664795 0.0000000e+0 -0.98427410
-vn 0.41030048 -0.90951551 -6.6596220e-2
-vn -0.25555460 0.0000000e+0 -0.96679462
-vn -0.25555460 0.0000000e+0 -0.96679462
-vn -0.17664795 0.0000000e+0 -0.98427410
-vn 9.7356475e-2 -0.99524958 0.0000000e+0
-vn 0.32350669 -0.94622588 0.0000000e+0
-vn 0.0000000e+0 0.99341178 -0.11459949
-vn 0.36724289 0.91939897 -0.14084814
-vn 0.34874278 0.87308361 0.34073961
-vn 0.0000000e+0 0.96108401 0.27625628
-vn -1.9164607e-2 0.99409750 -0.10678429
-vn 0.0000000e+0 0.96108401 0.27625628
-vn 0.43656100 0.83918947 0.32430777
-vn 0.50427448 0.85860405 -9.2229808e-2
-vn 9.6505640e-2 -0.98655171 0.13191807
-vn 0.31890558 -0.93276809 0.16805628
-vn 9.7356475e-2 -0.99524958 0.0000000e+0
-vn 0.32350669 -0.94622588 0.0000000e+0
-vn 0.0000000e+0 0.96108401 0.27625628
-vn 0.43656100 0.83918947 0.32430777
-vn 0.42702825 0.82086493 0.37924616
-vn 0.0000000e+0 0.94033441 0.34025166
-vn 9.6505640e-2 -0.98655171 0.13191807
-vn -1.1166894e-2 -0.99988794 -9.9704414e-3
-vn 0.38916924 -0.91867155 6.7748717e-2
-vn 0.31890558 -0.93276809 0.16805628
-vn 0.17877724 -0.98386157 -7.4236827e-3
-vn 0.31484356 -0.93485312 0.16408281
-vn 0.17764671 -0.97763993 0.11252476
-vn 0.31890277 -0.94690597 4.0866878e-2
-vn 0.31484356 -0.93485312 0.16408281
-vn 0.88691408 0.0000000e+0 0.46193442
-vn 0.82350309 0.0000000e+0 0.56731178
-vn 0.31890277 -0.94690597 4.0866878e-2
-vn 0.88691408 0.0000000e+0 0.46193442
-vn 0.34874278 0.87308361 0.34073961
-vn 0.82350309 0.0000000e+0 0.56731178
-vn 0.42279812 0.82385482 0.37749832
-vn 0.43656100 0.83918947 0.32430777
-vn 0.88691408 0.0000000e+0 0.46193442
-vn 0.82350309 0.0000000e+0 0.56731178
-vn 0.42702825 0.82086493 0.37924616
-g cube1_cube1_auv
-usemtl cube1_auv
-f 1/38/2 16/39/87 3/37/17
-f 1/38/8 20/34/114 22/35/126
-f 1/38/6 24/33/136 27/36/151
-f 1/5/4 28/13/157 2/9/15
-f 2/9/11 14/4/77 1/5/1
-f 2/9/14 28/13/156 21/19/117
-f 3/20/16 16/7/86 4/18/21
-f 3/37/18 20/34/109 1/38/3
-f 4/44/20 14/40/78 2/43/12
-f 4/18/22 20/24/110 3/20/19
-f 4/18/26 21/19/122 19/22/106
-f 5/14/28 28/13/155 6/10/31
-f 6/10/32 18/15/97 5/14/29
-f 6/32/33 24/33/132 17/31/91
-f 6/10/34 28/13/160 27/8/152
-f 7/17/37 18/15/95 8/12/41
-f 7/17/40 40/15/222 25/21/143
-f 8/12/43 18/15/99 17/11/93
-f 8/30/44 24/33/135 26/29/147
-f 8/12/45 40/15/221 7/17/39
-f 8/30/46 46/33/259 39/31/218
-f 9/25/51 20/24/112 19/22/104
-f 9/25/50 21/19/115 11/23/61
-f 9/25/53 42/24/234 10/27/60
-f 9/25/56 43/19/245 41/22/231
-f 10/27/58 20/24/108 9/25/49
-f 10/26/59 42/34/233 12/28/69
-f 11/23/63 43/19/241 9/25/54
-f 12/28/65 20/34/107 10/26/57
-f 12/28/66 24/33/131 22/35/123
-f 12/28/71 42/34/239 44/35/251
-f 12/28/72 46/33/263 26/29/150
-f 13/3/75 1/5/10 14/4/81
-f 13/41/73 16/39/88 1/38/7
-f 14/40/79 4/44/27 15/42/84
-f 14/4/80 16/1/90 13/3/74
-f 15/6/83 4/18/24 16/7/89
-f 15/2/82 16/1/85 14/4/76
-f 17/11/94 18/15/101 6/10/36
-f 17/31/92 24/33/133 8/30/42
-f 18/15/102 25/21/142 23/16/130
-f 18/15/98 28/13/158 5/14/30
-f 19/22/103 20/24/111 4/18/25
-f 19/22/105 21/19/119 9/25/52
-f 21/19/116 4/18/23 2/9/13
-f 21/19/118 25/21/140 11/23/62
-f 21/19/121 28/13/159 23/16/128
-f 22/35/125 20/34/113 12/28/67
-f 22/35/124 24/33/134 1/38/5
-f 23/16/127 25/21/141 21/19/120
-f 23/16/129 28/13/162 18/15/100
-f 25/21/139 18/15/96 7/17/38
-f 25/21/144 43/19/244 11/23/64
-f 26/29/148 24/33/137 12/28/68
-f 26/29/149 46/33/261 8/30/48
-f 27/36/154 24/33/138 6/32/35
-f 27/8/153 28/13/161 1/5/9
-f 29/5/163 36/4/203 30/9/173
-f 29/38/169 38/39/214 35/41/199
-f 29/38/165 42/34/235 31/37/180
-f 29/38/167 46/33/260 44/35/250
-f 29/5/171 48/13/275 47/8/267
-f 30/9/175 32/18/185 43/19/242
-f 30/43/174 36/40/204 32/44/182
-f 30/9/177 48/13/271 29/5/166
-f 31/37/179 38/39/213 29/38/164
-f 31/20/181 42/24/236 32/18/184
-f 32/18/183 38/7/212 31/20/178
-f 32/18/187 42/24/237 41/22/229
-f 33/14/191 40/15/223 34/10/194
-f 33/14/192 48/13/272 40/15/224
-f 34/10/198 40/15/227 39/11/220
-f 34/32/197 46/33/264 47/36/268
-f 34/10/193 48/13/269 33/14/190
-f 35/3/200 38/1/216 36/4/206
-f 36/4/207 29/5/172 35/3/201
-f 36/4/202 38/1/211 37/2/208
-f 37/42/210 32/44/189 36/40/205
-f 38/7/215 32/18/186 37/6/209
-f 39/11/219 40/15/225 8/12/47
-f 39/31/217 46/33/258 34/32/195
-f 40/15/226 48/13/276 45/16/255
-f 41/22/230 42/24/238 9/25/55
-f 41/22/232 43/19/248 32/18/188
-f 43/19/246 25/21/145 45/16/253
-f 43/19/243 48/13/270 30/9/176
-f 44/35/252 42/34/240 29/38/170
-f 44/35/249 46/33/257 12/28/70
-f 45/16/256 25/21/146 40/15/228
-f 45/16/254 48/13/273 43/19/247
-f 47/36/265 46/33/262 29/38/168
-f 47/8/266 48/13/274 34/10/196
diff --git a/grafika_projekt/src/Render_Utils.cpp b/grafika_projekt/src/Render_Utils.cpp
new file mode 100644
index 0000000..b3d06fb
--- /dev/null
+++ b/grafika_projekt/src/Render_Utils.cpp
@@ -0,0 +1,169 @@
+#include "Render_Utils.h"
+
+#include
+
+#include "glew.h"
+#include "freeglut.h"
+#include
+#include
+#include
+
+
+void Core::RenderContext::initFromOBJ(obj::Model& model)
+{
+ vertexArray = 0;
+ vertexBuffer = 0;
+ vertexIndexBuffer = 0;
+ unsigned int vertexDataBufferSize = sizeof(float) * model.vertex.size();
+ unsigned int vertexNormalBufferSize = sizeof(float) * model.normal.size();
+ unsigned int vertexTexBufferSize = sizeof(float) * model.texCoord.size();
+
+ size = model.faces["default"].size();
+ unsigned int vertexElementBufferSize = sizeof(unsigned short) * size;
+
+
+ glGenVertexArrays(1, &vertexArray);
+ glBindVertexArray(vertexArray);
+
+
+ glGenBuffers(1, &vertexIndexBuffer);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vertexIndexBuffer);
+ glBufferData(GL_ELEMENT_ARRAY_BUFFER, vertexElementBufferSize, &model.faces["default"][0], GL_STATIC_DRAW);
+
+ glGenBuffers(1, &vertexBuffer);
+ glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
+
+ glEnableVertexAttribArray(0);
+ glEnableVertexAttribArray(1);
+ glEnableVertexAttribArray(2);
+
+ glBufferData(GL_ARRAY_BUFFER, vertexDataBufferSize + vertexNormalBufferSize + vertexTexBufferSize, NULL, GL_STATIC_DRAW);
+
+ glBufferSubData(GL_ARRAY_BUFFER, 0, vertexDataBufferSize, &model.vertex[0]);
+
+ glBufferSubData(GL_ARRAY_BUFFER, vertexDataBufferSize, vertexNormalBufferSize, &model.normal[0]);
+
+ glBufferSubData(GL_ARRAY_BUFFER, vertexDataBufferSize + vertexNormalBufferSize, vertexTexBufferSize, &model.texCoord[0]);
+
+ glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (void*)(0));
+ glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, 0, (void*)(vertexDataBufferSize));
+ glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, (void*)(vertexNormalBufferSize + vertexDataBufferSize));
+}
+
+
+void Core::RenderContext::initFromAssimpMesh(aiMesh* mesh) {
+ vertexArray = 0;
+ vertexBuffer = 0;
+ vertexIndexBuffer = 0;
+
+ std::vector textureCoord;
+ std::vector indices;
+ //tex coord must be converted to 2d vecs
+ for (unsigned int i = 0; i < mesh->mNumVertices; i++)
+ {
+ if (mesh->mTextureCoords[0] != nullptr) {
+ textureCoord.push_back(mesh->mTextureCoords[0][i].x);
+ textureCoord.push_back(mesh->mTextureCoords[0][i].y);
+ }
+ else {
+ textureCoord.push_back(0.0f);
+ textureCoord.push_back(0.0f);
+ }
+ }
+ if (mesh->mTextureCoords[0] == nullptr) {
+ std::cout << "no uv coords\n";
+ }
+ for (unsigned int i = 0; i < mesh->mNumFaces; i++)
+ {
+ aiFace face = mesh->mFaces[i];
+ // retrieve all indices of the face and store them in the indices vector
+ for (unsigned int j = 0; j < face.mNumIndices; j++)
+ indices.push_back(face.mIndices[j]);
+ }
+
+ unsigned int vertexDataBufferSize = sizeof(float) * mesh->mNumVertices * 3;
+ unsigned int vertexNormalBufferSize = sizeof(float) * mesh->mNumVertices * 3;
+ unsigned int vertexTexBufferSize = sizeof(float) * mesh->mNumVertices * 2;
+ unsigned int vertexTangentBufferSize = sizeof(float) * mesh->mNumVertices * 3;
+ unsigned int vertexBiTangentBufferSize = sizeof(float) * mesh->mNumVertices * 3;
+
+ unsigned int vertexElementBufferSize = sizeof(unsigned int) * indices.size();
+ size = indices.size();
+
+ glGenVertexArrays(1, &vertexArray);
+ glBindVertexArray(vertexArray);
+
+
+ glGenBuffers(1, &vertexIndexBuffer);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vertexIndexBuffer);
+ glBufferData(GL_ELEMENT_ARRAY_BUFFER, vertexElementBufferSize, &indices[0], GL_STATIC_DRAW);
+
+ glGenBuffers(1, &vertexBuffer);
+ glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
+ //std::cout << vertexBuffer;
+ glEnableVertexAttribArray(0);
+ glEnableVertexAttribArray(1);
+ glEnableVertexAttribArray(2);
+ glEnableVertexAttribArray(3);
+ glEnableVertexAttribArray(4);
+
+ glBufferData(GL_ARRAY_BUFFER, vertexDataBufferSize + vertexNormalBufferSize + vertexTexBufferSize + vertexTangentBufferSize + vertexBiTangentBufferSize, NULL, GL_STATIC_DRAW);
+
+ glBufferSubData(GL_ARRAY_BUFFER, 0, vertexDataBufferSize, mesh->mVertices);
+
+ glBufferSubData(GL_ARRAY_BUFFER, vertexDataBufferSize, vertexNormalBufferSize, mesh->mNormals);
+
+ glBufferSubData(GL_ARRAY_BUFFER, vertexDataBufferSize + vertexNormalBufferSize, vertexTexBufferSize, &textureCoord[0]);
+
+ glBufferSubData(GL_ARRAY_BUFFER, vertexDataBufferSize + vertexNormalBufferSize + vertexTexBufferSize, vertexTangentBufferSize, mesh->mTangents);
+
+ glBufferSubData(GL_ARRAY_BUFFER, vertexDataBufferSize + vertexNormalBufferSize + vertexTexBufferSize + vertexTangentBufferSize, vertexBiTangentBufferSize, mesh->mBitangents);
+
+ glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (void*)(0));
+ glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, (void*)(vertexDataBufferSize));
+ glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 0, (void*)(vertexNormalBufferSize + vertexDataBufferSize));
+ glVertexAttribPointer(3, 3, GL_FLOAT, GL_FALSE, 0, (void*)(vertexDataBufferSize + vertexNormalBufferSize + vertexTexBufferSize));
+ glVertexAttribPointer(4, 3, GL_FLOAT, GL_FALSE, 0, (void*)(vertexDataBufferSize + vertexNormalBufferSize + vertexTexBufferSize + vertexTangentBufferSize));
+
+}
+
+void Core::DrawVertexArray(const float * vertexArray, int numVertices, int elementSize )
+{
+ glVertexAttribPointer(0, elementSize, GL_FLOAT, false, 0, vertexArray);
+ glEnableVertexAttribArray(0);
+
+ glDrawArrays(GL_TRIANGLES, 0, numVertices);
+}
+
+void Core::DrawVertexArrayIndexed( const float * vertexArray, const int * indexArray, int numIndexes, int elementSize )
+{
+ glVertexAttribPointer(0, elementSize, GL_FLOAT, false, 0, vertexArray);
+ glEnableVertexAttribArray(0);
+
+ glDrawElements(GL_TRIANGLES, numIndexes, GL_UNSIGNED_INT, indexArray);
+}
+
+
+void Core::DrawVertexArray( const VertexData & data )
+{
+ int numAttribs = std::min(VertexData::MAX_ATTRIBS, data.NumActiveAttribs);
+ for(int i = 0; i < numAttribs; i++)
+ {
+ glVertexAttribPointer(i, data.Attribs[i].Size, GL_FLOAT, false, 0, data.Attribs[i].Pointer);
+ glEnableVertexAttribArray(i);
+ }
+ glDrawArrays(GL_TRIANGLES, 0, data.NumVertices);
+}
+
+void Core::DrawContext(Core::RenderContext& context)
+{
+
+ glBindVertexArray(context.vertexArray);
+ glDrawElements(
+ GL_TRIANGLES, // mode
+ context.size, // count
+ GL_UNSIGNED_INT, // type
+ (void*)0 // element array buffer offset
+ );
+ glBindVertexArray(0);
+}
diff --git a/grafika_projekt/src/Render_Utils.h b/grafika_projekt/src/Render_Utils.h
new file mode 100644
index 0000000..052008d
--- /dev/null
+++ b/grafika_projekt/src/Render_Utils.h
@@ -0,0 +1,72 @@
+#pragma once
+#include "glm.hpp"
+#include "glew.h"
+#include "objload.h"
+#include
+#include
+#include
+
+#define BUFFER_OFFSET(i) ((char *)NULL + (i))
+
+namespace Core
+{
+ struct RenderContext
+ {
+ GLuint vertexArray;
+ GLuint vertexBuffer;
+ GLuint vertexIndexBuffer;
+ int size = 0;
+
+ void initFromOBJ(obj::Model& model);
+
+ void initFromAssimpMesh(aiMesh* mesh);
+ };
+
+ // vertexArray - jednowymiarowa tablica zawierajaca wartosci opisujace pozycje kolejnych wierzcholkow w jednym ciagu (x1, y1, z1, w1, x2, y2, z2, w2, ...)
+ // numVertices - liczba wierzcholkow do narysowania
+ // elementSize - liczba wartosci opisujacych pojedynczy wierzcholek (np. 3 gdy wierzcholek opisany jest trojka (x, y, z))
+ void DrawVertexArray(const float * vertexArray, int numVertices, int elementSize);
+
+ // indexArray - jednowymiarowa tablica zawierajaca indeksy wierzcholkow kolejnych trojkatow w jednym ciagu (t1_i1, t1_i2, t1_i3, t2_i1, t2_i2, t2_i3, ...)
+ // numIndexes - liczba indeksow w tablicy indexArray
+ void DrawVertexArrayIndexed(const float * vertexArray, const int * indexArray, int numIndexes, int elementSize);
+
+
+ struct VertexAttribute
+ {
+ const void * Pointer;
+ int Size;
+ };
+
+ struct VertexData
+ {
+ static const int MAX_ATTRIBS = 8;
+ VertexAttribute Attribs[MAX_ATTRIBS];
+ int NumActiveAttribs;
+ int NumVertices;
+ };
+
+ // Ta funkcja sluzy do rysowania trojkatow, ktorych wierzcholki moga byc opisane wiecej niz jednym atrybutem.
+ // Funkcja przyjmuje jako parametr strukture, w ktorej nalezy zawrzec wszystkie potrzebne dane.
+ //
+ // Przykladowe wywolanie funkcji - narysowanie trojkata jak na pierwszych zajeciach:
+ /*
+
+ const float vertices[] = {
+ 0.25f, 0.25f, 0.0f, 1.0f,
+ 0.25f, -0.25f, 0.0f, 1.0f,
+ -0.25f, -0.25f, 0.0f, 1.0f
+ };
+
+ Core::VertexData vertexData;
+ vertexData.NumActiveAttribs = 1; // Liczba uzywanych atrybutow wierzcholka
+ vertexData.Attribs[0].Pointer = vertices; // Wskaznik na dane zerowego atrybutu
+ vertexData.Attribs[0].Size = 4; // Wielkosc zerowego atrybutu (ilosc liczb opisujacych ten atrybut w pojedynczym wierzcholku)
+ vertexData.NumVertices = 3; // Liczba wierzcholkow do narysowania
+ Core::DrawVertexArray(vertexData);
+
+ */
+ void DrawVertexArray(const VertexData & data);
+
+ void DrawContext(RenderContext& context);
+}
\ No newline at end of file
diff --git a/grafika_projekt/src/Texture.cpp b/grafika_projekt/src/Texture.cpp
new file mode 100644
index 0000000..d60c568
--- /dev/null
+++ b/grafika_projekt/src/Texture.cpp
@@ -0,0 +1,36 @@
+#include "Texture.h"
+
+#include
+#include
+#include
+#include "SOIL/SOIL.h"
+
+typedef unsigned char byte;
+
+GLuint Core::LoadTexture( const char * filepath )
+{
+ GLuint id;
+ glGenTextures(1, &id);
+ glBindTexture(GL_TEXTURE_2D, id);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+ int w, h;
+ unsigned char* image = SOIL_load_image(filepath, &w, &h, 0, SOIL_LOAD_RGBA);
+
+
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, image);
+ glGenerateMipmap(GL_TEXTURE_2D);
+ SOIL_free_image_data(image);
+
+ return id;
+}
+
+void Core::SetActiveTexture(GLuint textureID, const char * shaderVariableName, GLuint programID, int textureUnit)
+{
+ glUniform1i(glGetUniformLocation(programID, shaderVariableName), textureUnit);
+ glActiveTexture(GL_TEXTURE0 + textureUnit);
+ glBindTexture(GL_TEXTURE_2D, textureID);
+}
diff --git a/grafika_projekt/src/Texture.h b/grafika_projekt/src/Texture.h
new file mode 100644
index 0000000..910228e
--- /dev/null
+++ b/grafika_projekt/src/Texture.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "glew.h"
+#include "freeglut.h"
+
+namespace Core
+{
+ GLuint LoadTexture(const char * filepath);
+
+ // textureID - identyfikator tekstury otrzymany z funkcji LoadTexture
+ // shaderVariableName - nazwa zmiennej typu 'sampler2D' w shaderze, z ktora ma zostac powiazana tekstura
+ // programID - identyfikator aktualnego programu karty graficznej
+ // textureUnit - indeks jednostki teksturujacej - liczba od 0 do 7. Jezeli uzywa sie wielu tekstur w jednym shaderze, to kazda z nich nalezy powiazac z inna jednostka.
+ void SetActiveTexture(GLuint textureID, const char * shaderVariableName, GLuint programID, int textureUnit);
+}
\ No newline at end of file
diff --git a/grafika_projekt/src/main.cpp b/grafika_projekt/src/main.cpp
index 4ea2f2d..e55bcd4 100644
--- a/grafika_projekt/src/main.cpp
+++ b/grafika_projekt/src/main.cpp
@@ -8,15 +8,19 @@
#include
#include "Shader_Loader.h"
+#include "Render_Utils.h"
+#include "Texture.h"
#include "Camera.h"
#include "SOIL/stb_image_aug.h"
GLuint skyboxProgram, skyboxBuffer;
+GLuint programColor;
+GLuint programTexture;
unsigned int cubemapTexture, skyboxVAO;
float old_x, old_y = -1;
glm::vec3 cursorDiff;
-
+glm::vec3 lightDir = glm::normalize(glm::vec3(1.0f, -0.9f, -1.0f));
glm::vec3 cameraPos = glm::vec3(0, 0, 5);
glm::vec3 cameraDir; // Wektor "do przodu" kamery
glm::vec3 cameraSide; // Wektor "w bok" kamery
@@ -24,10 +28,10 @@ float cameraAngle = 0;
glm::quat rotation = glm::quat(1, 0, 0, 0);
-
glm::mat4 cameraMatrix, perspectiveMatrix;
Core::Shader_Loader shaderLoader;
+Core::RenderContext fishContext;
std::string skyboxTextures[6] = {
"models/skybox/right.jpg",
@@ -127,6 +131,42 @@ glm::mat4 createCameraMatrix()
return Core::createViewMatrixQuat(cameraPos, rotation);
}
+void drawObjectColor(Core::RenderContext context, glm::mat4 modelMatrix, glm::vec3 color)
+{
+ GLuint program = programColor;
+
+ glUseProgram(program);
+
+ glUniform3f(glGetUniformLocation(program, "objectColor"), color.x, color.y, color.z);
+ glUniform3f(glGetUniformLocation(program, "lightDir"), lightDir.x, lightDir.y, lightDir.z);
+
+ glm::mat4 transformation = perspectiveMatrix * cameraMatrix * modelMatrix;
+ glUniformMatrix4fv(glGetUniformLocation(program, "modelViewProjectionMatrix"), 1, GL_FALSE, (float*)&transformation);
+ glUniformMatrix4fv(glGetUniformLocation(program, "modelMatrix"), 1, GL_FALSE, (float*)&modelMatrix);
+
+ Core::DrawContext(context);
+
+ glUseProgram(0);
+}
+
+void drawObjectTexture(Core::RenderContext context, glm::mat4 modelMatrix, GLuint textureId)
+{
+ GLuint program = programTexture;
+
+ glUseProgram(program);
+
+ glUniform3f(glGetUniformLocation(program, "lightDir"), lightDir.x, lightDir.y, lightDir.z);
+ Core::SetActiveTexture(textureId, "textureSampler", program, 0);
+
+ glm::mat4 transformation = perspectiveMatrix * cameraMatrix * modelMatrix;
+ glUniformMatrix4fv(glGetUniformLocation(program, "modelViewProjectionMatrix"), 1, GL_FALSE, (float*)&transformation);
+ glUniformMatrix4fv(glGetUniformLocation(program, "modelMatrix"), 1, GL_FALSE, (float*)&modelMatrix);
+
+ Core::DrawContext(context);
+
+ glUseProgram(0);
+}
+
void renderScene()
{
cameraMatrix = createCameraMatrix();
@@ -144,9 +184,26 @@ void renderScene()
glDrawArrays(GL_TRIANGLES, 0, 36);
glBindVertexArray(0);
+ glm::mat4 fishInitialTransformation = glm::translate(glm::vec3(0, -0.25f, 0)) * glm::rotate(glm::radians(180.0f), glm::vec3(0, 1, 0)) * glm::scale(glm::vec3(0.25f));
+ glm::mat4 fishModelMatrix = glm::translate(cameraPos + cameraDir * 0.5f) * glm::mat4_cast(glm::inverse(rotation)) * fishInitialTransformation;
+ drawObjectColor(fishContext, fishModelMatrix, glm::vec3(0.6f));
+
glutSwapBuffers();
}
+void loadModelToContext(std::string path, Core::RenderContext& context)
+{
+ Assimp::Importer import;
+ const aiScene* scene = import.ReadFile(path, aiProcess_Triangulate | aiProcess_CalcTangentSpace);
+
+ if (!scene || scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode)
+ {
+ std::cout << "ERROR::ASSIMP::" << import.GetErrorString() << std::endl;
+ return;
+ }
+ context.initFromAssimpMesh(scene->mMeshes[0]);
+}
+
unsigned int loadCubemap()
{
unsigned int textureID;
@@ -201,6 +258,7 @@ void init()
glEnable(GL_DEPTH_TEST);
skyboxProgram = shaderLoader.CreateProgram((char *) "shaders/skybox.vert", (char *) "shaders/skybox.frag");
cubemapTexture = loadCubemap();
+
initSkybox();
}
diff --git a/grafika_projekt/src/objload.h b/grafika_projekt/src/objload.h
new file mode 100644
index 0000000..004ab4e
--- /dev/null
+++ b/grafika_projekt/src/objload.h
@@ -0,0 +1,291 @@
+/* Copyright (c) 2012, Gerhard Reitmayr
+ All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+#ifndef OBJLOAD_H_
+#define OBJLOAD_H_
+
+#include
+#include
+#include
+#include
+#include
+#include