This commit is contained in:
Matt Raykowski 2010-06-02 12:19:41 -05:00
commit 999d7e22ef
76 changed files with 12490 additions and 1597 deletions

View file

@ -45,6 +45,9 @@ default_c
*_debug *_debug
core core
# Mac OS X compile
*.dylib
# Log dump files # Log dump files
report_refused report_refused
report_failed report_failed
@ -58,14 +61,16 @@ log.txt
*.dlm *.dlm
*.dlu *.dlu
#makeall build # makeall build
.mode_static .mode_static
# cmake build files & directories
#cmake build files & directories
CMakeFiles CMakeFiles
*.cmake
CMakeCache.txt CMakeCache.txt
cmake_install.cmake
CTestTestfile.cmake
CPackConfig.cmake
CPackSourceConfig.cmake
.libs .libs
# Linux garbage # Linux garbage
@ -100,6 +105,9 @@ ipch
*.idb *.idb
*.sdf *.sdf
# Mac OS X garbage
.DS_Store
# Ryzom server garbage # Ryzom server garbage
aes_alias_name.cfg aes_alias_name.cfg
aes_nagios_report.txt aes_nagios_report.txt

View file

@ -92,7 +92,16 @@ IF(WITH_3D)
IF(WITH_DRIVER_OPENGL) IF(WITH_DRIVER_OPENGL)
FIND_PACKAGE(OpenGL) FIND_PACKAGE(OpenGL)
IF(NOT WIN32) IF(NOT WIN32)
FIND_PACKAGE(XF86VidMode) IF(APPLE)
FIND_LIBRARY(CARBON NAMES Carbon)
IF(WITH_COCOA)
FIND_LIBRARY(COCOA NAMES Cocoa)
ENDIF(WITH_COCOA)
ENDIF(APPLE)
IF(NOT WITH_COCOA)
FIND_PACKAGE(X11)
FIND_PACKAGE(XF86VidMode)
ENDIF(NOT WITH_COCOA)
ENDIF(NOT WIN32) ENDIF(NOT WIN32)
ENDIF(WITH_DRIVER_OPENGL) ENDIF(WITH_DRIVER_OPENGL)

View file

@ -79,6 +79,7 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS)
OPTION(WITH_TESTS "Build NeL Unit Tests" ON ) OPTION(WITH_TESTS "Build NeL Unit Tests" ON )
OPTION(WITH_GTK "With GTK Support" OFF) OPTION(WITH_GTK "With GTK Support" OFF)
OPTION(WITH_QT "With QT Support" OFF) OPTION(WITH_QT "With QT Support" OFF)
OPTION(WITH_COCOA "Build with native Mac OS X Cocoa support" OFF)
OPTION(BUILD_DASHBOARD "Build to the CDash dashboard" OFF) OPTION(BUILD_DASHBOARD "Build to the CDash dashboard" OFF)
ENDMACRO(NL_SETUP_DEFAULT_OPTIONS) ENDMACRO(NL_SETUP_DEFAULT_OPTIONS)
@ -120,11 +121,17 @@ MACRO(NL_SETUP_BUILD)
IF(WITH_COVERAGE) IF(WITH_COVERAGE)
SET(PLATFORM_CFLAGS "-fprofile-arcs -ftest-coverage ${PLATFORM_CFLAGS}") SET(PLATFORM_CFLAGS "-fprofile-arcs -ftest-coverage ${PLATFORM_CFLAGS}")
ENDIF(WITH_COVERAGE) ENDIF(WITH_COVERAGE)
SET(PLATFORM_LINKFLAGS "${CMAKE_THREAD_LIBS_INIT} -lc -lm -lstdc++ -lrt") SET(PLATFORM_LINKFLAGS "${CMAKE_THREAD_LIBS_INIT} -lc -lm -lstdc++")
IF(NOT APPLE)
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -lrt")
ENDIF(NOT APPLE)
SET(NL_DEBUG_CFLAGS "-DNL_DEBUG -g") SET(NL_DEBUG_CFLAGS "-DNL_DEBUG -g")
SET(NL_RELEASE_CFLAGS "-DNL_RELEASE -O6") SET(NL_RELEASE_CFLAGS "-DNL_RELEASE -O6")
SET(NL_RELEASEDEBUG_CFLAGS "-DNL_RELEASE_DEBUG -g -finline-functions -O3 ") SET(NL_RELEASEDEBUG_CFLAGS "-DNL_RELEASE_DEBUG -g -finline-functions -O3 ")
SET(NL_NONE_CFLAGS "-DNL_RELEASE -g -finline-functions -O2 ") SET(NL_NONE_CFLAGS "-DNL_RELEASE -g -finline-functions -O2 ")
IF(WITH_COCOA)
SET(PLATFORM_CFLAGS "-DNL_MAC_NATIVE")
ENDIF(WITH_COCOA)
ENDIF(WIN32) ENDIF(WIN32)
# Determine host CPU # Determine host CPU

View file

