Files
TrinityCore/dep/g3dlite/G3D-v9.0 hotfix1.diff
2014-08-22 21:00:56 +02:00

476 lines
14 KiB
Diff

Index: G3D9/G3D.lib/include/G3D/debugAssert.h
===================================================================
--- G3D9/G3D.lib/include/G3D/debugAssert.h (revision 4036)
+++ G3D9/G3D.lib/include/G3D/debugAssert.h (working copy)
@@ -39,10 +39,12 @@
#ifdef G3D_LINUX
// Needed so we can define a global display
// pointer for debugAssert.
+#if 0 /* G3DFIX: Disabled to avoid requirement for X11 libraries */
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#endif
+#endif
/**
@@ -178,6 +180,7 @@
namespace G3D { namespace _internal {
#ifdef G3D_LINUX
+#if 0 /* G3DFIX: Disabled to avoid requirement for X11 libraries */
/**
A pointer to the X11 display. Initially NULL. If set to a
non-null value (e.g. by SDLWindow), debugAssert attempts to use
@@ -194,6 +197,7 @@
*/
extern Window x11Window;
#endif
+#endif
/**
Pops up an assertion dialog or prints an assertion
Index: G3D9/G3D.lib/include/G3D/g3dmath.h
===================================================================
--- G3D9/G3D.lib/include/G3D/g3dmath.h (revision 4036)
+++ G3D9/G3D.lib/include/G3D/g3dmath.h (working copy)
@@ -31,7 +31,7 @@
#include <stdlib.h>
#include <stdint.h>
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && (_MSC_VER < 1000)
// Visual Studio is missing inttypes.h
# ifndef PRId64
# define PRId64 "I64d"
Index: G3D9/G3D.lib/include/G3D/platform.h
===================================================================
--- G3D9/G3D.lib/include/G3D/platform.h (revision 4036)
+++ G3D9/G3D.lib/include/G3D/platform.h (working copy)
@@ -62,6 +62,11 @@
#ifdef _MSC_VER
# define G3D_WINDOWS
+#elif defined(__MINGW32__)
+ #define G3D_WINDOWS
+ #undef __MSVCRT_VERSION__
+ #define __MSVCRT_VERSION__ 0x0601
+ #include <windows.h>
#elif defined(__FreeBSD__) || defined(__OpenBSD__)
#define G3D_FREEBSD
#define G3D_LINUX
@@ -68,7 +73,7 @@
#elif defined(__linux__)
#define G3D_LINUX
#elif defined(__APPLE__)
- #define G3D_OSX
+ #define G3D_LINUX
// Prevent OS X fp.h header from being included; it defines
// pi as a constant, which creates a conflict with G3D
@@ -80,9 +85,6 @@
/** \def G3D_64BIT */
/** \def G3D_32BIT */
-#ifndef _MSC_VER
-# define override
-#endif
/** Define the g++ thread-local syntax on all platforms (since the MSVC version would be hard to emulate with a macro) */
Index: G3D9/G3D.lib/source/BinaryInput.cpp
===================================================================
--- G3D9/G3D.lib/source/BinaryInput.cpp (revision 4036)
+++ G3D9/G3D.lib/source/BinaryInput.cpp (working copy)
@@ -38,8 +38,10 @@
#include "G3D/fileutils.h"
#include "G3D/Log.h"
#include "G3D/FileSystem.h"
-#include "../../zlib.lib/include/zlib.h"
+#include <zlib.h>
+#if _HAVE_ZIP /* G3DFIX: Use ZIP-library only if defined */
#include "../../zip.lib/include/zip.h"
+#endif
#include <cstring>
namespace G3D {
@@ -126,6 +128,7 @@
setEndian(fileEndian);
+#if _HAVE_ZIP /* G3DFIX: Use ZIP-library only if defined */
std::string zipfile;
if (FileSystem::inZipfile(m_filename, zipfile)) {
// Load from zipfile
@@ -162,7 +165,7 @@
m_freeBuffer = true;
return;
}
-
+#endif
// Figure out how big the file is and verify that it exists.
m_length = FileSystem::size(m_filename);
Index: G3D9/G3D.lib/source/BinaryOutput.cpp
===================================================================
--- G3D9/G3D.lib/source/BinaryOutput.cpp (revision 4036)
+++ G3D9/G3D.lib/source/BinaryOutput.cpp (working copy)
@@ -14,7 +14,7 @@
#include "G3D/FileSystem.h"
#include "G3D/stringutils.h"
#include "G3D/Array.h"
-#include "../../zlib.lib/include/zlib.h"
+#include <zlib.h>
#include "G3D/Log.h"
#include <cstring>
Index: G3D9/G3D.lib/source/debugAssert.cpp
===================================================================
--- G3D9/G3D.lib/source/debugAssert.cpp (revision 4036)
+++ G3D9/G3D.lib/source/debugAssert.cpp (working copy)
@@ -37,9 +37,11 @@
AssertionHook _failureHook = _handleErrorCheck_;
#ifdef G3D_LINUX
+#if 0 /* G3DFIX: Disabled to avoid requirement for X11 libraries */
Display* x11Display = NULL;
Window x11Window = 0;
#endif
+#endif
#ifdef G3D_WINDOWS
@@ -250,6 +252,7 @@
ClipCursor(NULL);
#elif defined(G3D_LINUX)
+#if 0 /* G3DFIX: Disabled to avoid requirement for X11 libraries */
if (x11Display != NULL) {
XUngrabPointer(x11Display, CurrentTime);
XUngrabKeyboard(x11Display, CurrentTime);
@@ -264,6 +267,7 @@
XAllowEvents(x11Display, AsyncPointer, CurrentTime);
XFlush(x11Display);
}
+#endif
#elif defined(G3D_OSX)
// TODO: OS X
#endif
Index: G3D9/G3D.lib/source/FileSystem.cpp
===================================================================
--- G3D9/G3D.lib/source/FileSystem.cpp (revision 4036)
+++ G3D9/G3D.lib/source/FileSystem.cpp (working copy)
@@ -12,7 +12,9 @@
#include "G3D/fileutils.h"
#include <sys/stat.h>
#include <sys/types.h>
-#include "zip.h"
+#if _HAVE_ZIP /* G3DFIX: Use ZIP-library only if defined */
+ #include "zip.h"
+#endif
#include "G3D/g3dfnmatch.h"
#include "G3D/BinaryInput.h"
#include "G3D/BinaryOutput.h"
@@ -23,8 +25,11 @@
// Needed for _findfirst
# include <io.h>
-
+# ifdef __MINGW32__
+# define stat64 stat
+# else
# define stat64 _stat64
+# endif
#else
# include <dirent.h>
# include <fnmatch.h>
@@ -81,6 +86,7 @@
void FileSystem::Dir::computeZipListing(const std::string& zipfile, const std::string& _pathInsideZipfile) {
+#if _HAVE_ZIP /* G3DFIX: Use ZIP-library only if defined */
const std::string& pathInsideZipfile = FilePath::canonicalize(_pathInsideZipfile);
struct zip* z = zip_open( FilePath::removeTrailingSlash(zipfile).c_str(), ZIP_CHECKCONS, NULL );
debugAssert(z);
@@ -131,6 +137,7 @@
zip_close(z);
z = NULL;
+#endif
}
@@ -574,6 +581,7 @@
int result = stat64(filename.c_str(), &st);
if (result == -1) {
+#if _HAVE_ZIP /* G3DFIX: Use ZIP-library only if defined */
std::string zip, contents;
if (zipfileExists(filename, zip, contents)) {
int64 requiredMem;
@@ -591,8 +599,11 @@
zip_close(z);
return requiredMem;
} else {
+#endif
return -1;
- }
+#if _HAVE_ZIP /* G3DFIX: Use ZIP-library only if defined */
+ }
+#endif
}
return st.st_size;
Index: G3D9/G3D.lib/source/fileutils.cpp
===================================================================
--- G3D9/G3D.lib/source/fileutils.cpp (revision 4036)
+++ G3D9/G3D.lib/source/fileutils.cpp (working copy)
@@ -21,7 +21,9 @@
#include <sys/stat.h>
#include <sys/types.h>
-#include "zip.h"
+#if _HAVE_ZIP /* G3DFIX: Use ZIP-library only if defined */
+ #include "zip.h"
+#endif
#ifdef G3D_WINDOWS
// Needed for _getcwd
@@ -133,6 +135,7 @@
// In zipfile
FileSystem::markFileUsed(zipfile);
+#if _HAVE_ZIP /* G3DFIX: Use ZIP-library only if defined */
// Zipfiles require Unix-style slashes
std::string internalFile = FilePath::canonicalize(filename.substr(zipfile.length() + 1));
struct zip* z = zip_open(zipfile.c_str(), ZIP_CHECKCONS, NULL);
@@ -160,6 +163,7 @@
System::alignedFree(buffer);
}
zip_close( z );
+#endif
}
return s;
@@ -171,6 +175,7 @@
int result = _stat(filename.c_str(), &st);
if (result == -1) {
+#if _HAVE_ZIP /* G3DFIX: Use ZIP-library only if defined */
std::string zip, contents;
if(zipfileExists(filename, zip, contents)){
int64 requiredMem;
@@ -190,6 +195,9 @@
} else {
return -1;
}
+#else
+ return -1;
+#endif
}
return st.st_size;
@@ -286,6 +294,7 @@
///////////////////////////////////////////////////////////////////////////////
+#if _HAVE_ZIP /* G3DFIX: Use ZIP-library only if defined */
/* Helper methods for zipfileExists()*/
// Given a string (the drive) and an array (the path), computes the directory
static void _zip_resolveDirectory(std::string& completeDir, const std::string& drive, const Array<std::string>& path, const int length){
@@ -319,12 +328,13 @@
}
return true;
}
+#endif
/** If no zipfile exists, outZipfile and outInternalFile are unchanged */
bool zipfileExists(const std::string& filename, std::string& outZipfile,
std::string& outInternalFile){
-
+#if _HAVE_ZIP /* G3DFIX: Use ZIP-library only if defined */
Array<std::string> path;
std::string drive, base, ext, zipfile, infile;
parseFilename(filename, drive, path, base, ext);
@@ -386,7 +396,7 @@
}
}
-
+#endif
// not a valid directory structure ever,
// obviously no .zip was found within the path
return false;
@@ -671,7 +681,7 @@
# endif
}
-
+#if _HAVE_ZIP /* G3DFIX: Use ZIP-library only if defined */
/**
@param path The zipfile name (no trailing slash)
@param prefix Directory inside the zipfile. No leading slash, must have trailing slash if non-empty.
@@ -722,6 +732,7 @@
}
}
}
+#endif
static void getFileOrDirListZip(const std::string& path,
@@ -729,6 +740,7 @@
Array<std::string>& files,
bool wantFiles,
bool includePath){
+#if _HAVE_ZIP /* G3DFIX: Use ZIP-library only if defined */
struct zip *z = zip_open( path.c_str(), ZIP_CHECKCONS, NULL );
Set<std::string> fileSet;
@@ -744,6 +756,7 @@
zip_close( z );
fileSet.getMembers(files);
+#endif
}
Index: G3D9/G3D.lib/source/Matrix4.cpp
===================================================================
--- G3D9/G3D.lib/source/Matrix4.cpp (revision 4036)
+++ G3D9/G3D.lib/source/Matrix4.cpp (working copy)
@@ -405,7 +405,7 @@
// If the bit patterns are identical, they must be
// the same matrix. If not, they *might* still have
// equal elements due to floating point weirdness.
- if (memcmp(this, &other, sizeof(Matrix4) == 0)) {
+ if (memcmp(this, &other, sizeof(Matrix4)) == 0) {
return true;
}
Index: G3D9/G3D.lib/source/prompt.cpp
===================================================================
--- G3D9/G3D.lib/source/prompt.cpp (revision 4036)
+++ G3D9/G3D.lib/source/prompt.cpp (working copy)
@@ -21,6 +21,7 @@
# define _getch getchar
#endif
+#if 0 /* G3DFIX: exclude GUI prompt code */
#ifdef G3D_OSX
/*#ifdef __LP64__
@@ -37,9 +38,11 @@
*/
#endif
+#endif /* G3DFIX: exclude GUI prompt code */
namespace G3D {
+#if 0 /* G3DFIX: exclude GUI prompt code */
#ifdef G3D_WINDOWS
namespace _internal {
@@ -469,6 +472,7 @@
}
#endif
+#endif /* G3DFIX: exclude GUI prompt code */
/**
@@ -531,6 +535,7 @@
return c;
}
+#if 0 /* G3DFIX: exclude GUI prompt code */
#ifdef G3D_OSX
static int guiPrompt
@@ -544,6 +549,7 @@
#endif
+#endif /* G3DFIX: exclude GUI prompt code */
int prompt(
const char* windowTitle,
const char* prompt,
@@ -550,7 +556,7 @@
const char** choice,
int numChoices,
bool useGui) {
-
+#if 0 /* G3DFIX: exclude GUI prompt code */
#ifdef G3D_WINDOWS
if (useGui) {
// Build the message box
@@ -566,6 +572,7 @@
return result;
}
#endif
+#endif /* G3DFIX: exclude GUI prompt code */
return textPrompt(windowTitle, prompt, choice, numChoices);
}
Index: G3D9/G3D.lib/source/RegistryUtil.cpp
===================================================================
--- G3D9/G3D.lib/source/RegistryUtil.cpp (revision 4036)
+++ G3D9/G3D.lib/source/RegistryUtil.cpp (working copy)
@@ -16,6 +16,14 @@
#include "G3D/RegistryUtil.h"
#include "G3D/System.h"
+#ifdef __MINGW32__
+# ifndef HKEY_PERFORMANCE_TEXT
+# define HKEY_PERFORMANCE_TEXT ((HKEY)((LONG)0x80000050))
+# endif
+# ifndef HKEY_PERFORMANCE_NLSTEXT
+# define HKEY_PERFORMANCE_NLSTEXT ((HKEY)((LONG)0x80000060))
+# endif
+#endif
namespace G3D {
// static helpers
Index: G3D9/G3D.lib/source/System.cpp
===================================================================
--- G3D9/G3D.lib/source/System.cpp (revision 4036)
+++ G3D9/G3D.lib/source/System.cpp (working copy)
@@ -587,7 +587,7 @@
#endif
}
-#if defined(G3D_WINDOWS) && defined(_M_IX86)
+#if defined(G3D_WINDOWS) && defined(_M_IX86) && !defined(__MINGW32__) /* G3DFIX: Don't check if on 64-bit Windows platforms or using MinGW */
// 32-bit
/** Michael Herf's fast memcpy. Assumes 16-byte alignment */
void memcpyMMX(void* dst, const void* src, int nbytes) {
@@ -641,7 +641,7 @@
#endif
void System::memcpy(void* dst, const void* src, size_t numBytes) {
-#if defined(G3D_WINDOWS) && defined(_M_IX86)
+#if defined(G3D_WINDOWS) && defined(_M_IX86) && !defined(__MINGW32__) /* G3DFIX: Don't check if on 64-bit Windows platforms or using MinGW */
// The overhead of our memcpy seems to only be worthwhile on large arrays
if (((size_t)dst % 16 == 0) && ((size_t)src % 16 == 0) && (numBytes > 3400000)) {
memcpyMMX(dst, src, numBytes);
@@ -656,7 +656,7 @@
/** Michael Herf's fastest memset. n32 must be filled with the same
character repeated. */
-#if defined(G3D_WINDOWS) && defined(_M_IX86)
+#if defined(G3D_WINDOWS) && defined(_M_IX86) && !defined(__MINGW32__) /* G3DFIX: Don't check if on 64-bit Windows platforms or using MinGW */
// On x86 processors, use MMX
void memfill(void *dst, int n32, unsigned long i) {
@@ -694,7 +694,7 @@
void System::memset(void* dst, uint8 value, size_t numBytes) {
alwaysAssertM(dst != NULL, "Cannot memset NULL address.");
-#if defined(G3D_WINDOWS) && defined(_M_IX86)
+#if defined(G3D_WINDOWS) && defined(_M_IX86) && !defined(__MINGW32__) /* G3DFIX: Don't check if on 64-bit Windows platforms or using MinGW */
if ((((size_t)dst % 16) == 0) && (numBytes >= 512*1024)) {
uint32 v = value;
v = v + (v << 8) + (v << 16) + (v << 24);