aboutsummaryrefslogtreecommitdiff
path: root/dep/g3dlite/G3D-v9.0 hotfix1.diff
diff options
context:
space:
mode:
Diffstat (limited to 'dep/g3dlite/G3D-v9.0 hotfix1.diff')
-rw-r--r--dep/g3dlite/G3D-v9.0 hotfix1.diff475
1 files changed, 475 insertions, 0 deletions
diff --git a/dep/g3dlite/G3D-v9.0 hotfix1.diff b/dep/g3dlite/G3D-v9.0 hotfix1.diff
new file mode 100644
index 00000000000..cd0261d43ad
--- /dev/null
+++ b/dep/g3dlite/G3D-v9.0 hotfix1.diff
@@ -0,0 +1,475 @@
+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);