@ -201,7 +201,7 @@ public:
// Return is the associated window information. (Implementation dependent) // Return is the associated window information. (Implementation dependent)
// Must be a HWND for Windows (WIN32). // Must be a HWND for Windows (WIN32).
virtual void *getDisplay() =0; virtual nlWindow getDisplay() =0;
/** /**
* Setup monitor color properties. * Setup monitor color properties.

View file

@ -162,7 +162,7 @@ public:
/// Return true if driver is still active. Return false else. If he user close the window, must return false. /// Return true if driver is still active. Return false else. If he user close the window, must return false.
virtual bool isActive(); virtual bool isActive();
/// Return an OS dependent window handle. Under Win32, it is a HWND. /// Return an OS dependent window handle. Under Win32, it is a HWND.
virtual void *getDisplay (); virtual nlWindow getDisplay ();
// @} // @}

View file

@ -221,7 +221,7 @@ public:
virtual bool isActive()=0; virtual bool isActive()=0;
/// Return an OS dependent window handle. Under Win32, it is a HWND. /// Return an OS dependent window handle. Under Win32, it is a HWND.
virtual void *getDisplay () = 0; virtual nlWindow getDisplay () = 0;
// @} // @}

View file

@ -30,7 +30,7 @@ namespace NLMISC
*/ */
class CSystemUtils class CSystemUtils
{ {
static void *s_window; static nlWindow s_window;
public: public:
/// Initialize data which needs it before using them. /// Initialize data which needs it before using them.
@ -40,7 +40,7 @@ public:
static bool uninit(); static bool uninit();
/// Set the window which will be used by some functions. /// Set the window which will be used by some functions.
static void setWindow(void *window); static void setWindow(nlWindow window);
/// Create/update a progress bar with an appearance depending on system. /// Create/update a progress bar with an appearance depending on system.
static bool updateProgressBar(uint value, uint total); static bool updateProgressBar(uint value, uint total);

View file

@ -34,7 +34,7 @@ namespace NL3D
{ {
// *************************************************************************** // ***************************************************************************
const uint32 IDriver::InterfaceVersion = 0x64; // Added nlWindow patch. const uint32 IDriver::InterfaceVersion = 0x65; // Added nlWindow patch.
// *************************************************************************** // ***************************************************************************
IDriver::IDriver() : _SyncTexDrvInfos( "IDriver::_SyncTexDrvInfos" ) IDriver::IDriver() : _SyncTexDrvInfos( "IDriver::_SyncTexDrvInfos" )

View file

@ -1323,7 +1323,7 @@ bool CDriverD3D::setDisplay(nlWindow wnd, const GfxMode& mode, bool show, bool r
} }
// Create a window // Create a window
_HWnd = (HWND)wnd; _HWnd = wnd;
// Reset window state // Reset window state
_Maximized = false; _Maximized = false;
@ -1440,19 +1440,19 @@ bool CDriverD3D::setDisplay(nlWindow wnd, const GfxMode& mode, bool show, bool r
} }
// Create the D3D device // Create the D3D device
HRESULT result = _D3D->CreateDevice (adapter, _Rasterizer, (HWND)_HWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING|D3DCREATE_PUREDEVICE, &parameters, &_DeviceInterface); HRESULT result = _D3D->CreateDevice (adapter, _Rasterizer, _HWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING|D3DCREATE_PUREDEVICE, &parameters, &_DeviceInterface);
if (result != D3D_OK) if (result != D3D_OK)
{ {
nlwarning ("Can't create device hr:0x%x adap:0x%x rast:0x%x", result, adapter, _Rasterizer); nlwarning ("Can't create device hr:0x%x adap:0x%x rast:0x%x", result, adapter, _Rasterizer);
// Create the D3D device without puredevice // Create the D3D device without puredevice
HRESULT result = _D3D->CreateDevice (adapter, _Rasterizer, (HWND)_HWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &parameters, &_DeviceInterface); HRESULT result = _D3D->CreateDevice (adapter, _Rasterizer, _HWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &parameters, &_DeviceInterface);
if (result != D3D_OK) if (result != D3D_OK)
{ {
nlwarning ("Can't create device without puredevice hr:0x%x adap:0x%x rast:0x%x", result, adapter, _Rasterizer); nlwarning ("Can't create device without puredevice hr:0x%x adap:0x%x rast:0x%x", result, adapter, _Rasterizer);
// Create the D3D device without puredevice and hardware // Create the D3D device without puredevice and hardware
HRESULT result = _D3D->CreateDevice (adapter, _Rasterizer, (HWND)_HWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &parameters, &_DeviceInterface); HRESULT result = _D3D->CreateDevice (adapter, _Rasterizer, _HWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &parameters, &_DeviceInterface);
if (result != D3D_OK) if (result != D3D_OK)
{ {
nlwarning ("Can't create device without puredevice and hardware hr:0x%x adap:0x%x rast:0x%x", result, adapter, _Rasterizer); nlwarning ("Can't create device without puredevice and hardware hr:0x%x adap:0x%x rast:0x%x", result, adapter, _Rasterizer);
@ -1462,7 +1462,7 @@ bool CDriverD3D::setDisplay(nlWindow wnd, const GfxMode& mode, bool show, bool r
} }
} }
// _D3D->CreateDevice (adapter, _Rasterizer, (HWND)_HWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &parameters, &_DeviceInterface); // _D3D->CreateDevice (adapter, _Rasterizer, _HWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &parameters, &_DeviceInterface);
// Check some caps // Check some caps
D3DCAPS9 caps; D3DCAPS9 caps;
@ -1794,9 +1794,9 @@ bool CDriverD3D::isActive ()
// *************************************************************************** // ***************************************************************************
void* CDriverD3D::getDisplay() nlWindow CDriverD3D::getDisplay()
{ {
return (void*)_HWnd; return _HWnd;
} }
// *************************************************************************** // ***************************************************************************

View file

@ -749,7 +749,7 @@ public:
virtual bool initVertexBufferHard(uint agpMem, uint vramMem); virtual bool initVertexBufferHard(uint agpMem, uint vramMem);
// Windows interface // Windows interface
virtual void* getDisplay(); virtual nlWindow getDisplay();
virtual emptyProc getWindowProc(); virtual emptyProc getWindowProc();
virtual NLMISC::IEventEmitter *getEventEmitter(); virtual NLMISC::IEventEmitter *getEventEmitter();
virtual void getWindowSize (uint32 &width, uint32 &height); virtual void getWindowSize (uint32 &width, uint32 &height);

View file

@ -1,4 +1,8 @@
FILE(GLOB SRC *.cpp *.h *.def) FILE(GLOB SRC *.cpp *.h *.def)
IF(WITH_COCOA)
FILE(GLOB MAC_SRC mac/*.h mac/*.m mac/*.mm mac/*.cpp)
SET(SRC ${SRC} ${MAC_SRC})
ENDIF(WITH_COCOA)
IF(WIN32) IF(WIN32)
SET(NLDRV_OGL_LIB "nel_drv_opengl_win") SET(NLDRV_OGL_LIB "nel_drv_opengl_win")
@ -25,11 +29,25 @@ IF(WIN32)
LINK_FLAGS "/NODEFAULTLIB:libcmt") LINK_FLAGS "/NODEFAULTLIB:libcmt")
ADD_DEFINITIONS(/DDRIVER_OPENGL_EXPORTS) ADD_DEFINITIONS(/DDRIVER_OPENGL_EXPORTS)
ELSE(WIN32) ELSE(WIN32)
IF(XF86VidMode_FOUND) IF(APPLE)
INCLUDE_DIRECTORIES(${XF86VidMode_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${CARBON})
ADD_DEFINITIONS(${XF86VidMode_DEFINITIONS}) IF(WITH_COCOA)
TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${XF86VidMode_LIBRARY}) TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${COCOA})
ENDIF(XF86VidMode_FOUND) ELSE(WITH_COCOA)
# NOTE: I know, those hardcoded things are evil. But FindOpenGL on Mac
# simply does not look for X11's OpenGL, just for the native one.
INCLUDE_DIRECTORIES("/usr/X11/include")
TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB}
"-L/usr/X11/lib" "-lGL" ${X11_LIBRARIES})
ENDIF(WITH_COCOA)
ELSE(APPLE)
TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${X11_LIBRARIES})
IF(XF86VidMode_FOUND)
INCLUDE_DIRECTORIES(${XF86VidMode_INCLUDE_DIR})
ADD_DEFINITIONS(${XF86VidMode_DEFINITIONS})
TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${XF86VidMode_LIBRARY})
ENDIF(XF86VidMode_FOUND)
ENDIF(APPLE)
ENDIF(WIN32) ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})

File diff suppressed because it is too large Load diff

View file

@ -17,7 +17,6 @@
#ifndef NL_DRIVER_OPENGL_H #ifndef NL_DRIVER_OPENGL_H
#define NL_DRIVER_OPENGL_H #define NL_DRIVER_OPENGL_H
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
//#define NL_PROFILE_DRIVER_OGL //#define NL_PROFILE_DRIVER_OGL
@ -31,16 +30,19 @@
# define WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN
# define NOMINMAX # define NOMINMAX
# include <windows.h> # include <windows.h>
#else // NL_OS_UNIX # include <GL/gl.h>
#elif defined(NL_OS_MAC) && defined(NL_MAC_NATIVE)
# define GL_GLEXT_LEGACY
# include <OpenGL/gl.h>
#elif defined (NL_OS_UNIX)
# define GLX_GLXEXT_PROTOTYPES # define GLX_GLXEXT_PROTOTYPES
# include <GL/gl.h>
# include <GL/glx.h> # include <GL/glx.h>
# ifdef XF86VIDMODE # ifdef XF86VIDMODE
# include <X11/extensions/xf86vmode.h> # include <X11/extensions/xf86vmode.h>
# endif //XF86VIDMODE # endif //XF86VIDMODE
#endif // NL_OS_UNIX #endif // NL_OS_UNIX
#include <GL/gl.h>
#include "driver_opengl_extension.h" #include "driver_opengl_extension.h"
#include "nel/3d/driver.h" #include "nel/3d/driver.h"
@ -68,6 +70,8 @@
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
#include "nel/misc/win_event_emitter.h" #include "nel/misc/win_event_emitter.h"
#elif defined(NL_OS_MAC) && defined(NL_MAC_NATIVE)
#include "mac/cocoa_event_emitter.h"
#elif defined (NL_OS_UNIX) #elif defined (NL_OS_UNIX)
#include "unix_event_emitter.h" #include "unix_event_emitter.h"
#endif // NL_OS_UNIX #endif // NL_OS_UNIX
@ -299,12 +303,14 @@ public:
/// Show or hide the NeL window /// Show or hide the NeL window
virtual void showWindow(bool show); virtual void showWindow(bool show);
virtual void* getDisplay() virtual nlWindow getDisplay()
{ {
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
return (void*)_hWnd; return _hWnd;
#else // NL_OS_WINDOWS #elif defined(NL_OS_MAC) && defined(NL_MAC_NATIVE)
return NULL; return NULL;
#elif defined(NL_OS_UNIX)
return win;
#endif // NL_OS_WINDOWS #endif // NL_OS_WINDOWS
} }
@ -673,6 +679,9 @@ private:
// Off-screen rendering in Dib section // Off-screen rendering in Dib section
HPBUFFERARB _PBuffer; HPBUFFERARB _PBuffer;
#elif defined(NL_OS_MAC) && defined(NL_MAC_NATIVE)
NLMISC::CCocoaEventEmitter _EventEmitter;
#elif defined (NL_OS_UNIX) #elif defined (NL_OS_UNIX)
Display *dpy; Display *dpy;
@ -832,6 +841,8 @@ private:
bool _CurrentGlNormalize; bool _CurrentGlNormalize;
private: private:
void switchBackToOldMode();
// Get the proj matrix setupped in GL // Get the proj matrix setupped in GL
void refreshProjMatrixFromGL(); void refreshProjMatrixFromGL();

View file

@ -44,7 +44,7 @@ void *nglGetProcAddress(const char *name)
free (symbolName); free (symbolName);
return symbol ? NSAddressOfSymbol (symbol) : NULL; return symbol ? NSAddressOfSymbol (symbol) : NULL;
} }
#else // NL_OS_WINDOWS #elif defined (NL_OS_UNIX)
void (*nglGetProcAddress(const char *procName))() void (*nglGetProcAddress(const char *procName))()
{ {
return glXGetProcAddressARB((const GLubyte *)procName); return glXGetProcAddressARB((const GLubyte *)procName);
@ -1143,6 +1143,22 @@ static bool setupNVTextureRectangle(const char *glext)
return true; return true;
} }
// ***************************************************************************
static bool setupEXTTextureRectangle(const char *glext)
{
H_AUTO_OGL(setupEXTTextureRectangle);
CHECK_EXT("GL_EXT_texture_rectangle");
return true;
}
// ***************************************************************************
static bool setupARBTextureRectangle(const char *glext)
{
H_AUTO_OGL(setupARBTextureRectangle);
CHECK_EXT("GL_ARB_texture_rectangle");
return true;
}
// *************************************************************************** // ***************************************************************************
static bool setupFrameBufferObject(const char *glext) static bool setupFrameBufferObject(const char *glext)
{ {
@ -1311,6 +1327,12 @@ void registerGlExtensions(CGlExtensions &ext)
// Check GL_NV_texture_rectangle // Check GL_NV_texture_rectangle
ext.NVTextureRectangle = setupNVTextureRectangle(glext); ext.NVTextureRectangle = setupNVTextureRectangle(glext);
// Check GL_EXT_texture_rectangle
ext.EXTTextureRectangle = setupEXTTextureRectangle(glext);
// Check GL_ARB_texture_rectangle
ext.ARBTextureRectangle = setupARBTextureRectangle(glext);
// Check GL_EXT_framebuffer_object // Check GL_EXT_framebuffer_object
ext.FrameBufferObject = setupFrameBufferObject(glext); ext.FrameBufferObject = setupFrameBufferObject(glext);

View file

@ -24,13 +24,18 @@
# define WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN
# define NOMINMAX # define NOMINMAX
# include <windows.h> # include <windows.h>
#else // NL_OS_UNIX # include <GL/gl.h>
# include <GL/glext.h> // Please download it from http://www.opengl.org/registry/
#elif defined(NL_OS_MAC) && defined(NL_MAC_NATIVE)
# define GL_GLEXT_LEGACY
# include <OpenGL/gl.h>
# include "mac/glext.h"
#elif defined (NL_OS_UNIX)
# include <GL/gl.h>
# include <GL/glext.h> // Please download it from http://www.opengl.org/registry/
# include <GL/glx.h> # include <GL/glx.h>
#endif // NL_OS_UNIX #endif // NL_OS_UNIX
#include <GL/gl.h>
#include <GL/glext.h> // Please download it from http://www.opengl.org/registry/
#ifndef GL_GLEXT_VERSION #ifndef GL_GLEXT_VERSION
# error "I need a newer <GL/glext.h>. Please download it from http://www.opengl.org/registry/" # error "I need a newer <GL/glext.h>. Please download it from http://www.opengl.org/registry/"
#endif // GL_nGLEXT_VERSION #endif // GL_nGLEXT_VERSION
@ -70,6 +75,8 @@ struct CGlExtensions
bool NVTextureShader; bool NVTextureShader;
bool NVOcclusionQuery; bool NVOcclusionQuery;
bool NVTextureRectangle; bool NVTextureRectangle;
bool EXTTextureRectangle;
bool ARBTextureRectangle;
bool FrameBufferObject; bool FrameBufferObject;
bool PackedDepthStencil; bool PackedDepthStencil;
// true if NVVertexProgram and if we know that VP is emulated // true if NVVertexProgram and if we know that VP is emulated
@ -181,6 +188,8 @@ public:
result += ARBTextureCubeMap ? "ARBTextureCubeMap " : ""; result += ARBTextureCubeMap ? "ARBTextureCubeMap " : "";
result += ATIEnvMapBumpMap ? "ATIEnvMapBumpMap " : ""; result += ATIEnvMapBumpMap ? "ATIEnvMapBumpMap " : "";
result += NVTextureRectangle ? "NVTextureRectangle " : ""; result += NVTextureRectangle ? "NVTextureRectangle " : "";
result += EXTTextureRectangle ? "EXTTextureRectangle " : "";
result += ARBTextureRectangle ? "ARBTextureRectangle " : "";
result += ARBTextureNonPowerOfTwo ? "ARBTextureNonPowerOfTwo " : ""; result += ARBTextureNonPowerOfTwo ? "ARBTextureNonPowerOfTwo " : "";
result += "texture stages(*) = "; result += "texture stages(*) = ";
result += NLMISC::toString(NbTextureStages); result += NLMISC::toString(NbTextureStages);

View file

@ -20,8 +20,14 @@
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
#include <GL/gl.h> #ifdef NL_MAC_NATIVE
#include <GL/glext.h> // Please download it from http://www.opengl.org/registry/ # define GL_GLEXT_LEGACY
# include <OpenGL/gl.h>
# include "mac/glext.h"
#else
# include <GL/gl.h>
# include <GL/glext.h> // Please download it from http://www.opengl.org/registry/
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

View file

@ -97,7 +97,6 @@ static inline void convTexAddr(ITexture *tex, CMaterial::TTexAddressingMode mode
GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV, GL_DOT_PRODUCT_DEPTH_REPLACE_NV GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV, GL_DOT_PRODUCT_DEPTH_REPLACE_NV
}; };
if (!tex || !tex->isTextureCube()) if (!tex || !tex->isTextureCube())
{ {
glenum = glTex2dAddrModesNV[(uint) mode]; glenum = glTex2dAddrModesNV[(uint) mode];
@ -165,7 +164,6 @@ void CDriverGL::setupUserTextureMatrix(uint numStages, CMaterial& mat)
{ {
glMatrixMode(GL_TEXTURE); glMatrixMode(GL_TEXTURE);
// for each stage, setup the texture matrix if needed // for each stage, setup the texture matrix if needed
uint newMask = (mat.getFlags() & IDRV_MAT_USER_TEX_MAT_ALL) >> IDRV_MAT_USER_TEX_FIRST_BIT; uint newMask = (mat.getFlags() & IDRV_MAT_USER_TEX_MAT_ALL) >> IDRV_MAT_USER_TEX_FIRST_BIT;
uint shiftMask = 1; uint shiftMask = 1;
@ -176,7 +174,6 @@ void CDriverGL::setupUserTextureMatrix(uint numStages, CMaterial& mat)
_DriverGLStates.activeTextureARB(k); _DriverGLStates.activeTextureARB(k);
glLoadMatrixf(mat.getUserTexMat(k).get()); glLoadMatrixf(mat.getUserTexMat(k).get());
_UserTexMatEnabled |= shiftMask; _UserTexMatEnabled |= shiftMask;
} }
else else
@ -189,15 +186,12 @@ void CDriverGL::setupUserTextureMatrix(uint numStages, CMaterial& mat)
_DriverGLStates.activeTextureARB(k); _DriverGLStates.activeTextureARB(k);
glLoadIdentity(); glLoadIdentity();
_UserTexMatEnabled &= ~shiftMask; _UserTexMatEnabled &= ~shiftMask;
} }
} }
shiftMask <<= 1; shiftMask <<= 1;
} }
glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_MODELVIEW);
} }
} }
@ -208,7 +202,6 @@ void CDriverGL::disableUserTextureMatrix()
{ {
glMatrixMode(GL_TEXTURE); glMatrixMode(GL_TEXTURE);
uint k = 0; uint k = 0;
do do
{ {
@ -217,16 +210,12 @@ void CDriverGL::disableUserTextureMatrix()
_DriverGLStates.activeTextureARB(k); _DriverGLStates.activeTextureARB(k);
glLoadIdentity(); glLoadIdentity();
_UserTexMatEnabled &= ~ (1 << k); _UserTexMatEnabled &= ~ (1 << k);
} }
++k; ++k;
} }
while (_UserTexMatEnabled != 0); while (_UserTexMatEnabled != 0);
glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_MODELVIEW);
} }
} }
@ -259,7 +248,6 @@ void CDriverGL::setTextureShaders(const uint8 *addressingModes, const CSmartPtr<
convTexAddr(textures[stage], (CMaterial::TTexAddressingMode) addressingModes[stage], glAddrMode); convTexAddr(textures[stage], (CMaterial::TTexAddressingMode) addressingModes[stage], glAddrMode);
if (glAddrMode != _CurrentTexAddrMode[stage]) // addressing mode different from the one in the device? if (glAddrMode != _CurrentTexAddrMode[stage]) // addressing mode different from the one in the device?
{ {
_DriverGLStates.activeTextureARB(stage); _DriverGLStates.activeTextureARB(stage);
glTexEnvi(GL_TEXTURE_SHADER_NV, GL_SHADER_OPERATION_NV, glAddrMode); glTexEnvi(GL_TEXTURE_SHADER_NV, GL_SHADER_OPERATION_NV, glAddrMode);
@ -404,7 +392,6 @@ bool CDriverGL::setupMaterial(CMaterial& mat)
if (mat.getTexture(stage)) if (mat.getTexture(stage))
}*/ }*/
// Activate the textures. // Activate the textures.
// Do not do it for Lightmap and per pixel lighting , because done in multipass in a very special fashion. // Do not do it for Lightmap and per pixel lighting , because done in multipass in a very special fashion.
// This avoid the useless multiple change of texture states per lightmapped object. // This avoid the useless multiple change of texture states per lightmapped object.
@ -490,16 +477,13 @@ bool CDriverGL::setupMaterial(CMaterial& mat)
} }
else else
{ {
// Color unlit part. // Color unlit part.
CRGBA col= mat.getColor(); CRGBA col= mat.getColor();
glColor4ub(col.R, col.G, col.B, col.A); glColor4ub(col.R, col.G, col.B, col.A);
_DriverGLStates.setVertexColorLighted(false); _DriverGLStates.setVertexColorLighted(false);
} }
// Fog Part. // Fog Part.
//================= //=================
@ -745,7 +729,6 @@ void CDriverGL::setupLightMapPass(uint pass)
static uint32 packedColorGrey= CRGBA(128,128,128,128).getPacked(); static uint32 packedColorGrey= CRGBA(128,128,128,128).getPacked();
static GLfloat glcolGrey[4]= {0.5f,0.5f,0.5f,1.f}; static GLfloat glcolGrey[4]= {0.5f,0.5f,0.5f,1.f};
// No lightmap or all blacks??, just setup "black texture" for stage 0. // No lightmap or all blacks??, just setup "black texture" for stage 0.
if(_NLightMaps==0) if(_NLightMaps==0)
{ {
@ -760,7 +743,6 @@ void CDriverGL::setupLightMapPass(uint pass)
// setup color to 0 => blackness. in emissive cause texture can still be lighted by dynamic light // setup color to 0 => blackness. in emissive cause texture can still be lighted by dynamic light
_DriverGLStates.setEmissive(packedColorBlack, glcolBlack); _DriverGLStates.setEmissive(packedColorBlack, glcolBlack);
// Setup gen tex off // Setup gen tex off
_DriverGLStates.activeTextureARB(0); _DriverGLStates.activeTextureARB(0);
_DriverGLStates.setTexGenMode(0, 0); _DriverGLStates.setTexGenMode(0, 0);
@ -900,8 +882,6 @@ void CDriverGL::setupLightMapPass(uint pass)
// Arg3. // Arg3.
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE3_RGB_NV, GL_ZERO); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE3_RGB_NV, GL_ZERO);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND3_RGB_NV, GL_ONE_MINUS_SRC_COLOR); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND3_RGB_NV, GL_ONE_MINUS_SRC_COLOR);
} }
else else
{ {
@ -920,8 +900,6 @@ void CDriverGL::setupLightMapPass(uint pass)
// Arg2. // Arg2.
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_PREVIOUS_EXT ); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_PREVIOUS_EXT );
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_EXT, GL_SRC_COLOR); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_EXT, GL_SRC_COLOR);
} }
} }
} }
@ -965,8 +943,6 @@ void CDriverGL::setupLightMapPass(uint pass)
{ {
// Multiply x 2 // Multiply x 2
glTexEnvi(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 2); glTexEnvi(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 2);
} }
} }
} }
@ -988,8 +964,6 @@ void CDriverGL::setupLightMapPass(uint pass)
{ {
static GLfloat blackFog[4]= {0,0,0,0}; static GLfloat blackFog[4]= {0,0,0,0};
glFogfv(GL_FOG_COLOR, blackFog); glFogfv(GL_FOG_COLOR, blackFog);
} }
// Blend is different if the material is blended or not // Blend is different if the material is blended or not
@ -1051,8 +1025,6 @@ void CDriverGL::setupLightMapPass(uint pass)
// no need to reset for pass after 1, since same than prec pass (black)! // no need to reset for pass after 1, since same than prec pass (black)!
else if(pass==1) else if(pass==1)
_DriverGLStates.setDiffuse(packedColorBlack, glcolBlack); _DriverGLStates.setDiffuse(packedColorBlack, glcolBlack);
} }
// *************************************************************************** // ***************************************************************************
void CDriverGL::endLightMapMultiPass() void CDriverGL::endLightMapMultiPass()
@ -1081,8 +1053,6 @@ void CDriverGL::endLightMapMultiPass()
{ {
_DriverGLStates.activeTextureARB(i); _DriverGLStates.activeTextureARB(i);
glTexEnvi(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 1); glTexEnvi(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 1);
} }
} }
} }
@ -1180,8 +1150,6 @@ void CDriverGL::setupSpecularEnd()
glMatrixMode(GL_TEXTURE); glMatrixMode(GL_TEXTURE);
glLoadIdentity(); glLoadIdentity();
glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_MODELVIEW);
} }
// *************************************************************************** // ***************************************************************************
@ -1286,8 +1254,6 @@ void CDriverGL::setupSpecularPass(uint pass)
// Arg3. // Arg3.
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE3_ALPHA_NV, GL_ZERO ); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE3_ALPHA_NV, GL_ZERO );
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND3_ALPHA_NV, GL_SRC_ALPHA); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND3_ALPHA_NV, GL_SRC_ALPHA);
} }
} }
else if (_Extensions.ATITextureEnvCombine3) else if (_Extensions.ATITextureEnvCombine3)
@ -1340,8 +1306,6 @@ void CDriverGL::setupSpecularPass(uint pass)
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA_EXT, GL_ZERO ); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA_EXT, GL_ZERO );
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA_EXT, GL_SRC_ALPHA); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA_EXT, GL_SRC_ALPHA);
} }
} }
else else
{ // We have to do it in 2 passes { // We have to do it in 2 passes
@ -1390,8 +1354,6 @@ void CDriverGL::setupSpecularPass(uint pass)
activateTexEnvMode(1, env); activateTexEnvMode(1, env);
} }
} }
} }
// *************************************************************************** // ***************************************************************************
void CDriverGL::endSpecularMultiPass() void CDriverGL::endSpecularMultiPass()
@ -1470,14 +1432,12 @@ CTextureCube *CDriverGL::getSpecularCubeMap(uint exp)
_SpecularTextureCubes.resize(MaxExponent); _SpecularTextureCubes.resize(MaxExponent);
} }
NLMISC::clamp(exp, 1u, (MaxExponent - 1)); NLMISC::clamp(exp, 1u, (MaxExponent - 1));
uint cubeMapIndex = expToCubeMap[exp]; uint cubeMapIndex = expToCubeMap[exp];
nlassert(cubeMapIndex < numCubeMap); nlassert(cubeMapIndex < numCubeMap);
if (_SpecularTextureCubes[cubeMapIndex] != NULL) // has the cube map already been cted ? if (_SpecularTextureCubes[cubeMapIndex] != NULL) // has the cube map already been cted ?
{ {
return _SpecularTextureCubes[cubeMapIndex]; return _SpecularTextureCubes[cubeMapIndex];
@ -1607,8 +1567,6 @@ void CDriverGL::setupPPLPass(uint pass)
// Arg3 = White (= ~ Black) // Arg3 = White (= ~ Black)
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE3_RGB_NV, GL_ZERO); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE3_RGB_NV, GL_ZERO);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND3_RGB_NV, GL_ONE_MINUS_SRC_COLOR); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND3_RGB_NV, GL_ONE_MINUS_SRC_COLOR);
} }
else // use ATI extension else // use ATI extension
{ {
@ -1624,8 +1582,6 @@ void CDriverGL::setupPPLPass(uint pass)
// Arg2 = Primary color (other light diffuse and // Arg2 = Primary color (other light diffuse and
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_PRIMARY_COLOR_EXT); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_PRIMARY_COLOR_EXT);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_EXT, GL_SRC_COLOR); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_EXT, GL_SRC_COLOR);
} }
} }
activateTexEnvColor(0, _PPLightDiffuseColor); activateTexEnvColor(0, _PPLightDiffuseColor);
@ -1678,8 +1634,6 @@ void CDriverGL::setupPPLPass(uint pass)
// Arg3 = 0 // Arg3 = 0
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE3_ALPHA_NV, GL_ZERO); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE3_ALPHA_NV, GL_ZERO);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND3_ALPHA_NV, GL_SRC_COLOR); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND3_ALPHA_NV, GL_SRC_COLOR);
} }
else // ATI EnvCombine3 else // ATI EnvCombine3
{ {
@ -1707,8 +1661,6 @@ void CDriverGL::setupPPLPass(uint pass)
// Arg1 = 0 // Arg1 = 0
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA_EXT, GL_ZERO); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA_EXT, GL_ZERO);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA_EXT, GL_SRC_COLOR); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA_EXT, GL_SRC_COLOR);
} }
} }
activateTexEnvColor(2, _PPLightSpecularColor); activateTexEnvColor(2, _PPLightSpecularColor);
@ -1785,8 +1737,6 @@ void CDriverGL::setupPPLNoSpecPass(uint pass)
// Arg3 = White (= ~ Black) // Arg3 = White (= ~ Black)
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE3_RGB_NV, GL_ZERO); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE3_RGB_NV, GL_ZERO);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND3_RGB_NV, GL_ONE_MINUS_SRC_COLOR); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND3_RGB_NV, GL_ONE_MINUS_SRC_COLOR);
} }
else else
{ {
@ -1802,8 +1752,6 @@ void CDriverGL::setupPPLNoSpecPass(uint pass)
// Arg1 = Primary color (other light diffuse and // Arg1 = Primary color (other light diffuse and
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_PRIMARY_COLOR_EXT); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_PRIMARY_COLOR_EXT);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_EXT, GL_SRC_COLOR); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_EXT, GL_SRC_COLOR);
} }
} }
activateTexEnvColor(0, _PPLightDiffuseColor); activateTexEnvColor(0, _PPLightDiffuseColor);
@ -1860,7 +1808,6 @@ inline void CDriverGL::setupCausticsSecondTex(uint stage)
// *************************************************************************** // ***************************************************************************
void CDriverGL::setupCausticsPass(const CMaterial &mat, uint pass) void CDriverGL::setupCausticsPass(const CMaterial &mat, uint pass)
{ {
nlassert(mat.getShader() == CMaterial::Caustics); nlassert(mat.getShader() == CMaterial::Caustics);
if (inlGetNumTextStages() == 1 || !_Extensions.ARBTextureCubeMap) if (inlGetNumTextStages() == 1 || !_Extensions.ARBTextureCubeMap)
@ -1873,8 +1820,6 @@ void CDriverGL::setupCausticsPass(const CMaterial &mat, uint pass)
nlassert(pass == 0); nlassert(pass == 0);
setupCausticsFirstTex(mat); setupCausticsFirstTex(mat);
} }
else if (inlGetNumTextStages() == 2) /// do in in 2 pass else if (inlGetNumTextStages() == 2) /// do in in 2 pass
{ {
@ -1888,8 +1833,6 @@ void CDriverGL::setupCausticsPass(const CMaterial &mat, uint pass)
/// setup additif blending /// setup additif blending
_DriverGLStates.enableBlend(); _DriverGLStates.enableBlend();
_DriverGLStates.blendFunc(pShader->SrcBlend, pShader->DstBlend); _DriverGLStates.blendFunc(pShader->SrcBlend, pShader->DstBlend);
} }
} }
} }
@ -2002,8 +1945,6 @@ void CDriverGL::setupCloudPass (uint /* pass */)
glEnable(GL_FRAGMENT_SHADER_ATI); glEnable(GL_FRAGMENT_SHADER_ATI);
float cst[4] = { 0.f, 0.f, 0.f, mat.getColor().A / 255.f }; float cst[4] = { 0.f, 0.f, 0.f, mat.getColor().A / 255.f };
nglSetFragmentShaderConstantATI(GL_CON_0_ATI, cst); nglSetFragmentShaderConstantATI(GL_CON_0_ATI, cst);
/* /*
_DriverGLStates.activeTextureARB(0); _DriverGLStates.activeTextureARB(0);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
@ -2188,7 +2129,6 @@ void CDriverGL::setupWaterPassARB(const CMaterial &mat)
nglBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, ARBWaterShader[(_FogEnabled ? 1 : 0) | (mat.getTexture(3) != NULL ? 2 : 0)]); nglBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, ARBWaterShader[(_FogEnabled ? 1 : 0) | (mat.getTexture(3) != NULL ? 2 : 0)]);
glEnable(GL_FRAGMENT_PROGRAM_ARB); glEnable(GL_FRAGMENT_PROGRAM_ARB);
// setup the constant // setup the constant
if (mat.getTexture(0) && mat.getTexture(0)->isBumpMap()) if (mat.getTexture(0) && mat.getTexture(0)->isBumpMap())
{ {
@ -2233,7 +2173,6 @@ void CDriverGL::setupWaterPassARB(const CMaterial &mat)
} }
} }
} }
} }
@ -2291,14 +2230,10 @@ void CDriverGL::setupWaterPassNV20(const CMaterial &mat)
float factor = tb->getNormalizationFactor(); float factor = tb->getNormalizationFactor();
float tsMatrix[4] = { 0.25f * factor, 0.f, 0.f, 0.25f * factor }; float tsMatrix[4] = { 0.25f * factor, 0.f, 0.f, 0.25f * factor };
glTexEnvfv(GL_TEXTURE_SHADER_NV, GL_OFFSET_TEXTURE_MATRIX_NV, tsMatrix); glTexEnvfv(GL_TEXTURE_SHADER_NV, GL_OFFSET_TEXTURE_MATRIX_NV, tsMatrix);
} }
else else
{ {
glTexEnvfv(GL_TEXTURE_SHADER_NV, GL_OFFSET_TEXTURE_MATRIX_NV, IdentityTexMat); glTexEnvfv(GL_TEXTURE_SHADER_NV, GL_OFFSET_TEXTURE_MATRIX_NV, IdentityTexMat);
} }
} }
tex = mat.getTexture(1); tex = mat.getTexture(1);
@ -2314,14 +2249,10 @@ void CDriverGL::setupWaterPassNV20(const CMaterial &mat)
float factor = tb->getNormalizationFactor(); float factor = tb->getNormalizationFactor();
float tsMatrix[4] = { factor, 0.f, 0.f, factor }; float tsMatrix[4] = { factor, 0.f, 0.f, factor };
glTexEnvfv(GL_TEXTURE_SHADER_NV, GL_OFFSET_TEXTURE_MATRIX_NV, tsMatrix); glTexEnvfv(GL_TEXTURE_SHADER_NV, GL_OFFSET_TEXTURE_MATRIX_NV, tsMatrix);
} }
else else
{ {
glTexEnvfv(GL_TEXTURE_SHADER_NV, GL_OFFSET_TEXTURE_MATRIX_NV, IdentityTexMat); glTexEnvfv(GL_TEXTURE_SHADER_NV, GL_OFFSET_TEXTURE_MATRIX_NV, IdentityTexMat);
} }
} }
tex = mat.getTexture(2); tex = mat.getTexture(2);

View file

@ -19,7 +19,13 @@
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
#include "nel/3d/vertex_buffer.h" #include "nel/3d/vertex_buffer.h"
#include <GL/gl.h>
#ifdef NL_MAC_NATIVE
# define GL_GLEXT_LEGACY
# include <OpenGL/gl.h>
#else
# include <GL/gl.h>
#endif
namespace NL3D namespace NL3D

View file

@ -1966,14 +1966,18 @@ bool CDriverGL::getRenderTargetSize (uint32 &width, uint32 &height)
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
width = _WindowWidth; width = _WindowWidth;
height = _WindowHeight; height = _WindowHeight;
#else // NL_OS_WINDOWS #elif defined(NL_OS_MAC) && defined(NL_MAC_NATIVE)
XWindowAttributes win_attributes; # warning "OpenGL Driver: Missing Mac Implementation"
if (!XGetWindowAttributes(dpy, win, &win_attributes)) nlwarning("OpenGL Driver: Missing Mac Implementation");
throw EBadDisplay("Can't get window attributes.");
// Setup gl viewport #elif defined (NL_OS_UNIX)
width = win_attributes.width; XWindowAttributes win_attributes;
height = win_attributes.height; if (!XGetWindowAttributes(dpy, win, &win_attributes))
throw EBadDisplay("Can't get window attributes.");
// Setup gl viewport
width = win_attributes.width;
height = win_attributes.height;
#endif // NL_OS_WINDOWS #endif // NL_OS_WINDOWS
} }

View file

@ -0,0 +1,79 @@
/*
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef NL_DRIVER_OPENGL_MAC_COCOA_ADAPTER_H
#define NL_DRIVER_OPENGL_MAC_COCOA_ADAPTER_H
#include "nel/misc/types_nl.h"
#include "nel/misc/event_server.h"
#include "nel/3d/driver.h"
#include "cocoa_event_emitter.h"
/*
* this cocoa adapter is a helper to call functions executing obj-c code
* from driver_opengl.cpp
*
* please see this as a temporary solution... there is some stuff concerning
* driver refactoring going on anyway as far as i know
*
* this can as well be seen as a preparation to pull platform specific code
* out of driver_opengl.cpp ;)
*
* btw: we cannot simply use a c++ class here, because then NSWindow* and friends
* would be members, but then we would need to add obj-c code here using an
* include or a forward declaration. this again would break compiling cpp files
* including this one (eg. driver_opengl.cpp)
*/
namespace NL3D { namespace MAC {
/// mac specific stuff while calling CDriverGL::CDriverGL()
void ctor();
/// mac specific stuff while calling CDriverGL::~CDriverGL()
void dtor();
/// mac specific stuff while calling CDriverGL::init()
bool init(uint windowIcon = 0, emptyProc exitFunc = 0);
/// mac specific stuff while calling CDriverGL::setDisplay()
bool setDisplay(nlWindow wnd, const GfxMode& mode, bool show, bool resizeable);
/// mac specific stuff while calling CDriverGL::getWindowSize()
void getWindowSize(uint32 &width, uint32 &height);
/// mac specific stuff while calling CDriverGL::getWindowPos()
void getWindowPos(uint32 &x, uint32 &y);
/// mac specific stuff while calling CDriverGL::setWindowPos()
void setWindowPos(uint32 x, uint32 y);
/// mac specific stuff while calling CDriverGL::setWindowTitle()
void setWindowTitle(const ucstring &title);
/// mac specific stuff while calling CDriverGL::swapBuffers()
void swapBuffers();
/// mac specific stuff while calling CCocoaEventEmitter::submitEvents()
void submitEvents(NLMISC::CEventServer& server,
bool allWindows, NLMISC::CCocoaEventEmitter* eventEmitter);
}}
#endif

View file

