From c6aefd391c8f70436021c023dcc81dda5cf3e806 Mon Sep 17 00:00:00 2001 From: jmarshallnz Date: Thu, 6 May 2010 05:08:28 +0000 Subject: changed: moved cpluff to build in-line. Requires libexpat - see wiki for build info. git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk@29832 568bbfeb-2a22-0410-94d2-cc84cf5bfa90 --- lib/cpluff/kazlib/hash.h | 4 + lib/cpluff/kazlib/list.h | 4 + lib/cpluff/libcpluff/cpluff.h | 2 +- lib/cpluff/libcpluff/cpluffdef_win32.h | 200 -------------------- lib/cpluff/libcpluff/internal.h | 8 +- lib/cpluff/libcpluff/pcontrol.c | 3 + lib/cpluff/libcpluff/psymbol.c | 3 + lib/cpluff/libcpluff/win32/cpluff.vcproj | 286 +++++++++++++++++++++++++++++ lib/cpluff/libcpluff/win32/cpluffdef.h | 211 +++++++++++++++++++++ lib/cpluff/libcpluff/win32/dirent.c | 231 +++++++++++++++++++++++ lib/cpluff/libcpluff/win32/dirent.h | 61 ++++++ project/VS2008Express/XBMC for Windows.sln | 220 ++++++++++++++++++++++ system/cpluff.dll | Bin 392549 -> 0 bytes 13 files changed, 1031 insertions(+), 202 deletions(-) delete mode 100644 lib/cpluff/libcpluff/cpluffdef_win32.h create mode 100644 lib/cpluff/libcpluff/win32/cpluff.vcproj create mode 100644 lib/cpluff/libcpluff/win32/cpluffdef.h create mode 100644 lib/cpluff/libcpluff/win32/dirent.c create mode 100644 lib/cpluff/libcpluff/win32/dirent.h delete mode 100644 system/cpluff.dll diff --git a/lib/cpluff/kazlib/hash.h b/lib/cpluff/kazlib/hash.h index 1fbd2462c7..50297eed8e 100644 --- a/lib/cpluff/kazlib/hash.h +++ b/lib/cpluff/kazlib/hash.h @@ -27,7 +27,11 @@ #ifndef HASH_H #define HASH_H +#ifdef _WIN32 +#include "../libcpluff/win32/cpluffdef.h" +#else #include "../libcpluff/cpluffdef.h" +#endif #include #ifdef KAZLIB_SIDEEFFECT_DEBUG diff --git a/lib/cpluff/kazlib/list.h b/lib/cpluff/kazlib/list.h index c449acbb54..ccad262327 100644 --- a/lib/cpluff/kazlib/list.h +++ b/lib/cpluff/kazlib/list.h @@ -27,7 +27,11 @@ #ifndef LIST_H #define LIST_H +#ifdef _WIN32 +#include "../libcpluff/win32/cpluffdef.h" +#else #include "../libcpluff/cpluffdef.h" +#endif #include diff --git a/lib/cpluff/libcpluff/cpluff.h b/lib/cpluff/libcpluff/cpluff.h index da90130a1f..12d65a7956 100644 --- a/lib/cpluff/libcpluff/cpluff.h +++ b/lib/cpluff/libcpluff/cpluff.h @@ -39,7 +39,7 @@ */ #ifdef _WIN32 -#include "cpluffdef_win32.h" +#include "win32/cpluffdef.h" #else #include "cpluffdef.h" #endif diff --git a/lib/cpluff/libcpluff/cpluffdef_win32.h b/lib/cpluff/libcpluff/cpluffdef_win32.h deleted file mode 100644 index c529386702..0000000000 --- a/lib/cpluff/libcpluff/cpluffdef_win32.h +++ /dev/null @@ -1,200 +0,0 @@ -/*------------------------------------------------------------------------- - * C-Pluff, a plug-in framework for C - * Copyright 2007 Johannes Lehtinen - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *-----------------------------------------------------------------------*/ - -/** @file - * Common defines shared by C-Pluff C and C++ APIs. - * This file is automatically included by the top level C and C++ - * API header files. There should be no need to include it explicitly. - */ - -#ifndef CPLUFFDEF_H_ -#define CPLUFFDEF_H_ - - -/* ------------------------------------------------------------------------ - * Version information - * ----------------------------------------------------------------------*/ - -/** - * @defgroup versionInfo Version information - * @ingroup cDefines cxxDefines - * - * C-Pluff version information. Notice that this version information - * is static version information included in header files. The - * macros introduced here can be used for compile time checks. - */ -/*@{*/ - -/** - * The C-Pluff release version string. This string identifies a specific - * version of the C-Pluff distribution. Compile time software compatibility - * checks should use #CP_VERSION_MAJOR and #CP_VERSION_MINOR instead. - */ -#define CP_VERSION "0.1.3" - -/** - * The major version number component of the release version. This is an - * integer. - */ -#define CP_VERSION_MAJOR 0 - -/** - * The minor version number component of the release version. This is an - * integer. - */ -#define CP_VERSION_MINOR 1 - -/*@}*/ - - -/* ------------------------------------------------------------------------ - * Symbol visibility - * ----------------------------------------------------------------------*/ - -/** - * @defgroup symbolVisibility Symbol visibility - * @ingroup cDefines cxxDefines - * - * Macros for controlling inter-module symbol visibility and linkage. These - * macros have platform specific values. #CP_EXPORT, #CP_IMPORT and #CP_HIDDEN - * can be reused by plug-in implementations for better portability. The - * complexity is mostly due to Windows DLL exports and imports. - * - * @anchor symbolVisibilityExample - * Each module should usually define its own macro to declare API symbols with - * #CP_EXPORT and #CP_IMPORT as necessary. For example, a mobule could define - * a macro @c MY_API in the API header file as follows. - * - * @code - * #ifndef MY_API - * # define MY_API CP_IMPORT - * #endif - * @endcode - * - * By default the API symbols would then be marked for import which is correct - * when client modules are including the API header file. When compiling the - * module itself the option @c -DMY_API=CP_EXPORT would be passed to the compiler to - * override the API header file and to mark the API symbols for export. - * The overriding definition could also be included in module source files or - * in an internal header file before including the API header file. - */ -/*@{*/ - -/** - * @def CP_EXPORT - * - * Declares a symbol to be exported for inter-module usage. When compiling the - * module which defines the symbol this macro should be placed - * at the start of the symbol declaration to ensure that the symbol is exported - * to other modules. However, when compiling other modules the declaration of - * the symbol should start with #CP_IMPORT. - * See @ref symbolVisibilityExample "the example" of how to do this. - */ - -/** - * @def CP_IMPORT - * - * Declares a symbol to be imported from another module. When compiling a - * module which uses the symbol this macro should be placed at the start of - * the symbol declaration to ensure that the symbol is imported from the - * defining module. However, when compiling the defining module the declaration - * of the symbol should start with #CP_EXPORT. - * See @ref symbolVisibilityExample "the example" of how to do this. - */ - -/** - * @def CP_HIDDEN - * - * Declares a symbol hidden from other modules. This macro should be - * placed at the start of the symbol declaration to hide the symbol from other - * modules (if supported by the platform). This macro is not intended to be - * used with symbols declared as "static" which are already internal to the - * object file. Some platforms do not support hiding of symbols and therefore - * unique prefixes should be used for global symbols internal to the module - * even when they are declared using this macro. - */ - -#if defined(_WIN32) -# define CP_EXPORT __declspec(dllexport) -# define CP_IMPORT extern __declspec(dllimport) -# define CP_HIDDEN -#elif defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) -# define CP_EXPORT -# define CP_IMPORT extern -# define CP_HIDDEN __attribute__ ((visibility ("hidden"))) -#else -# define CP_EXPORT -# define CP_IMPORT extern -# define CP_HIDDEN -#endif - -/*@}*/ - - -/* ------------------------------------------------------------------------ - * GCC attributes - * ----------------------------------------------------------------------*/ - -/** - * @defgroup cDefinesGCCAttributes GCC attributes - * @ingroup cDefines cxxDefines - * - * These macros conditionally define GCC attributes for declarations. - * They are used in C-Pluff API declarations to enable better optimization - * and error checking when using GCC. In non-GCC platforms they have - * empty values. - */ -/*@{*/ - -/** - * @def CP_GCC_PURE - * - * Declares a function as pure function having no side effects. - * This attribute is supported in GCC since version 2.96. - * Such functions can be subject to common subexpression elimination - * and loop optimization. - */ - -/** - * @def CP_GCC_NONNULL - * - * Specifies that some pointer arguments to a function should have - * non-NULL values. Takes a variable length list of argument indexes as - * arguments. This attribute is supported in GCC since version 3.3. - * It can be used for enhanced error checking and some optimizations. - */ - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) -#define CP_GCC_PURE __attribute__((pure)) -#else -#define CP_GCC_PURE -#endif -#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) -#define CP_GCC_NONNULL(...) __attribute__((nonnull (__VA_ARGS__))) -#else -#define CP_GCC_NONNULL(...) -#endif - -/*@}*/ - -#endif /*CPLUFFDEF_H_*/ diff --git a/lib/cpluff/libcpluff/internal.h b/lib/cpluff/libcpluff/internal.h index 91989e8451..161ba6de07 100644 --- a/lib/cpluff/libcpluff/internal.h +++ b/lib/cpluff/libcpluff/internal.h @@ -83,7 +83,13 @@ extern "C" { * Macros * ----------------------------------------------------------------------*/ -#if defined(DLOPEN_POSIX) +#if defined(_WIN32) +#define DLHANDLE void * +#define DLOPEN(name) LoadLibraryA(name) +#define DLSYM(handle, symbol) GetProcAddress(handle, symbol) +#define DLCLOSE(handle) CloseHandle(handle) +#define DLERROR() "WIN32 - TODO" +#elif defined(DLOPEN_POSIX) #define DLHANDLE void * #define DLOPEN(name) dlopen((name), RTLD_LAZY | RTLD_GLOBAL) #define DLSYM(handle, symbol) dlsym((handle), (symbol)) diff --git a/lib/cpluff/libcpluff/pcontrol.c b/lib/cpluff/libcpluff/pcontrol.c index c7da6cfbab..38d0de4134 100644 --- a/lib/cpluff/libcpluff/pcontrol.c +++ b/lib/cpluff/libcpluff/pcontrol.c @@ -40,6 +40,9 @@ #include "defines.h" #include "util.h" #include "internal.h" +#ifdef _WIN32 +#include +#endif /* ------------------------------------------------------------------------ diff --git a/lib/cpluff/libcpluff/psymbol.c b/lib/cpluff/libcpluff/psymbol.c index ccf9ea697a..632b087324 100644 --- a/lib/cpluff/libcpluff/psymbol.c +++ b/lib/cpluff/libcpluff/psymbol.c @@ -33,6 +33,9 @@ #include "defines.h" #include "internal.h" #include "util.h" +#ifdef _WIN32 +#include +#endif /* ------------------------------------------------------------------------ diff --git a/lib/cpluff/libcpluff/win32/cpluff.vcproj b/lib/cpluff/libcpluff/win32/cpluff.vcproj new file mode 100644 index 0000000000..b41e7e8e26 --- /dev/null +++ b/lib/cpluff/libcpluff/win32/cpluff.vcproj @@ -0,0 +1,286 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/cpluff/libcpluff/win32/cpluffdef.h b/lib/cpluff/libcpluff/win32/cpluffdef.h new file mode 100644 index 0000000000..6f7742b903 --- /dev/null +++ b/lib/cpluff/libcpluff/win32/cpluffdef.h @@ -0,0 +1,211 @@ +/*------------------------------------------------------------------------- + * C-Pluff, a plug-in framework for C + * Copyright 2007 Johannes Lehtinen + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *-----------------------------------------------------------------------*/ + +/** @file + * Common defines shared by C-Pluff C and C++ APIs. + * This file is automatically included by the top level C and C++ + * API header files. There should be no need to include it explicitly. + */ + +#ifndef CPLUFFDEF_H_ +#define CPLUFFDEF_H_ + + +/* ------------------------------------------------------------------------ + * Version information + * ----------------------------------------------------------------------*/ + +/** + * @defgroup versionInfo Version information + * @ingroup cDefines cxxDefines + * + * C-Pluff version information. Notice that this version information + * is static version information included in header files. The + * macros introduced here can be used for compile time checks. + */ +/*@{*/ + +/** + * The C-Pluff release version string. This string identifies a specific + * version of the C-Pluff distribution. Compile time software compatibility + * checks should use #CP_VERSION_MAJOR and #CP_VERSION_MINOR instead. + */ +#define CP_VERSION "0.1.3" + +/** + * The major version number component of the release version. This is an + * integer. + */ +#define CP_VERSION_MAJOR 0 + +/** + * The minor version number component of the release version. This is an + * integer. + */ +#define CP_VERSION_MINOR 1 + +/*@}*/ + + +/* ------------------------------------------------------------------------ + * Symbol visibility + * ----------------------------------------------------------------------*/ + +/** + * @defgroup symbolVisibility Symbol visibility + * @ingroup cDefines cxxDefines + * + * Macros for controlling inter-module symbol visibility and linkage. These + * macros have platform specific values. #CP_EXPORT, #CP_IMPORT and #CP_HIDDEN + * can be reused by plug-in implementations for better portability. The + * complexity is mostly due to Windows DLL exports and imports. + * + * @anchor symbolVisibilityExample + * Each module should usually define its own macro to declare API symbols with + * #CP_EXPORT and #CP_IMPORT as necessary. For example, a mobule could define + * a macro @c MY_API in the API header file as follows. + * + * @code + * #ifndef MY_API + * # define MY_API CP_IMPORT + * #endif + * @endcode + * + * By default the API symbols would then be marked for import which is correct + * when client modules are including the API header file. When compiling the + * module itself the option @c -DMY_API=CP_EXPORT would be passed to the compiler to + * override the API header file and to mark the API symbols for export. + * The overriding definition could also be included in module source files or + * in an internal header file before including the API header file. + */ +/*@{*/ + +/** + * @def CP_EXPORT + * + * Declares a symbol to be exported for inter-module usage. When compiling the + * module which defines the symbol this macro should be placed + * at the start of the symbol declaration to ensure that the symbol is exported + * to other modules. However, when compiling other modules the declaration of + * the symbol should start with #CP_IMPORT. + * See @ref symbolVisibilityExample "the example" of how to do this. + */ + +/** + * @def CP_IMPORT + * + * Declares a symbol to be imported from another module. When compiling a + * module which uses the symbol this macro should be placed at the start of + * the symbol declaration to ensure that the symbol is imported from the + * defining module. However, when compiling the defining module the declaration + * of the symbol should start with #CP_EXPORT. + * See @ref symbolVisibilityExample "the example" of how to do this. + */ + +/** + * @def CP_HIDDEN + * + * Declares a symbol hidden from other modules. This macro should be + * placed at the start of the symbol declaration to hide the symbol from other + * modules (if supported by the platform). This macro is not intended to be + * used with symbols declared as "static" which are already internal to the + * object file. Some platforms do not support hiding of symbols and therefore + * unique prefixes should be used for global symbols internal to the module + * even when they are declared using this macro. + */ + +#if defined(_WIN32) +# define CP_EXPORT __declspec(dllexport) +# define CP_IMPORT extern __declspec(dllimport) +# define CP_HIDDEN +#elif defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) +# define CP_EXPORT +# define CP_IMPORT extern +# define CP_HIDDEN __attribute__ ((visibility ("hidden"))) +#else +# define CP_EXPORT +# define CP_IMPORT extern +# define CP_HIDDEN +#endif +/*@}*/ + + +/* ------------------------------------------------------------------------ + * GCC attributes + * ----------------------------------------------------------------------*/ + +/** + * @defgroup cDefinesGCCAttributes GCC attributes + * @ingroup cDefines cxxDefines + * + * These macros conditionally define GCC attributes for declarations. + * They are used in C-Pluff API declarations to enable better optimization + * and error checking when using GCC. In non-GCC platforms they have + * empty values. + */ +/*@{*/ + +/** + * @def CP_GCC_PURE + * + * Declares a function as pure function having no side effects. + * This attribute is supported in GCC since version 2.96. + * Such functions can be subject to common subexpression elimination + * and loop optimization. + */ + +/** + * @def CP_GCC_NONNULL + * + * Specifies that some pointer arguments to a function should have + * non-NULL values. Takes a variable length list of argument indexes as + * arguments. This attribute is supported in GCC since version 3.3. + * It can be used for enhanced error checking and some optimizations. + */ + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) +#define CP_GCC_PURE __attribute__((pure)) +#else +#define CP_GCC_PURE +#endif +#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) +#define CP_GCC_NONNULL(...) __attribute__((nonnull (__VA_ARGS__))) +#else +#define CP_GCC_NONNULL(...) +#endif + +/*@}*/ + +#ifdef _WIN32 +#ifndef __func__ +# define __func__ __FUNCTION__ +#endif +#ifndef snprintf +#define snprintf _snprintf +#endif +#define CP_HOST "win32" +#define CP_SHREXT ".dll" +#define CP_FNAMESEP_CHAR "\\" // If we switch back to special:// paths then this can be '/' instead +#define CP_THREADS +#endif +#endif /*CPLUFFDEF_H_*/ diff --git a/lib/cpluff/libcpluff/win32/dirent.c b/lib/cpluff/libcpluff/win32/dirent.c new file mode 100644 index 0000000000..db72f39d37 --- /dev/null +++ b/lib/cpluff/libcpluff/win32/dirent.c @@ -0,0 +1,231 @@ +/* + + Implementation of POSIX directory browsing functions and types for Win32. + + Author: Kevlin Henney (kevlin@acm.org, kevlin@curbralan.com) + History: Created March 1997. Updated June 2003. + Rights: See end of file. + +*/ + +#include "dirent.h" +#include +#include /* _findfirst and _findnext set errno iff they return -1 */ +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +struct DIR +{ + long handle; /* -1 for failed rewind */ + struct _finddata_t info; + struct dirent result; /* d_name null iff first time */ + char *name; /* null-terminated char string */ +}; + +DIR *opendir(const char *name) +{ + DIR *dir = 0; + + if(name && name[0]) + { + size_t base_length = strlen(name); + const char *all = /* search pattern must end with suitable wildcard */ + strchr("/\\", name[base_length - 1]) ? "*" : "/*"; + + if((dir = (DIR *) malloc(sizeof *dir)) != 0 && + (dir->name = (char *) malloc(base_length + strlen(all) + 1)) != 0) + { + strcat(strcpy(dir->name, name), all); + + if((dir->handle = (long) _findfirst(dir->name, &dir->info)) != -1) + { + dir->result.d_name = 0; + } + else /* rollback */ + { + free(dir->name); + free(dir); + dir = 0; + } + } + else /* rollback */ + { + free(dir); + dir = 0; + errno = ENOMEM; + } + } + else + { + errno = EINVAL; + } + + return dir; +} + +int closedir(DIR *dir) +{ + int result = -1; + + if(dir) + { + if(dir->handle != -1) + { + result = _findclose(dir->handle); + } + + free(dir->name); + free(dir); + } + + if(result == -1) /* map all errors to EBADF */ + { + errno = EBADF; + } + + return result; +} + +struct dirent *readdir(DIR *dir) +{ + struct dirent *result = 0; + + if(dir && dir->handle != -1) + { + if(!dir->result.d_name || _findnext(dir->handle, &dir->info) != -1) + { + result = &dir->result; + result->d_name = dir->info.name; + } + } + else + { + errno = EBADF; + } + + return result; +} + +void rewinddir(DIR *dir) +{ + if(dir && dir->handle != -1) + { + _findclose(dir->handle); + dir->handle = (long) _findfirst(dir->name, &dir->info); + dir->result.d_name = 0; + } + else + { + errno = EBADF; + } +} + +// helper for scandir below +static void scandir_free_dir_entries(struct dirent*** namelist, int entries) { + int i; + if (!*namelist) return; + for (i = 0; i < entries; ++i) { + free((*namelist)[i]); + } + free(*namelist); + *namelist = 0; +} + +// returns the number of directory entries select or -1 if an error occurs +int scandir( + const char* dir, + struct dirent*** namelist, + int(*filter)(const struct dirent*), + int(*compar)(const void*, const void*) +) { + int entries = 0; + int max_entries = 1024; // assume 2*512 = 1024 entries (used for allocation) + DIR* d; + + *namelist = 0; + + // open directory + d = opendir(dir); + if (!d) return -1; + + // iterate + while (1) { + struct dirent* ent = readdir(d); + if (!ent) break; + + // add if no filter or filter returns non-zero + if (filter && (0 == filter(ent))) continue; + + // resize our buffer if there is not enough room + if (!*namelist || entries >= max_entries) { + struct dirent** new_entries; + + max_entries *= 2; + new_entries = (struct dirent **)realloc(*namelist, max_entries); + if (!new_entries) { + scandir_free_dir_entries(namelist, entries); + closedir(d); + errno = ENOMEM; + return -1; + } + + *namelist = new_entries; + } + + // allocate new entry + (*namelist)[entries] = (struct dirent *)malloc(sizeof(struct dirent) + strlen(ent->d_name) + 1); + if (!(*namelist)[entries]) { + scandir_free_dir_entries(namelist, entries); + closedir(d); + errno = ENOMEM; + return -1; + } + + // copy entry info + *(*namelist)[entries] = *ent; + + // and then we tack the string onto the end + { + char* dest = (char*)((*namelist)[entries]) + sizeof(struct dirent); + strcpy(dest, ent->d_name); + (*namelist)[entries]->d_name = dest; + } + + ++entries; + } + + // sort + if (*namelist && compar) qsort(*namelist, entries, sizeof((*namelist)[0]), compar); + + return entries; +} + +int alphasort(const void* lhs, const void* rhs) { + const struct dirent* lhs_ent = *(struct dirent**)lhs; + const struct dirent* rhs_ent = *(struct dirent**)rhs; + return _strcmpi(lhs_ent->d_name, rhs_ent->d_name); +} + +#ifdef __cplusplus +} +#endif + +/* + + Copyright Kevlin Henney, 1997, 2003. All rights reserved. + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose is hereby granted without fee, provided + that this copyright and permissions notice appear in all copies and + derivatives. + + This software is supplied "as is" without express or implied warranty. + + But that said, if there are any problems please get in touch. + +*/ diff --git a/lib/cpluff/libcpluff/win32/dirent.h b/lib/cpluff/libcpluff/win32/dirent.h new file mode 100644 index 0000000000..b41998c6eb --- /dev/null +++ b/lib/cpluff/libcpluff/win32/dirent.h @@ -0,0 +1,61 @@ + +#ifndef DIRENT_INCLUDED +#define DIRENT_INCLUDED + +/* + + Declaration of POSIX directory browsing functions and types for Win32. + + Author: Kevlin Henney (kevlin@acm.org, kevlin@curbralan.com) + History: Created March 1997. Updated June 2003. + Rights: See end of file. + +*/ + +#ifdef __cplusplus +extern "C" +{ +#endif + +typedef struct DIR DIR; + +#ifndef WIN32 +static int errno; +#endif + +struct dirent +{ + char *d_name; +}; + +DIR *opendir(const char *); +int closedir(DIR *); +struct dirent *readdir(DIR *); +void rewinddir(DIR *); +int scandir( + const char* dir, + struct dirent*** namelist, + int(*filter)(const struct dirent*), + int(*compar)(const void*, const void*) ); +int alphasort(const void* lhs, const void* rhs); + +/* + + Copyright Kevlin Henney, 1997, 2003. All rights reserved. + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose is hereby granted without fee, provided + that this copyright and permissions notice appear in all copies and + derivatives. + + This software is supplied "as is" without express or implied warranty. + + But that said, if there are any problems please get in touch. + +*/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/project/VS2008Express/XBMC for Windows.sln b/project/VS2008Express/XBMC for Windows.sln index 240980b44b..0cc054818d 100644 --- a/project/VS2008Express/XBMC for Windows.sln +++ b/project/VS2008Express/XBMC for Windows.sln @@ -152,418 +152,638 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libNoseFartXBMC_dll", "..\. EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsidplay_dll", "..\..\xbmc\cores\paplayer\SIDCodec\libsidplay\win\VC\libsidplay.vcproj", "{FB3AB83A-C37A-4636-87FD-827F8506A8FC}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpluff", "..\..\lib\cpluff\libcpluff\win32\cpluff.vcproj", "{88968763-3D6B-48A8-B495-CC8C187FAC02}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug (DirectX)|Win32 = Debug (DirectX)|Win32 Debug (OpenGL)|Win32 = Debug (OpenGL)|Win32 + Debug|Win32 = Debug|Win32 Release (DirectX)|Win32 = Release (DirectX)|Win32 Release (OpenGL)|Win32 = Release (OpenGL)|Win32 + Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {3A68081D-E8F9-4523-9436-530DE9E5530A}.Debug (DirectX)|Win32.ActiveCfg = Debug (DirectX)|Win32 {3A68081D-E8F9-4523-9436-530DE9E5530A}.Debug (DirectX)|Win32.Build.0 = Debug (DirectX)|Win32 {3A68081D-E8F9-4523-9436-530DE9E5530A}.Debug (OpenGL)|Win32.ActiveCfg = Debug (OpenGL)|Win32 {3A68081D-E8F9-4523-9436-530DE9E5530A}.Debug (OpenGL)|Win32.Build.0 = Debug (OpenGL)|Win32 + {3A68081D-E8F9-4523-9436-530DE9E5530A}.Debug|Win32.ActiveCfg = Debug (OpenGL)|Win32 + {3A68081D-E8F9-4523-9436-530DE9E5530A}.Debug|Win32.Build.0 = Debug (OpenGL)|Win32 {3A68081D-E8F9-4523-9436-530DE9E5530A}.Release (DirectX)|Win32.ActiveCfg = Release (DirectX)|Win32 {3A68081D-E8F9-4523-9436-530DE9E5530A}.Release (DirectX)|Win32.Build.0 = Release (DirectX)|Win32 {3A68081D-E8F9-4523-9436-530DE9E5530A}.Release (OpenGL)|Win32.ActiveCfg = Release (OpenGL)|Win32 {3A68081D-E8F9-4523-9436-530DE9E5530A}.Release (OpenGL)|Win32.Build.0 = Release (OpenGL)|Win32 + {3A68081D-E8F9-4523-9436-530DE9E5530A}.Release|Win32.ActiveCfg = Release (DirectX)|Win32 + {3A68081D-E8F9-4523-9436-530DE9E5530A}.Release|Win32.Build.0 = Release (DirectX)|Win32 {510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}.Debug (DirectX)|Win32.ActiveCfg = Debug (DirectX)|Win32 {510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}.Debug (DirectX)|Win32.Build.0 = Debug (DirectX)|Win32 {510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}.Debug (OpenGL)|Win32.ActiveCfg = Debug (OpenGL)|Win32 {510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}.Debug (OpenGL)|Win32.Build.0 = Debug (OpenGL)|Win32 + {510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}.Debug|Win32.ActiveCfg = Debug (OpenGL)|Win32 + {510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}.Debug|Win32.Build.0 = Debug (OpenGL)|Win32 {510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}.Release (DirectX)|Win32.ActiveCfg = Release (DirectX)|Win32 {510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}.Release (DirectX)|Win32.Build.0 = Release (DirectX)|Win32 {510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}.Release (OpenGL)|Win32.ActiveCfg = Release (OpenGL)|Win32 {510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}.Release (OpenGL)|Win32.Build.0 = Release (OpenGL)|Win32 + {510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}.Release|Win32.ActiveCfg = Release (DirectX)|Win32 + {510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}.Release|Win32.Build.0 = Release (DirectX)|Win32 {B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Debug|Win32.ActiveCfg = Debug|Win32 + {B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Debug|Win32.Build.0 = Debug|Win32 {B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Release (DirectX)|Win32.Build.0 = Release|Win32 {B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Release|Win32.ActiveCfg = Release|Win32 + {B2975495-FBE4-4F94-AAC5-B21A9842BF50}.Release|Win32.Build.0 = Release|Win32 {FE0A91C0-E30A-47CD-8A92-A508C9292452}.Debug (DirectX)|Win32.ActiveCfg = Debug (DirectX)|Win32 {FE0A91C0-E30A-47CD-8A92-A508C9292452}.Debug (DirectX)|Win32.Build.0 = Debug (DirectX)|Win32 {FE0A91C0-E30A-47CD-8A92-A508C9292452}.Debug (OpenGL)|Win32.ActiveCfg = Debug (OpenGL)|Win32 {FE0A91C0-E30A-47CD-8A92-A508C9292452}.Debug (OpenGL)|Win32.Build.0 = Debug (OpenGL)|Win32 + {FE0A91C0-E30A-47CD-8A92-A508C9292452}.Debug|Win32.ActiveCfg = Debug (OpenGL)|Win32 + {FE0A91C0-E30A-47CD-8A92-A508C9292452}.Debug|Win32.Build.0 = Debug (OpenGL)|Win32 {FE0A91C0-E30A-47CD-8A92-A508C9292452}.Release (DirectX)|Win32.ActiveCfg = Release (DirectX)|Win32 {FE0A91C0-E30A-47CD-8A92-A508C9292452}.Release (DirectX)|Win32.Build.0 = Release (DirectX)|Win32 {FE0A91C0-E30A-47CD-8A92-A508C9292452}.Release (OpenGL)|Win32.ActiveCfg = Release (OpenGL)|Win32 {FE0A91C0-E30A-47CD-8A92-A508C9292452}.Release (OpenGL)|Win32.Build.0 = Release (OpenGL)|Win32 + {FE0A91C0-E30A-47CD-8A92-A508C9292452}.Release|Win32.ActiveCfg = Release (DirectX)|Win32 + {FE0A91C0-E30A-47CD-8A92-A508C9292452}.Release|Win32.Build.0 = Release (DirectX)|Win32 {00700E12-A63B-4E54-B962-4011A90584BD}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {00700E12-A63B-4E54-B962-4011A90584BD}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {00700E12-A63B-4E54-B962-4011A90584BD}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {00700E12-A63B-4E54-B962-4011A90584BD}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {00700E12-A63B-4E54-B962-4011A90584BD}.Debug|Win32.ActiveCfg = Debug|Win32 + {00700E12-A63B-4E54-B962-4011A90584BD}.Debug|Win32.Build.0 = Debug|Win32 {00700E12-A63B-4E54-B962-4011A90584BD}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {00700E12-A63B-4E54-B962-4011A90584BD}.Release (DirectX)|Win32.Build.0 = Release|Win32 {00700E12-A63B-4E54-B962-4011A90584BD}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {00700E12-A63B-4E54-B962-4011A90584BD}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {00700E12-A63B-4E54-B962-4011A90584BD}.Release|Win32.ActiveCfg = Release|Win32 + {00700E12-A63B-4E54-B962-4011A90584BD}.Release|Win32.Build.0 = Release|Win32 {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Debug|Win32.ActiveCfg = Debug|Win32 + {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Debug|Win32.Build.0 = Debug|Win32 {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Release (DirectX)|Win32.Build.0 = Release|Win32 {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Release|Win32.ActiveCfg = Release|Win32 + {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Release|Win32.Build.0 = Release|Win32 {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug|Win32.ActiveCfg = Debug|Win32 + {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug|Win32.Build.0 = Debug|Win32 {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release (DirectX)|Win32.Build.0 = Release|Win32 {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release|Win32.ActiveCfg = Release|Win32 + {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release|Win32.Build.0 = Release|Win32 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug (DirectX)|Win32.ActiveCfg = Debug Multithreaded|Win32 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug (DirectX)|Win32.Build.0 = Debug Multithreaded|Win32 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug (OpenGL)|Win32.ActiveCfg = Debug Multithreaded|Win32 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug (OpenGL)|Win32.Build.0 = Debug Multithreaded|Win32 + {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32 + {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release (DirectX)|Win32.ActiveCfg = Release Multithreaded|Win32 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release (DirectX)|Win32.Build.0 = Release Multithreaded|Win32 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release (OpenGL)|Win32.ActiveCfg = Release Multithreaded|Win32 {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release (OpenGL)|Win32.Build.0 = Release Multithreaded|Win32 + {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32 + {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32 {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Debug|Win32.ActiveCfg = Debug|Win32 + {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Debug|Win32.Build.0 = Debug|Win32 {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Release (DirectX)|Win32.Build.0 = Release|Win32 {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Release|Win32.ActiveCfg = Release|Win32 + {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Release|Win32.Build.0 = Release|Win32 {5E479372-4F34-426D-AA1E-9879E94C105D}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {5E479372-4F34-426D-AA1E-9879E94C105D}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {5E479372-4F34-426D-AA1E-9879E94C105D}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 + {5E479372-4F34-426D-AA1E-9879E94C105D}.Debug|Win32.ActiveCfg = Debug|Win32 + {5E479372-4F34-426D-AA1E-9879E94C105D}.Debug|Win32.Build.0 = Debug|Win32 {5E479372-4F34-426D-AA1E-9879E94C105D}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {5E479372-4F34-426D-AA1E-9879E94C105D}.Release (DirectX)|Win32.Build.0 = Release|Win32 {5E479372-4F34-426D-AA1E-9879E94C105D}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 + {5E479372-4F34-426D-AA1E-9879E94C105D}.Release|Win32.ActiveCfg = Release|Win32 + {5E479372-4F34-426D-AA1E-9879E94C105D}.Release|Win32.Build.0 = Release|Win32 {482DA264-EE88-4575-B208-87C4CB80CD08}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {482DA264-EE88-4575-B208-87C4CB80CD08}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {482DA264-EE88-4575-B208-87C4CB80CD08}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {482DA264-EE88-4575-B208-87C4CB80CD08}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {482DA264-EE88-4575-B208-87C4CB80CD08}.Debug|Win32.ActiveCfg = Debug|Win32 + {482DA264-EE88-4575-B208-87C4CB80CD08}.Debug|Win32.Build.0 = Debug|Win32 {482DA264-EE88-4575-B208-87C4CB80CD08}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {482DA264-EE88-4575-B208-87C4CB80CD08}.Release (DirectX)|Win32.Build.0 = Release|Win32 {482DA264-EE88-4575-B208-87C4CB80CD08}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {482DA264-EE88-4575-B208-87C4CB80CD08}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {482DA264-EE88-4575-B208-87C4CB80CD08}.Release|Win32.ActiveCfg = Release|Win32 + {482DA264-EE88-4575-B208-87C4CB80CD08}.Release|Win32.Build.0 = Release|Win32 {F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Debug|Win32.ActiveCfg = Debug|Win32 + {F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Debug|Win32.Build.0 = Debug|Win32 {F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Release (DirectX)|Win32.Build.0 = Release|Win32 {F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Release|Win32.ActiveCfg = Release|Win32 + {F9E6874D-60A8-49BA-9393-A2105E63ABCF}.Release|Win32.Build.0 = Release|Win32 {76850A99-4EC7-4196-B3EA-E4120A00E8A6}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {76850A99-4EC7-4196-B3EA-E4120A00E8A6}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {76850A99-4EC7-4196-B3EA-E4120A00E8A6}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {76850A99-4EC7-4196-B3EA-E4120A00E8A6}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {76850A99-4EC7-4196-B3EA-E4120A00E8A6}.Debug|Win32.ActiveCfg = Debug|Win32 + {76850A99-4EC7-4196-B3EA-E4120A00E8A6}.Debug|Win32.Build.0 = Debug|Win32 {76850A99-4EC7-4196-B3EA-E4120A00E8A6}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {76850A99-4EC7-4196-B3EA-E4120A00E8A6}.Release (DirectX)|Win32.Build.0 = Release|Win32 {76850A99-4EC7-4196-B3EA-E4120A00E8A6}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {76850A99-4EC7-4196-B3EA-E4120A00E8A6}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {76850A99-4EC7-4196-B3EA-E4120A00E8A6}.Release|Win32.ActiveCfg = Release|Win32 + {76850A99-4EC7-4196-B3EA-E4120A00E8A6}.Release|Win32.Build.0 = Release|Win32 {5013769A-0784-4CE8-9D9D-09AC7F731B4F}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {5013769A-0784-4CE8-9D9D-09AC7F731B4F}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {5013769A-0784-4CE8-9D9D-09AC7F731B4F}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {5013769A-0784-4CE8-9D9D-09AC7F731B4F}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {5013769A-0784-4CE8-9D9D-09AC7F731B4F}.Debug|Win32.ActiveCfg = Debug|Win32 + {5013769A-0784-4CE8-9D9D-09AC7F731B4F}.Debug|Win32.Build.0 = Debug|Win32 {5013769A-0784-4CE8-9D9D-09AC7F731B4F}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {5013769A-0784-4CE8-9D9D-09AC7F731B4F}.Release (DirectX)|Win32.Build.0 = Release|Win32 {5013769A-0784-4CE8-9D9D-09AC7F731B4F}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {5013769A-0784-4CE8-9D9D-09AC7F731B4F}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {5013769A-0784-4CE8-9D9D-09AC7F731B4F}.Release|Win32.ActiveCfg = Release|Win32 + {5013769A-0784-4CE8-9D9D-09AC7F731B4F}.Release|Win32.Build.0 = Release|Win32 {9E74DF3B-9343-4689-B0EC-4451617F9489}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {9E74DF3B-9343-4689-B0EC-4451617F9489}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {9E74DF3B-9343-4689-B0EC-4451617F9489}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {9E74DF3B-9343-4689-B0EC-4451617F9489}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {9E74DF3B-9343-4689-B0EC-4451617F9489}.Debug|Win32.ActiveCfg = Debug|Win32 + {9E74DF3B-9343-4689-B0EC-4451617F9489}.Debug|Win32.Build.0 = Debug|Win32 {9E74DF3B-9343-4689-B0EC-4451617F9489}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {9E74DF3B-9343-4689-B0EC-4451617F9489}.Release (DirectX)|Win32.Build.0 = Release|Win32 {9E74DF3B-9343-4689-B0EC-4451617F9489}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {9E74DF3B-9343-4689-B0EC-4451617F9489}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {9E74DF3B-9343-4689-B0EC-4451617F9489}.Release|Win32.ActiveCfg = Release|Win32 + {9E74DF3B-9343-4689-B0EC-4451617F9489}.Release|Win32.Build.0 = Release|Win32 {F7C8AE15-B8C1-4F93-A414-EC908F0592B4}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {F7C8AE15-B8C1-4F93-A414-EC908F0592B4}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {F7C8AE15-B8C1-4F93-A414-EC908F0592B4}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {F7C8AE15-B8C1-4F93-A414-EC908F0592B4}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {F7C8AE15-B8C1-4F93-A414-EC908F0592B4}.Debug|Win32.ActiveCfg = Debug|Win32 + {F7C8AE15-B8C1-4F93-A414-EC908F0592B4}.Debug|Win32.Build.0 = Debug|Win32 {F7C8AE15-B8C1-4F93-A414-EC908F0592B4}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {F7C8AE15-B8C1-4F93-A414-EC908F0592B4}.Release (DirectX)|Win32.Build.0 = Release|Win32 {F7C8AE15-B8C1-4F93-A414-EC908F0592B4}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {F7C8AE15-B8C1-4F93-A414-EC908F0592B4}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {F7C8AE15-B8C1-4F93-A414-EC908F0592B4}.Release|Win32.ActiveCfg = Release|Win32 + {F7C8AE15-B8C1-4F93-A414-EC908F0592B4}.Release|Win32.Build.0 = Release|Win32 {D8097C41-605D-4917-8957-9DF7F44A18CD}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {D8097C41-605D-4917-8957-9DF7F44A18CD}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {D8097C41-605D-4917-8957-9DF7F44A18CD}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {D8097C41-605D-4917-8957-9DF7F44A18CD}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {D8097C41-605D-4917-8957-9DF7F44A18CD}.Debug|Win32.ActiveCfg = Debug|Win32 + {D8097C41-605D-4917-8957-9DF7F44A18CD}.Debug|Win32.Build.0 = Debug|Win32 {D8097C41-605D-4917-8957-9DF7F44A18CD}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {D8097C41-605D-4917-8957-9DF7F44A18CD}.Release (DirectX)|Win32.Build.0 = Release|Win32 {D8097C41-605D-4917-8957-9DF7F44A18CD}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {D8097C41-605D-4917-8957-9DF7F44A18CD}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {D8097C41-605D-4917-8957-9DF7F44A18CD}.Release|Win32.ActiveCfg = Release|Win32 + {D8097C41-605D-4917-8957-9DF7F44A18CD}.Release|Win32.Build.0 = Release|Win32 {706163E2-5422-4A94-8464-082ADA8C2769}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {706163E2-5422-4A94-8464-082ADA8C2769}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {706163E2-5422-4A94-8464-082ADA8C2769}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {706163E2-5422-4A94-8464-082ADA8C2769}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {706163E2-5422-4A94-8464-082ADA8C2769}.Debug|Win32.ActiveCfg = Debug|Win32 + {706163E2-5422-4A94-8464-082ADA8C2769}.Debug|Win32.Build.0 = Debug|Win32 {706163E2-5422-4A94-8464-082ADA8C2769}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {706163E2-5422-4A94-8464-082ADA8C2769}.Release (DirectX)|Win32.Build.0 = Release|Win32 {706163E2-5422-4A94-8464-082ADA8C2769}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {706163E2-5422-4A94-8464-082ADA8C2769}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {706163E2-5422-4A94-8464-082ADA8C2769}.Release|Win32.ActiveCfg = Release|Win32 + {706163E2-5422-4A94-8464-082ADA8C2769}.Release|Win32.Build.0 = Release|Win32 {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Debug|Win32.ActiveCfg = Debug|Win32 + {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Debug|Win32.Build.0 = Debug|Win32 {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Release (DirectX)|Win32.Build.0 = Release|Win32 {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Release|Win32.ActiveCfg = Release|Win32 + {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Release|Win32.Build.0 = Release|Win32 {22B25AEC-7223-46FC-8356-4418327EFDE1}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {22B25AEC-7223-46FC-8356-4418327EFDE1}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {22B25AEC-7223-46FC-8356-4418327EFDE1}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {22B25AEC-7223-46FC-8356-4418327EFDE1}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {22B25AEC-7223-46FC-8356-4418327EFDE1}.Debug|Win32.ActiveCfg = Debug|Win32 + {22B25AEC-7223-46FC-8356-4418327EFDE1}.Debug|Win32.Build.0 = Debug|Win32 {22B25AEC-7223-46FC-8356-4418327EFDE1}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {22B25AEC-7223-46FC-8356-4418327EFDE1}.Release (DirectX)|Win32.Build.0 = Release|Win32 {22B25AEC-7223-46FC-8356-4418327EFDE1}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {22B25AEC-7223-46FC-8356-4418327EFDE1}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {22B25AEC-7223-46FC-8356-4418327EFDE1}.Release|Win32.ActiveCfg = Release|Win32 + {22B25AEC-7223-46FC-8356-4418327EFDE1}.Release|Win32.Build.0 = Release|Win32 {7A74ED4B-2BF5-47D7-B43E-C80F714417FB}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {7A74ED4B-2BF5-47D7-B43E-C80F714417FB}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {7A74ED4B-2BF5-47D7-B43E-C80F714417FB}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {7A74ED4B-2BF5-47D7-B43E-C80F714417FB}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {7A74ED4B-2BF5-47D7-B43E-C80F714417FB}.Debug|Win32.ActiveCfg = Debug|Win32 + {7A74ED4B-2BF5-47D7-B43E-C80F714417FB}.Debug|Win32.Build.0 = Debug|Win32 {7A74ED4B-2BF5-47D7-B43E-C80F714417FB}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {7A74ED4B-2BF5-47D7-B43E-C80F714417FB}.Release (DirectX)|Win32.Build.0 = Release|Win32 {7A74ED4B-2BF5-47D7-B43E-C80F714417FB}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {7A74ED4B-2BF5-47D7-B43E-C80F714417FB}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {7A74ED4B-2BF5-47D7-B43E-C80F714417FB}.Release|Win32.ActiveCfg = Release|Win32 + {7A74ED4B-2BF5-47D7-B43E-C80F714417FB}.Release|Win32.Build.0 = Release|Win32 {3B424C94-2005-44CC-BFB1-4B6C89090732}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {3B424C94-2005-44CC-BFB1-4B6C89090732}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {3B424C94-2005-44CC-BFB1-4B6C89090732}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {3B424C94-2005-44CC-BFB1-4B6C89090732}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {3B424C94-2005-44CC-BFB1-4B6C89090732}.Debug|Win32.ActiveCfg = Debug|Win32 + {3B424C94-2005-44CC-BFB1-4B6C89090732}.Debug|Win32.Build.0 = Debug|Win32 {3B424C94-2005-44CC-BFB1-4B6C89090732}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {3B424C94-2005-44CC-BFB1-4B6C89090732}.Release (DirectX)|Win32.Build.0 = Release|Win32 {3B424C94-2005-44CC-BFB1-4B6C89090732}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {3B424C94-2005-44CC-BFB1-4B6C89090732}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {3B424C94-2005-44CC-BFB1-4B6C89090732}.Release|Win32.ActiveCfg = Release|Win32 + {3B424C94-2005-44CC-BFB1-4B6C89090732}.Release|Win32.Build.0 = Release|Win32 {3843C3D4-E5A6-4030-87EC-E7EE57242106}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {3843C3D4-E5A6-4030-87EC-E7EE57242106}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {3843C3D4-E5A6-4030-87EC-E7EE57242106}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {3843C3D4-E5A6-4030-87EC-E7EE57242106}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {3843C3D4-E5A6-4030-87EC-E7EE57242106}.Debug|Win32.ActiveCfg = Debug|Win32 + {3843C3D4-E5A6-4030-87EC-E7EE57242106}.Debug|Win32.Build.0 = Debug|Win32 {3843C3D4-E5A6-4030-87EC-E7EE57242106}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {3843C3D4-E5A6-4030-87EC-E7EE57242106}.Release (DirectX)|Win32.Build.0 = Release|Win32 {3843C3D4-E5A6-4030-87EC-E7EE57242106}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {3843C3D4-E5A6-4030-87EC-E7EE57242106}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {3843C3D4-E5A6-4030-87EC-E7EE57242106}.Release|Win32.ActiveCfg = Release|Win32 + {3843C3D4-E5A6-4030-87EC-E7EE57242106}.Release|Win32.Build.0 = Release|Win32 {88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Debug|Win32.ActiveCfg = Debug|Win32 + {88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Debug|Win32.Build.0 = Debug|Win32 {88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Release (DirectX)|Win32.Build.0 = Release|Win32 {88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Release|Win32.ActiveCfg = Release|Win32 + {88E7E431-3752-4D58-BCD2-A7E6A1B74247}.Release|Win32.Build.0 = Release|Win32 {145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Debug|Win32.ActiveCfg = Debug|Win32 + {145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Debug|Win32.Build.0 = Debug|Win32 {145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Release (DirectX)|Win32.Build.0 = Release|Win32 {145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Release|Win32.ActiveCfg = Release|Win32 + {145287C8-24EA-42FE-8D7D-C13D5E4B054C}.Release|Win32.Build.0 = Release|Win32 {8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Debug|Win32.ActiveCfg = Debug|Win32 + {8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Debug|Win32.Build.0 = Debug|Win32 {8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Release (DirectX)|Win32.Build.0 = Release|Win32 {8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Release|Win32.ActiveCfg = Release|Win32 + {8E5F7DBE-2E8B-4FD2-BFFE-1960CE7EDC09}.Release|Win32.Build.0 = Release|Win32 {783701E9-4A65-4505-97B0-39E580AA680D}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {783701E9-4A65-4505-97B0-39E580AA680D}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {783701E9-4A65-4505-97B0-39E580AA680D}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {783701E9-4A65-4505-97B0-39E580AA680D}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {783701E9-4A65-4505-97B0-39E580AA680D}.Debug|Win32.ActiveCfg = Debug|Win32 + {783701E9-4A65-4505-97B0-39E580AA680D}.Debug|Win32.Build.0 = Debug|Win32 {783701E9-4A65-4505-97B0-39E580AA680D}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {783701E9-4A65-4505-97B0-39E580AA680D}.Release (DirectX)|Win32.Build.0 = Release|Win32 {783701E9-4A65-4505-97B0-39E580AA680D}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {783701E9-4A65-4505-97B0-39E580AA680D}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {783701E9-4A65-4505-97B0-39E580AA680D}.Release|Win32.ActiveCfg = Release|Win32 + {783701E9-4A65-4505-97B0-39E580AA680D}.Release|Win32.Build.0 = Release|Win32 {44BF83C4-F73A-4093-A29A-11B9016318C4}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {44BF83C4-F73A-4093-A29A-11B9016318C4}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {44BF83C4-F73A-4093-A29A-11B9016318C4}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {44BF83C4-F73A-4093-A29A-11B9016318C4}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {44BF83C4-F73A-4093-A29A-11B9016318C4}.Debug|Win32.ActiveCfg = Debug|Win32 + {44BF83C4-F73A-4093-A29A-11B9016318C4}.Debug|Win32.Build.0 = Debug|Win32 {44BF83C4-F73A-4093-A29A-11B9016318C4}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {44BF83C4-F73A-4093-A29A-11B9016318C4}.Release (DirectX)|Win32.Build.0 = Release|Win32 {44BF83C4-F73A-4093-A29A-11B9016318C4}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {44BF83C4-F73A-4093-A29A-11B9016318C4}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {44BF83C4-F73A-4093-A29A-11B9016318C4}.Release|Win32.ActiveCfg = Release|Win32 + {44BF83C4-F73A-4093-A29A-11B9016318C4}.Release|Win32.Build.0 = Release|Win32 {8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Debug|Win32.ActiveCfg = Debug|Win32 + {8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Debug|Win32.Build.0 = Debug|Win32 {8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Release (DirectX)|Win32.Build.0 = Release|Win32 {8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Release|Win32.ActiveCfg = Release|Win32 + {8735F1ED-317D-4F7A-A512-B2BF9DAEA25A}.Release|Win32.Build.0 = Release|Win32 {96798038-06CE-4382-BD5B-F9C366724DEB}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {96798038-06CE-4382-BD5B-F9C366724DEB}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {96798038-06CE-4382-BD5B-F9C366724DEB}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {96798038-06CE-4382-BD5B-F9C366724DEB}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {96798038-06CE-4382-BD5B-F9C366724DEB}.Debug|Win32.ActiveCfg = Debug|Win32 + {96798038-06CE-4382-BD5B-F9C366724DEB}.Debug|Win32.Build.0 = Debug|Win32 {96798038-06CE-4382-BD5B-F9C366724DEB}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {96798038-06CE-4382-BD5B-F9C366724DEB}.Release (DirectX)|Win32.Build.0 = Release|Win32 {96798038-06CE-4382-BD5B-F9C366724DEB}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {96798038-06CE-4382-BD5B-F9C366724DEB}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {96798038-06CE-4382-BD5B-F9C366724DEB}.Release|Win32.ActiveCfg = Release|Win32 + {96798038-06CE-4382-BD5B-F9C366724DEB}.Release|Win32.Build.0 = Release|Win32 {AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Debug (DirectX)|Win32.ActiveCfg = Release (DLL)|Win32 {AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Debug (DirectX)|Win32.Build.0 = Release (DLL)|Win32 {AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Debug (OpenGL)|Win32.ActiveCfg = Release (DLL)|Win32 {AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Debug (OpenGL)|Win32.Build.0 = Release (DLL)|Win32 + {AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Debug|Win32.ActiveCfg = Debug|Win32 + {AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Debug|Win32.Build.0 = Debug|Win32 {AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Release (DirectX)|Win32.ActiveCfg = Release (DLL)|Win32 {AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Release (DirectX)|Win32.Build.0 = Release (DLL)|Win32 {AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Release (OpenGL)|Win32.ActiveCfg = Release (DLL)|Win32 {AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Release (OpenGL)|Win32.Build.0 = Release (DLL)|Win32 + {AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Release|Win32.ActiveCfg = Release|Win32 + {AD20A3E2-09CB-42DB-9A70-27F7CDC886CE}.Release|Win32.Build.0 = Release|Win32 {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Debug|Win32.ActiveCfg = Debug|Win32 + {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Debug|Win32.Build.0 = Debug|Win32 {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Release (DirectX)|Win32.Build.0 = Release|Win32 {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Release|Win32.ActiveCfg = Release|Win32 + {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Release|Win32.Build.0 = Release|Win32 {0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Debug (DirectX)|Win32.ActiveCfg = Debug (DirectX)|Win32 {0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Debug (DirectX)|Win32.Build.0 = Debug (DirectX)|Win32 {0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Debug (OpenGL)|Win32.ActiveCfg = Debug (DirectX)|Win32 + {0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Debug|Win32.ActiveCfg = Debug (DirectX)|Win32 + {0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Debug|Win32.Build.0 = Debug (DirectX)|Win32 {0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Release (DirectX)|Win32.ActiveCfg = Release (DirectX)|Win32 {0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Release (DirectX)|Win32.Build.0 = Release (DirectX)|Win32 {0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Release (OpenGL)|Win32.ActiveCfg = Release (DirectX)|Win32 + {0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Release|Win32.ActiveCfg = Release (DirectX)|Win32 + {0D91724A-E6F6-4708-AF47-9F88BBE2114C}.Release|Win32.Build.0 = Release (DirectX)|Win32 {C15B374E-7126-48FF-B618-A375D7B17FCF}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {C15B374E-7126-48FF-B618-A375D7B17FCF}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {C15B374E-7126-48FF-B618-A375D7B17FCF}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {C15B374E-7126-48FF-B618-A375D7B17FCF}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {C15B374E-7126-48FF-B618-A375D7B17FCF}.Debug|Win32.ActiveCfg = Debug|Win32 + {C15B374E-7126-48FF-B618-A375D7B17FCF}.Debug|Win32.Build.0 = Debug|Win32 {C15B374E-7126-48FF-B618-A375D7B17FCF}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {C15B374E-7126-48FF-B618-A375D7B17FCF}.Release (DirectX)|Win32.Build.0 = Release|Win32 {C15B374E-7126-48FF-B618-A375D7B17FCF}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {C15B374E-7126-48FF-B618-A375D7B17FCF}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {C15B374E-7126-48FF-B618-A375D7B17FCF}.Release|Win32.ActiveCfg = Release|Win32 + {C15B374E-7126-48FF-B618-A375D7B17FCF}.Release|Win32.Build.0 = Release|Win32 {BDD2CB99-93C5-4A70-ACBF-396FFB961AD3}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {BDD2CB99-93C5-4A70-ACBF-396FFB961AD3}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {BDD2CB99-93C5-4A70-ACBF-396FFB961AD3}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {BDD2CB99-93C5-4A70-ACBF-396FFB961AD3}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {BDD2CB99-93C5-4A70-ACBF-396FFB961AD3}.Debug|Win32.ActiveCfg = Debug|Win32 + {BDD2CB99-93C5-4A70-ACBF-396FFB961AD3}.Debug|Win32.Build.0 = Debug|Win32 {BDD2CB99-93C5-4A70-ACBF-396FFB961AD3}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {BDD2CB99-93C5-4A70-ACBF-396FFB961AD3}.Release (DirectX)|Win32.Build.0 = Release|Win32 {BDD2CB99-93C5-4A70-ACBF-396FFB961AD3}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {BDD2CB99-93C5-4A70-ACBF-396FFB961AD3}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {BDD2CB99-93C5-4A70-ACBF-396FFB961AD3}.Release|Win32.ActiveCfg = Release|Win32 + {BDD2CB99-93C5-4A70-ACBF-396FFB961AD3}.Release|Win32.Build.0 = Release|Win32 {DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Debug|Win32.ActiveCfg = Debug|Win32 + {DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Debug|Win32.Build.0 = Debug|Win32 {DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Release (DirectX)|Win32.Build.0 = Release|Win32 {DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Release|Win32.ActiveCfg = Release|Win32 + {DD4818AE-7E35-40B7-A6A0-0FF83AA1C916}.Release|Win32.Build.0 = Release|Win32 {D450FE9A-CE56-4496-B4AB-379094E642F2}.Debug (DirectX)|Win32.ActiveCfg = Debug (DirectX)|Win32 {D450FE9A-CE56-4496-B4AB-379094E642F2}.Debug (DirectX)|Win32.Build.0 = Debug (DirectX)|Win32 {D450FE9A-CE56-4496-B4AB-379094E642F2}.Debug (OpenGL)|Win32.ActiveCfg = Debug (OpenGL)|Win32 {D450FE9A-CE56-4496-B4AB-379094E642F2}.Debug (OpenGL)|Win32.Build.0 = Debug (OpenGL)|Win32 + {D450FE9A-CE56-4496-B4AB-379094E642F2}.Debug|Win32.ActiveCfg = Debug (DirectX)|Win32 + {D450FE9A-CE56-4496-B4AB-379094E642F2}.Debug|Win32.Build.0 = Debug (DirectX)|Win32 {D450FE9A-CE56-4496-B4AB-379094E642F2}.Release (DirectX)|Win32.ActiveCfg = Release (DirectX)|Win32 {D450FE9A-CE56-4496-B4AB-379094E642F2}.Release (DirectX)|Win32.Build.0 = Release (DirectX)|Win32 {D450FE9A-CE56-4496-B4AB-379094E642F2}.Release (OpenGL)|Win32.ActiveCfg = Release (OpenGL)|Win32 {D450FE9A-CE56-4496-B4AB-379094E642F2}.Release (OpenGL)|Win32.Build.0 = Release (OpenGL)|Win32 + {D450FE9A-CE56-4496-B4AB-379094E642F2}.Release|Win32.ActiveCfg = Release (DirectX)|Win32 + {D450FE9A-CE56-4496-B4AB-379094E642F2}.Release|Win32.Build.0 = Release (DirectX)|Win32 {6A8518C3-D81A-4428-BD7F-C37933088AC1}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {6A8518C3-D81A-4428-BD7F-C37933088AC1}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {6A8518C3-D81A-4428-BD7F-C37933088AC1}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {6A8518C3-D81A-4428-BD7F-C37933088AC1}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {6A8518C3-D81A-4428-BD7F-C37933088AC1}.Debug|Win32.ActiveCfg = Debug|Win32 + {6A8518C3-D81A-4428-BD7F-C37933088AC1}.Debug|Win32.Build.0 = Debug|Win32 {6A8518C3-D81A-4428-BD7F-C37933088AC1}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {6A8518C3-D81A-4428-BD7F-C37933088AC1}.Release (DirectX)|Win32.Build.0 = Release|Win32 {6A8518C3-D81A-4428-BD7F-C37933088AC1}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {6A8518C3-D81A-4428-BD7F-C37933088AC1}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {6A8518C3-D81A-4428-BD7F-C37933088AC1}.Release|Win32.ActiveCfg = Release|Win32 + {6A8518C3-D81A-4428-BD7F-C37933088AC1}.Release|Win32.Build.0 = Release|Win32 {CDC43FFE-1BED-44C6-BAB9-5A7E84D6D9FE}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {CDC43FFE-1BED-44C6-BAB9-5A7E84D6D9FE}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {CDC43FFE-1BED-44C6-BAB9-5A7E84D6D9FE}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {CDC43FFE-1BED-44C6-BAB9-5A7E84D6D9FE}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {CDC43FFE-1BED-44C6-BAB9-5A7E84D6D9FE}.Debug|Win32.ActiveCfg = Debug|Win32 + {CDC43FFE-1BED-44C6-BAB9-5A7E84D6D9FE}.Debug|Win32.Build.0 = Debug|Win32 {CDC43FFE-1BED-44C6-BAB9-5A7E84D6D9FE}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {CDC43FFE-1BED-44C6-BAB9-5A7E84D6D9FE}.Release (DirectX)|Win32.Build.0 = Release|Win32 {CDC43FFE-1BED-44C6-BAB9-5A7E84D6D9FE}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {CDC43FFE-1BED-44C6-BAB9-5A7E84D6D9FE}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {CDC43FFE-1BED-44C6-BAB9-5A7E84D6D9FE}.Release|Win32.ActiveCfg = Release|Win32 + {CDC43FFE-1BED-44C6-BAB9-5A7E84D6D9FE}.Release|Win32.Build.0 = Release|Win32 {D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Debug|Win32.ActiveCfg = Debug|Win32 + {D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Debug|Win32.Build.0 = Debug|Win32 {D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Release (DirectX)|Win32.Build.0 = Release|Win32 {D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Release|Win32.ActiveCfg = Release|Win32 + {D9885434-4B9D-41FB-B5FC-5E89D41AEFF0}.Release|Win32.Build.0 = Release|Win32 {F93133AB-EB51-4955-AEDF-639632891042}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {F93133AB-EB51-4955-AEDF-639632891042}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {F93133AB-EB51-4955-AEDF-639632891042}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {F93133AB-EB51-4955-AEDF-639632891042}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {F93133AB-EB51-4955-AEDF-639632891042}.Debug|Win32.ActiveCfg = Debug|Win32 + {F93133AB-EB51-4955-AEDF-639632891042}.Debug|Win32.Build.0 = Debug|Win32 {F93133AB-EB51-4955-AEDF-639632891042}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {F93133AB-EB51-4955-AEDF-639632891042}.Release (DirectX)|Win32.Build.0 = Release|Win32 {F93133AB-EB51-4955-AEDF-639632891042}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {F93133AB-EB51-4955-AEDF-639632891042}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {F93133AB-EB51-4955-AEDF-639632891042}.Release|Win32.ActiveCfg = Release|Win32 + {F93133AB-EB51-4955-AEDF-639632891042}.Release|Win32.Build.0 = Release|Win32 {3039DB92-836E-4563-9DE0-D0C2AB28F14F}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {3039DB92-836E-4563-9DE0-D0C2AB28F14F}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {3039DB92-836E-4563-9DE0-D0C2AB28F14F}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {3039DB92-836E-4563-9DE0-D0C2AB28F14F}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {3039DB92-836E-4563-9DE0-D0C2AB28F14F}.Debug|Win32.ActiveCfg = Debug|Win32 + {3039DB92-836E-4563-9DE0-D0C2AB28F14F}.Debug|Win32.Build.0 = Debug|Win32 {3039DB92-836E-4563-9DE0-D0C2AB28F14F}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {3039DB92-836E-4563-9DE0-D0C2AB28F14F}.Release (DirectX)|Win32.Build.0 = Release|Win32 {3039DB92-836E-4563-9DE0-D0C2AB28F14F}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {3039DB92-836E-4563-9DE0-D0C2AB28F14F}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {3039DB92-836E-4563-9DE0-D0C2AB28F14F}.Release|Win32.ActiveCfg = Release|Win32 + {3039DB92-836E-4563-9DE0-D0C2AB28F14F}.Release|Win32.Build.0 = Release|Win32 {EFC5D2BF-9DE8-44C8-9A06-C2B3E4C00951}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {EFC5D2BF-9DE8-44C8-9A06-C2B3E4C00951}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {EFC5D2BF-9DE8-44C8-9A06-C2B3E4C00951}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {EFC5D2BF-9DE8-44C8-9A06-C2B3E4C00951}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {EFC5D2BF-9DE8-44C8-9A06-C2B3E4C00951}.Debug|Win32.ActiveCfg = Debug|Win32 + {EFC5D2BF-9DE8-44C8-9A06-C2B3E4C00951}.Debug|Win32.Build.0 = Debug|Win32 {EFC5D2BF-9DE8-44C8-9A06-C2B3E4C00951}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {EFC5D2BF-9DE8-44C8-9A06-C2B3E4C00951}.Release (DirectX)|Win32.Build.0 = Release|Win32 {EFC5D2BF-9DE8-44C8-9A06-C2B3E4C00951}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {EFC5D2BF-9DE8-44C8-9A06-C2B3E4C00951}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {EFC5D2BF-9DE8-44C8-9A06-C2B3E4C00951}.Release|Win32.ActiveCfg = Release|Win32 + {EFC5D2BF-9DE8-44C8-9A06-C2B3E4C00951}.Release|Win32.Build.0 = Release|Win32 {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|Win32.ActiveCfg = Debug|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Debug|Win32.Build.0 = Debug|Win32 {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release (DirectX)|Win32.Build.0 = Release|Win32 {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|Win32.ActiveCfg = Release|Win32 + {3A214E06-B95E-4D61-A291-1F8DF2EC10FD}.Release|Win32.Build.0 = Release|Win32 {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|Win32.ActiveCfg = Debug|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Debug|Win32.Build.0 = Debug|Win32 {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release (DirectX)|Win32.Build.0 = Release|Win32 {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|Win32.ActiveCfg = Release|Win32 + {CEBDE98B-A6AA-46E6-BC79-FAAF823DB9EC}.Release|Win32.Build.0 = Release|Win32 {AF6C8945-5DDC-4F62-A48C-86B11B7ED996}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {AF6C8945-5DDC-4F62-A48C-86B11B7ED996}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {AF6C8945-5DDC-4F62-A48C-86B11B7ED996}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {AF6C8945-5DDC-4F62-A48C-86B11B7ED996}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {AF6C8945-5DDC-4F62-A48C-86B11B7ED996}.Debug|Win32.ActiveCfg = Debug|Win32 + {AF6C8945-5DDC-4F62-A48C-86B11B7ED996}.Debug|Win32.Build.0 = Debug|Win32 {AF6C8945-5DDC-4F62-A48C-86B11B7ED996}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {AF6C8945-5DDC-4F62-A48C-86B11B7ED996}.Release (DirectX)|Win32.Build.0 = Release|Win32 {AF6C8945-5DDC-4F62-A48C-86B11B7ED996}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {AF6C8945-5DDC-4F62-A48C-86B11B7ED996}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {AF6C8945-5DDC-4F62-A48C-86B11B7ED996}.Release|Win32.ActiveCfg = Release|Win32 + {AF6C8945-5DDC-4F62-A48C-86B11B7ED996}.Release|Win32.Build.0 = Release|Win32 {3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Debug|Win32.ActiveCfg = Debug|Win32 + {3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Debug|Win32.Build.0 = Debug|Win32 {3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Release (DirectX)|Win32.Build.0 = Release|Win32 {3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Release|Win32.ActiveCfg = Release|Win32 + {3600E1C5-FECA-468C-83F3-FE467DBE2A66}.Release|Win32.Build.0 = Release|Win32 {AEABB6CE-8F0F-4507-8DC4-5E3BCE5962DA}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {AEABB6CE-8F0F-4507-8DC4-5E3BCE5962DA}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {AEABB6CE-8F0F-4507-8DC4-5E3BCE5962DA}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {AEABB6CE-8F0F-4507-8DC4-5E3BCE5962DA}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {AEABB6CE-8F0F-4507-8DC4-5E3BCE5962DA}.Debug|Win32.ActiveCfg = Debug|Win32 + {AEABB6CE-8F0F-4507-8DC4-5E3BCE5962DA}.Debug|Win32.Build.0 = Debug|Win32 {AEABB6CE-8F0F-4507-8DC4-5E3BCE5962DA}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {AEABB6CE-8F0F-4507-8DC4-5E3BCE5962DA}.Release (DirectX)|Win32.Build.0 = Release|Win32 {AEABB6CE-8F0F-4507-8DC4-5E3BCE5962DA}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {AEABB6CE-8F0F-4507-8DC4-5E3BCE5962DA}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {AEABB6CE-8F0F-4507-8DC4-5E3BCE5962DA}.Release|Win32.ActiveCfg = Release|Win32 + {AEABB6CE-8F0F-4507-8DC4-5E3BCE5962DA}.Release|Win32.Build.0 = Release|Win32 {2A8CBFB5-C226-4BB3-8C03-7C75D511A4A2}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {2A8CBFB5-C226-4BB3-8C03-7C75D511A4A2}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {2A8CBFB5-C226-4BB3-8C03-7C75D511A4A2}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {2A8CBFB5-C226-4BB3-8C03-7C75D511A4A2}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {2A8CBFB5-C226-4BB3-8C03-7C75D511A4A2}.Debug|Win32.ActiveCfg = Debug|Win32 + {2A8CBFB5-C226-4BB3-8C03-7C75D511A4A2}.Debug|Win32.Build.0 = Debug|Win32 {2A8CBFB5-C226-4BB3-8C03-7C75D511A4A2}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {2A8CBFB5-C226-4BB3-8C03-7C75D511A4A2}.Release (DirectX)|Win32.Build.0 = Release|Win32 {2A8CBFB5-C226-4BB3-8C03-7C75D511A4A2}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {2A8CBFB5-C226-4BB3-8C03-7C75D511A4A2}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {2A8CBFB5-C226-4BB3-8C03-7C75D511A4A2}.Release|Win32.ActiveCfg = Release|Win32 + {2A8CBFB5-C226-4BB3-8C03-7C75D511A4A2}.Release|Win32.Build.0 = Release|Win32 {17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Debug|Win32.ActiveCfg = Debug|Win32 + {17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Debug|Win32.Build.0 = Debug|Win32 {17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Release (DirectX)|Win32.Build.0 = Release|Win32 {17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Release|Win32.ActiveCfg = Release|Win32 + {17238C64-04D6-4B51-B205-4A5A84ADB9FA}.Release|Win32.Build.0 = Release|Win32 {FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 {FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Debug|Win32.Build.0 = Debug|Win32 {FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 {FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Release (DirectX)|Win32.Build.0 = Release|Win32 {FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Release|Win32.ActiveCfg = Release|Win32 + {FB3AB83A-C37A-4636-87FD-827F8506A8FC}.Release|Win32.Build.0 = Release|Win32 + {88968763-3D6B-48A8-B495-CC8C187FAC02}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 + {88968763-3D6B-48A8-B495-CC8C187FAC02}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 + {88968763-3D6B-48A8-B495-CC8C187FAC02}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 + {88968763-3D6B-48A8-B495-CC8C187FAC02}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 + {88968763-3D6B-48A8-B495-CC8C187FAC02}.Debug|Win32.ActiveCfg = Debug|Win32 + {88968763-3D6B-48A8-B495-CC8C187FAC02}.Debug|Win32.Build.0 = Debug|Win32 + {88968763-3D6B-48A8-B495-CC8C187FAC02}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 + {88968763-3D6B-48A8-B495-CC8C187FAC02}.Release (DirectX)|Win32.Build.0 = Release|Win32 + {88968763-3D6B-48A8-B495-CC8C187FAC02}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 + {88968763-3D6B-48A8-B495-CC8C187FAC02}.Release (OpenGL)|Win32.Build.0 = Release|Win32 + {88968763-3D6B-48A8-B495-CC8C187FAC02}.Release|Win32.ActiveCfg = Release|Win32 + {88968763-3D6B-48A8-B495-CC8C187FAC02}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/system/cpluff.dll b/system/cpluff.dll deleted file mode 100644 index 5c90bb38ad..0000000000 Binary files a/system/cpluff.dll and /dev/null differ -- cgit v1.2.3