virtualx-engine/thirdparty/etcpak/patches/windows-mingw-fixes.patch
K. S. Ernest (iFire) Lee d840165a32
Add etcpak library for faster ETC/ETC2/S3TC imports.
- `etc` module was renamed to `etcpak` and modified to use the new library.
- PKM importer is removed in the process, it's obsolete.
- Old library `etc2comp` is removed.
- S3TC compression no longer done via `squish` (but decompression still is).
- Slight modifications to etcpak sources for MinGW compatibility,
  to fix LLVM `-Wc++11-narrowing` errors, and to allow using vendored or
  system libpng.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-04-13 00:12:12 +02:00

63 lines
1.5 KiB
Diff

diff --git a/thirdparty/etcpak/BlockData.cpp b/thirdparty/etcpak/BlockData.cpp
index a2cd032c5b..bd738085f3 100644
--- a/thirdparty/etcpak/BlockData.cpp
+++ b/thirdparty/etcpak/BlockData.cpp
@@ -15,7 +15,7 @@
# include <arm_neon.h>
#endif
-#ifdef __SSE4_1__
+#if defined __SSE4_1__ || defined __AVX2__ || defined _MSC_VER
# ifdef _MSC_VER
# include <intrin.h>
# include <Windows.h>
@@ -24,12 +24,6 @@
# else
# include <x86intrin.h>
# endif
-#else
-# ifndef _MSC_VER
-# include <byteswap.h>
-# define _bswap(x) bswap_32(x)
-# define _bswap64(x) bswap_64(x)
-# endif
#endif
#ifndef _bswap
diff --git a/thirdparty/etcpak/ProcessRGB.cpp b/thirdparty/etcpak/ProcessRGB.cpp
index 220d5c55e2..9dc5a78b67 100644
--- a/thirdparty/etcpak/ProcessRGB.cpp
+++ b/thirdparty/etcpak/ProcessRGB.cpp
@@ -1,5 +1,6 @@
#include <array>
#include <string.h>
+#include <limits>
#ifdef __ARM_NEON
# include <arm_neon.h>
@@ -21,12 +22,6 @@
# else
# include <x86intrin.h>
# endif
-#else
-# ifndef _MSC_VER
-# include <byteswap.h>
-# define _bswap(x) bswap_32(x)
-# define _bswap64(x) bswap_64(x)
-# endif
#endif
#ifndef _bswap
diff --git a/thirdparty/etcpak/System.cpp b/thirdparty/etcpak/System.cpp
index 1383d0ecd0..a09b289cb2 100644
--- a/thirdparty/etcpak/System.cpp
+++ b/thirdparty/etcpak/System.cpp
@@ -35,7 +35,7 @@ unsigned int System::CPUCores()
void System::SetThreadName( std::thread& thread, const char* name )
{
-#ifdef _WIN32
+#ifdef _MSC_VER
const DWORD MS_VC_EXCEPTION=0x406D1388;
# pragma pack( push, 8 )