@ -0,0 +1,474 @@
/*
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "cocoa_adapter.h"
#include "nel/misc/events.h"
#include "nel/3d/driver.h"
#include "cocoa_event_emitter.h"
#include "cocoa_opengl_view.h"
#include "cocoa_window.h"
// virtual key codes are only defined here. we still do not need to link carbon
// see: http://lists.apple.com/archives/Cocoa-dev/2009/May/msg01180.html
#include <Carbon/Carbon.h>
#import <Cocoa/Cocoa.h>
namespace NL3D { namespace MAC {
static NSApplication* g_app = 0;
static NSAutoreleasePool* g_pool = 0;
static CocoaWindow* g_window = 0;
static CocoaOpenGLView* g_glview = 0;
static NSOpenGLContext* g_glctx = 0;
void ctor()
{
nldebug("mac cpp bridge called");
// create a pool, cocoa code would leak memory otherwise
g_pool = [[NSAutoreleasePool alloc] init];
// init the application object
g_app = [NSApplication sharedApplication];
}
void dtor()
{
nldebug("mac cpp bridge called");
// release the pool
[g_pool release];
}
bool init(uint windowIcon, emptyProc exitFunc)
{
nldebug("mac cpp bridge called with %u %u", windowIcon, exitFunc);
return true;
}
bool setDisplay(nlWindow wnd, const GfxMode& mode, bool show, bool resizeable)
{
nldebug("mac cpp bridge called with %u %u %u %u", wnd, &mode, show, resizeable);
// create a window
/* TODO: NSBackingStoreBuffered ??? */
g_window = [[CocoaWindow alloc] initWithContentRect:NSMakeRect(0, 0, 1024, 768)
styleMask:NSTitledWindowMask | NSResizableWindowMask |
NSClosableWindowMask | NSMiniaturizableWindowMask
backing:NSBackingStoreBuffered
defer:NO];
// setup opengl settings
NSOpenGLPixelFormatAttribute att[] =
{
NSOpenGLPFAWindow,
NSOpenGLPFADoubleBuffer,
NSOpenGLPFAColorSize, 24,
NSOpenGLPFAAlphaSize, 8,
NSOpenGLPFADepthSize, 24,
NSOpenGLPFANoRecovery,
NSOpenGLPFAAccelerated,
0
};
// put the settings into a format object
NSOpenGLPixelFormat* format =
[[NSOpenGLPixelFormat alloc] initWithAttributes:att];
// create a opengl view with the created format
g_glview = [[CocoaOpenGLView alloc]
initWithFrame:NSMakeRect(0, 0, 1024, 768) pixelFormat: format];
// create a opengl context for the view
g_glctx = [g_glview openGLContext];
// setup some stuff in the window
[g_window setContentView:g_glview];
[g_window makeKeyAndOrderFront:nil];
[g_window setAcceptsMouseMovedEvents:YES];
// make the views opengl context the currrent one
[g_glctx makeCurrentContext];
// tell the application that we are running now
[g_app finishLaunching];
// free the pixel format object
[format release];
return true;
}
void getWindowSize(uint32 &width, uint32 &height)
{
NSRect rect = [g_glview bounds];
width = rect.size.width;
height = rect.size.height;
}
void getWindowPos(uint32 &x, uint32 &y)
{
NSRect screenRect = [[g_window screen] frame];
NSRect windowRect = [g_window frame];
x = windowRect.origin.x;
y = screenRect.size.height - windowRect.size.height - windowRect.origin.y;
}
void setWindowPos(uint32 x, uint32 y)
{
NSRect screenRect = [[g_window screen] frame];
NSRect windowRect = [g_window frame];
y = screenRect.size.height - y;
[g_window setFrameTopLeftPoint:NSMakePoint(x, y)];
}
void setWindowTitle(const ucstring &title)
{
[g_window setTitle:[NSString stringWithUTF8String:title.toUtf8().c_str()]];
}
void swapBuffers()
{
[g_glctx flushBuffer];
}
/*
TODO: this function has to be moved to a more central place to handle key
mapping on mac x11 as well
*/
NLMISC::TKey virtualKeycodeToNelKey(unsigned short keycode)
{
switch(keycode)
{
case kVK_ANSI_0: return NLMISC::Key0;
case kVK_ANSI_1: return NLMISC::Key1;
case kVK_ANSI_2: return NLMISC::Key2;
case kVK_ANSI_3: return NLMISC::Key3;
case kVK_ANSI_4: return NLMISC::Key4;
case kVK_ANSI_5: return NLMISC::Key6;
case kVK_ANSI_6: return NLMISC::Key5;
case kVK_ANSI_7: return NLMISC::Key7;
case kVK_ANSI_8: return NLMISC::Key8;
case kVK_ANSI_9: return NLMISC::Key9;
case kVK_ANSI_A: return NLMISC::KeyA;
case kVK_ANSI_B: return NLMISC::KeyB;
case kVK_ANSI_C: return NLMISC::KeyC;
case kVK_ANSI_D: return NLMISC::KeyD;
case kVK_ANSI_E: return NLMISC::KeyE;
case kVK_ANSI_F: return NLMISC::KeyF;
case kVK_ANSI_G: return NLMISC::KeyG;
case kVK_ANSI_H: return NLMISC::KeyH;
case kVK_ANSI_I: return NLMISC::KeyI;
case kVK_ANSI_J: return NLMISC::KeyJ;
case kVK_ANSI_K: return NLMISC::KeyK;
case kVK_ANSI_L: return NLMISC::KeyL;
case kVK_ANSI_M: return NLMISC::KeyM;
case kVK_ANSI_N: return NLMISC::KeyN;
case kVK_ANSI_O: return NLMISC::KeyO;
case kVK_ANSI_P: return NLMISC::KeyP;
case kVK_ANSI_Q: return NLMISC::KeyQ;
case kVK_ANSI_R: return NLMISC::KeyR;
case kVK_ANSI_S: return NLMISC::KeyS;
case kVK_ANSI_T: return NLMISC::KeyT;
case kVK_ANSI_U: return NLMISC::KeyU;
case kVK_ANSI_V: return NLMISC::KeyV;
case kVK_ANSI_W: return NLMISC::KeyW;
case kVK_ANSI_X: return NLMISC::KeyX;
case kVK_ANSI_Y: return NLMISC::KeyY;
case kVK_ANSI_Z: return NLMISC::KeyZ;
case kVK_ANSI_Equal: return NLMISC::KeyEQUALS;
case kVK_ANSI_Minus: return NLMISC::KeySUBTRACT;
case kVK_ANSI_RightBracket: return NLMISC::KeyRBRACKET;
case kVK_ANSI_LeftBracket: return NLMISC::KeyLBRACKET;
case kVK_ANSI_Quote: return NLMISC::KeyAPOSTROPHE;
case kVK_ANSI_Grave: return NLMISC::KeyPARAGRAPH;
case kVK_ANSI_Slash: return NLMISC::KeySLASH;
case kVK_ANSI_Backslash: return NLMISC::KeyBACKSLASH;
case kVK_ANSI_Comma: return NLMISC::KeyCOMMA;
case kVK_ANSI_Period: return NLMISC::KeyPERIOD;
case kVK_ANSI_Semicolon: return NLMISC::KeySEMICOLON;
case kVK_ANSI_KeypadDecimal: return NLMISC::KeyDECIMAL;
case kVK_ANSI_KeypadMultiply: return NLMISC::KeyMULTIPLY;
case kVK_ANSI_KeypadPlus: return NLMISC::KeyADD;
case kVK_ANSI_KeypadClear: return NLMISC::KeyDELETE;
case kVK_ANSI_KeypadDivide: return NLMISC::KeyDIVIDE;
case kVK_ANSI_KeypadEnter: return NLMISC::KeyRETURN;
case kVK_ANSI_KeypadMinus: return NLMISC::KeySUBTRACT;
case kVK_ANSI_KeypadEquals: return NLMISC::KeySEPARATOR;
case kVK_ANSI_Keypad0: return NLMISC::KeyNUMPAD0;
case kVK_ANSI_Keypad1: return NLMISC::KeyNUMPAD1;
case kVK_ANSI_Keypad2: return NLMISC::KeyNUMPAD2;
case kVK_ANSI_Keypad3: return NLMISC::KeyNUMPAD3;
case kVK_ANSI_Keypad4: return NLMISC::KeyNUMPAD4;
case kVK_ANSI_Keypad5: return NLMISC::KeyNUMPAD5;
case kVK_ANSI_Keypad6: return NLMISC::KeyNUMPAD6;
case kVK_ANSI_Keypad7: return NLMISC::KeyNUMPAD7;
case kVK_ANSI_Keypad8: return NLMISC::KeyNUMPAD8;
case kVK_ANSI_Keypad9: return NLMISC::KeyNUMPAD9;
case kVK_Return: return NLMISC::KeyRETURN;
case kVK_Tab: return NLMISC::KeyTAB;
case kVK_Space: return NLMISC::KeySPACE;
case kVK_Delete: return NLMISC::KeyBACK;
case kVK_ForwardDelete: return NLMISC::KeyDELETE;
case kVK_Escape: return NLMISC::KeyESCAPE;
case kVK_Shift: return NLMISC::KeySHIFT;
case kVK_RightShift: return NLMISC::KeyRSHIFT;
case kVK_CapsLock: return NLMISC::KeyCAPITAL;
case kVK_Control: return NLMISC::KeyCONTROL;
case kVK_RightControl: return NLMISC::KeyRCONTROL;
case kVK_F1: return NLMISC::KeyF1;
case kVK_F2: return NLMISC::KeyF2;
case kVK_F3: return NLMISC::KeyF3;
case kVK_F4: return NLMISC::KeyF4;
case kVK_F5: return NLMISC::KeyF5;
case kVK_F6: return NLMISC::KeyF6;
case kVK_F7: return NLMISC::KeyF7;
case kVK_F8: return NLMISC::KeyF8;
case kVK_F9: return NLMISC::KeyF9;
case kVK_F11: return NLMISC::KeyF11;
case kVK_F13: return NLMISC::KeyF13;
case kVK_F16: return NLMISC::KeyF16;
case kVK_F14: return NLMISC::KeyF14;
case kVK_F10: return NLMISC::KeyF10;
case kVK_F12: return NLMISC::KeyF12;
case kVK_F15: return NLMISC::KeyF15;
case kVK_F17: return NLMISC::KeyF17;
case kVK_F18: return NLMISC::KeyF18;
case kVK_F19: return NLMISC::KeyF19;
case kVK_F20: return NLMISC::KeyF20;
case kVK_Home: return NLMISC::KeyHOME;
case kVK_End: return NLMISC::KeyEND;
case kVK_PageUp: return NLMISC::KeyPRIOR;
case kVK_PageDown: return NLMISC::KeyNEXT;
case kVK_LeftArrow: return NLMISC::KeyLEFT;
case kVK_RightArrow: return NLMISC::KeyRIGHT;
case kVK_DownArrow: return NLMISC::KeyDOWN;
case kVK_UpArrow: return NLMISC::KeyUP;
case kVK_Command:break;
case kVK_Option:break;
case kVK_RightOption:break;
case kVK_Function:break;
case kVK_VolumeUp:break;
case kVK_VolumeDown:break;
case kVK_Mute:break;
case kVK_Help:break;
case kVK_ISO_Section:break;
case kVK_JIS_Yen:break;
case kVK_JIS_Underscore:break;
case kVK_JIS_KeypadComma:break;
case kVK_JIS_Eisu:break;
case kVK_JIS_Kana:break;
default:break;
}
return NLMISC::KeyNOKEY;
}
/*
TODO: this function has to be moved to a more central place to handle key
mapping on mac x11 as well
*/
NLMISC::TKeyButton modifierFlagsToNelKeyButton(unsigned int modifierFlags)
{
unsigned int buttons = 0;
if (modifierFlags & NSControlKeyMask) buttons |= NLMISC::ctrlKeyButton;
if (modifierFlags & NSShiftKeyMask) buttons |= NLMISC::shiftKeyButton;
if (modifierFlags & NSAlternateKeyMask) buttons |= NLMISC::altKeyButton;
return (NLMISC::TKeyButton)buttons;
}
bool isTextKeyEvent(NSEvent* event)
{
// if there are no characters provided with this event, is is not a text event
if([[event characters] length] == 0)
return false;
NLMISC::TKey nelKey = virtualKeycodeToNelKey([event keyCode]);
// ryzom ui wants to have "escape key string" to leave text box
if(nelKey == NLMISC::KeyESCAPE)
return true;
// ryzom ui wants to have "return key string" to submit text box (send chat)
if(nelKey == NLMISC::KeyRETURN)
return true;
// get the character reported by cocoa
unsigned int character = [[event characters] characterAtIndex:0];
// printable ascii characters
if(isprint(character))
return true;
/*
TODO check why iswprint(character) does not solve it.
it always returns false, even for π é ...
*/
// > 127 but not printable
if( nelKey == NLMISC::KeyF1 || nelKey == NLMISC::KeyF2 ||
nelKey == NLMISC::KeyF3 || nelKey == NLMISC::KeyF4 ||
nelKey == NLMISC::KeyF5 || nelKey == NLMISC::KeyF6 ||
nelKey == NLMISC::KeyF7 || nelKey == NLMISC::KeyF8 ||
nelKey == NLMISC::KeyF9 || nelKey == NLMISC::KeyF10 ||
nelKey == NLMISC::KeyF11 || nelKey == NLMISC::KeyF12 ||
nelKey == NLMISC::KeyF13 || nelKey == NLMISC::KeyF14 ||
nelKey == NLMISC::KeyF15 || nelKey == NLMISC::KeyF16 ||
nelKey == NLMISC::KeyF17 || nelKey == NLMISC::KeyF18 ||
nelKey == NLMISC::KeyF19 || nelKey == NLMISC::KeyF20 ||
nelKey == NLMISC::KeyUP || nelKey == NLMISC::KeyDOWN ||
nelKey == NLMISC::KeyLEFT || nelKey == NLMISC::KeyRIGHT ||
nelKey == NLMISC::KeyHOME || nelKey == NLMISC::KeyEND ||
nelKey == NLMISC::KeyPRIOR || nelKey == NLMISC::KeyNEXT ||
nelKey == NLMISC::KeyDELETE)
return false;
// all the fancy wide characters
if(character > 127)
return true;
return false;
}
void submitEvents(NLMISC::CEventServer& server,
bool allWindows, NLMISC::CCocoaEventEmitter* eventEmitter)
{
// cocoa style memory cleanup
[g_pool release];
g_pool = [[NSAutoreleasePool alloc] init];
// we break if there was no event to handle
/* TODO maximum? */
while(true)
{
// get the next event to handle
NSEvent* event = [g_app nextEventMatchingMask:NSAnyEventMask
untilDate:nil /*[NSDate distantFuture]*/
inMode:NSDefaultRunLoopMode dequeue:YES];
// stop, if there was no event
if(!event)
break;
// NSLog(@"%@", event);
uint32 width, height;
/* TODO cache? */
getWindowSize(width, height);
// get the mouse position in nel style (relative)
float mouseX = event.locationInWindow.x / (float)width;
float mouseY = event.locationInWindow.y / (float)height;
switch(event.type)
{
case NSLeftMouseDown:
server.postEvent(new NLMISC::CEventMouseDown(
mouseX, mouseY, NLMISC::leftButton /* modifiers */, eventEmitter));
break;
case NSLeftMouseUp:
server.postEvent(new NLMISC::CEventMouseUp(
mouseX, mouseY, NLMISC::leftButton /* modifiers */, eventEmitter));
break;
case NSRightMouseDown:
server.postEvent(new NLMISC::CEventMouseDown(
mouseX, mouseY, NLMISC::rightButton /* modifiers */, eventEmitter));
break;
case NSRightMouseUp:
server.postEvent(new NLMISC::CEventMouseUp(
mouseX, mouseY, NLMISC::rightButton /* modifiers */, eventEmitter));
break;
case NSMouseMoved:
server.postEvent(new NLMISC::CEventMouseMove(
mouseX, mouseY, (NLMISC::TMouseButton)0 /* modifiers */, eventEmitter));
break;
case NSLeftMouseDragged:
server.postEvent(new NLMISC::CEventMouseMove(
mouseX, mouseY, NLMISC::leftButton /* modifiers */, eventEmitter));
break;
case NSRightMouseDragged:break;
server.postEvent(new NLMISC::CEventMouseMove(
mouseX, mouseY, NLMISC::rightButton /* modifiers */, eventEmitter));
case NSMouseEntered:break;
case NSMouseExited:break;
case NSKeyDown:
/*
TODO dead keys
http://developer.apple.com/mac/library/documentation/Carbon/Reference/
Unicode_Utilities_Ref/Reference/reference.html#//apple_ref/c/func/
UCKeyTranslate
*/
// push the key press event to the new event server
server.postEvent(new NLMISC::CEventKeyDown(
virtualKeycodeToNelKey([event keyCode]),
modifierFlagsToNelKeyButton([event modifierFlags]),
[event isARepeat] == NO,
eventEmitter));
if(isTextKeyEvent(event))
{
ucstring ucstr;
// get the string associated with the key press event
ucstr.fromUtf8([[event characters] UTF8String]);
// push to event server
server.postEvent(new NLMISC::CEventChar(
ucstr[0],
NLMISC::noKeyButton,
eventEmitter));
}
break;
case NSKeyUp:
server.postEvent(new NLMISC::CEventKeyUp(
virtualKeycodeToNelKey([event keyCode]),
modifierFlagsToNelKeyButton([event modifierFlags]),
eventEmitter));
break;
case NSFlagsChanged:break;
case NSAppKitDefined:break;
case NSSystemDefined:break;
case NSApplicationDefined:break;
case NSPeriodic:break;
case NSCursorUpdate:break;
case NSScrollWheel:break;
case NSTabletPoint:break;
case NSTabletProximity:break;
case NSOtherMouseDown:break;
case NSOtherMouseUp:break;
case NSOtherMouseDragged:break;
case NSEventTypeGesture:break;
case NSEventTypeMagnify:break;
case NSEventTypeSwipe:break;
case NSEventTypeRotate:break;
case NSEventTypeBeginGesture:break;
case NSEventTypeEndGesture:break;
default:
nlwarning("Unknown event type. dropping.");
// NSLog(@"%@", event);
break;
}
[g_app sendEvent:event];
[g_app updateWindows];
}
}
}}

View file

@ -0,0 +1,30 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "cocoa_event_emitter.h"
#include "cocoa_adapter.h"
namespace NLMISC
{
void CCocoaEventEmitter::submitEvents(CEventServer & server, bool allWindows)
{
// just forwarding to our cocoa adapter
NL3D::MAC::submitEvents(server, allWindows, this);
}
}

View file

@ -0,0 +1,33 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef NL_COCOA_EVENT_EMITTER_H
#define NL_COCOA_EVENT_EMITTER_H
#include <nel/misc/event_emitter.h>
namespace NLMISC
{
class CCocoaEventEmitter : public IEventEmitter
{
public:
virtual void submitEvents(CEventServer & server, bool allWindows);
};
}
#endif

View file

@ -0,0 +1,32 @@
/*
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#import <Cocoa/Cocoa.h>
/**
* derived to configure the NSOpenGLView
*/
@interface CocoaOpenGLView : NSOpenGLView
{
}
-(BOOL)acceptsFirstResponder;
-(BOOL)needsPanelToBecomeKey;
-(void)keyDown:(NSEvent*)event;
@end

View file

@ -0,0 +1,42 @@
/*
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#import "cocoa_opengl_view.h"
@implementation CocoaOpenGLView
-(BOOL)acceptsFirstResponder
{
return YES;
}
-(BOOL)needsPanelToBecomeKey
{
return NO;
}
-(void)keyDown:(NSEvent*)event
{
// we handle the key here, so os x does not make a sound :)
/*
TODO do it in the event emitter? eg do not forward key down?
does command+q / command+m still work then?
*/
}
@end

View file

@ -0,0 +1,31 @@
/*
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#import <Cocoa/Cocoa.h>
/**
* derived to configure the NSWindow
*/
@interface CocoaWindow : NSWindow
{
}
-(BOOL)canBecomeKeyWindow;
-(BOOL)canBecomeMainWindow;
-(BOOL)needsPanelToBecomeKey;
-(BOOL)acceptsFirstResponder;
@end

View file

@ -0,0 +1,43 @@
/*
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#import "cocoa_window.h"
@implementation CocoaWindow
-(BOOL)canBecomeKeyWindow
{
return YES;
}
-(BOOL)canBecomeMainWindow
{
return YES;
}
-(BOOL)needsPanelToBecomeKey
{
return NO;
}
-(BOOL)acceptsFirstResponder
{
return YES;
}
@end

File diff suppressed because it is too large Load diff

View file

@ -18,6 +18,8 @@
#ifdef NL_OS_UNIX #ifdef NL_OS_UNIX
#ifndef NL_MAC_NATIVE
#include <X11/keysym.h> #include <X11/keysym.h>
#include <GL/gl.h> #include <GL/gl.h>
#include <GL/glx.h> #include <GL/glx.h>
@ -29,12 +31,42 @@ namespace NLMISC {
CUnixEventEmitter::CUnixEventEmitter ():_dpy(NULL), _win(0), _PreviousKey(KeyNOKEY) CUnixEventEmitter::CUnixEventEmitter ():_dpy(NULL), _win(0), _PreviousKey(KeyNOKEY)
{ {
_im = 0;
_ic = 0;
}
CUnixEventEmitter::~CUnixEventEmitter()
{
if (_ic) XDestroyIC(_ic);
if (_im) XCloseIM(_im);
} }
void CUnixEventEmitter::init (Display *dpy, Window win) void CUnixEventEmitter::init (Display *dpy, Window win)
{ {
_dpy = dpy; _dpy = dpy;
_win = win; _win = win;
createIM();
}
void CUnixEventEmitter::createIM()
{
_im = XOpenIM(_dpy, NULL, NULL, NULL);
if (_im)
{
_ic = XCreateIC(_im, XNInputStyle, XIMPreeditNothing | XIMStatusNothing, XNClientWindow, _win, XNFocusWindow, _win, NULL);
// XSetICFocus(_ic);
}
else
{
_ic = 0;
nlwarning("XCreateIM failed");
}
if (!_ic)
{
nlwarning("XCreateIC failed");
}
} }
void CUnixEventEmitter::submitEvents(CEventServer & server, bool allWindows) void CUnixEventEmitter::submitEvents(CEventServer & server, bool allWindows)
@ -82,8 +114,70 @@ TKeyButton getKeyButton (uint32 state)
return (TKeyButton)button; return (TKeyButton)button;
} }
TKey getKey (KeySym keysym) TKey getKeyFromKeycode (uint keycode)
{ {
// keycodes are depending on system
switch (keycode)
{
#ifdef NL_OS_MAC
case 0x12: return Key1;
case 0x13: return Key2;
case 0x14: return Key3;
case 0x15: return Key4;
case 0x16: return Key6;
case 0x17: return Key5;
case 0x18: return KeyEQUALS;
case 0x19: return Key9;
case 0x1a: return Key7;
case 0x1c: return Key8;
case 0x1d: return Key0;
case 0x1e: return KeyRBRACKET;
case 0x21: return KeyLBRACKET;
case 0x27: return KeyAPOSTROPHE;
case 0x29: return KeySEMICOLON;
case 0x2a: return KeyBACKSLASH;
case 0x2b: return KeyCOMMA;
case 0x2c: return KeySLASH;
case 0x2f: return KeyPERIOD;
// case 0x5e: return KeyOEM_102;
// case 0x30: return KeyTILDE;
// case 0x3d: return KeyPARAGRAPH;
#else
case 0x0a: return Key1;
case 0x0b: return Key2;
case 0x0c: return Key3;
case 0x0d: return Key4;
case 0x0e: return Key5;
case 0x0f: return Key6;
case 0x10: return Key7;
case 0x11: return Key8;
case 0x12: return Key9;
case 0x13: return Key0;
case 0x14: return KeyLBRACKET;
case 0x15: return KeyEQUALS;
case 0x22: return KeyRBRACKET;
case 0x23: return KeySEMICOLON;
case 0x2f: return KeyCOMMA;
case 0x30: return KeyTILDE;
case 0x31: return KeyAPOSTROPHE;
case 0x33: return KeyBACKSLASH;
case 0x5e: return KeyOEM_102;
case 0x3a: return KeyCOMMA;
case 0x3b: return KeyPERIOD;
case 0x3c: return KeySLASH;
case 0x3d: return KeyPARAGRAPH;
#endif
default:
// nlwarning("missing keycode 0x%x %d '%c'", keycode, keycode, keycode);
break;
}
return KeyNOKEY;
}
TKey getKeyFromKeySym (KeySym keysym)
{
// nlwarning("0x%x %d '%c'", keysym, keysym, keysym);
switch (keysym) switch (keysym)
{ {
case XK_BackSpace: return KeyBACK; case XK_BackSpace: return KeyBACK;
@ -131,6 +225,7 @@ TKey getKey (KeySym keysym)
case XK_KP_Add: return KeyADD; case XK_KP_Add: return KeyADD;
case XK_KP_Subtract: return KeySUBTRACT; case XK_KP_Subtract: return KeySUBTRACT;
case XK_KP_Decimal: return KeyDECIMAL; case XK_KP_Decimal: return KeyDECIMAL;
// case XK_period: return KeyDECIMAL;
case XK_KP_Divide: return KeyDIVIDE; case XK_KP_Divide: return KeyDIVIDE;
case XK_F1: return KeyF1; case XK_F1: return KeyF1;
case XK_F2: return KeyF2; case XK_F2: return KeyF2;
@ -157,16 +252,6 @@ TKey getKey (KeySym keysym)
case XK_Alt_L: return KeyMENU; case XK_Alt_L: return KeyMENU;
case XK_Alt_R: return KeyMENU; case XK_Alt_R: return KeyMENU;
case XK_space: return KeySPACE; case XK_space: return KeySPACE;
case XK_0: return Key0;
case XK_1: return Key1;
case XK_2: return Key2;
case XK_3: return Key3;
case XK_4: return Key4;
case XK_5: return Key5;
case XK_6: return Key6;
case XK_7: return Key7;
case XK_8: return Key8;
case XK_9: return Key9;
case XK_A: case XK_A:
case XK_a: return KeyA; case XK_a: return KeyA;
case XK_B: case XK_B:
@ -220,7 +305,7 @@ TKey getKey (KeySym keysym)
case XK_Z: case XK_Z:
case XK_z: return KeyZ; case XK_z: return KeyZ;
default: default:
//nldebug ("0x%x %d '%c'", keysym, keysym, keysym); // other keys don't need to be processed here
break; break;
} }
return KeyNOKEY; return KeyNOKEY;
@ -299,50 +384,77 @@ void CUnixEventEmitter::processMessage (XEvent &event, CEventServer &server)
} }
Case(KeyPress) Case(KeyPress)
{ {
char Text[1024]; // save keycode because XFilterEvent could set it to 0
uint keyCode = event.xkey.keycode;
KeySym k; KeySym k;
int c; static char Text[256];
c = XLookupString(&event.xkey, Text, 1024-1, &k, NULL); int c = 0;
TKey key = getKey(XKeycodeToKeysym(_dpy, event.xkey.keycode, 0)); // check if event is filtered
if(key == KeyNOKEY) bool filtered = XFilterEvent(&event, _win);
key = getKey(XKeycodeToKeysym(_dpy, event.xkey.keycode, 1));
server.postEvent (new CEventKeyDown (key, getKeyButton(event.xbutton.state), _PreviousKey != key, this)); // if key event is filtered, we shouldn't use XLookupString to retrieve KeySym
_PreviousKey = key; if (!filtered)
{
Status status = XLookupNone;
// don't send a control character when deleting #ifdef X_HAVE_UTF8_STRING
if (key == KeyDELETE) if (_ic)
c = 0; c = Xutf8LookupString(_ic, &event.xkey, Text, sizeof(Text), &k, &status);
#endif
if (status == XLookupNone)
c = XLookupString(&event.xkey, Text, sizeof(Text), &k, NULL);
}
else
{
k = XKeycodeToKeysym(_dpy, keyCode, 0);
}
// send CEventKeyDown event only if keyCode is defined
if (keyCode)
{
TKey key = getKeyFromKeySym(k);
if(key == KeyNOKEY)
key = getKeyFromKeycode(keyCode);
server.postEvent (new CEventKeyDown (key, getKeyButton(event.xbutton.state), _PreviousKey != key, this));
_PreviousKey = key;
// don't send a control character when deleting
if (key == KeyDELETE)
c = 0;
}
Text[c] = '\0'; Text[c] = '\0';
if(c>0) if(c>0)
{ {
#ifdef X_HAVE_UTF8_STRING
ucstring ucstr;
ucstr.fromUtf8(Text);
server.postEvent (new CEventChar (ucstr[0], noKeyButton, this));
#else
for (int i = 0; i < c; i++) for (int i = 0; i < c; i++)
{
server.postEvent (new CEventChar ((ucchar)(unsigned char)Text[i], noKeyButton, this)); server.postEvent (new CEventChar ((ucchar)(unsigned char)Text[i], noKeyButton, this));
} #endif
} }
break; break;
} }
Case (KeyRelease) Case (KeyRelease)
{ {
char Text[1024]; TKey key = getKeyFromKeySym(XKeycodeToKeysym(_dpy, event.xkey.keycode, 0));
KeySym k;
int c;
c = XLookupString(&event.xkey, Text, 1024-1, &k, NULL);
TKey key = getKey(XKeycodeToKeysym(_dpy, event.xkey.keycode, 0));
if(key == KeyNOKEY) if(key == KeyNOKEY)
key = getKey(XKeycodeToKeysym(_dpy, event.xkey.keycode, 1)); key = getKeyFromKeycode(event.xkey.keycode);
server.postEvent (new CEventKeyUp (key, getKeyButton(event.xbutton.state), this)); server.postEvent (new CEventKeyUp (key, getKeyButton(event.xbutton.state), this));
_PreviousKey = KeyNOKEY; _PreviousKey = KeyNOKEY;
break; break;
} }
Case(FocusIn) Case(FocusIn)
if (_ic) XSetICFocus(_ic);
return; return;
Case(FocusOut) Case(FocusOut)
if (_ic) XUnsetICFocus(_ic);
return; return;
Case(Expose) Case(Expose)
break; break;
@ -350,6 +462,8 @@ void CUnixEventEmitter::processMessage (XEvent &event, CEventServer &server)
XRefreshKeyboardMapping((XMappingEvent *)&event); XRefreshKeyboardMapping((XMappingEvent *)&event);
break; break;
Case(DestroyNotify) Case(DestroyNotify)
// XIM server has crashed
createIM();
break; break;
Case(ConfigureNotify) Case(ConfigureNotify)
/* if (event.xconfigure.width==gmaxx && event.xconfigure.height==gmaxy) { /* if (event.xconfigure.width==gmaxx && event.xconfigure.height==gmaxy) {
@ -367,4 +481,6 @@ void CUnixEventEmitter::processMessage (XEvent &event, CEventServer &server)
} // NLMISC } // NLMISC
#endif // NL_MAC_NATIVE
#endif // NL_OS_UNIX #endif // NL_OS_UNIX

View file

@ -17,6 +17,8 @@
#ifndef NL_UNIX_EVENT_EMITTER_H #ifndef NL_UNIX_EVENT_EMITTER_H
#define NL_UNIX_EVENT_EMITTER_H #define NL_UNIX_EVENT_EMITTER_H
#ifndef NL_MAC_NATIVE
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
#include "nel/misc/event_emitter.h" #include "nel/misc/event_emitter.h"
#include "nel/misc/events.h" #include "nel/misc/events.h"
@ -41,6 +43,7 @@ public:
/// Constructor /// Constructor
CUnixEventEmitter(); CUnixEventEmitter();
virtual ~CUnixEventEmitter();
void init (Display *dpy, Window win); void init (Display *dpy, Window win);
@ -55,9 +58,13 @@ public:
void processMessage (XEvent &event, CEventServer &server); void processMessage (XEvent &event, CEventServer &server);
private: private:
void createIM();
Display *_dpy; Display *_dpy;
Window _win; Window _win;
TKey _PreviousKey; TKey _PreviousKey;
XIM _im;
XIC _ic;
}; };
@ -65,6 +72,8 @@ private:
#endif // NL_OS_UNIX #endif // NL_OS_UNIX
#endif // NL_MAC_NATIVE
#endif // NL_UNIX_EVENT_EMITTER_H #endif // NL_UNIX_EVENT_EMITTER_H
/* End of unix_event_emitter.h */ /* End of unix_event_emitter.h */

View file

@ -386,7 +386,7 @@ bool CDriverUser::isActive()
// *************************************************************************** // ***************************************************************************
void *CDriverUser::getDisplay () nlWindow CDriverUser::getDisplay ()
{ {
NL3D_HAUTO_UI_DRIVER; NL3D_HAUTO_UI_DRIVER;

View file

@ -287,7 +287,7 @@ int Height = 100;
CFontGenerator::CFontGenerator (const std::string &fontFileName, const std::string &fontExFileName) CFontGenerator::CFontGenerator (const std::string &fontFileName, const std::string &fontExFileName)
{ {
// HWND win=(HWND)winHack; // HWND win=winHack;
// WindowHandle = win; // WindowHandle = win;
// Format = format; // Format = format;
// RECT rect; // RECT rect;

View file

@ -389,6 +389,8 @@ void CTileBank::makeAllExtensionDDS ()
// Diffuse // Diffuse
tmp= _TileVector[nTile].getRelativeFileName (CTile::diffuse); tmp= _TileVector[nTile].getRelativeFileName (CTile::diffuse);
pos= tmp.rfind(".tga"); pos= tmp.rfind(".tga");
if (pos == string::npos)
pos = tmp.rfind(".png");
if(pos!= string::npos) if(pos!= string::npos)
{ {
tmp.replace(pos, 4, ".dds"); tmp.replace(pos, 4, ".dds");
@ -398,6 +400,8 @@ void CTileBank::makeAllExtensionDDS ()
// Additive. // Additive.
tmp= _TileVector[nTile].getRelativeFileName (CTile::additive); tmp= _TileVector[nTile].getRelativeFileName (CTile::additive);
pos= tmp.rfind(".tga"); pos= tmp.rfind(".tga");
if (pos == string::npos)
pos = tmp.rfind(".png");
if(pos!= string::npos) if(pos!= string::npos)
{ {
tmp.replace(pos, 4, ".dds"); tmp.replace(pos, 4, ".dds");
@ -407,6 +411,8 @@ void CTileBank::makeAllExtensionDDS ()
// Alpha. // Alpha.
tmp= _TileVector[nTile].getRelativeFileName (CTile::alpha); tmp= _TileVector[nTile].getRelativeFileName (CTile::alpha);
pos= tmp.rfind(".tga"); pos= tmp.rfind(".tga");
if (pos == string::npos)
pos = tmp.rfind(".png");
if(pos!= string::npos) if(pos!= string::npos)
{ {
tmp.replace(pos, 4, ".dds"); tmp.replace(pos, 4, ".dds");

View file

@ -99,6 +99,7 @@ libnelmisc_la_SOURCES = \
string_id_array.cpp \ string_id_array.cpp \
string_mapper.cpp \ string_mapper.cpp \
system_info.cpp \ system_info.cpp \
system_utils.cpp \
task_manager.cpp \ task_manager.cpp \
tds.cpp \ tds.cpp \
time_nl.cpp \ time_nl.cpp \

View file

@ -158,7 +158,7 @@ uint8 CBitmap::readJPG( NLMISC::IStream &f )
{ {
dstChannels = 1; dstChannels = 1;
srcChannels = 1; srcChannels = 1;
resize (cinfo.image_width, cinfo.image_height, Luminance); resize (cinfo.image_width, cinfo.image_height, _LoadGrayscaleAsAlpha ? Alpha : Luminance);
} }
else else
{ {

View file

@ -163,7 +163,7 @@ uint8 CBitmap::readPNG( NLMISC::IStream &f )
dstChannels = 1; dstChannels = 1;
firstChannel = 0; firstChannel = 0;
lastChannel = 0; lastChannel = 0;
resize (width, height, Luminance); resize (width, height, _LoadGrayscaleAsAlpha ? Alpha : Luminance);
} }
else if (iColorType == PNG_COLOR_TYPE_GRAY_ALPHA) else if (iColorType == PNG_COLOR_TYPE_GRAY_ALPHA)
{ {

View file

@ -36,7 +36,7 @@ static const uint32 KeyMaxLength = 1024;
namespace NLMISC { namespace NLMISC {
void *CSystemUtils::s_window = NULL; nlWindow CSystemUtils::s_window = EmptyWindow;
bool CSystemUtils::init() bool CSystemUtils::init()
{ {
@ -59,7 +59,7 @@ bool CSystemUtils::uninit()
return true; return true;
} }
void CSystemUtils::setWindow(void *window) void CSystemUtils::setWindow(nlWindow window)
{ {
s_window = window; s_window = window;
} }
@ -83,12 +83,12 @@ bool CSystemUtils::updateProgressBar(uint value, uint total)
if (total) if (total)
{ {
// update the taskbar progress // update the taskbar progress
hr = pTaskbarList->SetProgressValue((HWND)s_window, (ULONGLONG)value, (ULONGLONG)total); hr = pTaskbarList->SetProgressValue(s_window, (ULONGLONG)value, (ULONGLONG)total);
} }
else else
{ {
// don't update anymore the progress // don't update anymore the progress
hr = pTaskbarList->SetProgressState((HWND)s_window, value == 0 ? TBPF_INDETERMINATE:TBPF_NOPROGRESS); hr = pTaskbarList->SetProgressState(s_window, value == 0 ? TBPF_INDETERMINATE:TBPF_NOPROGRESS);
} }
// release the interface // release the interface
@ -368,13 +368,13 @@ bool CSystemUtils::isSystemCursorInClientArea()
return false; return false;
} }
HWND wnd = WindowFromPoint(cursPos); HWND wnd = WindowFromPoint(cursPos);
if (wnd != (HWND)s_window) if (wnd != s_window)
{ {
return false; // not the same window return false; // not the same window
} }
// want that the mouse be in the client area // want that the mouse be in the client area
RECT clientRect; RECT clientRect;
if (!GetClientRect((HWND)s_window, &clientRect)) if (!GetClientRect(s_window, &clientRect))
{ {
return false; return false;
} }
@ -383,11 +383,11 @@ bool CSystemUtils::isSystemCursorInClientArea()
tl.y = clientRect.top; tl.y = clientRect.top;
br.x = clientRect.right; br.x = clientRect.right;
br.y = clientRect.bottom; br.y = clientRect.bottom;
if (!ClientToScreen((HWND)s_window, &tl)) if (!ClientToScreen(s_window, &tl))
{ {
return false; return false;
} }
if (!ClientToScreen((HWND)s_window, &br)) if (!ClientToScreen(s_window, &br))
{ {
return false; return false;
} }

View file

@ -1,5 +1,11 @@
FILE(GLOB SRC *.cpp *.h) FILE(GLOB SRC *.cpp *.h)
# TODO: fixes a linking problem for libnelsound.dylib, but does not look like
# the cleanest way to solve the issue. FIXME!
IF(APPLE)
SET(SRC ${SRC} driver/sound_driver.cpp driver/buffer.cpp)
ENDIF(APPLE)
IF(NOT WIN32) IF(NOT WIN32)
ADD_LIBRARY(nelsound SHARED ${SRC}) ADD_LIBRARY(nelsound SHARED ${SRC})
ELSE(NOT WIN32) ELSE(NOT WIN32)

View file

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="8.00" Version="9.00"
Name="nel_patch_edit" Name="nel_patch_edit_adv"
ProjectGUID="{F8D52EA9-5C60-4C40-912B-F049B85B9DC0}" ProjectGUID="{F8D52EA9-5C60-4C40-912B-F049B85B9DC0}"
RootNamespace="nel_patch_edit" RootNamespace="nel_patch_edit_adv"
TargetFrameworkVersion="131072"
> >
<Platforms> <Platforms>
<Platform <Platform
@ -86,6 +87,8 @@
ProgramDatabaseFile=".\DebugFast/neleditpatch.pdb" ProgramDatabaseFile=".\DebugFast/neleditpatch.pdb"
SubSystem="2" SubSystem="2"
BaseAddress="0x05830000" BaseAddress="0x05830000"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary=".\DebugFast/neleditpatch.lib" ImportLibrary=".\DebugFast/neleditpatch.lib"
TargetMachine="1" TargetMachine="1"
/> />
@ -107,9 +110,6 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
CommandLine="copy &quot;C:\3dsmax3_1 debug\exe\plugins\neleditpatch.dlm&quot; &quot;c:\3dsmax3_1\plugins&quot;&#x0D;&#x0A;echo copie dans max&#x0D;&#x0A;" CommandLine="copy &quot;C:\3dsmax3_1 debug\exe\plugins\neleditpatch.dlm&quot; &quot;c:\3dsmax3_1\plugins&quot;&#x0D;&#x0A;echo copie dans max&#x0D;&#x0A;"
@ -187,6 +187,8 @@
ProgramDatabaseFile=".\Debug/neleditpatch.pdb" ProgramDatabaseFile=".\Debug/neleditpatch.pdb"
SubSystem="2" SubSystem="2"
BaseAddress="0x05830000" BaseAddress="0x05830000"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary=".\Debug/neleditpatch.lib" ImportLibrary=".\Debug/neleditpatch.lib"
TargetMachine="1" TargetMachine="1"
/> />
@ -208,9 +210,6 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
@ -289,6 +288,8 @@
SubSystem="2" SubSystem="2"
SetChecksum="true" SetChecksum="true"
BaseAddress="0x05830000" BaseAddress="0x05830000"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary=".\Release/neleditpatch.lib" ImportLibrary=".\Release/neleditpatch.lib"
TargetMachine="1" TargetMachine="1"
/> />
@ -310,9 +311,6 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
@ -391,6 +389,8 @@
SubSystem="2" SubSystem="2"
SetChecksum="true" SetChecksum="true"
BaseAddress="0x05830000" BaseAddress="0x05830000"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary=".\ReleaseDebug/neleditpatch.lib" ImportLibrary=".\ReleaseDebug/neleditpatch.lib"
TargetMachine="1" TargetMachine="1"
/> />
@ -412,9 +412,6 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
@ -492,6 +489,8 @@
ProgramDatabaseFile=".\Hybrid/neleditpatch.pdb" ProgramDatabaseFile=".\Hybrid/neleditpatch.pdb"
SubSystem="2" SubSystem="2"
BaseAddress="0x05830000" BaseAddress="0x05830000"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary=".\Hybrid/neleditpatch.lib" ImportLibrary=".\Hybrid/neleditpatch.lib"
TargetMachine="1" TargetMachine="1"
/> />
@ -513,9 +512,6 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />

View file

@ -1,707 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="nel_vertex_tree_paint"
ProjectGUID="{2D2D6DAE-D4DB-41CC-A732-E913EE21F228}"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Hybrid|Win32"
OutputDirectory=".\Hybrid"
IntermediateDirectory=".\Hybrid"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Hybrid/nel_vertex_tree_paint.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;__STL_DEBUG"
RuntimeLibrary="2"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\Hybrid/nel_vertex_tree_paint.pch"
AssemblerListingLocation=".\Hybrid/"
ObjectFile=".\Hybrid/"
ProgramDataBaseFileName="nel_vertex_tree_paint.pdb"
BrowseInformation="1"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="core.lib geom.lib maxutil.lib mesh.lib COMCTL32.LIB KERNEL32.LIB USER32.LIB GDI32.LIB WINSPOOL.LIB COMDLG32.LIB ADVAPI32.LIB SHELL32.LIB OLE32.LIB OLEAUT32.LIB UUID.LIB odbc32.lib odbccp32.lib freetype231.lib"
OutputFile=".\Hybrid\nel_vertex_tree_paint.dlm"
LinkIncremental="1"
SuppressStartupBanner="true"
ModuleDefinitionFile=".\vertex_tree_paint.def"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Hybrid/nel_vertex_tree_paint.pdb"
SubSystem="2"
BaseAddress="0x05D10000"
ImportLibrary=".\Hybrid/nel_vertex_tree_paint.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Debug/nel_vertex_tree_paint.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;__STL_DEBUG"
RuntimeLibrary="3"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\Debug/nel_vertex_tree_paint.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
ProgramDataBaseFileName="nel_vertex_tree_paint.pdb"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="core.lib geom.lib maxutil.lib mesh.lib COMCTL32.LIB KERNEL32.LIB USER32.LIB GDI32.LIB WINSPOOL.LIB COMDLG32.LIB ADVAPI32.LIB SHELL32.LIB OLE32.LIB OLEAUT32.LIB UUID.LIB odbc32.lib odbccp32.lib freetype231.lib"
OutputFile=".\Debug\nel_vertex_tree_paint.dlm"
LinkIncremental="1"
SuppressStartupBanner="true"
ModuleDefinitionFile=".\vertex_tree_paint.def"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/nel_vertex_tree_paint.pdb"
SubSystem="2"
BaseAddress="0x05D10000"
ImportLibrary=".\Debug/nel_vertex_tree_paint.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory=".\Release"
IntermediateDirectory=".\Release"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Release/nel_vertex_tree_paint.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\Release/nel_vertex_tree_paint.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
ProgramDataBaseFileName="nel_vertex_tree_paint.pdb"
WarningLevel="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="core.lib geom.lib maxutil.lib mesh.lib COMCTL32.LIB KERNEL32.LIB USER32.LIB GDI32.LIB WINSPOOL.LIB COMDLG32.LIB ADVAPI32.LIB SHELL32.LIB OLE32.LIB OLEAUT32.LIB UUID.LIB odbc32.lib odbccp32.lib freetype231.lib"
OutputFile=".\Release\nel_vertex_tree_paint.dlm"
LinkIncremental="1"
SuppressStartupBanner="true"
ModuleDefinitionFile=".\vertex_tree_paint.def"
ProgramDatabaseFile=".\Release/nel_vertex_tree_paint.pdb"
SubSystem="2"
SetChecksum="true"
BaseAddress="0x05D10000"
ImportLibrary=".\Release/nel_vertex_tree_paint.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="DebugFast|Win32"
OutputDirectory=".\DebugFast"
IntermediateDirectory=".\DebugFast"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\DebugFast/nel_vertex_tree_paint.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
RuntimeLibrary="3"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\DebugFast/nel_vertex_tree_paint.pch"
AssemblerListingLocation=".\DebugFast/"
ObjectFile=".\DebugFast/"
ProgramDataBaseFileName="nel_vertex_tree_paint.pdb"
BrowseInformation="1"
BrowseInformationFile=".\DebugFast/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="core.lib geom.lib maxutil.lib mesh.lib COMCTL32.LIB KERNEL32.LIB USER32.LIB GDI32.LIB WINSPOOL.LIB COMDLG32.LIB ADVAPI32.LIB SHELL32.LIB OLE32.LIB OLEAUT32.LIB UUID.LIB odbc32.lib odbccp32.lib freetype231.lib"
OutputFile=".\DebugFast\nel_vertex_tree_paint.dlm"
LinkIncremental="1"
SuppressStartupBanner="true"
ModuleDefinitionFile=".\vertex_tree_paint.def"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\DebugFast/nel_vertex_tree_paint.pdb"
SubSystem="2"
BaseAddress="0x05D10000"
ImportLibrary=".\DebugFast/nel_vertex_tree_paint.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="ReleaseDebug|Win32"
OutputDirectory=".\ReleaseDebug"
IntermediateDirectory=".\ReleaseDebug"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\ReleaseDebug/nel_vertex_tree_paint.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="_WINDOWS;NL_RELEASE_DEBUG;WIN32;NDEBUG"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\ReleaseDebug/nel_vertex_tree_paint.pch"
AssemblerListingLocation=".\ReleaseDebug/"
ObjectFile=".\ReleaseDebug/"
ProgramDataBaseFileName="nel_vertex_tree_paint.pdb"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="core.lib geom.lib maxutil.lib mesh.lib COMCTL32.LIB KERNEL32.LIB USER32.LIB GDI32.LIB WINSPOOL.LIB COMDLG32.LIB ADVAPI32.LIB SHELL32.LIB OLE32.LIB OLEAUT32.LIB UUID.LIB odbc32.lib odbccp32.lib freetype219.lib"
OutputFile=".\ReleaseDebug\nel_vertex_tree_paint.dlm"
LinkIncremental="1"
SuppressStartupBanner="true"
ModuleDefinitionFile=".\vertex_tree_paint.def"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\ReleaseDebug/nel_vertex_tree_paint.pdb"
SubSystem="2"
SetChecksum="true"
BaseAddress="0x05D10000"
ImportLibrary=".\ReleaseDebug/nel_vertex_tree_paint.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath="dllmain.cpp"
>
<FileConfiguration
Name="Hybrid|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;__STL_DEBUG;$(NoInherit)"
BrowseInformation="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;__STL_DEBUG;$(NoInherit)"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;$(NoInherit)"
/>
</FileConfiguration>
<FileConfiguration
Name="DebugFast|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;$(NoInherit)"
BrowseInformation="1"
/>
</FileConfiguration>
<FileConfiguration
Name="ReleaseDebug|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
PreprocessorDefinitions="_WINDOWS;NL_RELEASE_DEBUG;WIN32;NDEBUG;$(NoInherit)"
/>
</FileConfiguration>
</File>
<File
RelativePath="Paint.cpp"
>
<FileConfiguration
Name="Hybrid|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;__STL_DEBUG;$(NoInherit)"
BrowseInformation="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;__STL_DEBUG;$(NoInherit)"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;$(NoInherit)"
/>
</FileConfiguration>
<FileConfiguration
Name="DebugFast|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;$(NoInherit)"
BrowseInformation="1"
/>
</FileConfiguration>
<FileConfiguration
Name="ReleaseDebug|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
PreprocessorDefinitions="_WINDOWS;NL_RELEASE_DEBUG;WIN32;NDEBUG;$(NoInherit)"
/>
</FileConfiguration>
</File>
<File
RelativePath="vertex_tree_paint.cpp"
>
<FileConfiguration
Name="Hybrid|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;__STL_DEBUG;$(NoInherit)"
BrowseInformation="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;__STL_DEBUG;$(NoInherit)"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;$(NoInherit)"
/>
</FileConfiguration>
<FileConfiguration
Name="DebugFast|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;$(NoInherit)"
BrowseInformation="1"
/>
</FileConfiguration>
<FileConfiguration
Name="ReleaseDebug|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
PreprocessorDefinitions="_WINDOWS;NL_RELEASE_DEBUG;WIN32;NDEBUG;$(NoInherit)"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
<File
RelativePath="resource.h"
>
</File>
<File
RelativePath="vertex_tree_paint.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
>
<File
RelativePath="buttonmask.bmp"
>
</File>
<File
RelativePath="Buttons.bmp"
>
</File>
<File
RelativePath="dropcurs.cur"
>
</File>
<File
RelativePath="paintcur.cur"
>
</File>
<File
RelativePath="vertex_tree_paint.def"
>
</File>
<File
RelativePath="vertex_tree_paint.rc"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View file

@ -19,7 +19,7 @@
#include "nel/misc/file.h" #include "nel/misc/file.h"
#include "nel/misc/bitmap.h" #include "nel/misc/bitmap.h"
#include "nel/misc/file.h" #include "nel/misc/path.h"
#include "nel/misc/debug.h" #include "nel/misc/debug.h"
#include <math.h> #include <math.h>
@ -352,6 +352,8 @@ void dividSize (CBitmap &bitmap)
// *************************************************************************** // ***************************************************************************
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
CApplicationContext applicationContext;
uint8 algo; uint8 algo;
// Parse Command Line. // Parse Command Line.
@ -495,9 +497,9 @@ int main(int argc, char **argv)
} }
// Reading second Tga for user color // Reading second Tga for user color, don't complain if _usercolor is missing
NLMISC::CIFile input2; NLMISC::CIFile input2;
if (input2.open(userColorFileName)) if (CPath::exists(userColorFileName) && input2.open(userColorFileName))
{ {
picTga2.load(input2); picTga2.load(input2);
uint32 height2 = picTga2.getHeight(); uint32 height2 = picTga2.getHeight();

View file

@ -84,9 +84,11 @@ ELSE(WITH_LUA51)
ENDIF(WITH_LUA51) ENDIF(WITH_LUA51)
FIND_PACKAGE(CURL REQUIRED) FIND_PACKAGE(CURL REQUIRED)
FIND_PACKAGE(Libwww) FIND_PACKAGE(Libwww)
FIND_PACKAGE(ZLIB)
IF(NOT WIN32) IF(NOT WIN32)
FIND_PACKAGE(X11) IF(NOT WITH_COCOA)
FIND_PACKAGE(X11)
ENDIF(NOT WITH_COCOA)
ENDIF(NOT WIN32) ENDIF(NOT WIN32)
NL_SETUP_BUILD() NL_SETUP_BUILD()

View file

@ -24,20 +24,78 @@ FIND_PATH(LIBWWW_INCLUDE_DIR
PATH_SUFFIXES libwww w3c-libwww PATH_SUFFIXES libwww w3c-libwww
) )
FIND_LIBRARY(LIBWWW_LIBRARY # when installing libwww on mac os x using macports the file wwwconf.h resides
wwwapp # in /opt/local/include and not in the real libwww include dir :/
FIND_PATH(LIBWWW_ADDITIONAL_INCLUDE_DIR
wwwconf.h
PATHS PATHS
/usr/local/lib /usr/local/include
/usr/lib /usr/include
/usr/local/X11R6/lib /sw/include
/usr/X11R6/lib /opt/local/include
/sw/lib /opt/csw/include
/opt/local/lib /opt/include
/opt/csw/lib
/opt/lib
/usr/freeware/lib64
) )
# combine both include directories into one variable
SET(LIBWWW_INCLUDE_DIR ${LIBWWW_INCLUDE_DIR} ${LIBWWW_ADDITIONAL_INCLUDE_DIR})
# helper to find all the libwww sub libraries
MACRO(FIND_WWW_LIBRARY MYLIBRARY)
FIND_LIBRARY(${MYLIBRARY}
NAMES ${ARGN}
PATHS
/usr/local/lib
/usr/lib
/usr/local/X11R6/lib
/usr/X11R6/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
/usr/freeware/lib64
)
ENDMACRO(FIND_WWW_LIBRARY MYLIBRARY)
# on mac os x, libwww sub libraries are not "inter-linked"
# we need to link them all manually
IF(APPLE)
# find all the libwww libraries
FIND_WWW_LIBRARY(LIBWWWAPP_LIBRARY wwwapp)
FIND_WWW_LIBRARY(LIBWWWCACHE_LIBRARY wwwcache)
FIND_WWW_LIBRARY(LIBWWWCORE_LIBRARY wwwcore)
FIND_WWW_LIBRARY(LIBWWWDIR_LIBRARY wwwdir)
FIND_WWW_LIBRARY(LIBWWWFILE_LIBRARY wwwfile)
FIND_WWW_LIBRARY(LIBWWWFTP_LIBRARY wwwftp)
FIND_WWW_LIBRARY(LIBWWWGOPHER_LIBRARY wwwgopher)
FIND_WWW_LIBRARY(LIBWWWHTML_LIBRARY wwwhtml)
FIND_WWW_LIBRARY(LIBWWWHTTP_LIBRARY wwwhttp)
FIND_WWW_LIBRARY(LIBWWWINIT_LIBRARY wwwinit)
FIND_WWW_LIBRARY(LIBWWWMIME_LIBRARY wwwmime)
FIND_WWW_LIBRARY(LIBWWWMUX_LIBRARY wwwmux)
FIND_WWW_LIBRARY(LIBWWWNEWS_LIBRARY wwwnews)
FIND_WWW_LIBRARY(LIBWWWSSL_LIBRARY wwwssl)
FIND_WWW_LIBRARY(LIBWWWSTREAM_LIBRARY wwwstream)
FIND_WWW_LIBRARY(LIBWWWTELNET_LIBRARY wwwtelnet)
FIND_WWW_LIBRARY(LIBWWWTRANS_LIBRARY wwwtrans)
FIND_WWW_LIBRARY(LIBWWWUTILS_LIBRARY wwwutils)
FIND_WWW_LIBRARY(LIBWWWXML_LIBRARY wwwxml)
FIND_WWW_LIBRARY(LIBWWWZIP_LIBRARY wwwzip)
# combine all the libraries into one variable
SET(LIBWWW_LIBRARY
${LIBWWWAPP_LIBRARY} ${LIBWWWCACHE_LIBRARY} ${LIBWWWCORE_LIBRARY}
${LIBWWWDIR_LIBRARY} ${LIBWWWFILE_LIBRARY} ${LIBWWWFTP_LIBRARY}
${LIBWWWGOPHER_LIBRARY} ${LIBWWWHTML_LIBRARY} ${LIBWWWHTTP_LIBRARY}
${LIBWWWINIT_LIBRARY} ${LIBWWWMIME_LIBRARY} ${LIBWWWMUX_LIBRARY}
${LIBWWWNEWS_LIBRARY} ${LIBWWWSSL_LIBRARY} ${LIBWWWSTREAM_LIBRARY}
${LIBWWWTELNET_LIBRARY} ${LIBWWWTRANS_LIBRARY} ${LIBWWWUTILS_LIBRARY}
${LIBWWWXML_LIBRARY} ${LIBWWWZIP_LIBRARY}
)
ELSE(APPLE)
FIND_WWW_LIBRARY(LIBWWW_LIBRARY wwwapp)
ENDIF(APPLE)
IF(LIBWWW_LIBRARY AND LIBWWW_INCLUDE_DIR) IF(LIBWWW_LIBRARY AND LIBWWW_INCLUDE_DIR)
SET(LIBWWW_FOUND "YES") SET(LIBWWW_FOUND "YES")
IF(NOT LIBWWW_FIND_QUIETLY) IF(NOT LIBWWW_FIND_QUIETLY)
@ -48,4 +106,3 @@ ELSE(LIBWWW_LIBRARY AND LIBWWW_INCLUDE_DIR)
MESSAGE(STATUS "Warning: Unable to find LibWWW!") MESSAGE(STATUS "Warning: Unable to find LibWWW!")
ENDIF(NOT LIBWWW_FIND_QUIETLY) ENDIF(NOT LIBWWW_FIND_QUIETLY)
ENDIF(LIBWWW_LIBRARY AND LIBWWW_INCLUDE_DIR) ENDIF(LIBWWW_LIBRARY AND LIBWWW_INCLUDE_DIR)

View file

@ -0,0 +1,39 @@
# - Find zlib
# Find the native ZLIB includes and library
#
# ZLIB_INCLUDE_DIRS - where to find zlib.h, etc.
# ZLIB_LIBRARIES - List of libraries when using zlib.
# ZLIB_FOUND - True if zlib found.
#=============================================================================
# Copyright 2001-2009 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distributed this file outside of CMake, substitute the full
# License text for the above reference.)
IF (ZLIB_INCLUDE_DIR)
# Already in cache, be silent
SET(ZLIB_FIND_QUIETLY TRUE)
ENDIF (ZLIB_INCLUDE_DIR)
FIND_PATH(ZLIB_INCLUDE_DIR zlib.h)
SET(ZLIB_NAMES z zlib zdll)
FIND_LIBRARY(ZLIB_LIBRARY NAMES ${ZLIB_NAMES} )
MARK_AS_ADVANCED( ZLIB_LIBRARY ZLIB_INCLUDE_DIR )
# Per-recommendation
SET(ZLIB_INCLUDE_DIRS "${ZLIB_INCLUDE_DIR}")
SET(ZLIB_LIBRARIES "${ZLIB_LIBRARY}")
# handle the QUIETLY and REQUIRED arguments and set ZLIB_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ZLIB DEFAULT_MSG ZLIB_LIBRARIES ZLIB_INCLUDE_DIRS)

View file

@ -80,7 +80,10 @@ MACRO(NL_SETUP_BUILD)
IF(WITH_COVERAGE) IF(WITH_COVERAGE)
SET(PLATFORM_CFLAGS "-fprofile-arcs -ftest-coverage ${PLATFORM_CFLAGS}") SET(PLATFORM_CFLAGS "-fprofile-arcs -ftest-coverage ${PLATFORM_CFLAGS}")
ENDIF(WITH_COVERAGE) ENDIF(WITH_COVERAGE)
SET(PLATFORM_LINKFLAGS "${CMAKE_THREAD_LIBS_INIT} -lc -lm -lstdc++ -lrt") SET(PLATFORM_LINKFLAGS "${CMAKE_THREAD_LIBS_INIT} -lc -lm -lstdc++")
IF(NOT APPLE)
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -lrt")
ENDIF(NOT APPLE)
SET(NL_DEBUG_CFLAGS "-DNL_DEBUG -g") SET(NL_DEBUG_CFLAGS "-DNL_DEBUG -g")
SET(NL_RELEASE_CFLAGS "-DNL_RELEASE -O6") SET(NL_RELEASE_CFLAGS "-DNL_RELEASE -O6")
SET(NL_RELEASEDEBUG_CFLAGS "-DNL_RELEASE_DEBUG -g -finline-functions -O3 ") SET(NL_RELEASEDEBUG_CFLAGS "-DNL_RELEASE_DEBUG -g -finline-functions -O3 ")

View file

@ -33,9 +33,37 @@ IF(UNIX)
INCLUDE(${CMAKE_BINARY_DIR}) INCLUDE(${CMAKE_BINARY_DIR})
ENDIF(UNIX) ENDIF(UNIX)
ADD_EXECUTABLE(client ${SRC}) # on Mac, create a .App Bundle
if(APPLE)
SET(MACOSX_BUNDLE_INFO_STRING "Ryzom Core Client")
SET(MACOSX_BUNDLE_ICON_FILE "")
SET(MACOSX_BUNDLE_GUI_IDENTIFIER "")
SET(MACOSX_BUNDLE_LONG_VERSION_STRING "0.8.0")
SET(MACOSX_BUNDLE_BUNDLE_NAME "Ryzom Core Client")
SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "0.8")
SET(MACOSX_BUNDLE_BUNDLE_VERSION "1.0")
SET(MACOSX_BUNDLE_COPYRIGHT "Winchgate and The Ryzom Core Community")
INCLUDE_DIRECTORIES( ${LIBXML2_INCLUDE_DIR} ADD_EXECUTABLE(client MACOSX_BUNDLE ${SRC})
# TODO: in release mode, cmake could copy all the dylibs into the .app
# bundle for redistribution... should some part of cpack handle that?
# ADD_CUSTOM_COMMAND(TARGET client POST_BUILD
# # make frameworks directory in app bundle
# COMMAND ${CMAKE_COMMAND} -E make_directory
# ${CMAKE_CURRENT_BINARY_DIR}/client.app/Contents/Frameworks
# # copy framework into app bundle
# COMMAND ${CMAKE_COMMAND} -E copy ${SOME_LIBRARY}
# ${CMAKE_CURRENT_BINARY_DIR}/client.app/Contents/Frameworks
# # ...
# # install_name_tool the lib pathes
ELSE(APPLE)
ADD_EXECUTABLE(client ${SRC})
ENDIF(APPLE)
INCLUDE_DIRECTORIES(
${LIBXML2_INCLUDE_DIR}
${NEL_INCLUDE_DIR} ${NEL_INCLUDE_DIR}
${LUA_INCLUDE_DIR} ${LUA_INCLUDE_DIR}
${LIBWWW_INCLUDE_DIR} ${LIBWWW_INCLUDE_DIR}
@ -49,6 +77,7 @@ TARGET_LINK_LIBRARIES(client ${PLATFORM_LINKFLAGS}
${NELNET_LIBRARY} ${NELNET_LIBRARY}
${NELLIGO_LIBRARY} ${NELLIGO_LIBRARY}
${NELGEORGES_LIBRARY} ${NELGEORGES_LIBRARY}
${NEL3D_LIBRARY}
${LUA_LIBRARIES} ${LUA_LIBRARIES}
${CURL_LIBRARIES} ${CURL_LIBRARIES}
${NELSOUND_LIBRARY} ${NELSOUND_LIBRARY}
@ -57,9 +86,13 @@ TARGET_LINK_LIBRARIES(client ${PLATFORM_LINKFLAGS}
${NELPACS_LIBRARY} ${NELPACS_LIBRARY}
${LIBWWW_LIBRARY} ${LIBWWW_LIBRARY}
${Boost_LIBRARIES} ${Boost_LIBRARIES}
${X11_LIBRARIES}
seven_zip seven_zip
luabind) luabind)
IF(NOT WITH_COCOA)
TARGET_LINK_LIBRARIES(client ${X11_LIBRARIES})
ENDIF(NOT WITH_COCOA)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS client RUNTIME DESTINATION bin COMPONENT client) INSTALL(TARGETS client RUNTIME DESTINATION bin COMPONENT client BUNDLE DESTINATION /Applications)

View file

@ -472,7 +472,7 @@ void CBGDownloaderAccess::CDownloadCoTask::restartDownloader()
} }
*(uint32 *) Parent->_RyzomInstPIDPtr = (uint32) GetCurrentProcessId(); *(uint32 *) Parent->_RyzomInstPIDPtr = (uint32) GetCurrentProcessId();
HWND hWnd = (HWND)Driver->getDisplay (); HWND hWnd = Driver->getDisplay();
// for safety, stop any running downloader // for safety, stop any running downloader
if (isDownloaderProcessRunning()) if (isDownloaderProcessRunning())

View file

@ -283,7 +283,7 @@ static INT_PTR CALLBACK ExitClientErrorDialogProc(HWND hwndDlg, UINT uMsg, WPARA
{ {
if (Driver) if (Driver)
{ {
HWND wnd = (HWND) Driver->getDisplay(); HWND wnd = Driver->getDisplay();
ShowWindow(wnd, SW_MINIMIZE); ShowWindow(wnd, SW_MINIMIZE);
} }
browseFAQ(ClientCfg.ConfigFile); browseFAQ(ClientCfg.ConfigFile);
@ -461,7 +461,7 @@ static string crashCallback()
Driver->getCurrentScreenMode(mode); Driver->getCurrentScreenMode(mode);
if (!mode.Windowed) if (!mode.Windowed)
{ {
HWND wnd = (HWND) Driver->getDisplay(); HWND wnd = Driver->getDisplay();
ShowWindow(wnd, SW_MINIMIZE); ShowWindow(wnd, SW_MINIMIZE);
} }
} }
@ -1227,7 +1227,7 @@ void postlogInit()
// tmp fix : it seems that, at this point, if the bg downloader window has focus and // tmp fix : it seems that, at this point, if the bg downloader window has focus and
// not the Ryzom one, then sound init fails // not the Ryzom one, then sound init fails
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
HWND hWnd = (HWND)Driver->getDisplay (); HWND hWnd = Driver->getDisplay ();
nlassert (hWnd); nlassert (hWnd);
ShowWindow(hWnd, SW_RESTORE); ShowWindow(hWnd, SW_RESTORE);
SetForegroundWindow(hWnd); SetForegroundWindow(hWnd);

View file

@ -369,7 +369,7 @@ void CaptureSystemCursor()
{ {
if (IsSystemCursorCaptured()) return; if (IsSystemCursorCaptured()) return;
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
HWND drvWnd = (HWND) Driver->getDisplay(); HWND drvWnd = Driver->getDisplay();
if (!drvWnd) return; if (!drvWnd) return;
SetCapture(drvWnd); SetCapture(drvWnd);
#else #else
@ -402,7 +402,7 @@ bool IsSystemCursorCaptured()
{ {
if (!Driver) return false; if (!Driver) return false;
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
return GetCapture() == (HWND) Driver->getDisplay(); return GetCapture() == Driver->getDisplay();
#else #else
return MouseCapture; return MouseCapture;
#endif #endif
@ -445,7 +445,7 @@ bool IsSystemCursorInClientArea()
{ {
if (!Driver) return false; if (!Driver) return false;
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
HWND drvWnd = (HWND) Driver->getDisplay(); HWND drvWnd = Driver->getDisplay();
if (!drvWnd) return false; if (!drvWnd) return false;
UDriver::CMode videoMode; UDriver::CMode videoMode;
Driver->getCurrentScreenMode(videoMode); Driver->getCurrentScreenMode(videoMode);

View file

@ -3725,7 +3725,7 @@ public:
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
if (Driver) if (Driver)
{ {
HWND wnd = (HWND) Driver->getDisplay(); HWND wnd = Driver->getDisplay();
ShowWindow(wnd, SW_MINIMIZE); ShowWindow(wnd, SW_MINIMIZE);
} }
#endif #endif

View file

@ -58,6 +58,9 @@ extern NLMISC::CLog g_log;
//////////// ////////////
//static CCDBNodeLeaf *MenuColorWidgetValue = NULL; // db entry for the color menu widget (Red) //static CCDBNodeLeaf *MenuColorWidgetValue = NULL; // db entry for the color menu widget (Red)
static const string ScreenshotsDirectory("screenshots/"); // don't forget the final /
void preRenderNewSky (); void preRenderNewSky ();
// *************************************************************************** // ***************************************************************************
@ -596,7 +599,9 @@ void screenShotTGA()
{ {
CBitmap btm; CBitmap btm;
getBuffer (btm); getBuffer (btm);
string filename = CFile::findNewFile ("screenshot.tga");
if(!ScreenshotsDirectory.empty() && !CFile::isExists(ScreenshotsDirectory)) CFile::createDirectory(ScreenshotsDirectory);
string filename = CFile::findNewFile (ScreenshotsDirectory+"screenshot.tga");
COFile fs(filename); COFile fs(filename);
btm.writeTGA(fs, 24, false); btm.writeTGA(fs, 24, false);
nlinfo("Screenshot '%s' saved in tga format (%dx%d)", filename.c_str(), (int) ClientCfg.ScreenShotWidth, (int) ClientCfg.ScreenShotHeight); nlinfo("Screenshot '%s' saved in tga format (%dx%d)", filename.c_str(), (int) ClientCfg.ScreenShotWidth, (int) ClientCfg.ScreenShotHeight);
@ -607,7 +612,9 @@ void screenShotPNG()
{ {
CBitmap btm; CBitmap btm;
getBuffer (btm); getBuffer (btm);
string filename = CFile::findNewFile ("screenshot.png");
if(!ScreenshotsDirectory.empty() && !CFile::isExists(ScreenshotsDirectory)) CFile::createDirectory(ScreenshotsDirectory);
string filename = CFile::findNewFile (ScreenshotsDirectory+"screenshot.png");
COFile fs(filename); COFile fs(filename);
if (!btm.writePNG(fs, 24)) if (!btm.writePNG(fs, 24))
{ {
@ -626,7 +633,9 @@ void screenShotJPG()
{ {
CBitmap btm; CBitmap btm;
getBuffer (btm); getBuffer (btm);
string filename = CFile::findNewFile ("screenshot.jpg");
if(!ScreenshotsDirectory.empty() && !CFile::isExists(ScreenshotsDirectory)) CFile::createDirectory(ScreenshotsDirectory);
string filename = CFile::findNewFile (ScreenshotsDirectory+"screenshot.jpg");
COFile fs(filename); COFile fs(filename);
btm.writeJPG(fs); btm.writeJPG(fs);
nlinfo("Screenshot '%s' saved in jpg format (%dx%d)", filename.c_str(), (int) ClientCfg.ScreenShotWidth, (int) ClientCfg.ScreenShotHeight); nlinfo("Screenshot '%s' saved in jpg format (%dx%d)", filename.c_str(), (int) ClientCfg.ScreenShotWidth, (int) ClientCfg.ScreenShotHeight);

View file

@ -284,7 +284,7 @@ void CCustomMouse::release()
{ {
if (!isAlphaBlendedCursorSupported()) return; if (!isAlphaBlendedCursorSupported()) return;
nlassert(Driver); nlassert(Driver);
HWND drvWnd = (HWND) Driver->getDisplay(); HWND drvWnd = Driver->getDisplay();
if (drvWnd) if (drvWnd)
{ {
SetClassLongPtr(drvWnd, GCLP_HCURSOR, 0); SetClassLongPtr(drvWnd, GCLP_HCURSOR, 0);
@ -353,7 +353,7 @@ void CCustomMouse::setCursor(const std::string &name, NLMISC::CRGBA col, uint8 r
if (CInputHandlerManager::getInstance()->hasFocus()) if (CInputHandlerManager::getInstance()->hasFocus())
{ {
::SetCursor(cursorHandle); ::SetCursor(cursorHandle);
HWND drvWnd = (HWND) Driver->getDisplay(); HWND drvWnd = Driver->getDisplay();
if (drvWnd) if (drvWnd)
{ {
SetClassLongPtr(drvWnd, GCLP_HCURSOR, (LONG_PTR) cursorHandle); // set default mouse icon to the last one SetClassLongPtr(drvWnd, GCLP_HCURSOR, (LONG_PTR) cursorHandle); // set default mouse icon to the last one
@ -449,7 +449,7 @@ void CCustomMouse::setSystemArrow()
{ {
::SetCursor(arrow); ::SetCursor(arrow);
} }
HWND drvWnd = (HWND) Driver->getDisplay(); HWND drvWnd = Driver->getDisplay();
if (drvWnd) if (drvWnd)
{ {
SetClassLongPtr(drvWnd, GCLP_HCURSOR, (LONG_PTR) arrow); // set default mouse icon to the last one SetClassLongPtr(drvWnd, GCLP_HCURSOR, (LONG_PTR) arrow); // set default mouse icon to the last one

View file

@ -331,6 +331,7 @@ void CInputHandlerManager::operator ()(const NLMISC::CEvent &event)
_MouseButtonsState = (TMouseButton) (_MouseButtonsState | pEvent->Button); _MouseButtonsState = (TMouseButton) (_MouseButtonsState | pEvent->Button);
rIP.setButtonState(_MouseButtonsState); rIP.setButtonState(_MouseButtonsState);
updateMousePos((CEventMouse&)event, eventDesc);
// handle Event // handle Event
if(pEvent->Button & leftButton) if(pEvent->Button & leftButton)
@ -355,6 +356,7 @@ void CInputHandlerManager::operator ()(const NLMISC::CEvent &event)
_MouseButtonsState = (TMouseButton) (_MouseButtonsState & ~(pEvent->Button)); _MouseButtonsState = (TMouseButton) (_MouseButtonsState & ~(pEvent->Button));
rIP.setButtonState(_MouseButtonsState); rIP.setButtonState(_MouseButtonsState);
updateMousePos((CEventMouse&)event, eventDesc);
// handle Event // handle Event
if(pEvent->Button & leftButton) if(pEvent->Button & leftButton)
@ -374,6 +376,7 @@ void CInputHandlerManager::operator ()(const NLMISC::CEvent &event)
// TODO: yoyo make it work if needed (for now, seems preferable to manage in each ActionHandler) // TODO: yoyo make it work if needed (for now, seems preferable to manage in each ActionHandler)
CEventMouseDblClk* pEvent=(CEventMouseDblClk*)&event; CEventMouseDblClk* pEvent=(CEventMouseDblClk*)&event;
updateMousePos((CEventMouse&)event, eventDesc);
// handle Event // handle Event
if(pEvent->Button & leftButton) if(pEvent->Button & leftButton)
@ -401,6 +404,8 @@ void CInputHandlerManager::operator ()(const NLMISC::CEvent &event)
else else
_MouseWheel -= 1; _MouseWheel -= 1;
updateMousePos((CEventMouse&)event, eventDesc);
// handle Event now. // handle Event now.
if (_MouseWheel != 0) if (_MouseWheel != 0)
{ {

View file

@ -150,7 +150,7 @@ CLuaState::CLuaState()
TGetLuaIDEInterface getter = (TGetLuaIDEInterface) GetProcAddress(LuaDebuggerModule, "GetLuaIDEInterface"); TGetLuaIDEInterface getter = (TGetLuaIDEInterface) GetProcAddress(LuaDebuggerModule, "GetLuaIDEInterface");
nlassert(getter); nlassert(getter);
LuaDebuggerIDE = getter(); LuaDebuggerIDE = getter();
LuaDebuggerIDE->prepareDebug("save\\___external_debug.lpr", l_realloc_func, l_free_func, (HWND)Driver->getDisplay()); LuaDebuggerIDE->prepareDebug("save\\___external_debug.lpr", l_realloc_func, l_free_func, Driver->getDisplay());
_State = LuaDebuggerIDE->getLuaState(); _State = LuaDebuggerIDE->getLuaState();
} }
} }

View file

@ -109,7 +109,7 @@ void CMusicPlayer::previous ()
{ {
// Point the previous song // Point the previous song
if (_CurrentSong == 0) if (_CurrentSong == 0)
_CurrentSong = _Songs.size()-1; _CurrentSong = (uint)_Songs.size()-1;
else else
_CurrentSong--; _CurrentSong--;
@ -228,7 +228,7 @@ public:
OPENFILENAME ofn; OPENFILENAME ofn;
memset (&ofn, 0, sizeof(OPENFILENAME)); memset (&ofn, 0, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME); ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = Driver?(HWND)Driver->getDisplay ():NULL; ofn.hwndOwner = Driver ? Driver->getDisplay():NULL;
ofn.hInstance = HInstance; ofn.hInstance = HInstance;
ofn.lpstrFilter = szFilter; ofn.lpstrFilter = szFilter;
ofn.nFilterIndex = 0; ofn.nFilterIndex = 0;

View file

@ -425,7 +425,7 @@ void loginMainLoop()
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
{ {
// Get the window // Get the window
HWND hWnd = (HWND)Driver->getDisplay (); HWND hWnd = Driver->getDisplay();
nlassert (hWnd); nlassert (hWnd);
// Show the window, unless it has been minimized, in // Show the window, unless it has been minimized, in
// which case we don't pop it unexpectedly // which case we don't pop it unexpectedly

View file

@ -1498,14 +1498,7 @@ bool mainLoop()
{ {
beep( 680, 400 ); beep( 680, 400 );
beep( 440, 400 ); beep( 440, 400 );
#ifdef NL_OS_WINDOWS Driver->showWindow();
// Get the window
HWND hWnd = (HWND)Driver->getDisplay ();
nlassert (hWnd);
// Show the window
ShowWindow (hWnd, SW_SHOW);
SetForegroundWindow(hWnd);
#endif // NL_OS_WINDOW
} }
FPU_CHECKER_ONCE FPU_CHECKER_ONCE

View file

@ -452,20 +452,25 @@ void CUserControls::getMouseAngleMove(float &dx, float &dy)
} }
} }
#else #else
// On X11, do the thing without IMouseDevice implementation // On X11 and Mac, do the thing without IMouseDevice implementation
if( EventsListener.getMousePosX() != _LastFrameMousePosX || if( EventsListener.getMousePosX() != _LastFrameMousePosX ||
EventsListener.getMousePosY() != _LastFrameMousePosY ) EventsListener.getMousePosY() != _LastFrameMousePosY )
{ {
float dmpx, dmpy; float dmpx, dmpy;
#ifndef NL_MAC_NATIVE
// On X11 in free look mode, the mouse is pulled back to (0.5, 0.5) // On X11 in free look mode, the mouse is pulled back to (0.5, 0.5)
// every update to prevent reaching a border and get stuck. // every update to prevent reaching a border and get stuck.
if(IsMouseFreeLook()) if(IsMouseFreeLook())
{ {
/*
TODO use setCapture to not fake it
*/
dmpx = EventsListener.getMousePosX() - 0.5; dmpx = EventsListener.getMousePosX() - 0.5;
dmpy = EventsListener.getMousePosY() - 0.5; dmpy = EventsListener.getMousePosY() - 0.5;
} }
else else
#endif
{ {
dmpx = EventsListener.getMousePosX() - _LastFrameMousePosX; dmpx = EventsListener.getMousePosX() - _LastFrameMousePosX;
dmpy = EventsListener.getMousePosY() - _LastFrameMousePosY; dmpy = EventsListener.getMousePosY() - _LastFrameMousePosY;

View file

@ -14,7 +14,9 @@ ELSE(WIN32)
ENDIF(WIN32) ENDIF(WIN32)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${NEL_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${NEL_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
TARGET_LINK_LIBRARIES(game_share ${NELMISC_LIBRARY}) TARGET_LINK_LIBRARIES(game_share
${NELMISC_LIBRARY} ${NELNET_LIBRARY} ${NELLIGO_LIBRARY} ${NELGEORGES_LIBRARY}
${LIBXML2_LIBRARIES} ${ZLIB_LIBRARIES})
SET_TARGET_PROPERTIES(game_share PROPERTIES VERSION ${NL_VERSION}) SET_TARGET_PROPERTIES(game_share PROPERTIES VERSION ${NL_VERSION})
IF(WIN32) IF(WIN32)

View file

@ -690,7 +690,7 @@ void CBotNpc::sendVPA() // alternate VPA
visProp.Element.ColorBoot = getSheet()->ColorFeets(); visProp.Element.ColorBoot = getSheet()->ColorFeets();
visProp.Element.ColorArm = getSheet()->ColorArms(); visProp.Element.ColorArm = getSheet()->ColorArms();
visProp.Element.Hat = _Hat; visProp.Element.Hat = _Hat;
visProp.Element.Seed = getAlias()!=0?getAlias():(uint32)this; visProp.Element.Seed = getAlias()!=0?getAlias():(uint32)(size_t)(void*)this;
LOG("BOT: %s L: %d R: %u H: %u CHEAD: %u CARMS: %u CHANDS: %u CBODY: %u CLEGS: %u CFEETS: %u SEED: %u", LOG("BOT: %s L: %d R: %u H: %u CHEAD: %u CARMS: %u CHANDS: %u CBODY: %u CLEGS: %u CFEETS: %u SEED: %u",
getName().c_str(), getName().c_str(),
visProp.Element.WeaponLeftHand, visProp.Element.WeaponLeftHand,

View file

@ -894,7 +894,9 @@ void COutpost::createSquad(CGroupDesc<COutpostSquadFamily> const* groupDesc, COu
COutpostSquadCreatedMsg params; COutpostSquadCreatedMsg params;
params.Outpost = this->getAlias(); params.Outpost = this->getAlias();
params.CreateOrder = createOrder; params.CreateOrder = createOrder;
params.GroupId = reinterpret_cast<uint32>(grp); // Bug #847: Just downcast the pointer to make the groupId, the collision in 64b is negligible
//params.GroupId = reinterpret_cast<uint32>(grp);
params.GroupId = (uint32)(size_t)(void*)grp;
sendOutpostMessage("OUTPOST_SQUAD_CREATED", params); sendOutpostMessage("OUTPOST_SQUAD_CREATED", params);
} }
@ -911,7 +913,9 @@ void COutpost::spawnSquad(uint32 groupId)
{ {
CGroup* group = *itGroup; CGroup* group = *itGroup;
CGroupNpc* groupNpc = static_cast<CGroupNpc*>(group); CGroupNpc* groupNpc = static_cast<CGroupNpc*>(group);
uint32 thisGroupId = reinterpret_cast<uint32>(groupNpc); // Bug #847: Just downcast the pointer to make the groupId, the collision in 64b is negligible
//uint32 thisGroupId = reinterpret_cast<uint32>(groupNpc);
uint32 thisGroupId = (uint32)(size_t)(void*)groupNpc;
if (groupId==thisGroupId) if (groupId==thisGroupId)
{ {
group->getSpawnObj()->spawnBots(); group->getSpawnObj()->spawnBots();
@ -932,7 +936,9 @@ void COutpost::spawnSquad(uint32 groupId)
{ {
CGroup* group = *itGroup; CGroup* group = *itGroup;
CGroupNpc* groupNpc = static_cast<CGroupNpc*>(group); CGroupNpc* groupNpc = static_cast<CGroupNpc*>(group);
uint32 thisGroupId = reinterpret_cast<uint32>(groupNpc); // Bug #847: Just downcast the pointer to make the groupId, the collision in 64b is negligible
//uint32 thisGroupId = reinterpret_cast<uint32>(groupNpc);
uint32 thisGroupId = (uint32)(size_t)(void*)groupNpc;
OUTPOST_WRN("- 0x%08x", thisGroupId); OUTPOST_WRN("- 0x%08x", thisGroupId);
} }
} }
@ -948,7 +954,9 @@ void COutpost::despawnSquad(uint32 groupId)
{ {
CGroup* group = *itGroup; CGroup* group = *itGroup;
CGroupNpc* groupNpc = static_cast<CGroupNpc*>(group); CGroupNpc* groupNpc = static_cast<CGroupNpc*>(group);
uint32 thisGroupId = reinterpret_cast<uint32>(groupNpc); // Bug #847: Just downcast the pointer to make the groupId, the collision in 64b is negligible
//uint32 thisGroupId = reinterpret_cast<uint32>(groupNpc);
uint32 thisGroupId = (uint32)(size_t)(void*)groupNpc;
if (groupId==thisGroupId) if (groupId==thisGroupId)
{ {
group->despawnBots(); group->despawnBots();
@ -973,7 +981,9 @@ void COutpost::deleteSquad(uint32 groupId)
{ {
CGroup* group = *itGroup; CGroup* group = *itGroup;
CGroupNpc* groupNpc = static_cast<CGroupNpc*>(group); CGroupNpc* groupNpc = static_cast<CGroupNpc*>(group);
uint32 thisGroupId = reinterpret_cast<uint32>(groupNpc); // Bug #847: Just downcast the pointer to make the groupId, the collision in 64b is negligible
//uint32 thisGroupId = reinterpret_cast<uint32>(groupNpc);
uint32 thisGroupId = (uint32)(size_t)(void*)groupNpc;
if (groupId==thisGroupId) if (groupId==thisGroupId)
{ {
manager->groups().removeChildByIndex(group->getChildIndex()); manager->groups().removeChildByIndex(group->getChildIndex());
@ -988,7 +998,9 @@ void COutpost::deleteSquad(uint32 groupId)
void COutpost::sendOutpostSquadStatus(CGroupNpc* group) void COutpost::sendOutpostSquadStatus(CGroupNpc* group)
{ {
uint32 alias = this->getAlias(); uint32 alias = this->getAlias();
uint32 groupId = reinterpret_cast<uint32>(group); // Bug #847: Just downcast the pointer to make the groupId, the collision in 64b is negligible
//uint32 groupId = reinterpret_cast<uint32>(group);
uint32 groupId = (uint32)(size_t)(void*)group;
bool groupAlive = false; bool groupAlive = false;
bool leaderAlive = group->getSquadLeader()!=NULL; bool leaderAlive = group->getSquadLeader()!=NULL;
uint32 botCount = 0; uint32 botCount = 0;
@ -1011,7 +1023,9 @@ void COutpost::sendOutpostSquadStatus(CGroupNpc* group)
void COutpost::squadLeaderDied(CGroupNpc* group) void COutpost::squadLeaderDied(CGroupNpc* group)
{ {
uint32 alias = this->getAlias(); uint32 alias = this->getAlias();
uint32 groupId = reinterpret_cast<uint32>(group); // Bug #847: Just downcast the pointer to make the groupId, the collision in 64b is negligible
//uint32 groupId = reinterpret_cast<uint32>(group);
uint32 groupId = (uint32)(size_t)(void*)group;
NLNET::CMessage msgout("OUTPOST_SQUAD_LEADER_DIED"); NLNET::CMessage msgout("OUTPOST_SQUAD_LEADER_DIED");
msgout.serial(alias); msgout.serial(alias);
msgout.serial(groupId); msgout.serial(groupId);
@ -1021,7 +1035,9 @@ void COutpost::squadLeaderDied(CGroupNpc* group)
void COutpost::squadDied(CGroupNpc* group) void COutpost::squadDied(CGroupNpc* group)
{ {
uint32 alias = this->getAlias(); uint32 alias = this->getAlias();
uint32 groupId = reinterpret_cast<uint32>(group); // Bug #847: Just downcast the pointer to make the groupId, the collision in 64b is negligible
//uint32 groupId = reinterpret_cast<uint32>(group);
uint32 groupId = (uint32)(size_t)(void*)group;
NLNET::CMessage msgout("OUTPOST_SQUAD_DIED"); NLNET::CMessage msgout("OUTPOST_SQUAD_DIED");
msgout.serial(alias); msgout.serial(alias);
msgout.serial(groupId); msgout.serial(groupId);

View file

@ -160,7 +160,7 @@ void CStateInstance::dumpVarsAndFunctions(CStringWriter& sw) const
sw.append("context variables:"); sw.append("context variables:");
FOREACHC(varIt, TCtxLogicVarList, _CtxLogicVar) FOREACHC(varIt, TCtxLogicVarList, _CtxLogicVar)
sw.append(" "+CStringMapper::unmap(varIt->first)+" = "+(int)(void*)varIt->second); sw.append(" "+CStringMapper::unmap(varIt->first)+" = "+(int)(size_t)(void*)varIt->second);
sw.append("callBacks:"); sw.append("callBacks:");
FOREACHC(varIt, TCallBackList, _CallBacks) FOREACHC(varIt, TCallBackList, _CallBacks)

View file

@ -162,7 +162,7 @@ bool CFormBodyEltStruct::Empty() const
uint32 CFormBodyEltStruct::GetNbElt () const uint32 CFormBodyEltStruct::GetNbElt () const
{ {
return vpbodyelt.size(); return (uint32)vpbodyelt.size();
} }
CFormBodyElt* CFormBodyEltStruct::GetElt( const unsigned int _index ) const CFormBodyElt* CFormBodyEltStruct::GetElt( const unsigned int _index ) const

View file

@ -235,19 +235,19 @@ void CItem::SetCurrentValue( const unsigned int _index, const CStringEx s )
pitemes->SetModified( _index ); pitemes->SetModified( _index );
} }
unsigned int CItem::GetNbElt() const uint CItem::GetNbElt() const
{ {
if( pitemes ) if( pitemes )
return( pitemes->GetNbElt() ); return( pitemes->GetNbElt() );
return( 0 ); return( 0 );
} }
unsigned int CItem::GetNbParents() const uint CItem::GetNbParents() const
{ {
return( vsxparents.size() ); return (uint)vsxparents.size();
} }
unsigned int CItem::GetNbElt( const unsigned int _index ) const uint CItem::GetNbElt( const unsigned int _index ) const
{ {
CItemElt* pie = GetElt( _index ); CItemElt* pie = GetElt( _index );
if( !pie ) if( !pie )
@ -255,7 +255,7 @@ unsigned int CItem::GetNbElt( const unsigned int _index ) const
return( pie->GetNbElt() ); return( pie->GetNbElt() );
} }
unsigned int CItem::GetInfos( const unsigned int _index ) const uint CItem::GetInfos( const unsigned int _index ) const
{ {
CItemElt* pie = GetElt( _index ); CItemElt* pie = GetElt( _index );
if( !pie ) if( !pie )

View file

@ -57,10 +57,10 @@ public:
void MakeItem (CForm &in); void MakeItem (CForm &in);
void SetCurrentValue( const unsigned int _index, const CStringEx s ); void SetCurrentValue( const unsigned int _index, const CStringEx s );
unsigned int GetNbElt() const; uint GetNbElt() const;
unsigned int GetNbParents() const; uint GetNbParents() const;
unsigned int GetNbElt( const unsigned int _index ) const; uint GetNbElt( const unsigned int _index ) const;
unsigned int GetInfos( const unsigned int _index ) const; uint GetInfos( const unsigned int _index ) const;
CStringEx GetName( const unsigned int _index ) const; CStringEx GetName( const unsigned int _index ) const;
CStringEx GetCurrentResult( const unsigned int _index ) const; CStringEx GetCurrentResult( const unsigned int _index ) const;
CStringEx GetCurrentValue( const unsigned int _index ) const; CStringEx GetCurrentValue( const unsigned int _index ) const;

View file

@ -1,15 +1,19 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="8.00" Version="9.00"
Name="icon_search" Name="icon_search"
ProjectGUID="{D9678C2E-5137-4A48-BA0D-51B652A08624}" ProjectGUID="{D9678C2E-5137-4A48-BA0D-51B652A08624}"
RootNamespace="icon_search" RootNamespace="icon_search"
TargetFrameworkVersion="131072"
> >
<Platforms> <Platforms>
<Platform <Platform
Name="Win32" Name="Win32"
/> />
<Platform
Name="x64"
/>
</Platforms> </Platforms>
<ToolFiles> <ToolFiles>
</ToolFiles> </ToolFiles>
@ -78,6 +82,8 @@
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/icon_search_d.pdb" ProgramDatabaseFile=".\Debug/icon_search_d.pdb"
SubSystem="1" SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1" TargetMachine="1"
/> />
<Tool <Tool
@ -100,9 +106,6 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
@ -171,6 +174,8 @@
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile=".\Release/icon_search_r.pdb" ProgramDatabaseFile=".\Release/icon_search_r.pdb"
SubSystem="1" SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1" TargetMachine="1"
/> />
<Tool <Tool
@ -193,17 +198,14 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
</Configuration> </Configuration>
<Configuration <Configuration
Name="DebugFast|Win32" Name="Debug|x64"
OutputDirectory=".\DebugFast" OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory=".\DebugFast" IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0" UseOfMFC="0"
@ -224,22 +226,23 @@
/> />
<Tool <Tool
Name="VCMIDLTool" Name="VCMIDLTool"
TypeLibraryName=".\DebugFast/icon_search.tlb" TargetEnvironment="3"
TypeLibraryName=".\Debug/icon_search.tlb"
HeaderFileName="" HeaderFileName=""
/> />
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="../../../../../code/nel/include" AdditionalIncludeDirectories="../../../../../code/nel/include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="3" RuntimeLibrary="3"
RuntimeTypeInfo="true" RuntimeTypeInfo="true"
PrecompiledHeaderFile=".\DebugFast/icon_search.pch" PrecompiledHeaderFile=".\Debug/icon_search.pch"
AssemblerListingLocation=".\DebugFast/" AssemblerListingLocation=".\Debug/"
ObjectFile=".\DebugFast/" ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\DebugFast/" ProgramDataBaseFileName=".\Debug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true" SuppressStartupBanner="true"
DebugInformationFormat="3" DebugInformationFormat="3"
@ -258,14 +261,15 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="jpeg.lib odbc32.lib odbccp32.lib" AdditionalDependencies="jpeg.lib odbc32.lib odbccp32.lib"
OutputFile="icon_search_df.exe" OutputFile="icon_search_d.exe"
LinkIncremental="2" LinkIncremental="2"
SuppressStartupBanner="true" SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="libc.lib"
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile=".\DebugFast/icon_search_df.pdb" ProgramDatabaseFile=".\Debug/icon_search_d.pdb"
SubSystem="1" SubSystem="1"
TargetMachine="1" RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="17"
/> />
<Tool <Tool
Name="VCALinkTool" Name="VCALinkTool"
@ -279,7 +283,7 @@
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true" SuppressStartupBanner="true"
OutputFile=".\DebugFast/icon_search.bsc" OutputFile=".\Debug/icon_search.bsc"
/> />
<Tool <Tool
Name="VCFxCopTool" Name="VCFxCopTool"
@ -287,17 +291,14 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
</Configuration> </Configuration>
<Configuration <Configuration
Name="ReleaseDebug|Win32" Name="Release|x64"
OutputDirectory=".\ReleaseDebug" OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory=".\ReleaseDebug" IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0" UseOfMFC="0"
@ -318,26 +319,24 @@
/> />
<Tool <Tool
Name="VCMIDLTool" Name="VCMIDLTool"
TypeLibraryName=".\ReleaseDebug/icon_search.tlb" TargetEnvironment="3"
TypeLibraryName=".\Release/icon_search.tlb"
HeaderFileName="" HeaderFileName=""
/> />
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="3"
InlineFunctionExpansion="1" InlineFunctionExpansion="2"
AdditionalIncludeDirectories="../../../../../code/nel/include" EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
EnableFiberSafeOptimizations="true"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE" PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE"
StringPooling="true" StringPooling="true"
RuntimeLibrary="2" RuntimeLibrary="2"
EnableFunctionLevelLinking="true" BufferSecurityCheck="false"
RuntimeTypeInfo="true"
PrecompiledHeaderFile=".\ReleaseDebug/icon_search.pch"
AssemblerListingLocation=".\ReleaseDebug/"
ObjectFile=".\ReleaseDebug/"
ProgramDataBaseFileName=".\ReleaseDebug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/> />
<Tool <Tool
Name="VCManagedResourceCompilerTool" Name="VCManagedResourceCompilerTool"
@ -352,14 +351,11 @@
/> />
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="jpeg.lib odbc32.lib odbccp32.lib" OutputFile="icon_search_r.exe"
OutputFile="icon_search_rd.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\ReleaseDebug/icon_search_rd.pdb"
SubSystem="1" SubSystem="1"
TargetMachine="1" OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="17"
/> />
<Tool <Tool
Name="VCALinkTool" Name="VCALinkTool"
@ -373,7 +369,7 @@
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true" SuppressStartupBanner="true"
OutputFile=".\ReleaseDebug/icon_search.bsc" OutputFile=".\Release/icon_search.bsc"
/> />
<Tool <Tool
Name="VCFxCopTool" Name="VCFxCopTool"
@ -381,9 +377,6 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
@ -418,7 +411,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="DebugFast|Win32" Name="Debug|x64"
> >
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
@ -427,7 +420,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="ReleaseDebug|Win32" Name="Release|x64"
> >
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"

View file

@ -457,7 +457,7 @@ public:
/// Get full paths of files to publish /// Get full paths of files to publish
uint getFileToPublishCount() { return _FilesToPublish.size(); } uint getFileToPublishCount() { return (uint)_FilesToPublish.size(); }
std::string getFileToPublish(uint index) { nlassert(index < _FilesToPublish.size()); return _FilesToPublish[index]; } std::string getFileToPublish(uint index) { nlassert(index < _FilesToPublish.size()); return _FilesToPublish[index]; }
@ -467,7 +467,7 @@ public:
} }
uint getMissionsCount() uint getMissionsCount()
{ {
return _CompiledMission.size(); return (uint)_CompiledMission.size();
} }
TMissionDataPtr getMission(uint index) TMissionDataPtr getMission(uint index)
{ {

View file

@ -1677,7 +1677,7 @@ class CContentKill : public CContentObjective
{ {
if (!_KillFaunas.empty()) if (!_KillFaunas.empty())
{ {
numEntry = _KillFaunas.size(); numEntry = (uint32)_KillFaunas.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<_KillFaunas.size(); ++i) for (uint i=0; i<_KillFaunas.size(); ++i)
{ {
@ -1691,7 +1691,7 @@ class CContentKill : public CContentObjective
} }
else if (!_KillRaces.empty()) else if (!_KillRaces.empty())
{ {
numEntry = _KillRaces.size(); numEntry = (uint32)_KillRaces.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<_KillRaces.size(); ++i) for (uint i=0; i<_KillRaces.size(); ++i)
{ {
@ -1712,7 +1712,7 @@ class CContentKill : public CContentObjective
} }
else if (!_KillNpcs.empty()) else if (!_KillNpcs.empty())
{ {
numEntry = _KillNpcs.size(); numEntry = (uint32)_KillNpcs.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<_KillNpcs.size(); ++i) for (uint i=0; i<_KillNpcs.size(); ++i)
{ {
@ -2013,7 +2013,7 @@ class CContentCast : public CContentObjective
void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef) void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef)
{ {
numEntry = _Actions.size(); numEntry = (uint32)_Actions.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<numEntry; ++i) for (uint i=0; i<numEntry; ++i)
{ {
@ -2083,7 +2083,7 @@ class CContentForage : public CContentObjective
virtual void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef) virtual void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef)
{ {
numEntry = _Mps.size(); numEntry = (uint32)_Mps.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<numEntry; ++i) for (uint i=0; i<numEntry; ++i)
{ {
@ -2166,7 +2166,7 @@ class CContentLoot : public CContentObjective
{ {
if (_Mode == lm_item) if (_Mode == lm_item)
{ {
numEntry = _Items.size(); numEntry = (uint32)_Items.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<numEntry; ++i) for (uint i=0; i<numEntry; ++i)
{ {
@ -2179,7 +2179,7 @@ class CContentLoot : public CContentObjective
} }
else if (_Mode == lm_mp) else if (_Mode == lm_mp)
{ {
numEntry = _Items.size(); numEntry = (uint32)_Items.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<numEntry; ++i) for (uint i=0; i<numEntry; ++i)
{ {
@ -2282,7 +2282,7 @@ class CContentCraft : public CContentObjective
virtual void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef) virtual void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef)
{ {
numEntry = _Items.size(); numEntry = (uint32)_Items.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<numEntry; ++i) for (uint i=0; i<numEntry; ++i)
{ {
@ -2357,7 +2357,7 @@ class CContentTarget : public CContentObjective
if (!_Npcs.empty()) if (!_Npcs.empty())
{ {
numEntry = _Npcs.size(); numEntry = (uint32)_Npcs.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<numEntry; ++i) for (uint i=0; i<numEntry; ++i)
{ {
@ -2370,7 +2370,7 @@ class CContentTarget : public CContentObjective
} }
else if (!_Faunas.empty()) else if (!_Faunas.empty())
{ {
numEntry = _Faunas.size(); numEntry = (uint32)_Faunas.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<numEntry; ++i) for (uint i=0; i<numEntry; ++i)
{ {
@ -2383,7 +2383,7 @@ class CContentTarget : public CContentObjective
} }
else if (!_Races.empty()) else if (!_Races.empty())
{ {
numEntry = _Races.size(); numEntry = (uint32)_Races.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<numEntry; ++i) for (uint i=0; i<numEntry; ++i)
{ {
@ -2486,7 +2486,7 @@ class CContentSell : public CContentObjective
virtual void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef) virtual void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef)
{ {
numEntry = _Items.size(); numEntry = (uint32)_Items.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<numEntry; ++i) for (uint i=0; i<numEntry; ++i)
{ {
@ -2571,7 +2571,7 @@ class CContentBuy : public CContentObjective
virtual void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef) virtual void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef)
{ {
numEntry = _Items.size(); numEntry = (uint32)_Items.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<numEntry; ++i) for (uint i=0; i<numEntry; ++i)
{ {
@ -2653,7 +2653,7 @@ class CContentGive : public CContentObjective
virtual void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef) virtual void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef)
{ {
numEntry = _Items.size(); numEntry = (uint32)_Items.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<numEntry; ++i) for (uint i=0; i<numEntry; ++i)
{ {
@ -2882,7 +2882,7 @@ class CContentSkill: public CContentObjective
virtual void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef) virtual void getPredefParam(uint32 &numEntry, CPhrase::TPredefParams &predef)
{ {
numEntry = _Skills.size(); numEntry = (uint32)_Skills.size();
predef.resize(numEntry); predef.resize(numEntry);
for (uint i=0; i<numEntry; ++i) for (uint i=0; i<numEntry; ++i)

View file

@ -304,7 +304,7 @@ void GetItemColor( int color, char eco, int level, CSString& outStr )
bool endsWith( const CSString& s, const CSString& substring ) bool endsWith( const CSString& s, const CSString& substring )
{ {
return (s.right( substring.size() ) == substring); return (s.right( (uint)substring.size() ) == substring);
} }

View file

@ -1,25 +1,28 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="8.00" Version="9.00"
Name="mp_generator" Name="mp_generator"
ProjectGUID="{DA23C491-DE13-4DD0-84CD-132E2905DFD6}" ProjectGUID="{DA23C491-DE13-4DD0-84CD-132E2905DFD6}"
RootNamespace="mp_generator" RootNamespace="mp_generator"
TargetFrameworkVersion="131072"
> >
<Platforms> <Platforms>
<Platform <Platform
Name="Win32" Name="Win32"
/> />
<Platform
Name="x64"
/>
</Platforms> </Platforms>
<ToolFiles> <ToolFiles>
</ToolFiles> </ToolFiles>
<Configurations> <Configurations>
<Configuration <Configuration
Name="ReleaseDebug|Win32" Name="Release|x64"
OutputDirectory=".\ReleaseDebug" OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory=".\ReleaseDebug" IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2" CharacterSet="2"
@ -38,26 +41,24 @@
/> />
<Tool <Tool
Name="VCMIDLTool" Name="VCMIDLTool"
TypeLibraryName=".\ReleaseDebug/mp_generator.tlb" TargetEnvironment="3"
TypeLibraryName=".\Release/mp_generator.tlb"
HeaderFileName="" HeaderFileName=""
/> />
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="3"
InlineFunctionExpansion="1" InlineFunctionExpansion="2"
AdditionalIncludeDirectories="../../../../../code/nel/include" EnableIntrinsicFunctions="true"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE" FavorSizeOrSpeed="1"
OmitFramePointers="true"
EnableFiberSafeOptimizations="true"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
StringPooling="true" StringPooling="true"
RuntimeLibrary="2" RuntimeLibrary="2"
EnableFunctionLevelLinking="true" BufferSecurityCheck="false"
RuntimeTypeInfo="true"
PrecompiledHeaderFile=".\ReleaseDebug/mp_generator.pch"
AssemblerListingLocation=".\ReleaseDebug/"
ObjectFile=".\ReleaseDebug/"
ProgramDataBaseFileName=".\ReleaseDebug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/> />
<Tool <Tool
Name="VCManagedResourceCompilerTool" Name="VCManagedResourceCompilerTool"
@ -72,14 +73,14 @@
/> />
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="libxml2.lib odbc32.lib odbccp32.lib" OutputFile="mp_generator_r.exe"
OutputFile="mp_generator_rd.exe"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="true" AdditionalLibraryDirectories=""
GenerateDebugInformation="true" IgnoreDefaultLibraryNames=""
ProgramDatabaseFile="mp_generator.pdb"
SubSystem="1" SubSystem="1"
TargetMachine="1" OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="17"
/> />
<Tool <Tool
Name="VCALinkTool" Name="VCALinkTool"
@ -93,7 +94,7 @@
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true" SuppressStartupBanner="true"
OutputFile=".\ReleaseDebug/mp_generator.bsc" OutputFile=".\Release/mp_generator.bsc"
/> />
<Tool <Tool
Name="VCFxCopTool" Name="VCFxCopTool"
@ -101,9 +102,6 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
@ -113,7 +111,6 @@
OutputDirectory=".\Release" OutputDirectory=".\Release"
IntermediateDirectory=".\Release" IntermediateDirectory=".\Release"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2" CharacterSet="2"
@ -172,6 +169,8 @@
IgnoreDefaultLibraryNames="msvcrtd.lib" IgnoreDefaultLibraryNames="msvcrtd.lib"
ProgramDatabaseFile="mp_generator_r.pdb" ProgramDatabaseFile="mp_generator_r.pdb"
SubSystem="1" SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1" TargetMachine="1"
/> />
<Tool <Tool
@ -194,19 +193,15 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
</Configuration> </Configuration>
<Configuration <Configuration
Name="DebugFast|Win32" Name="Debug|x64"
OutputDirectory=".\DebugFast" OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory=".\DebugFast" IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2" CharacterSet="2"
@ -225,20 +220,22 @@
/> />
<Tool <Tool
Name="VCMIDLTool" Name="VCMIDLTool"
TypeLibraryName=".\DebugFast/mp_generator.tlb" TargetEnvironment="3"
TypeLibraryName=".\Debug/mp_generator.tlb"
HeaderFileName="" HeaderFileName=""
/> />
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="../.,../../../../../code/nel/include" AdditionalIncludeDirectories="../../../../../code/nel/include"
PreprocessorDefinitions="WIN32;_CONSOLE" PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
RuntimeLibrary="3" MinimalRebuild="true"
RuntimeTypeInfo="true" BasicRuntimeChecks="3"
PrecompiledHeaderFile=".\DebugFast/mp_generator.pch" RuntimeLibrary="1"
AssemblerListingLocation=".\DebugFast/" PrecompiledHeaderFile=".\Debug/mp_generator.pch"
ObjectFile=".\DebugFast/" AssemblerListingLocation=".\Debug/"
ProgramDataBaseFileName=".\DebugFast/" ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\Debug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true" SuppressStartupBanner="true"
DebugInformationFormat="3" DebugInformationFormat="3"
@ -248,7 +245,7 @@
/> />
<Tool <Tool
Name="VCResourceCompilerTool" Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG" PreprocessorDefinitions="_DEBUG"
Culture="1033" Culture="1033"
/> />
<Tool <Tool
@ -256,14 +253,15 @@
/> />
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="libxml2.lib odbc32.lib odbccp32.lib " OutputFile="mp_generator_d.exe"
OutputFile="mp_generator_df.exe" LinkIncremental="2"
LinkIncremental="1"
SuppressStartupBanner="true" SuppressStartupBanner="true"
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile="mp_generator.pdb" ProgramDatabaseFile=".\Debug/mp_generator_d.pdb"
SubSystem="1" SubSystem="1"
TargetMachine="1" RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="17"
/> />
<Tool <Tool
Name="VCALinkTool" Name="VCALinkTool"
@ -277,7 +275,7 @@
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true" SuppressStartupBanner="true"
OutputFile=".\DebugFast/mp_generator.bsc" OutputFile=".\Debug/mp_generator.bsc"
/> />
<Tool <Tool
Name="VCFxCopTool" Name="VCFxCopTool"
@ -285,9 +283,6 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
@ -297,7 +292,6 @@
OutputDirectory=".\Debug" OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug" IntermediateDirectory=".\Debug"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2" CharacterSet="2"
@ -354,6 +348,8 @@
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/mp_generator_d.pdb" ProgramDatabaseFile=".\Debug/mp_generator_d.pdb"
SubSystem="1" SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1" TargetMachine="1"
/> />
<Tool <Tool
@ -376,9 +372,6 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
@ -395,7 +388,7 @@
RelativePath="main.cpp" RelativePath="main.cpp"
> >
<FileConfiguration <FileConfiguration
Name="ReleaseDebug|Win32" Name="Release|x64"
> >
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
@ -413,7 +406,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="DebugFast|Win32" Name="Debug|x64"
> >
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"

View file

@ -143,7 +143,7 @@ public:
{ {
for ( std::vector<std::string>::const_iterator ik=item.Fields[c].begin(); ik!=item.Fields[c].end(); ++ik ) for ( std::vector<std::string>::const_iterator ik=item.Fields[c].begin(); ik!=item.Fields[c].end(); ++ik )
{ {
_Indices[c].insert( make_pair( *ik, _Items.size()-1 ) ); _Indices[c].insert( make_pair( *ik, (uint32)_Items.size()-1 ) );
} }
} }
} }

View file

@ -1,257 +1,379 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="7.10" Version="9.00"
Name="prim_export" Name="prim_export"
ProjectGUID="{96975416-BE2B-4458-8DF4-91870D25C46B}" ProjectGUID="{96975416-BE2B-4458-8DF4-91870D25C46B}"
SccProjectName="" TargetFrameworkVersion="131072"
SccLocalPath=""> >
<Platforms> <Platforms>
<Platform <Platform
Name="Win32"/> Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms> </Platforms>
<ToolFiles>
</ToolFiles>
<Configurations> <Configurations>
<Configuration <Configuration
Name="ReleaseDebug|Win32" Name="Release|x64"
OutputDirectory=".\ReleaseDebug" OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory=".\ReleaseDebug" IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"> CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
TypeLibraryName=".\Release/prim_export.tlb"
HeaderFileName=""
/>
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="2"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
PreprocessorDefinitions="_CONSOLE;WIN32;NDEBUG" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
StringPooling="TRUE" StringPooling="true"
RuntimeLibrary="2" RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE" EnableFunctionLevelLinking="true"
RuntimeTypeInfo="TRUE" RuntimeTypeInfo="true"
UsePrecompiledHeader="2" UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\ReleaseDebug/prim_export.pch" PrecompiledHeaderFile=".\Release/prim_export.pch"
AssemblerListingLocation=".\ReleaseDebug/" AssemblerListingLocation=".\Release/"
ObjectFile=".\ReleaseDebug/" ObjectFile=".\Release/"
ProgramDataBaseFileName=".\ReleaseDebug/" ProgramDataBaseFileName=".\Release/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="TRUE" SuppressStartupBanner="true"
DebugInformationFormat="3"/> />
<Tool <Tool
Name="VCCustomBuildTool"/> Name="VCManagedResourceCompilerTool"
<Tool />
Name="VCLinkerTool"
AdditionalDependencies="freetype.lib libxml2_a.lib odbc32.lib odbccp32.lib"
OutputFile=".\ReleaseDebug/prim_export.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\ReleaseDebug/prim_export.pdb"
SubSystem="1"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
TypeLibraryName=".\ReleaseDebug/prim_export.tlb"
HeaderFileName=""/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool <Tool
Name="VCResourceCompilerTool" Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG" PreprocessorDefinitions="NDEBUG"
Culture="1033"/> Culture="1033"
/>
<Tool <Tool
Name="VCWebServiceProxyGeneratorTool"/> Name="VCPreLinkEventTool"
/>
<Tool <Tool
Name="VCXMLDataGeneratorTool"/> Name="VCLinkerTool"
AdditionalDependencies="freetype.lib libxml2.lib odbc32.lib odbccp32.lib"
OutputFile=".\Release/prim_export.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
ProgramDatabaseFile=".\Release/prim_export.pdb"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="17"
/>
<Tool <Tool
Name="VCWebDeploymentTool"/> Name="VCALinkTool"
/>
<Tool <Tool
Name="VCManagedWrapperGeneratorTool"/> Name="VCManifestTool"
/>
<Tool <Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|Win32" Name="Release|Win32"
OutputDirectory=".\Release" OutputDirectory=".\Release"
IntermediateDirectory=".\Release" IntermediateDirectory=".\Release"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"> CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TypeLibraryName=".\Release/prim_export.tlb"
HeaderFileName=""
/>
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="2"
InlineFunctionExpansion="1" InlineFunctionExpansion="1"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
StringPooling="TRUE" StringPooling="true"
RuntimeLibrary="2" RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE" EnableFunctionLevelLinking="true"
RuntimeTypeInfo="TRUE" RuntimeTypeInfo="true"
UsePrecompiledHeader="2" UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\Release/prim_export.pch" PrecompiledHeaderFile=".\Release/prim_export.pch"
AssemblerListingLocation=".\Release/" AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/" ObjectFile=".\Release/"
ProgramDataBaseFileName=".\Release/" ProgramDataBaseFileName=".\Release/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="TRUE"/> SuppressStartupBanner="true"
/>
<Tool <Tool
Name="VCCustomBuildTool"/> Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="freetype.lib libxml2.lib odbc32.lib odbccp32.lib" AdditionalDependencies="freetype.lib libxml2.lib odbc32.lib odbccp32.lib"
OutputFile=".\Release/prim_export.exe" OutputFile=".\Release/prim_export.exe"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="TRUE" SuppressStartupBanner="true"
ProgramDatabaseFile=".\Release/prim_export.pdb" ProgramDatabaseFile=".\Release/prim_export.pdb"
SubSystem="1" SubSystem="1"
TargetMachine="1"/> RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool <Tool
Name="VCMIDLTool" Name="VCALinkTool"
TypeLibraryName=".\Release/prim_export.tlb" />
HeaderFileName=""/>
<Tool <Tool
Name="VCPostBuildEventTool"/> Name="VCManifestTool"
/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCXDCMakeTool"
/>
<Tool <Tool
Name="VCPreLinkEventTool"/> Name="VCBscMakeTool"
/>
<Tool <Tool
Name="VCResourceCompilerTool" Name="VCFxCopTool"
PreprocessorDefinitions="NDEBUG" />
Culture="1033"/>
<Tool <Tool
Name="VCWebServiceProxyGeneratorTool"/> Name="VCAppVerifierTool"
/>
<Tool <Tool
Name="VCXMLDataGeneratorTool"/> Name="VCPostBuildEventTool"
<Tool />
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration> </Configuration>
<Configuration <Configuration
Name="DebugFast|Win32" Name="Debug|x64"
OutputDirectory=".\DebugFast" OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory=".\DebugFast" IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"> CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
TypeLibraryName=".\Debug/prim_export.tlb"
HeaderFileName=""
/>
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="3" RuntimeLibrary="3"
RuntimeTypeInfo="TRUE" RuntimeTypeInfo="true"
UsePrecompiledHeader="2" UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\DebugFast/prim_export.pch" PrecompiledHeaderFile=".\Debug/prim_export.pch"
AssemblerListingLocation=".\DebugFast/" AssemblerListingLocation=".\Debug/"
ObjectFile=".\DebugFast/" ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\DebugFast/" ProgramDataBaseFileName=".\Debug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="TRUE" SuppressStartupBanner="true"
DebugInformationFormat="3"/> DebugInformationFormat="3"
/>
<Tool <Tool
Name="VCCustomBuildTool"/> Name="VCManagedResourceCompilerTool"
<Tool />
Name="VCLinkerTool"
AdditionalDependencies="freetype.lib libxml2.lib odbc32.lib odbccp32.lib"
OutputFile=".\DebugFast/prim_export.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\DebugFast/prim_export.pdb"
SubSystem="1"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
TypeLibraryName=".\DebugFast/prim_export.tlb"
HeaderFileName=""/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool <Tool
Name="VCResourceCompilerTool" Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG" PreprocessorDefinitions="_DEBUG"
Culture="1033"/> Culture="1033"
/>
<Tool <Tool
Name="VCWebServiceProxyGeneratorTool"/> Name="VCPreLinkEventTool"
/>
<Tool <Tool
Name="VCXMLDataGeneratorTool"/> Name="VCLinkerTool"
AdditionalDependencies="freetype.lib libxml2.lib odbc32.lib odbccp32.lib"
OutputFile=".\Debug/prim_export.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/prim_export.pdb"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="17"
/>
<Tool <Tool
Name="VCWebDeploymentTool"/> Name="VCALinkTool"
/>
<Tool <Tool
Name="VCManagedWrapperGeneratorTool"/> Name="VCManifestTool"
/>
<Tool <Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration> </Configuration>
<Configuration <Configuration
Name="Debug|Win32" Name="Debug|Win32"
OutputDirectory=".\Debug" OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug" IntermediateDirectory=".\Debug"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0" UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"> CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TypeLibraryName=".\Debug/prim_export.tlb"
HeaderFileName=""
/>
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="3" RuntimeLibrary="3"
RuntimeTypeInfo="TRUE" RuntimeTypeInfo="true"
UsePrecompiledHeader="2" UsePrecompiledHeader="0"
PrecompiledHeaderFile=".\Debug/prim_export.pch" PrecompiledHeaderFile=".\Debug/prim_export.pch"
AssemblerListingLocation=".\Debug/" AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/" ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\Debug/" ProgramDataBaseFileName=".\Debug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="TRUE" SuppressStartupBanner="true"
DebugInformationFormat="3"/> DebugInformationFormat="3"
/>
<Tool <Tool
Name="VCCustomBuildTool"/> Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="freetype.lib libxml2.lib odbc32.lib odbccp32.lib" AdditionalDependencies="freetype.lib libxml2.lib odbc32.lib odbccp32.lib"
OutputFile=".\Debug/prim_export.exe" OutputFile=".\Debug/prim_export.exe"
LinkIncremental="1" LinkIncremental="1"
SuppressStartupBanner="TRUE" SuppressStartupBanner="true"
GenerateDebugInformation="TRUE" GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/prim_export.pdb" ProgramDatabaseFile=".\Debug/prim_export.pdb"
SubSystem="1" SubSystem="1"
TargetMachine="1"/> RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool <Tool
Name="VCMIDLTool" Name="VCALinkTool"
TypeLibraryName=".\Debug/prim_export.tlb" />
HeaderFileName=""/>
<Tool <Tool
Name="VCPostBuildEventTool"/> Name="VCManifestTool"
/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCXDCMakeTool"
/>
<Tool <Tool
Name="VCPreLinkEventTool"/> Name="VCBscMakeTool"
/>
<Tool <Tool
Name="VCResourceCompilerTool" Name="VCFxCopTool"
PreprocessorDefinitions="_DEBUG" />
Culture="1033"/>
<Tool <Tool
Name="VCWebServiceProxyGeneratorTool"/> Name="VCAppVerifierTool"
/>
<Tool <Tool
Name="VCXMLDataGeneratorTool"/> Name="VCPostBuildEventTool"
<Tool />
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration> </Configuration>
</Configurations> </Configurations>
<References> <References>
@ -259,57 +381,72 @@
<Files> <Files>
<Filter <Filter
Name="Source Files" Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"> Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File <File
RelativePath="main.cpp"> RelativePath="main.cpp"
>
<FileConfiguration <FileConfiguration
Name="ReleaseDebug|Win32"> Name="Release|x64"
>
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="2"
PreprocessorDefinitions=""/> PreprocessorDefinitions=""
/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|Win32"> Name="Release|Win32"
>
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2" Optimization="2"
PreprocessorDefinitions=""/> PreprocessorDefinitions=""
/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="DebugFast|Win32"> Name="Debug|x64"
>
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
PreprocessorDefinitions="" PreprocessorDefinitions=""
BasicRuntimeChecks="3"/> BasicRuntimeChecks="3"
/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32"> Name="Debug|Win32"
>
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
PreprocessorDefinitions="" PreprocessorDefinitions=""
BasicRuntimeChecks="3"/> BasicRuntimeChecks="3"
/>
</FileConfiguration> </FileConfiguration>
</File> </File>
</Filter> </Filter>
<Filter <Filter
Name="Header Files" Name="Header Files"
Filter="h;hpp;hxx;hm;inl"> Filter="h;hpp;hxx;hm;inl"
>
<File <File
RelativePath="..\master\ContinentCfg.h"> RelativePath="..\master\ContinentCfg.h"
>
</File> </File>
<File <File
RelativePath="..\master\easy_cfg.h"> RelativePath="..\master\easy_cfg.h"
>
</File> </File>
</Filter> </Filter>
<Filter <Filter
Name="Resource Files" Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"> Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
>
</Filter> </Filter>
<File <File
RelativePath="prim_export.cfg"> RelativePath="prim_export.cfg"
>
</File> </File>
</Files> </Files>
<Globals> <Globals>

View file

@ -29,7 +29,7 @@ int main(int argc, char *argv[])
// Add the search paths // Add the search paths
CConfigFile::CVar &sp = cf.getVar("SearchPath"); CConfigFile::CVar &sp = cf.getVar("SearchPath");
for (int i=0; i<sp.size(); ++i) for (uint i=0; i<sp.size(); ++i)
{ {
CPath::addSearchPath(sp.asString(i), true, false); CPath::addSearchPath(sp.asString(i), true, false);
} }
@ -57,7 +57,7 @@ int main(int argc, char *argv[])
// parse the index file // parse the index file
CConfigFile::CVar &fl = indexFile.getVar("Files"); CConfigFile::CVar &fl = indexFile.getVar("Files");
for (int i=0; i<(fl.size())/2; i++) for (uint i=0; i<(fl.size())/2; i++)
{ {
string fileName; string fileName;
uint32 index; uint32 index;
@ -82,7 +82,7 @@ int main(int argc, char *argv[])
} }
// scan the search path // scan the search path
for (int i=0; i<ext.size(); ++i) for (uint i=0; i<ext.size(); ++i)
{ {
vector<string> files; vector<string> files;
CPath::getFileList(ext.asString(i), files); CPath::getFileList(ext.asString(i), files);
@ -95,7 +95,7 @@ int main(int argc, char *argv[])
// check the first on full path // check the first on full path
bool filtered = false; bool filtered = false;
string path = CPath::lookup(fileName); string path = CPath::lookup(fileName);
for (int i=0; i<filters.size(); ++i) for (uint i=0; i<filters.size(); ++i)
{ {
if (path.find(filters.asString(i)) != string::npos) if (path.find(filters.asString(i)) != string::npos)
{ {

View file

@ -1,16 +1,20 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="8.00" Version="9.00"
Name="variable_parser" Name="variable_parser"
ProjectGUID="{294FC08E-91F1-4838-AA4D-13A457E227E9}" ProjectGUID="{294FC08E-91F1-4838-AA4D-13A457E227E9}"
RootNamespace="variable_parser" RootNamespace="variable_parser"
Keyword="MFCProj" Keyword="MFCProj"
TargetFrameworkVersion="131072"
> >
<Platforms> <Platforms>
<Platform <Platform
Name="Win32" Name="Win32"
/> />
<Platform
Name="x64"
/>
</Platforms> </Platforms>
<ToolFiles> <ToolFiles>
</ToolFiles> </ToolFiles>
@ -20,7 +24,6 @@
OutputDirectory=".\Release" OutputDirectory=".\Release"
IntermediateDirectory=".\Release" IntermediateDirectory=".\Release"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="2" UseOfMFC="2"
ATLMinimizesCRunTimeLibraryUsage="false" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2" CharacterSet="2"
@ -84,6 +87,8 @@
SuppressStartupBanner="true" SuppressStartupBanner="true"
ProgramDatabaseFile=".\Release/variable_parser_r.pdb" ProgramDatabaseFile=".\Release/variable_parser_r.pdb"
SubSystem="2" SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1" TargetMachine="1"
/> />
<Tool <Tool
@ -106,9 +111,6 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
@ -118,7 +120,6 @@
OutputDirectory=".\Debug" OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug" IntermediateDirectory=".\Debug"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="2" UseOfMFC="2"
ATLMinimizesCRunTimeLibraryUsage="false" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2" CharacterSet="2"
@ -182,6 +183,8 @@
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/variable_parser_d.pdb" ProgramDatabaseFile=".\Debug/variable_parser_d.pdb"
SubSystem="2" SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1" TargetMachine="1"
/> />
<Tool <Tool
@ -205,18 +208,110 @@
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool <Tool
Name="VCWebDeploymentTool" Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="2"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="3"
TypeLibraryName=".\Release/variable_parser.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="../../../../../code/nel/include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="true"
UsePrecompiledHeader="2"
PrecompiledHeaderThrough="stdafx.h"
PrecompiledHeaderFile=".\Release/variable_parser.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="nlmisc_r.lib"
OutputFile="variable_parser_r.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
ProgramDatabaseFile=".\Release/variable_parser_r.pdb"
SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Release/variable_parser.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/> />
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
</Configuration> </Configuration>
<Configuration <Configuration
Name="DebugFast|Win32" Name="Debug|x64"
OutputDirectory=".\DebugFast" OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory=".\DebugFast" IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1" ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="2" UseOfMFC="2"
ATLMinimizesCRunTimeLibraryUsage="false" ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2" CharacterSet="2"
@ -238,25 +333,24 @@
PreprocessorDefinitions="_DEBUG" PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true" MkTypLibCompatible="true"
SuppressStartupBanner="true" SuppressStartupBanner="true"
TargetEnvironment="1" TargetEnvironment="3"
TypeLibraryName=".\DebugFast/variable_parser.tlb" TypeLibraryName=".\Debug/variable_parser.tlb"
HeaderFileName="" HeaderFileName=""
/> />
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="../../../../../code/nel/include" AdditionalIncludeDirectories="../../../../../code/nel/include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
MinimalRebuild="true"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="3" RuntimeLibrary="3"
RuntimeTypeInfo="true"
UsePrecompiledHeader="2" UsePrecompiledHeader="2"
PrecompiledHeaderThrough="stdafx.h" PrecompiledHeaderThrough="stdafx.h"
PrecompiledHeaderFile=".\DebugFast/variable_parser.pch" PrecompiledHeaderFile=".\Debug/variable_parser.pch"
AssemblerListingLocation=".\DebugFast/" AssemblerListingLocation=".\Debug/"
ObjectFile=".\DebugFast/" ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\DebugFast/" ProgramDataBaseFileName=".\Debug/"
WarningLevel="3" WarningLevel="3"
SuppressStartupBanner="true" SuppressStartupBanner="true"
DebugInformationFormat="3" DebugInformationFormat="3"
@ -274,14 +368,16 @@
/> />
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="lua_r.lib" AdditionalDependencies="nlmisc_d.lib"
OutputFile="variable_parser_df.exe" OutputFile="variable_parser_d.exe"
LinkIncremental="2" LinkIncremental="2"
SuppressStartupBanner="true" SuppressStartupBanner="true"
GenerateDebugInformation="true" GenerateDebugInformation="true"
ProgramDatabaseFile=".\DebugFast/variable_parser_df.pdb" ProgramDatabaseFile=".\Debug/variable_parser_d.pdb"
SubSystem="2" SubSystem="2"
TargetMachine="1" RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="17"
/> />
<Tool <Tool
Name="VCALinkTool" Name="VCALinkTool"
@ -295,7 +391,7 @@
<Tool <Tool
Name="VCBscMakeTool" Name="VCBscMakeTool"
SuppressStartupBanner="true" SuppressStartupBanner="true"
OutputFile=".\DebugFast/variable_parser.bsc" OutputFile=".\Debug/variable_parser.bsc"
/> />
<Tool <Tool
Name="VCFxCopTool" Name="VCFxCopTool"
@ -303,106 +399,6 @@
<Tool <Tool
Name="VCAppVerifierTool" Name="VCAppVerifierTool"
/> />
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="ReleaseDebug|Win32"
OutputDirectory=".\ReleaseDebug"
IntermediateDirectory=".\ReleaseDebug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="2"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\ReleaseDebug/variable_parser.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="../../../../../code/nel/include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="2"
PrecompiledHeaderThrough="stdafx.h"
PrecompiledHeaderFile=".\ReleaseDebug/variable_parser.pch"
AssemblerListingLocation=".\ReleaseDebug/"
ObjectFile=".\ReleaseDebug/"
ProgramDataBaseFileName=".\ReleaseDebug/"
WarningLevel="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="lua_r.lib"
OutputFile="variable_parser_rd.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
ProgramDatabaseFile=".\ReleaseDebug/variable_parser_rd.pdb"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\ReleaseDebug/variable_parser.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool <Tool
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
@ -437,7 +433,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="DebugFast|Win32" Name="Release|x64"
> >
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
@ -446,7 +442,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="ReleaseDebug|Win32" Name="Debug|x64"
> >
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
@ -479,7 +475,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="DebugFast|Win32" Name="Release|x64"
> >
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
@ -489,7 +485,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="ReleaseDebug|Win32" Name="Debug|x64"
> >
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
@ -521,7 +517,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="DebugFast|Win32" Name="Release|x64"
> >
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
@ -530,7 +526,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="ReleaseDebug|Win32" Name="Debug|x64"
> >
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
@ -559,7 +555,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="DebugFast|Win32" Name="Release|x64"
> >
<Tool <Tool
Name="VCResourceCompilerTool" Name="VCResourceCompilerTool"
@ -567,7 +563,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="ReleaseDebug|Win32" Name="Debug|x64"
> >
<Tool <Tool
Name="VCResourceCompilerTool" Name="VCResourceCompilerTool"
@ -597,7 +593,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="DebugFast|Win32" Name="Release|x64"
> >
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
@ -606,7 +602,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="ReleaseDebug|Win32" Name="Debug|x64"
> >
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"

View file

@ -1889,7 +1889,7 @@ void CExport::cutZone (NL3D::CZone &bigZone, NL3D::CZone &bigZoneNoHeightmap, NL
PatchTransfered[i] = true; PatchTransfered[i] = true;
DstPI.push_back (rPI); DstPI.push_back (rPI);
DstPINoHeightmap.push_back (rPINoHeightmap); DstPINoHeightmap.push_back (rPINoHeightmap);
OldToNewPatchId.insert (pair<int,int>(i, DstPI.size()-1)); OldToNewPatchId.insert (pair<int,int>(i, (int)DstPI.size()-1));
} }
} }
@ -1940,7 +1940,7 @@ void CExport::cutZone (NL3D::CZone &bigZone, NL3D::CZone &bigZoneNoHeightmap, NL
PatchTransfered[i] = true; PatchTransfered[i] = true;
DstPI.push_back (rPI); DstPI.push_back (rPI);
DstPINoHeightmap.push_back (rPINoHeightmap); DstPINoHeightmap.push_back (rPINoHeightmap);
OldToNewPatchId.insert (pair<int,int>(i, DstPI.size()-1)); OldToNewPatchId.insert (pair<int,int>(i, (int)DstPI.size()-1));
foundOne = true; foundOne = true;
break; break;
} }
@ -1956,7 +1956,7 @@ void CExport::cutZone (NL3D::CZone &bigZone, NL3D::CZone &bigZoneNoHeightmap, NL
while (foundOne); while (foundOne);
// Add all patch that are binded to one of those of the DstPI list // Add all patch that are binded to one of those of the DstPI list
uint32 nPreviousDstPISize = DstPI.size(); uint32 nPreviousDstPISize = (uint32)DstPI.size();
for (;;) for (;;)
{ {
for (i = 0; i < DstPI.size(); ++i) for (i = 0; i < DstPI.size(); ++i)
@ -1977,7 +1977,7 @@ void CExport::cutZone (NL3D::CZone &bigZone, NL3D::CZone &bigZoneNoHeightmap, NL
} }
DstPI.push_back (rPITmp); DstPI.push_back (rPITmp);
DstPINoHeightmap.push_back (rPITmpNoHeightmap); DstPINoHeightmap.push_back (rPITmpNoHeightmap);
OldToNewPatchId.insert (pair<int,int>(next, DstPI.size()-1)); OldToNewPatchId.insert (pair<int,int>(next, (int)DstPI.size()-1));
PatchTransfered[next] = true; PatchTransfered[next] = true;
} }
} }
@ -1998,7 +1998,7 @@ void CExport::cutZone (NL3D::CZone &bigZone, NL3D::CZone &bigZoneNoHeightmap, NL
} }
DstPI.push_back (rPITmp); DstPI.push_back (rPITmp);
DstPINoHeightmap.push_back (rPITmpNoHeightmap); DstPINoHeightmap.push_back (rPITmpNoHeightmap);
OldToNewPatchId.insert (pair<int,int>(next, DstPI.size()-1)); OldToNewPatchId.insert (pair<int,int>(next, (int)DstPI.size()-1));
PatchTransfered[next] = true; PatchTransfered[next] = true;
} }
} }
@ -2009,7 +2009,7 @@ void CExport::cutZone (NL3D::CZone &bigZone, NL3D::CZone &bigZoneNoHeightmap, NL
// Do it until no more patch added // Do it until no more patch added
if (nPreviousDstPISize == DstPI.size()) if (nPreviousDstPISize == DstPI.size())
break; break;
nPreviousDstPISize = DstPI.size(); nPreviousDstPISize = (uint32)DstPI.size();
} }
for (i = 0; i < DstPI.size(); ++i) for (i = 0; i < DstPI.size(); ++i)

View file

@ -93,7 +93,10 @@ MACRO(NL_SETUP_BUILD)
IF(WITH_COVERAGE) IF(WITH_COVERAGE)
SET(PLATFORM_CFLAGS "-fprofile-arcs -ftest-coverage ${PLATFORM_CFLAGS}") SET(PLATFORM_CFLAGS "-fprofile-arcs -ftest-coverage ${PLATFORM_CFLAGS}")
ENDIF(WITH_COVERAGE) ENDIF(WITH_COVERAGE)
SET(PLATFORM_LINKFLAGS "${CMAKE_THREAD_LIBS_INIT} -lc -lm -lstdc++ -lrt") SET(PLATFORM_LINKFLAGS "${CMAKE_THREAD_LIBS_INIT} -lc -lm -lstdc++")
IF(NOT APPLE)
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -lrt")
ENDIF(NOT APPLE)
SET(NL_DEBUG_CFLAGS "-DNL_DEBUG -g") SET(NL_DEBUG_CFLAGS "-DNL_DEBUG -g")
SET(NL_RELEASE_CFLAGS "-DNL_RELEASE -O6") SET(NL_RELEASE_CFLAGS "-DNL_RELEASE -O6")
SET(NL_RELEASEDEBUG_CFLAGS "-DNL_RELEASE_DEBUG -g -finline-functions -O3 ") SET(NL_RELEASEDEBUG_CFLAGS "-DNL_RELEASE_DEBUG -g -finline-functions -O3 ")