This commit is contained in:
vl 2010-07-19 10:12:46 +02:00
commit dedac1804a
91 changed files with 900 additions and 1337 deletions

View file

@ -75,6 +75,14 @@ FIND_PACKAGE(Jpeg)
NL_SETUP_BUILD() NL_SETUP_BUILD()
IF(WITH_STATIC_DRIVERS)
IF(WIN32)
ADD_DEFINITIONS(/DNL_STATIC)
ELSE(WIN32)
ADD_DEFINITIONS(-DNL_STATIC)
ENDIF(WIN32)
ENDIF(WITH_STATIC_DRIVERS)
# On Windows we need to find DirectInput for NLMISC. # On Windows we need to find DirectInput for NLMISC.
# This is how we get events. # This is how we get events.
IF(WIN32) IF(WIN32)
@ -177,6 +185,10 @@ NL_SETUP_BUILD_FLAGS()
INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/PCHSupport.cmake) INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/PCHSupport.cmake)
IF(FINAL_VERSION)
ADD_DEFINITIONS(-DFINAL_VERSION=1)
ENDIF(FINAL_VERSION)
ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(include) ADD_SUBDIRECTORY(include)

View file

@ -1,26 +1,69 @@
### ###
# Build Library Name # Helper macro that generates .pc and installs it.
# Argument: name - the name of the .pc package, e.g. "nel-pacs.pc"
###
MACRO(NL_GEN_PC name)
IF(NOT WIN32)
CONFIGURE_FILE(${name}.in "${CMAKE_CURRENT_BINARY_DIR}/${name}")
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/${name}" DESTINATION lib/pkgconfig)
ENDIF(NOT WIN32)
ENDMACRO(NL_GEN_PC)
###
# #
# Arguments: name - undecorated library name
# Sets: LIBNAME - decorated library name
### ###
MACRO(DECORATE_NEL_LIB name) MACRO(NL_TARGET_LIB name)
IF(WITH_STATIC)
ADD_LIBRARY(${name} STATIC ${ARGN})
ELSE(WITH_STATIC)
ADD_LIBRARY(${name} SHARED ${ARGN})
ENDIF(WITH_STATIC)
ENDMACRO(NL_TARGET_LIB)
###
#
###
MACRO(NL_TARGET_DRIVER name)
IF(WITH_STATIC_DRIVERS)
ADD_LIBRARY(${name} STATIC ${ARGN})
ELSE(WITH_STATIC_DRIVERS)
ADD_LIBRARY(${name} SHARED ${ARGN})
ENDIF(WITH_STATIC_DRIVERS)
ENDMACRO(NL_TARGET_DRIVER)
###
# Helper macro that sets the default library properties.
# Argument: name - the target name whose properties are being set
# Argument:
###
MACRO(NL_DEFAULT_PROPS name label)
SET_TARGET_PROPERTIES(${name} PROPERTIES
VERSION ${NL_VERSION}
SOVERSION ${NL_VERSION_MAJOR}
PROJECT_LABEL ${label})
ENDMACRO(NL_DEFAULT_PROPS)
###
# Adds the target suffix on Windows.
# Argument: name - the library's target name.
###
MACRO(NL_ADD_LIB_SUFFIX name)
IF(WIN32) IF(WIN32)
IF(NL_BUILD_MODE MATCHES "NL_RELEASE_DEBUG") SET_TARGET_PROPERTIES(${name} PROPERTIES DEBUG_POSTFIX "_d" RELEASE_POSTFIX "_r")
SET(LIBNAME "${name}")
ELSE(NL_BUILD_MODE MATCHES "NL_RELEASE_DEBUG")
IF(NL_BUILD_MODE MATCHES "NL_DEBUG")
SET(LIBNAME "${name}")
ELSE(NL_BUILD_MODE MATCHES "NL_DEBUG")
SET(LIBNAME "${name}")
ENDIF(NL_BUILD_MODE MATCHES "NL_DEBUG")
ENDIF(NL_BUILD_MODE MATCHES "NL_RELEASE_DEBUG")
ELSE(WIN32)
SET(LIBNAME "${name}")
ENDIF(WIN32) ENDIF(WIN32)
ENDMACRO(NL_ADD_LIB_SUFFIX)
ENDMACRO(DECORATE_NEL_LIB) ###
# Adds the runtime link flags for Win32 binaries.
# Argument: name - the target to add the link flags to.
###
MACRO(NL_ADD_RUNTIME_FLAGS name)
IF(WIN32)
SET_TARGET_PROPERTIES(${name} PROPERTIES
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}")
ENDIF(WIN32)
ENDMACRO(NL_ADD_RUNTIME_FLAGS)
### ###
# Checks build vs. source location. Prevents In-Source builds. # Checks build vs. source location. Prevents In-Source builds.
@ -48,6 +91,15 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS)
OPTION(WITH_LOGGING "With Logging" ON ) OPTION(WITH_LOGGING "With Logging" ON )
OPTION(WITH_COVERAGE "With Code Coverage Support" OFF) OPTION(WITH_COVERAGE "With Code Coverage Support" OFF)
OPTION(WITH_PCH "With Precompiled Headers" ON ) OPTION(WITH_PCH "With Precompiled Headers" ON )
OPTION(FINAL_VERSION "Build in Final Version mode" ON )
# Default to static building on Windows.
IF(WIN32)
OPTION(WITH_STATIC "With static libraries." ON )
ELSE(WIN32)
OPTION(WITH_STATIC "With static libraries." OFF)
ENDIF(WIN32)
OPTION(WITH_STATIC_DRIVERS "With static drivers." OFF)
### ###
# Core libraries # Core libraries
@ -178,7 +230,7 @@ MACRO(NL_SETUP_BUILD_FLAGS)
## MinSizeRel ## MinSizeRel
SET(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} ${NL_RELEASEDEBUG_CFLAGS} ${PLATFORM_CFLAGS} ") SET(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} ${NL_RELEASEDEBUG_CFLAGS} ${PLATFORM_CFLAGS} ")
SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${NL_RELEASEDEBUG_CFLAGS} ${PLATFORM_CFLAGS} ") SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${NL_RELEASEDEBUG_CFLAGS} ${PLATFORM_CFLAGS} ")
SET(LINK_FLAGS_MINSIZEREL "${CMAKE_LINK_FLAGS_MINSIZEREL} ${NL_RELEASEDEBUG_LINK_CFLAGS} ${PLATFORM_LINKFLAGS} ") SET(CMAKE_LINK_FLAGS_MINSIZEREL "${CMAKE_LINK_FLAGS_MINSIZEREL} ${NL_RELEASEDEBUG_LINK_CFLAGS} ${PLATFORM_LINKFLAGS} ")
ENDMACRO(NL_SETUP_BUILD_FLAGS) ENDMACRO(NL_SETUP_BUILD_FLAGS)
MACRO(NL_SETUP_PREFIX_PATHS) MACRO(NL_SETUP_PREFIX_PATHS)

View file

@ -186,6 +186,9 @@ public:
/// Set the title of the NeL window /// Set the title of the NeL window
virtual void setWindowTitle(const ucstring &title)=0; virtual void setWindowTitle(const ucstring &title)=0;
/// Set icon(s) of the NeL window
virtual void setWindowIcon(const std::vector<NLMISC::CBitmap> &bitmaps)=0;
/// Set the position of the NeL window /// Set the position of the NeL window
virtual void setWindowPos(sint32 x, sint32 y)=0; virtual void setWindowPos(sint32 x, sint32 y)=0;

View file

@ -148,6 +148,9 @@ public:
/// Set the title of the NeL window /// Set the title of the NeL window
virtual void setWindowTitle(const ucstring &title); virtual void setWindowTitle(const ucstring &title);
/// Set icon(s) of the NeL window
virtual void setWindowIcon(const std::vector<NLMISC::CBitmap> &bitmaps);
/// Set the position of the NeL window /// Set the position of the NeL window
virtual void setWindowPos(sint32 x, sint32 y); virtual void setWindowPos(sint32 x, sint32 y);

View file

@ -34,7 +34,7 @@ namespace NL3D {
template <> template <>
const char *CPSAttribMaker<NLMISC::CRGBA>::getType() { return "CRGBA"; } inline const char *CPSAttribMaker<NLMISC::CRGBA>::getType() { return "CRGBA"; }
// Depending on the driver, the format of colors in vertex buffer may change. We don't want to change the format for each data that is (dynamically) in vertex buffer, so // Depending on the driver, the format of colors in vertex buffer may change. We don't want to change the format for each data that is (dynamically) in vertex buffer, so

View file

@ -28,7 +28,7 @@
namespace NL3D { namespace NL3D {
template <> template <>
const char *CPSAttribMaker<float>::getType() { return "float"; } inline const char *CPSAttribMaker<float>::getType() { return "float"; }
/// these are some attribute makers for float /// these are some attribute makers for float
/// This is a float blender class. It just blend between 2 values /// This is a float blender class. It just blend between 2 values

View file

@ -26,7 +26,7 @@
namespace NL3D { namespace NL3D {
template <> template <>
const char *CPSAttribMaker<uint32>::getType() { return "int32"; } inline const char *CPSAttribMaker<uint32>::getType() { return "int32"; }
/// these are some attribute makers for int /// these are some attribute makers for int

View file

@ -28,7 +28,7 @@
namespace NL3D { namespace NL3D {
template <> template <>
const char *CPSAttribMaker<CPlaneBasis>::getType() { return "CPlaneBasis";} inline const char *CPSAttribMaker<CPlaneBasis>::getType() { return "CPlaneBasis";}
/** these are some attribute makers for plane_basis /** these are some attribute makers for plane_basis
* This is a plane basis class. It just blend between 2 plane by linearly interpolating the normal * This is a plane basis class. It just blend between 2 plane by linearly interpolating the normal

View file

@ -186,6 +186,9 @@ public:
/// Set the title of the NeL window /// Set the title of the NeL window
virtual void setWindowTitle(const ucstring &title)=0; virtual void setWindowTitle(const ucstring &title)=0;
/// Set icon(s) of the NeL window
virtual void setWindowIcon(const std::vector<NLMISC::CBitmap> &bitmaps)=0;
/// Set the position of the NeL window /// Set the position of the NeL window
virtual void setWindowPos(sint32 x, sint32 y)=0; virtual void setWindowPos(sint32 x, sint32 y)=0;

View file

@ -621,6 +621,10 @@ public:
void getDibData(uint8*& extractData); void getDibData(uint8*& extractData);
#ifdef NL_OS_WINDOWS
HICON getHICON(sint iconWidth, sint iconHeight, sint iconDepth, const NLMISC::CRGBA &col = NLMISC::CRGBA::White, sint hotSpotX = 0, sint hotSpotY = 0, bool cursor = false) const;
#endif
CBitmap& operator= (const CBitmap& from) CBitmap& operator= (const CBitmap& from)
{ {
if (&from == this) if (&from == this)

View file

@ -700,6 +700,11 @@ struct CFile
* Call this method to get a temporary output filename. If you have successfully saved your data, delete the old filename and move the new one. * Call this method to get a temporary output filename. If you have successfully saved your data, delete the old filename and move the new one.
*/ */
static void getTemporaryOutputFilename (const std::string &originalFilename, std::string &tempFilename); static void getTemporaryOutputFilename (const std::string &originalFilename, std::string &tempFilename);
/** Get application directory.
* \return directory where applications should write files.
*/
static std::string getApplicationDirectory(const std::string &appName = "");
}; };
} // NLMISC } // NLMISC

View file

@ -1,18 +1,14 @@
FILE(GLOB SRC *.cpp) FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_clusterview ${SRC}) ADD_EXECUTABLE(nl_sample_clusterview WIN32 ${SRC})
ADD_DEFINITIONS(-DCV_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_clusterview/\\"") ADD_DEFINITIONS(-DCV_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_clusterview/\\"")
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_clusterview ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc nel3d) TARGET_LINK_LIBRARIES(nl_sample_clusterview ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc nel3d)
IF(WIN32) NL_ADD_RUNTIME_FLAGS(nl_sample_clusterview)
SET_TARGET_PROPERTIES(nl_sample_clusterview PROPERTIES NL_DEFAULT_PROPS(nl_sample_clusterview "Samples, 3D: Cluster Viewer")
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
LINK_FLAGS "/SUBSYSTEM:WINDOWS"
PROJECT_LABEL "Samples, 3D: Cluster Viewer")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_clusterview RUNTIME DESTINATION bin COMPONENT samples3d) INSTALL(TARGETS nl_sample_clusterview RUNTIME DESTINATION bin COMPONENT samples3d)

View file

@ -1,18 +1,14 @@
FILE(GLOB SRC *.cpp) FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_font ${SRC}) ADD_EXECUTABLE(nl_sample_font WIN32 ${SRC})
ADD_DEFINITIONS(-DFONT_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_font/\\"") ADD_DEFINITIONS(-DFONT_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_font/\\"")
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_font ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc nel3d) TARGET_LINK_LIBRARIES(nl_sample_font ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc nel3d)
IF(WIN32) NL_DEFAULT_PROPS(nl_sample_font "Samples, 3D: Font")
SET_TARGET_PROPERTIES(nl_sample_font PROPERTIES NL_ADD_RUNTIME_FLAGS(nl_sample_font)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
LINK_FLAGS "/SUBSYSTEM:WINDOWS"
PROJECT_LABEL "Samples, 3D: Font")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_font RUNTIME DESTINATION bin COMPONENT samples3d) INSTALL(TARGETS nl_sample_font RUNTIME DESTINATION bin COMPONENT samples3d)

View file

@ -1,14 +1,16 @@
FILE(GLOB SRC *.cpp) FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_shapeview ${SRC}) ADD_EXECUTABLE(nl_sample_shapeview WIN32 ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_shapeview ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc nel3d) TARGET_LINK_LIBRARIES(nl_sample_shapeview ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc nel3d)
NL_DEFAULT_PROPS(nl_sample_shapeview "Samples, 3D: Font")
NL_ADD_RUNTIME_FLAGS(nl_sample_shapeview)
IF(WIN32) IF(WIN32)
SET_TARGET_PROPERTIES(nl_sample_shapeview PROPERTIES SET_TARGET_PROPERTIES(nl_sample_shapeview PROPERTIES
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}" LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}" LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
LINK_FLAGS "/SUBSYSTEM:WINDOWS"
PROJECT_LABEL "Samples, 3D: Shape Viewer") PROJECT_LABEL "Samples, 3D: Shape Viewer")
ENDIF(WIN32) ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})

View file

@ -6,12 +6,9 @@ ADD_DEFINITIONS(-DGF_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_georges/\\"")
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_georges ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelgeorges nelmisc) TARGET_LINK_LIBRARIES(nl_sample_georges ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelgeorges nelmisc)
IF(WIN32) NL_DEFAULT_PROPS(nl_sample_georges "Samples: Georges")
SET_TARGET_PROPERTIES(nl_sample_georges PROPERTIES NL_ADD_RUNTIME_FLAGS(nl_sample_georges)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
PROJECT_LABEL "Samples: Georges")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_georges RUNTIME DESTINATION bin COMPONENT samplesgeorges) INSTALL(TARGETS nl_sample_georges RUNTIME DESTINATION bin COMPONENT samplesgeorges)

View file

@ -4,12 +4,9 @@ ADD_EXECUTABLE(nl_sample_command ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_command ${PLATFORM_LINKFLAGS} nelmisc) TARGET_LINK_LIBRARIES(nl_sample_command ${PLATFORM_LINKFLAGS} nelmisc)
IF(WIN32) NL_DEFAULT_PROPS(nl_sample_command "Samples, Misc: Commands")
SET_TARGET_PROPERTIES(nl_sample_command PROPERTIES NL_ADD_RUNTIME_FLAGS(nl_sample_command)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
PROJECT_LABEL "Samples, Misc: Commands")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_command RUNTIME DESTINATION bin COMPONENT samplesmisc) INSTALL(TARGETS nl_sample_command RUNTIME DESTINATION bin COMPONENT samplesmisc)

View file

@ -6,12 +6,9 @@ ADD_DEFINITIONS(-DNL_SAMPLE_CFG="\\"${NL_SHARE_PREFIX}/nl_sample_configfile/\\""
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_configfile ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc) TARGET_LINK_LIBRARIES(nl_sample_configfile ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc)
IF(WIN32) NL_DEFAULT_PROPS(nl_sample_configfile "Samples, Misc: Config Files")
SET_TARGET_PROPERTIES(nl_sample_configfile PROPERTIES NL_ADD_RUNTIME_FLAGS(nl_sample_configfile)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
PROJECT_LABEL "Samples, Misc: Config Files")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_configfile RUNTIME DESTINATION bin COMPONENT samplesmisc) INSTALL(TARGETS nl_sample_configfile RUNTIME DESTINATION bin COMPONENT samplesmisc)

View file

@ -1,18 +1,12 @@
FILE(GLOB SRC *.cpp) FILE(GLOB SRC *.cpp)
DECORATE_NEL_LIB("nelmisc")
SET(NLMISC_LIB ${LIBNAME})
ADD_EXECUTABLE(nl_sample_debug ${SRC}) ADD_EXECUTABLE(nl_sample_debug ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_debug ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc) TARGET_LINK_LIBRARIES(nl_sample_debug ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc)
IF(WIN32) NL_DEFAULT_PROPS(nl_sample_debug "Samples, Misc: Debugging")
SET_TARGET_PROPERTIES(nl_sample_debug PROPERTIES NL_ADD_RUNTIME_FLAGS(nl_sample_debug)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
PROJECT_LABEL "Samples, Misc: Debugging")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_debug RUNTIME DESTINATION bin COMPONENT samplesmisc) INSTALL(TARGETS nl_sample_debug RUNTIME DESTINATION bin COMPONENT samplesmisc)

View file

@ -6,12 +6,9 @@ ADD_DEFINITIONS(-DNL_LANG_DATA="\\"${NL_SHARE_PREFIX}/nl_sample_i18n/\\"")
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_i18n ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc) TARGET_LINK_LIBRARIES(nl_sample_i18n ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc)
IF(WIN32) NL_DEFAULT_PROPS(nl_sample_i18n "Samples, Misc: I18N")
SET_TARGET_PROPERTIES(nl_sample_i18n PROPERTIES NL_ADD_RUNTIME_FLAGS(nl_sample_i18n)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
PROJECT_LABEL "Samples, Misc: I18N")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_i18n RUNTIME DESTINATION bin COMPONENT samplesmisc) INSTALL(TARGETS nl_sample_i18n RUNTIME DESTINATION bin COMPONENT samplesmisc)

View file

@ -1,18 +1,12 @@
FILE(GLOB SRC *.cpp) FILE(GLOB SRC *.cpp)
DECORATE_NEL_LIB("nelmisc")
SET(NLMISC_LIB ${LIBNAME})
ADD_EXECUTABLE(nl_sample_log ${SRC}) ADD_EXECUTABLE(nl_sample_log ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_log ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc) TARGET_LINK_LIBRARIES(nl_sample_log ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc)
IF(WIN32) NL_DEFAULT_PROPS(nl_sample_log "Samples, Misc: Logging")
SET_TARGET_PROPERTIES(nl_sample_log PROPERTIES NL_ADD_RUNTIME_FLAGS(nl_sample_log)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
PROJECT_LABEL "Samples, Misc: Logging")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_log RUNTIME DESTINATION bin COMPONENT samplesmisc) INSTALL(TARGETS nl_sample_log RUNTIME DESTINATION bin COMPONENT samplesmisc)

View file

@ -4,12 +4,9 @@ ADD_EXECUTABLE(nl_sample_strings ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_strings ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc) TARGET_LINK_LIBRARIES(nl_sample_strings ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc)
IF(WIN32) NL_DEFAULT_PROPS(nl_sample_strings "Samples, Misc: Strings")
SET_TARGET_PROPERTIES(nl_sample_strings PROPERTIES NL_ADD_RUNTIME_FLAGS(nl_sample_strings)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
PROJECT_LABEL "Samples, Misc: Strings")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_strings RUNTIME DESTINATION bin COMPONENT samplesmisc) INSTALL(TARGETS nl_sample_strings RUNTIME DESTINATION bin COMPONENT samplesmisc)

View file

@ -1,18 +1,11 @@
FILE(GLOB SRC *.cpp) FILE(GLOB SRC *.cpp)
DECORATE_NEL_LIB("nelmisc")
SET(NLMISC_LIB ${LIBNAME})
ADD_EXECUTABLE(nl_sample_types_check ${SRC}) ADD_EXECUTABLE(nl_sample_types_check ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_types_check ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} ${NLMISC_LIB}) TARGET_LINK_LIBRARIES(nl_sample_types_check ${LIBXML2_LIBRARIES} ${PLATFORM_LINKFLAGS} nelmisc)
IF(WIN32) NL_ADD_RUNTIME_FLAGS(nl_sample_types_check)
SET_TARGET_PROPERTIES(nl_sample_types_check PROPERTIES
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
)
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_types_check RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT samplesmisc) INSTALL(TARGETS nl_sample_types_check RUNTIME DESTINATION bin COMPONENT samplesmisc)

View file

@ -2,35 +2,22 @@ FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_udpclient client.cpp graph.cpp graph.h simlag.cpp simlag.h) ADD_EXECUTABLE(nl_sample_udpclient client.cpp graph.cpp graph.h simlag.cpp simlag.h)
IF(WIN32) ADD_EXECUTABLE(nl_sample_udpserver WIN32 bench_service.cpp receive_task.cpp receive_task.h)
ADD_EXECUTABLE(nl_sample_udpserver WIN32 bench_service.cpp receive_task.cpp receive_task.h)
ELSE(WIN32)
ADD_EXECUTABLE(nl_sample_udpserver bench_service.cpp receive_task.cpp receive_task.h)
ENDIF(WIN32)
ADD_DEFINITIONS(-DUDP_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_udp/\\"") ADD_DEFINITIONS(-DUDP_DIR="\\"${NL_SHARE_PREFIX}/nl_sample_udp/\\"")
IF(WITH_3D) IF(WITH_3D)
ADD_DEFINITIONS(-DUSE_3D) ADD_DEFINITIONS(-DUSE_3D)
DECORATE_NEL_LIB("nel3d")
SET(NL3D_LIB ${LIBNAME})
ELSE(WITH_3D)
SET(NL3D_LIB "")
ENDIF(WITH_3D) ENDIF(WITH_3D)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nl_sample_udpclient ${PLATFORM_LINKFLAGS} nelmisc nelnet nel3d) TARGET_LINK_LIBRARIES(nl_sample_udpclient ${PLATFORM_LINKFLAGS} nelmisc nelnet nel3d)
TARGET_LINK_LIBRARIES(nl_sample_udpserver ${PLATFORM_LINKFLAGS} nelmisc nelnet) TARGET_LINK_LIBRARIES(nl_sample_udpserver ${PLATFORM_LINKFLAGS} nelmisc nelnet)
IF(WIN32) NL_DEFAULT_PROPS(nl_sample_udpclient "Samples, Net, UDP: UDP Client")
SET_TARGET_PROPERTIES(nl_sample_udpclient PROPERTIES NL_DEFAULT_PROPS(nl_sample_udpserver "Samples, Net, UDP: UDP Server")
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}" NL_ADD_RUNTIME_FLAGS(nl_sample_udpclient)
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}" NL_ADD_RUNTIME_FLAGS(nl_sample_udpserver)
PROJECT_LABEL "Samples, Net, UDP: UDP Client")
SET_TARGET_PROPERTIES(nl_sample_udpserver PROPERTIES
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
PROJECT_LABEL "Samples, Net, UDP: UDP Server")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
INSTALL(TARGETS nl_sample_udpclient nl_sample_udpserver RUNTIME DESTINATION bin COMPONENT samplesnet) INSTALL(TARGETS nl_sample_udpclient nl_sample_udpserver RUNTIME DESTINATION bin COMPONENT samplesnet)

View file

@ -662,26 +662,15 @@ SOURCE_GROUP(Shadows FILES
shadow_poly_receiver.cpp shadow_poly_receiver.cpp
../../include/nel/3d/shadow_poly_receiver.h) ../../include/nel/3d/shadow_poly_receiver.h)
IF(NOT WIN32) NL_TARGET_LIB(nel3d ${SRC})
ADD_LIBRARY(nel3d SHARED ${SRC})
CONFIGURE_FILE(nel-3d.pc.in nel-3d.pc)
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/nel-3d.pc" DESTINATION lib/pkgconfig)
ELSE(NOT WIN32)
ADD_LIBRARY(nel3d STATIC ${SRC})
ENDIF(NOT WIN32)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIRS} ${JPEG_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIRS} ${JPEG_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel3d nelmisc ${FREETYPE_LIBRARY} ${JPEG_LIBRARY}) TARGET_LINK_LIBRARIES(nel3d nelmisc ${FREETYPE_LIBRARY} ${JPEG_LIBRARY})
SET_TARGET_PROPERTIES(nel3d PROPERTIES NL_DEFAULT_PROPS(nel3d "Library: NeL 3D")
VERSION ${NL_VERSION}
SOVERSION ${NL_VERSION_MAJOR} NL_ADD_LIB_SUFFIX(nel3d)
PROJECT_LABEL "Library: NeL 3D")
IF(WIN32) IF(WIN32)
SET_TARGET_PROPERTIES(nel3d PROPERTIES
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r")
IF(JPEG_FOUND) IF(JPEG_FOUND)
ADD_DEFINITIONS(/DUSE_JPEG) ADD_DEFINITIONS(/DUSE_JPEG)
ENDIF(JPEG_FOUND) ENDIF(JPEG_FOUND)
@ -697,6 +686,7 @@ IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nel3d ${CMAKE_CURRENT_SOURCE_DIR}/std3d.h ${CMAKE_CURRENT_SOURCE_DIR}/std3d.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nel3d ${CMAKE_CURRENT_SOURCE_DIR}/std3d.h ${CMAKE_CURRENT_SOURCE_DIR}/std3d.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)
NL_GEN_PC(nel-3d.pc)
INSTALL(TARGETS nel3d LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries) INSTALL(TARGETS nel3d LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries)
ADD_SUBDIRECTORY(driver) ADD_SUBDIRECTORY(driver)

View file

@ -34,7 +34,7 @@ namespace NL3D
{ {
// *************************************************************************** // ***************************************************************************
const uint32 IDriver::InterfaceVersion = 0x67; // changed window pos from uint32 to sint32 const uint32 IDriver::InterfaceVersion = 0x68; // added setWindowIcon
// *************************************************************************** // ***************************************************************************
IDriver::IDriver() : _SyncTexDrvInfos( "IDriver::_SyncTexDrvInfos" ) IDriver::IDriver() : _SyncTexDrvInfos( "IDriver::_SyncTexDrvInfos" )

View file

@ -1,23 +1,15 @@
FILE(GLOB SRC *.cpp *.h *.def) FILE(GLOB SRC *.cpp *.h *.def)
DECORATE_NEL_LIB("nel_drv_direct3d_win") NL_TARGET_DRIVER(nel_drv_direct3d_win ${SRC})
SET(NLDRV_D3D_LIB ${LIBNAME})
DECORATE_NEL_LIB("nel3d")
SET(NL3D_LIB ${LIBNAME})
ADD_LIBRARY(nel_drv_direct3d_win SHARED ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${FREETYPE_INC} ${DXSDK_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${FREETYPE_INC} ${DXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_drv_direct3d_win nel3d ${LIBXML2_LIBRARIES} ${FREETYPE_LIB} ${DXSDK_D3DX9_LIBRARY} ${DXSDK_D3D9_LIBRARY} ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY}) TARGET_LINK_LIBRARIES(nel_drv_direct3d_win nel3d ${LIBXML2_LIBRARIES} ${FREETYPE_LIB} ${DXSDK_D3DX9_LIBRARY} ${DXSDK_D3D9_LIBRARY} ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY})
SET_TARGET_PROPERTIES(nel_drv_direct3d_win PROPERTIES
VERSION ${NL_VERSION} NL_DEFAULT_PROPS(nel_drv_direct3d_win "Driver, Video: Direct3D")
SOVERSION ${NL_VERSION_MAJOR} NL_ADD_RUNTIME_FLAGS(nel_drv_direct3d_win)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}" NL_ADD_LIB_SUFFIX(nel_drv_direct3d_win)
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r"
PROJECT_LABEL "Driver, Video: Direct3D")
ADD_DEFINITIONS(/Ddriver_direct3d_EXPORTS) ADD_DEFINITIONS(/Ddriver_direct3d_EXPORTS)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
@ -26,7 +18,7 @@ IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nel_drv_direct3d_win ${CMAKE_CURRENT_SOURCE_DIR}/stddirect3d.h ${CMAKE_CURRENT_SOURCE_DIR}/stddirect3d.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nel_drv_direct3d_win ${CMAKE_CURRENT_SOURCE_DIR}/stddirect3d.h ${CMAKE_CURRENT_SOURCE_DIR}/stddirect3d.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)
INSTALL(TARGETS nel_drv_direct3d_win LIBRARY DESTINATION lib RUNTIME DESTINATION bin COMPONENT drivers3d) INSTALL(TARGETS nel_drv_direct3d_win LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin COMPONENT drivers3d)
IF(WITH_MAXPLUGIN) IF(WITH_MAXPLUGIN)
INSTALL(TARGETS nel_drv_direct3d_win RUNTIME DESTINATION maxplugin COMPONENT drivers3d) INSTALL(TARGETS nel_drv_direct3d_win RUNTIME DESTINATION maxplugin COMPONENT drivers3d)
ENDIF(WITH_MAXPLUGIN) ENDIF(WITH_MAXPLUGIN)

View file

@ -1712,6 +1712,10 @@ bool CDriverD3D::release()
if (_HWnd) if (_HWnd)
{ {
// make sure window icons are deleted
std::vector<NLMISC::CBitmap> bitmaps;
setWindowIcon(bitmaps);
if (_DestroyWindow) if (_DestroyWindow)
DestroyWindow (_HWnd); DestroyWindow (_HWnd);
_HWnd = NULL; _HWnd = NULL;
@ -2177,6 +2181,73 @@ void CDriverD3D::setWindowTitle(const ucstring &title)
SetWindowTextW(_HWnd,(WCHAR*)title.c_str()); SetWindowTextW(_HWnd,(WCHAR*)title.c_str());
} }
// ***************************************************************************
void CDriverD3D::setWindowIcon(const std::vector<NLMISC::CBitmap> &bitmaps)
{
if (!_HWnd)
return;
static HICON winIconBig = NULL;
static HICON winIconSmall = NULL;
if (winIconBig)
{
DestroyIcon(winIconBig);
winIconBig = NULL;
}
if (winIconSmall)
{
DestroyIcon(winIconSmall);
winIconSmall = NULL;
}
sint smallIndex = -1;
uint smallWidth = GetSystemMetrics(SM_CXSMICON);
uint smallHeight = GetSystemMetrics(SM_CYSMICON);
sint bigIndex = -1;
uint bigWidth = GetSystemMetrics(SM_CXICON);
uint bigHeight = GetSystemMetrics(SM_CYICON);
// find icons with the exact size
for(uint i = 0; i < bitmaps.size(); ++i)
{
if (smallIndex == -1 && bitmaps[i].getWidth() == smallWidth && bitmaps[i].getHeight() == smallHeight)
smallIndex = i;
if (bigIndex == -1 && bitmaps[i].getWidth() == bigWidth && bitmaps[i].getHeight() == bigHeight)
bigIndex = i;
}
// find icons with taller size (we will resize them)
for(uint i = 0; i < bitmaps.size(); ++i)
{
if (smallIndex == -1 && bitmaps[i].getWidth() >= smallWidth && bitmaps[i].getHeight() >= smallHeight)
smallIndex = i;
if (bigIndex == -1 && bitmaps[i].getWidth() >= bigWidth && bitmaps[i].getHeight() >= bigHeight)
bigIndex = i;
}
if (smallIndex > -1)
winIconSmall = bitmaps[smallIndex].getHICON(smallWidth, smallHeight, 32);
if (bigIndex > -1)
winIconBig = bitmaps[bigIndex].getHICON(bigWidth, bigHeight, 32);
if (winIconBig)
{
SendMessage(_HWnd, WM_SETICON, 0 /* ICON_SMALL */, (LPARAM)winIconSmall);
SendMessage(_HWnd, WM_SETICON, 1 /* ICON_BIG */, (LPARAM)winIconBig);
}
else
{
SendMessage(_HWnd, WM_SETICON, 0 /* ICON_SMALL */, (LPARAM)winIconSmall);
SendMessage(_HWnd, WM_SETICON, 1 /* ICON_BIG */, (LPARAM)winIconSmall);
}
}
// *************************************************************************** // ***************************************************************************
void CDriverD3D::setWindowPos(sint32 x, sint32 y) void CDriverD3D::setWindowPos(sint32 x, sint32 y)
{ {

View file

@ -759,6 +759,9 @@ public:
/// Set the title of the NeL window /// Set the title of the NeL window
virtual void setWindowTitle(const ucstring &title); virtual void setWindowTitle(const ucstring &title);
/// Set icon(s) of the NeL window
virtual void setWindowIcon(const std::vector<NLMISC::CBitmap> &bitmaps);
/// Set the position of the NeL window /// Set the position of the NeL window
virtual void setWindowPos(sint32 x, sint32 y); virtual void setWindowPos(sint32 x, sint32 y);

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="9.00" Version="9,00"
Name="driver_direct3d" Name="driver_direct3d"
ProjectGUID="{263C0F2E-112D-437F-A6AB-DEA151A7A1F0}" ProjectGUID="{263C0F2E-112D-437F-A6AB-DEA151A7A1F0}"
RootNamespace="driver_direct3d" RootNamespace="driver_direct3d"

View file

@ -10,23 +10,17 @@ ELSE(WIN32)
SET(NLDRV_OGL_LIB "nel_drv_opengl") SET(NLDRV_OGL_LIB "nel_drv_opengl")
ENDIF(WIN32) ENDIF(WIN32)
ADD_LIBRARY(${NLDRV_OGL_LIB} SHARED ${SRC}) NL_TARGET_DRIVER(${NLDRV_OGL_LIB} ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} nel3d nelmisc ${OPENGL_LIBRARIES}) TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} nel3d nelmisc ${OPENGL_LIBRARIES})
SET_TARGET_PROPERTIES(${NLDRV_OGL_LIB} PROPERTIES NL_DEFAULT_PROPS(${NLDRV_OGL_LIB} "Driver, Video: OpenGL")
VERSION ${NL_VERSION} NL_ADD_LIB_SUFFIX(${NLDRV_OGL_LIB})
SOVERSION ${NL_VERSION_MAJOR} NL_ADD_RUNTIME_FLAGS(${NLDRV_OGL_LIB})
PROJECT_LABEL "Driver, Video: OpenGL")
IF(WIN32) IF(WIN32)
INCLUDE_DIRECTORIES(${DXSDK_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${DXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY}) TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY})
SET_TARGET_PROPERTIES(${NLDRV_OGL_LIB} PROPERTIES
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r"
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}")
ADD_DEFINITIONS(/DDRIVER_OPENGL_EXPORTS) ADD_DEFINITIONS(/DDRIVER_OPENGL_EXPORTS)
ELSE(WIN32) ELSE(WIN32)
IF(APPLE) IF(APPLE)
@ -61,7 +55,7 @@ IF(NOT WITH_COCOA AND WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(${NLDRV_OGL_LIB} ${CMAKE_CURRENT_SOURCE_DIR}/stdopengl.h ${CMAKE_CURRENT_SOURCE_DIR}/stdopengl.cpp) ADD_NATIVE_PRECOMPILED_HEADER(${NLDRV_OGL_LIB} ${CMAKE_CURRENT_SOURCE_DIR}/stdopengl.h ${CMAKE_CURRENT_SOURCE_DIR}/stdopengl.cpp)
ENDIF(NOT WITH_COCOA AND WITH_PCH) ENDIF(NOT WITH_COCOA AND WITH_PCH)
INSTALL(TARGETS ${NLDRV_OGL_LIB} LIBRARY DESTINATION lib RUNTIME DESTINATION bin COMPONENT drivers3d) INSTALL(TARGETS ${NLDRV_OGL_LIB} LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin COMPONENT drivers3d)
IF(WITH_MAXPLUGIN) IF(WITH_MAXPLUGIN)
INSTALL(TARGETS ${NLDRV_OGL_LIB} RUNTIME DESTINATION maxplugin COMPONENT drivers3d) INSTALL(TARGETS ${NLDRV_OGL_LIB} RUNTIME DESTINATION maxplugin COMPONENT drivers3d)
ENDIF(WITH_MAXPLUGIN) ENDIF(WITH_MAXPLUGIN)

View file

@ -559,6 +559,8 @@ bool CDriverGL::setupDisplay()
// meaning that light direction is always (0,1,0) in eye-space // meaning that light direction is always (0,1,0) in eye-space
// use enableLighting(0....), to get normal behaviour // use enableLighting(0....), to get normal behaviour
_DriverGLStates.enableLight(0, true); _DriverGLStates.enableLight(0, true);
_LightMode[0] = CLight::DirectionalLight;
_WorldLightDirection[0] = CVector::Null;
_Initialized = true; _Initialized = true;

View file

@ -294,10 +294,13 @@ public:
virtual void beginDialogMode(); virtual void beginDialogMode();
virtual void endDialogMode(); virtual void endDialogMode();
/// Set the title of the NeL window /// Set title of the NeL window
virtual void setWindowTitle(const ucstring &title); virtual void setWindowTitle(const ucstring &title);
/// Set the position of the NeL window /// Set icon(s) of the NeL window
virtual void setWindowIcon(const std::vector<NLMISC::CBitmap> &bitmaps);
/// Set position of the NeL window
virtual void setWindowPos(sint32 x, sint32 y); virtual void setWindowPos(sint32 x, sint32 y);
/// Show or hide the NeL window /// Show or hide the NeL window

View file

@ -35,11 +35,13 @@
# ifdef XRANDR # ifdef XRANDR
# include <X11/extensions/Xrandr.h> # include <X11/extensions/Xrandr.h>
# endif # endif
# include <X11/Xatom.h>
#endif // NL_OS_UNIX #endif // NL_OS_UNIX
#include "nel/misc/mouse_device.h" #include "nel/misc/mouse_device.h"
#include "nel/misc/di_event_emitter.h" #include "nel/misc/di_event_emitter.h"
#include "nel/3d/u_driver.h" #include "nel/3d/u_driver.h"
#include "nel/misc/file.h"
using namespace std; using namespace std;
using namespace NLMISC; using namespace NLMISC;
@ -296,6 +298,123 @@ bool CDriverGL::unInit()
return true; return true;
} }
void CDriverGL::setWindowIcon(const std::vector<NLMISC::CBitmap> &bitmaps)
{
if (_win == EmptyWindow)
return;
#if defined(NL_OS_WINDOWS)
static HICON winIconBig = NULL;
static HICON winIconSmall = NULL;
if (winIconBig)
{
DestroyIcon(winIconBig);
winIconBig = NULL;
}
if (winIconSmall)
{
DestroyIcon(winIconSmall);
winIconSmall = NULL;
}
sint smallIndex = -1;
uint smallWidth = GetSystemMetrics(SM_CXSMICON);
uint smallHeight = GetSystemMetrics(SM_CYSMICON);
sint bigIndex = -1;
uint bigWidth = GetSystemMetrics(SM_CXICON);
uint bigHeight = GetSystemMetrics(SM_CYICON);
// find icons with the exact size
for(uint i = 0; i < bitmaps.size(); ++i)
{
if (smallIndex == -1 && bitmaps[i].getWidth() == smallWidth && bitmaps[i].getHeight() == smallHeight)
smallIndex = i;
if (bigIndex == -1 && bitmaps[i].getWidth() == bigWidth && bitmaps[i].getHeight() == bigHeight)
bigIndex = i;
}
// find icons with taller size (we will resize them)
for(uint i = 0; i < bitmaps.size(); ++i)
{
if (smallIndex == -1 && bitmaps[i].getWidth() >= smallWidth && bitmaps[i].getHeight() >= smallHeight)
smallIndex = i;
if (bigIndex == -1 && bitmaps[i].getWidth() >= bigWidth && bitmaps[i].getHeight() >= bigHeight)
bigIndex = i;
}
if (smallIndex > -1)
winIconSmall = bitmaps[smallIndex].getHICON(smallWidth, smallHeight, 32);
if (bigIndex > -1)
winIconBig = bitmaps[bigIndex].getHICON(bigWidth, bigHeight, 32);
if (winIconBig)
{
SendMessage(_win, WM_SETICON, 0 /* ICON_SMALL */, (LPARAM)winIconSmall);
SendMessage(_win, WM_SETICON, 1 /* ICON_BIG */, (LPARAM)winIconBig);
}
else
{
SendMessage(_win, WM_SETICON, 0 /* ICON_SMALL */, (LPARAM)winIconSmall);
SendMessage(_win, WM_SETICON, 1 /* ICON_BIG */, (LPARAM)winIconSmall);
}
#elif defined(NL_OS_MAC)
// nothing to do
#elif defined(NL_OS_UNIX)
std::vector<long> icon_data;
if (!bitmaps.empty())
{
// process each bitmap
for(uint i = 0; i < bitmaps.size(); ++i)
{
// get bitmap width and height
uint width = bitmaps[i].getWidth();
uint height = bitmaps[i].getHeight();
// icon_data position for bitmap
uint pos = (uint)icon_data.size();
// extend icon_data size for bitmap
icon_data.resize(pos + 2 + width*height);
// set bitmap width and height
icon_data[pos++] = width;
icon_data[pos++] = height;
// convert RGBA to ARGB
CObjectVector<uint8> pixels = bitmaps[i].getPixels();
for(uint j = 0; j < pixels.size(); j+=4)
icon_data[pos++] = pixels[j] << 16 | pixels[j+1] << 8 | pixels[j+2] | pixels[j+3] << 24;
}
}
Atom _NET_WM_ICON = XInternAtom(_dpy, "_NET_WM_ICON", False);
if (!icon_data.empty())
{
// change window icon
XChangeProperty(_dpy, _win, _NET_WM_ICON, XA_CARDINAL, 32, PropModeReplace, (const unsigned char *) &icon_data[0], icon_data.size());
}
else
{
// delete window icon if no bitmap is available
XDeleteProperty(_dpy, _win, _NET_WM_ICON);
}
#endif // NL_OS_WINDOWS
}
// -------------------------------------------------- // --------------------------------------------------
bool CDriverGL::setDisplay(nlWindow wnd, const GfxMode &mode, bool show, bool resizeable) throw(EBadDisplay) bool CDriverGL::setDisplay(nlWindow wnd, const GfxMode &mode, bool show, bool resizeable) throw(EBadDisplay)
{ {
@ -967,7 +1086,7 @@ bool CDriverGL::setScreenMode(const GfxMode &mode)
if (ChangeDisplaySettings(&devMode, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL) if (ChangeDisplaySettings(&devMode, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
{ {
nlwarning("Fullscreen mode switch failed"); nlwarning("3D: Fullscreen mode switch failed");
return false; return false;
} }
@ -1135,6 +1254,10 @@ bool CDriverGL::destroyWindow()
{ {
H_AUTO_OGL(CDriverGL_destroyWindow) H_AUTO_OGL(CDriverGL_destroyWindow)
// make sure window icons are deleted
std::vector<NLMISC::CBitmap> bitmaps;
setWindowIcon(bitmaps);
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
// Then delete. // Then delete.

View file

@ -25,7 +25,7 @@
#include "cocoa_event_emitter.h" #include "cocoa_event_emitter.h"
#include "cocoa_opengl_view.h" #include "cocoa_opengl_view.h"
// Virtual key codes are only defined here. We still do not need to link carbon. // Virtual key codes are only defined here. Still do not need to link carbon.
// see: http://lists.apple.com/archives/Cocoa-dev/2009/May/msg01180.html // see: http://lists.apple.com/archives/Cocoa-dev/2009/May/msg01180.html
#include <Carbon/Carbon.h> #include <Carbon/Carbon.h>
@ -33,6 +33,27 @@
namespace NL3D { namespace MAC { namespace NL3D { namespace MAC {
// This cocoa adapter can be used in two environments:
// First: There is no other code which creates the NSApplication object, so
// NeL is completely in charge of starting and setting up the application.
// In this case, the NSAutoreleasePool needed to handle the cocoa style memory
// management is created by this code.
// Second: There is already a NSApplication set up. This could be the case if
// NeL is used for example in a Qt widget. So Qt already created all the
// NSApplication infrastructure, so it is not set up by this code again!
//
// Thats why, the g_pool variable (containing a pointer to the NSAutoreleasePool
// created by this code) can be used to check whether NeL created the
// NSApplication infrastructure itself or not.
//
// WARNING:
// Currently the NSApplication infrastructure is automatically created with the
// call to createWindow(). So if for example Qt already created NSApplication,
// createWindow() must not be called. Instead, setDisplay() can be provided with
// a window handle (on Mac OS Cocoa Qt this is a NSView*). In this case, this
// cocoa adapter will skip the NSApplication setup and embed itself into the
// provided view running in the already set up application.
static NSAutoreleasePool* g_pool = nil; static NSAutoreleasePool* g_pool = nil;
/* /*
TODO move to event emitter class TODO move to event emitter class
@ -40,6 +61,7 @@ static NSAutoreleasePool* g_pool = nil;
static bool g_emulateRawMode = false; static bool g_emulateRawMode = false;
static int g_bufferSize[2] = { 0, 0 }; static int g_bufferSize[2] = { 0, 0 };
/// setup an apple style application menu (located at the top bar of the screen)
static void setupApplicationMenu() static void setupApplicationMenu()
{ {
NSMenu* menu; NSMenu* menu;
@ -98,6 +120,29 @@ static void setupApplicationMenu()
[[NSApp mainMenu] addItem:menuItem]; [[NSApp mainMenu] addItem:menuItem];
} }
/// set up the basic NSApplication and NSAutoreleasePool needed for Cocoa
static bool setupNSApplication()
{
// if the pool was already created, return an error
if(g_pool)
return false;
// create a pool, cocoa code would leak memory otherwise
g_pool = [[NSAutoreleasePool alloc] init];
// init the application object
[NSApplication sharedApplication];
// create the menu in the top screen bar
setupApplicationMenu();
// finish the application launching
[NSApp finishLaunching];
return true;
}
/// setup an open gl view and embed it in the provided parent view
static void setupGLView(NSView* superview) static void setupGLView(NSView* superview)
{ {
/* /*
@ -169,20 +214,13 @@ bool unInit()
return true; return true;
} }
/// setup the basic cocoa app infrastructure and create a window
nlWindow createWindow(const GfxMode& mode) nlWindow createWindow(const GfxMode& mode)
{ {
// create a pool, cocoa code would leak memory otherwise if(!setupNSApplication())
g_pool = [[NSAutoreleasePool alloc] init]; nlerror("createWindow must not be called before the old window was "
"destroyed using destroyWindow()!");
// init the application object
[NSApplication sharedApplication];
// create the menu in the top screen bar
setupApplicationMenu();
// tell the application that we are running now
[NSApp finishLaunching];
// describe how the window should look like and behave // describe how the window should look like and behave
unsigned int styleMask = NSTitledWindowMask | NSClosableWindowMask | unsigned int styleMask = NSTitledWindowMask | NSClosableWindowMask |
NSMiniaturizableWindowMask | NSResizableWindowMask; NSMiniaturizableWindowMask | NSResizableWindowMask;
@ -201,7 +239,7 @@ nlWindow createWindow(const GfxMode& mode)
// enable mouse move events, NeL wants them // enable mouse move events, NeL wants them
[window setAcceptsMouseMovedEvents:YES]; [window setAcceptsMouseMovedEvents:YES];
// there are no overlapping subviews, so we can use the magical optimization! // there are no overlapping subviews, can use the magical optimization :)
[window useOptimizedDrawing:YES]; [window useOptimizedDrawing:YES];
// put the window to the front and make it the key window // put the window to the front and make it the key window
@ -217,6 +255,7 @@ nlWindow createWindow(const GfxMode& mode)
return view; return view;
} }
/// destroy the given window and uninitialize the cocoa application
bool destroyWindow(nlWindow wnd) bool destroyWindow(nlWindow wnd)
{ {
NSView* view = (NSView*)wnd; NSView* view = (NSView*)wnd;
@ -229,10 +268,12 @@ bool destroyWindow(nlWindow wnd)
// release the pool // release the pool
[g_pool release]; [g_pool release];
g_pool = nil;
return true; return true;
} }
/// set the displays settings, if no win is provided, a new one will be created
nlWindow setDisplay(nlWindow wnd, const GfxMode& mode, bool show, bool resizeable) nlWindow setDisplay(nlWindow wnd, const GfxMode& mode, bool show, bool resizeable)
{ {
NSView* view = (NSView*)wnd; NSView* view = (NSView*)wnd;
@ -247,6 +288,7 @@ nlWindow setDisplay(nlWindow wnd, const GfxMode& mode, bool show, bool resizeabl
return view; return view;
} }
/// switch between fullscreen and windowed mode
bool setWindowStyle(nlWindow wnd, bool fullscreen) bool setWindowStyle(nlWindow wnd, bool fullscreen)
{ {
if(wnd == EmptyWindow) if(wnd == EmptyWindow)
@ -315,7 +357,7 @@ bool setWindowStyle(nlWindow wnd, bool fullscreen)
return true; return true;
} }
/// get the current mode of the screen
void getCurrentScreenMode(nlWindow wnd, GfxMode& mode) void getCurrentScreenMode(nlWindow wnd, GfxMode& mode)
{ {
NSView* superview = (NSView*)wnd; NSView* superview = (NSView*)wnd;
@ -347,6 +389,7 @@ void getCurrentScreenMode(nlWindow wnd, GfxMode& mode)
} }
} }
/// get the size of the window's content area
void getWindowSize(nlWindow wnd, uint32 &width, uint32 &height) void getWindowSize(nlWindow wnd, uint32 &width, uint32 &height)
{ {
NSView* superview = (NSView*)wnd; NSView* superview = (NSView*)wnd;
@ -378,6 +421,7 @@ void getWindowSize(nlWindow wnd, uint32 &width, uint32 &height)
} }
} }
/// set the size of the window's content area
void setWindowSize(nlWindow wnd, uint32 width, uint32 height) void setWindowSize(nlWindow wnd, uint32 width, uint32 height)
{ {
NSView* superview = (NSView*)wnd; NSView* superview = (NSView*)wnd;
@ -398,8 +442,8 @@ void setWindowSize(nlWindow wnd, uint32 width, uint32 height)
} }
else else
{ {
// there is only a pool if nel created the window itself assuming that // there is only a pool if NeL created the window itself
// nel is also in charge of the main loop // else, the window is not NeL's, so it must not be changed
if(g_pool) if(g_pool)
{ {
NSWindow* window = [view window]; NSWindow* window = [view window];
@ -421,7 +465,7 @@ void setWindowSize(nlWindow wnd, uint32 width, uint32 height)
g_bufferSize[1] = height; g_bufferSize[1] = height;
} }
/// get the position of the window
void getWindowPos(nlWindow wnd, sint32 &x, sint32 &y) void getWindowPos(nlWindow wnd, sint32 &x, sint32 &y)
{ {
NSView* superview = (NSView*)wnd; NSView* superview = (NSView*)wnd;
@ -448,6 +492,7 @@ void getWindowPos(nlWindow wnd, sint32 &x, sint32 &y)
y = screenRect.size.height - windowRect.size.height - windowRect.origin.y; y = screenRect.size.height - windowRect.size.height - windowRect.origin.y;
} }
/// set the position of the window
void setWindowPos(nlWindow wnd, sint32 x, sint32 y) void setWindowPos(nlWindow wnd, sint32 x, sint32 y)
{ {
NSView* superview = (NSView*)wnd; NSView* superview = (NSView*)wnd;
@ -466,6 +511,7 @@ void setWindowPos(nlWindow wnd, sint32 x, sint32 y)
[window setFrameTopLeftPoint:NSMakePoint(x, y)]; [window setFrameTopLeftPoint:NSMakePoint(x, y)];
} }
/// set the windows title (not the title of the application)
void setWindowTitle(nlWindow wnd, const ucstring& title) void setWindowTitle(nlWindow wnd, const ucstring& title)
{ {
NSView* superview = (NSView*)wnd; NSView* superview = (NSView*)wnd;
@ -480,6 +526,7 @@ void showWindow(bool show)
nldebug("show: %d - implement me!", show); nldebug("show: %d - implement me!", show);
} }
/// make the opengl context the current one
bool activate(nlWindow wnd) bool activate(nlWindow wnd)
{ {
NSView* superview = (NSView*)wnd; NSView* superview = (NSView*)wnd;
@ -493,6 +540,7 @@ bool activate(nlWindow wnd)
return true; return true;
} }
/// flush current back buffer to screen
void swapBuffers(nlWindow wnd) void swapBuffers(nlWindow wnd)
{ {
NSView* superview = (NSView*)wnd; NSView* superview = (NSView*)wnd;
@ -509,6 +557,7 @@ void setCapture(bool capture)
// no need to capture // no need to capture
} }
/// show or hide the mouse cursor
void showCursor(bool show) void showCursor(bool show)
{ {
// Mac OS manages a show/hide counter for the cursor, so hiding the cursor // Mac OS manages a show/hide counter for the cursor, so hiding the cursor
@ -535,6 +584,7 @@ void showCursor(bool show)
nlerror("cannot show / hide cursor"); nlerror("cannot show / hide cursor");
} }
/// set the mouse position
void setMousePos(nlWindow wnd, float x, float y) void setMousePos(nlWindow wnd, float x, float y)
{ {
NSView* superview = (NSView*)wnd; NSView* superview = (NSView*)wnd;
@ -571,7 +621,8 @@ void setMousePos(nlWindow wnd, float x, float y)
TODO: this function has to be moved to a more central place to handle key TODO: this function has to be moved to a more central place to handle key
mapping on mac x11 as well mapping on mac x11 as well
*/ */
NLMISC::TKey virtualKeycodeToNelKey(unsigned short keycode) /// map from virtual key code to nel internal key code
static NLMISC::TKey virtualKeycodeToNelKey(unsigned short keycode)
{ {
switch(keycode) switch(keycode)
{ {
@ -702,7 +753,8 @@ NLMISC::TKey virtualKeycodeToNelKey(unsigned short keycode)
TODO: this function has to be moved to a more central place to handle key TODO: this function has to be moved to a more central place to handle key
mapping on mac x11 as well mapping on mac x11 as well
*/ */
NLMISC::TKeyButton modifierFlagsToNelKeyButton(unsigned int modifierFlags) /// convert modifier key state to nel internal modifier key state
static NLMISC::TKeyButton modifierFlagsToNelKeyButton(unsigned int modifierFlags)
{ {
unsigned int buttons = 0; unsigned int buttons = 0;
if (modifierFlags & NSControlKeyMask) buttons |= NLMISC::ctrlKeyButton; if (modifierFlags & NSControlKeyMask) buttons |= NLMISC::ctrlKeyButton;
@ -711,7 +763,8 @@ NLMISC::TKeyButton modifierFlagsToNelKeyButton(unsigned int modifierFlags)
return (NLMISC::TKeyButton)buttons; return (NLMISC::TKeyButton)buttons;
} }
bool isTextKeyEvent(NSEvent* event) /// check whether a given event represents input text
static bool isTextKeyEvent(NSEvent* event)
{ {
// if there are no characters provided with this event, it is not a text event // if there are no characters provided with this event, it is not a text event
if([[event characters] length] == 0) if([[event characters] length] == 0)
@ -763,16 +816,18 @@ bool isTextKeyEvent(NSEvent* event)
return false; return false;
} }
/// switch between raw mode emulation, see IEventEmitter::emulateMouseRawMode()
void emulateMouseRawMode(bool enable) void emulateMouseRawMode(bool enable)
{ {
g_emulateRawMode = enable; g_emulateRawMode = enable;
} }
/// submit events provided by the application to an event server
void submitEvents(NLMISC::CEventServer& server, void submitEvents(NLMISC::CEventServer& server,
bool allWindows, NLMISC::CCocoaEventEmitter* eventEmitter) bool allWindows, NLMISC::CCocoaEventEmitter* eventEmitter)
{ {
// there is only a pool if nel created the window itself assuming that // if there is a pool, NeL needs to clean it up
// nel is also in charge of the main loop // otherwise, other code must have created it (for example Qt)
if(g_pool) if(g_pool)
{ {
// cocoa style memory cleanup // cocoa style memory cleanup
@ -780,7 +835,7 @@ void submitEvents(NLMISC::CEventServer& server,
g_pool = [[NSAutoreleasePool alloc] init]; g_pool = [[NSAutoreleasePool alloc] init];
} }
// we break if there was no event to handle // break if there was no event to handle
/* TODO maximum number of events processed in one update? */ /* TODO maximum number of events processed in one update? */
while(true) while(true)
{ {
@ -809,49 +864,46 @@ void submitEvents(NLMISC::CEventServer& server,
continue; continue;
} }
// convert the modifiers for nel to pass them with the events
NLMISC::TKeyButton modifiers =
modifierFlagsToNelKeyButton([event modifierFlags]);
switch(event.type) switch(event.type)
{ {
case NSLeftMouseDown: case NSLeftMouseDown:
{ {
/*
TODO modifiers with mouse events
*/
server.postEvent(new NLMISC::CEventMouseDown( server.postEvent(new NLMISC::CEventMouseDown(
mouseX, mouseY, NLMISC::leftButton /* modifiers */, eventEmitter)); mouseX, mouseY,
(NLMISC::TMouseButton)(NLMISC::leftButton | modifiers),
eventEmitter));
} }
break; break;
case NSLeftMouseUp: case NSLeftMouseUp:
{ {
/*
TODO modifiers with mouse events
*/
server.postEvent(new NLMISC::CEventMouseUp( server.postEvent(new NLMISC::CEventMouseUp(
mouseX, mouseY, NLMISC::leftButton /* modifiers */, eventEmitter)); mouseX, mouseY,
(NLMISC::TMouseButton)(NLMISC::leftButton | modifiers),
eventEmitter));
break; break;
} }
case NSRightMouseDown: case NSRightMouseDown:
{ {
/*
TODO modifiers with mouse events
*/
server.postEvent(new NLMISC::CEventMouseDown( server.postEvent(new NLMISC::CEventMouseDown(
mouseX, mouseY, NLMISC::rightButton /* modifiers */, eventEmitter)); mouseX, mouseY,
(NLMISC::TMouseButton)(NLMISC::rightButton | modifiers),
eventEmitter));
break; break;
} }
case NSRightMouseUp: case NSRightMouseUp:
{ {
/*
TODO modifiers with mouse events
*/
server.postEvent(new NLMISC::CEventMouseUp( server.postEvent(new NLMISC::CEventMouseUp(
mouseX, mouseY, NLMISC::rightButton /* modifiers */, eventEmitter)); mouseX, mouseY,
(NLMISC::TMouseButton)(NLMISC::rightButton | modifiers),
eventEmitter));
break; break;
} }
case NSMouseMoved: case NSMouseMoved:
{ {
/*
TODO modifiers with mouse events
*/
NLMISC::CEvent* nelEvent; NLMISC::CEvent* nelEvent;
// when emulating raw mode, send the delta in a CGDMouseMove event // when emulating raw mode, send the delta in a CGDMouseMove event
@ -861,17 +913,14 @@ void submitEvents(NLMISC::CEventServer& server,
// normally send position in a CEventMouseMove // normally send position in a CEventMouseMove
else else
nelEvent = new NLMISC::CEventMouseMove(mouseX, mouseY, nelEvent = new NLMISC::CEventMouseMove(
(NLMISC::TMouseButton)0 /* modifiers */, eventEmitter); mouseX, mouseY, (NLMISC::TMouseButton)modifiers, eventEmitter);
server.postEvent(nelEvent); server.postEvent(nelEvent);
break; break;
} }
case NSLeftMouseDragged: case NSLeftMouseDragged:
{ {
/*
TODO modifiers with mouse events
*/
NLMISC::CEvent* nelEvent; NLMISC::CEvent* nelEvent;
// when emulating raw mode, send the delta in a CGDMouseMove event // when emulating raw mode, send the delta in a CGDMouseMove event
@ -882,16 +931,14 @@ void submitEvents(NLMISC::CEventServer& server,
// normally send position in a CEventMouseMove // normally send position in a CEventMouseMove
else else
nelEvent = new NLMISC::CEventMouseMove(mouseX, mouseY, nelEvent = new NLMISC::CEventMouseMove(mouseX, mouseY,
NLMISC::leftButton /* modifiers */, eventEmitter); (NLMISC::TMouseButton)(NLMISC::leftButton | modifiers),
eventEmitter);
server.postEvent(nelEvent); server.postEvent(nelEvent);
break; break;
} }
case NSRightMouseDragged: case NSRightMouseDragged:
{ {
/*
TODO modifiers with mouse events
*/
NLMISC::CEvent* nelEvent; NLMISC::CEvent* nelEvent;
// when emulating raw mode, send the delta in a CGDMouseMove event // when emulating raw mode, send the delta in a CGDMouseMove event
@ -902,7 +949,8 @@ void submitEvents(NLMISC::CEventServer& server,
// normally send position in a CEventMouseMove // normally send position in a CEventMouseMove
else else
nelEvent = new NLMISC::CEventMouseMove(mouseX, mouseY, nelEvent = new NLMISC::CEventMouseMove(mouseX, mouseY,
NLMISC::rightButton /* modifiers */, eventEmitter); (NLMISC::TMouseButton)(NLMISC::rightButton | modifiers),
eventEmitter);
server.postEvent(nelEvent); server.postEvent(nelEvent);
break; break;
@ -951,12 +999,9 @@ void submitEvents(NLMISC::CEventServer& server,
case NSCursorUpdate:break; case NSCursorUpdate:break;
case NSScrollWheel: case NSScrollWheel:
{ {
/*
TODO modifiers with mouse events
*/
if(fabs(event.deltaY) > 0.1) if(fabs(event.deltaY) > 0.1)
server.postEvent(new NLMISC::CEventMouseWheel( server.postEvent(new NLMISC::CEventMouseWheel(
mouseX, mouseY, (NLMISC::TMouseButton)0 /* modifiers */, mouseX, mouseY, (NLMISC::TMouseButton)modifiers,
(event.deltaY > 0), eventEmitter)); (event.deltaY > 0), eventEmitter));
break; break;

View file

@ -332,6 +332,13 @@ void CDriverUser::setWindowTitle(const ucstring &title)
_Driver->setWindowTitle(title); _Driver->setWindowTitle(title);
} }
// ***************************************************************************
void CDriverUser::setWindowIcon(const std::vector<NLMISC::CBitmap> &bitmaps)
{
NL3D_HAUTO_UI_DRIVER;
_Driver->setWindowIcon(bitmaps);
}
// *************************************************************************** // ***************************************************************************
void CDriverUser::setWindowPos(sint32 x, sint32 y) void CDriverUser::setWindowPos(sint32 x, sint32 y)
{ {

View file

@ -4,26 +4,13 @@ FILE(GLOB PUB_H ../../include/nel/georges/*.h)
SOURCE_GROUP(headers FILES ${PRIV_H} ${PUB_H}) SOURCE_GROUP(headers FILES ${PRIV_H} ${PUB_H})
IF(NOT WIN32) NL_TARGET_LIB(nelgeorges ${SRC})
ADD_LIBRARY(nelgeorges SHARED ${SRC})
CONFIGURE_FILE(nel-georges.pc.in nel-georges.pc)
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/nel-georges.pc" DESTINATION lib/pkgconfig)
ELSE(NOT WIN32)
ADD_LIBRARY(nelgeorges STATIC ${SRC})
ENDIF(NOT WIN32)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nelgeorges nelmisc) TARGET_LINK_LIBRARIES(nelgeorges nelmisc)
SET_TARGET_PROPERTIES(nelgeorges PROPERTIES NL_DEFAULT_PROPS(nelgeorges "Library: NeL Georges")
VERSION ${NL_VERSION}
SOVERSION ${NL_VERSION_MAJOR}
PROJECT_LABEL "Library: NeL Georges")
IF(WIN32) NL_ADD_LIB_SUFFIX(nelgeorges)
SET_TARGET_PROPERTIES(nelgeorges PROPERTIES
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
@ -31,4 +18,5 @@ IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nelgeorges ${CMAKE_CURRENT_SOURCE_DIR}/stdgeorges.h ${CMAKE_CURRENT_SOURCE_DIR}/stdgeorges.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nelgeorges ${CMAKE_CURRENT_SOURCE_DIR}/stdgeorges.h ${CMAKE_CURRENT_SOURCE_DIR}/stdgeorges.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)
NL_GEN_PC(nel-georges.pc)
INSTALL(TARGETS nelgeorges LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries) INSTALL(TARGETS nelgeorges LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries)

View file

@ -1,27 +1,14 @@
FILE(GLOB SRC *.cpp *.h) FILE(GLOB SRC *.cpp *.h)
IF(NOT WIN32) NL_TARGET_LIB(nelligo ${SRC})
ADD_LIBRARY(nelligo SHARED ${SRC})
CONFIGURE_FILE(nel-ligo.pc.in nel-ligo.pc)
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/nel-ligo.pc" DESTINATION lib/pkgconfig)
ELSE(NOT WIN32)
ADD_LIBRARY(nelligo STATIC ${SRC})
ENDIF(NOT WIN32)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nelligo ${LIBXML2_LIBRARIES} nelmisc) TARGET_LINK_LIBRARIES(nelligo ${LIBXML2_LIBRARIES} nelmisc)
SET_TARGET_PROPERTIES(nelligo PROPERTIES NL_DEFAULT_PROPS(nelligo "Library: NeL Ligo")
VERSION ${NL_VERSION}
SOVERSION ${NL_VERSION_MAJOR}
PROJECT_LABEL "Library: NeL Ligo")
IF(WIN32)
SET_TARGET_PROPERTIES(nelligo PROPERTIES
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r")
ENDIF(WIN32)
NL_ADD_LIB_SUFFIX(nelligo)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
NL_GEN_PC(nel-ligo.pc)
INSTALL(TARGETS nelligo LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries) INSTALL(TARGETS nelligo LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries)

View file

@ -1,23 +1,12 @@
FILE(GLOB SRC *.cpp *.h) FILE(GLOB SRC *.cpp *.h)
IF(NOT WIN32) NL_TARGET_LIB(nellogic ${SRC})
ADD_LIBRARY(nellogic SHARED ${SRC})
ELSE(NOT WIN32)
ADD_LIBRARY(nellogic STATIC ${SRC})
ENDIF(NOT WIN32)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nellogic ${LIBXML2_LIBRARIES} nelmisc nelnet) TARGET_LINK_LIBRARIES(nellogic ${LIBXML2_LIBRARIES} nelmisc nelnet)
SET_TARGET_PROPERTIES(nellogic PROPERTIES NL_DEFAULT_PROPS(nellogic "Library: NeL Logic")
VERSION ${NL_VERSION}
SOVERSION ${NL_VERSION_MAJOR}
PROJECT_LABEL "Library: NeL Logic")
IF(WIN32) NL_ADD_LIB_SUFFIX(nellogic)
SET_TARGET_PROPERTIES(nellogic PROPERTIES
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})

View file

@ -442,7 +442,7 @@
> >
</File> </File>
<File <File
RelativePath="misc\config_file\cf_gramatical.yxx" RelativePath="misc\config_file\cf_gramatical.ypp"
> >
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Debug|Win32"
@ -514,7 +514,7 @@
</FileConfiguration> </FileConfiguration>
</File> </File>
<File <File
RelativePath="misc\config_file\cf_lexical.lxx" RelativePath="misc\config_file\cf_lexical.lpp"
> >
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Debug|Win32"

View file

@ -1,12 +1,6 @@
FILE(GLOB SRC *.cpp *.h config_file/*.cpp config_file/*.h) FILE(GLOB SRC *.cpp *.h config_file/*.cpp config_file/*.h)
IF(NOT WIN32) NL_TARGET_LIB(nelmisc ${SRC})
ADD_LIBRARY(nelmisc SHARED ${SRC})
CONFIGURE_FILE(nel-misc.pc.in nel-misc.pc)
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/nel-misc.pc" DESTINATION lib/pkgconfig)
ELSE(NOT WIN32)
ADD_LIBRARY(nelmisc STATIC ${SRC})
ENDIF(NOT WIN32)
IF(WITH_GTK) IF(WITH_GTK)
IF(GTK2_FOUND) IF(GTK2_FOUND)
@ -24,17 +18,9 @@ ENDIF(JPEG_FOUND)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${PNG_INCLUDE_DIR} config_file) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${PNG_INCLUDE_DIR} config_file)
TARGET_LINK_LIBRARIES(nelmisc ${LIBXML2_LIBRARIES} ${PNG_LIBRARIES} ${WINSOCK2_LIB}) TARGET_LINK_LIBRARIES(nelmisc ${LIBXML2_LIBRARIES} ${PNG_LIBRARIES} ${WINSOCK2_LIB})
SET_TARGET_PROPERTIES(nelmisc PROPERTIES NL_DEFAULT_PROPS(nelmisc "Library: NeL Misc")
VERSION ${NL_VERSION}
SOVERSION ${NL_VERSION_MAJOR}
PROJECT_LABEL "Library: NeL Misc")
IF(WIN32) NL_ADD_LIB_SUFFIX(nelmisc)
SET_TARGET_PROPERTIES(nelmisc PROPERTIES
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r")
INCLUDE_DIRECTORIES(${DXSDK_INCLUDE_DIR})
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
@ -42,4 +28,5 @@ IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nelmisc ${CMAKE_CURRENT_SOURCE_DIR}/stdmisc.h ${CMAKE_CURRENT_SOURCE_DIR}/stdmisc.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nelmisc ${CMAKE_CURRENT_SOURCE_DIR}/stdmisc.h ${CMAKE_CURRENT_SOURCE_DIR}/stdmisc.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)
NL_GEN_PC(nel-misc.pc)
INSTALL(TARGETS nelmisc LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries) INSTALL(TARGETS nelmisc LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries)

View file

@ -26,7 +26,6 @@ libnelmisc_la_SOURCES = \
command.cpp \ command.cpp \
common.cpp \ common.cpp \
contiguous_block_allocator.cpp \ contiguous_block_allocator.cpp \
cpu_info.cpp \
cpu_time_stat.cpp \ cpu_time_stat.cpp \
debug.cpp \ debug.cpp \
di_event_emitter.cpp \ di_event_emitter.cpp \

View file

@ -1500,7 +1500,7 @@ uint32 CBitmap::getHeight(uint32 mipMap) const
/*-------------------------------------------------------------------*\ /*-------------------------------------------------------------------*\
getHeight getSize
\*-------------------------------------------------------------------*/ \*-------------------------------------------------------------------*/
uint32 CBitmap::getSize(uint32 numMipMap) const uint32 CBitmap::getSize(uint32 numMipMap) const
{ {
@ -4107,5 +4107,84 @@ void CBitmap::getDibData(uint8*& extractData)
} }
#ifdef NL_OS_WINDOWS
HICON CBitmap::getHICON(sint iconWidth, sint iconHeight, sint iconDepth, const NLMISC::CRGBA &col, sint hotSpotX, sint hotSpotY, bool cursor) const
{
HICON result = NULL;
CBitmap src = *this;
// resample bitmap if necessary
if (_Width != iconWidth || _Height != iconHeight)
{
src.resample(iconWidth, iconHeight);
}
CBitmap colorBm;
colorBm.resize(iconWidth, iconHeight, CBitmap::RGBA);
const CRGBA *srcColorPtr = (CRGBA *) &(src.getPixels()[0]);
const CRGBA *srcColorPtrLast = srcColorPtr + (iconWidth * iconHeight);
CRGBA *destColorPtr = (CRGBA *) &(colorBm.getPixels()[0]);
static volatile uint8 alphaThreshold = 127;
do
{
destColorPtr->modulateFromColor(*srcColorPtr, col);
std::swap(destColorPtr->R, destColorPtr->B);
++ srcColorPtr;
++ destColorPtr;
}
while (srcColorPtr != srcColorPtrLast);
//
HBITMAP colorHbm = NULL;
HBITMAP maskHbm = NULL;
//
if (iconDepth == 16)
{
std::vector<uint16> colorBm16(iconWidth * iconHeight);
const CRGBA *src32 = (const CRGBA *) &colorBm.getPixels(0)[0];
for (uint k = 0; k < colorBm16.size(); ++k)
{
colorBm16[k] = ((uint16)(src32[k].R&0xf8)>>3) | ((uint16)(src32[k].G&0xfc)<<3) | ((uint16)(src32[k].B & 0xf8)<<8);
}
colorHbm = CreateBitmap(iconWidth, iconHeight, 1, 16, &colorBm16[0]);
std::vector<uint8> bitMask((iconWidth * iconHeight + 7) / 8, 0);
for (uint k = 0;k < colorBm16.size(); ++k)
{
if (src32[k].A <= 120)
{
bitMask[k / 8] |= (0x80 >> (k & 7));
}
}
maskHbm = CreateBitmap(iconWidth, iconHeight, 1, 1, &bitMask[0]);
}
else
{
colorHbm = CreateBitmap(iconWidth, iconHeight, 1, 32, &colorBm.getPixels(0)[0]);
maskHbm = CreateBitmap(iconWidth, iconHeight, 1, 32, &colorBm.getPixels(0)[0]);
}
ICONINFO iconInfo;
iconInfo.fIcon = cursor ? FALSE:TRUE;
iconInfo.xHotspot = (DWORD) hotSpotX;
iconInfo.yHotspot = (DWORD) hotSpotY;
iconInfo.hbmMask = maskHbm;
iconInfo.hbmColor = colorHbm;
if (colorHbm && maskHbm)
{
result = CreateIconIndirect(&iconInfo);
}
//
if (colorHbm) DeleteObject(colorHbm);
if (maskHbm) DeleteObject(maskHbm);
return result;
}
#endif
} // NLMISC } // NLMISC

View file

@ -2435,4 +2435,30 @@ void CFile::getTemporaryOutputFilename (const std::string &originalFilename, std
while (CFile::isExists(tempFilename)); while (CFile::isExists(tempFilename));
} }
std::string CFile::getApplicationDirectory(const std::string &appName)
{
static std::string appPath;
if (appPath.empty())
{
#ifdef NL_OS_WINDOWS
wchar_t buffer[MAX_PATH];
SHGetSpecialFolderPathW(NULL, buffer, CSIDL_APPDATA, TRUE);
appPath = CPath::standardizePath(ucstring((ucchar*)buffer).toUtf8());
#else
appPath = CPath::standardizePath(getenv("HOME"));
#endif
}
std::string path = appPath;
#ifdef NL_OS_WINDOWS
if (!appName.empty())
path = CPath::standardizePath(path + appName);
#else
if (!appName.empty())
path = CPath::standardizePath(path + "." + toLower(appName));
#endif
return path;
}
} // NLMISC } // NLMISC

View file

@ -2,18 +2,7 @@ FILE(GLOB SRC "*.cpp")
FILE(GLOB NET_MANAGER "net_manager.*") FILE(GLOB NET_MANAGER "net_manager.*")
LIST(REMOVE_ITEM SRC ${NET_MANAGER}) LIST(REMOVE_ITEM SRC ${NET_MANAGER})
DECORATE_NEL_LIB("nelmisc") NL_TARGET_LIB(nelnet ${SRC})
SET(NLMISC_LIB ${LIBNAME})
DECORATE_NEL_LIB("nelnet")
SET(NLNET_LIB ${LIBNAME})
IF(NOT WIN32)
ADD_LIBRARY(nelnet SHARED ${SRC})
CONFIGURE_FILE(nel-net.pc.in nel-net.pc)
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/nel-net.pc" DESTINATION lib/pkgconfig)
ELSE(NOT WIN32)
ADD_LIBRARY(nelnet STATIC ${SRC})
ENDIF(NOT WIN32)
IF(WITH_GTK) IF(WITH_GTK)
IF(GTK2_FOUND) IF(GTK2_FOUND)
@ -24,22 +13,16 @@ ENDIF(WITH_GTK)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nelnet ${LIBXML2_LIBRARIES} ${NLMISC_LIB}) TARGET_LINK_LIBRARIES(nelnet ${LIBXML2_LIBRARIES} nelmisc)
SET_TARGET_PROPERTIES(nelnet PROPERTIES NL_DEFAULT_PROPS(nelnet "Library: NeL Net")
VERSION ${NL_VERSION}
SOVERSION ${NL_VERSION_MAJOR}
PROJECT_LABEL "Library: NeL Net")
IF(WIN32) NL_ADD_LIB_SUFFIX(nelnet)
SET_TARGET_PROPERTIES(${NLNET_LIB} PROPERTIES
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(${NLNET_LIB} ${CMAKE_CURRENT_SOURCE_DIR}/stdnet.h ${CMAKE_CURRENT_SOURCE_DIR}/stdnet.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nelnet ${CMAKE_CURRENT_SOURCE_DIR}/stdnet.h ${CMAKE_CURRENT_SOURCE_DIR}/stdnet.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)
INSTALL(TARGETS ${NLNET_LIB} LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries) NL_GEN_PC(nel-net.pc)
INSTALL(TARGETS nelnet LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries)

View file

@ -254,11 +254,7 @@ void cbDirectoryChanged (IVariable &var)
// Update the running directory if needed // Update the running directory if needed
if (var.getName() == "RunningDirectory") if (var.getName() == "RunningDirectory")
{ {
#ifdef NL_OS_WINDOWS CPath::setCurrentPath(vp);
_chdir (vp.c_str());
#else
chdir (vp.c_str());
#endif
} }
// Call the callback if provided // Call the callback if provided

View file

@ -1,27 +1,17 @@
FILE(GLOB SRC *.cpp *.h) FILE(GLOB SRC *.cpp *.h)
IF(NOT WIN32) NL_TARGET_LIB(nelpacs ${SRC})
ADD_LIBRARY(nelpacs SHARED ${SRC})
CONFIGURE_FILE(nel-pacs.pc.in nel-pacs.pc)
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/nel-pacs.pc" DESTINATION lib/pkgconfig)
ELSE(NOT WIN32)
ADD_LIBRARY(nelpacs STATIC ${SRC})
ENDIF(NOT WIN32)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nelpacs ${LIBXML2_LIBRARIES} nelmisc) TARGET_LINK_LIBRARIES(nelpacs ${LIBXML2_LIBRARIES} nelmisc)
SET_TARGET_PROPERTIES(nelpacs PROPERTIES NL_DEFAULT_PROPS(nelpacs "Library: NeL PACS")
VERSION ${NL_VERSION}
SOVERSION ${NL_VERSION_MAJOR}
PROJECT_LABEL "Library: NeL PACS")
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WIN32) NL_ADD_LIB_SUFFIX(nelpacs)
SET_TARGET_PROPERTIES(nelpacs PROPERTIES DEBUG_POSTFIX "_d" RELEASE_POSTFIX "_r")
ENDIF(WIN32)
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nelpacs ${CMAKE_CURRENT_SOURCE_DIR}/stdpacs.h ${CMAKE_CURRENT_SOURCE_DIR}/stdpacs.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nelpacs ${CMAKE_CURRENT_SOURCE_DIR}/stdpacs.h ${CMAKE_CURRENT_SOURCE_DIR}/stdpacs.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)
NL_GEN_PC(nel-pacs.pc)
INSTALL(TARGETS nelpacs LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries) INSTALL(TARGETS nelpacs LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries)

View file

@ -6,32 +6,20 @@ IF(APPLE)
SET(SRC ${SRC} driver/sound_driver.cpp driver/buffer.cpp) SET(SRC ${SRC} driver/sound_driver.cpp driver/buffer.cpp)
ENDIF(APPLE) ENDIF(APPLE)
IF(NOT WIN32) nl_target_lib(nelsound ${SRC})
ADD_LIBRARY(nelsound SHARED ${SRC})
CONFIGURE_FILE(nel-sound.pc.in nel-sound.pc)
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/nel-sound.pc" DESTINATION lib/pkgconfig)
ELSE(NOT WIN32)
ADD_LIBRARY(nelsound STATIC ${SRC})
ENDIF(NOT WIN32)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nelsound ${LIBXML2_LIBRARIES} nelligo nelgeorges nel3d) TARGET_LINK_LIBRARIES(nelsound ${LIBXML2_LIBRARIES} nelligo nelgeorges nel3d)
SET_TARGET_PROPERTIES(nelsound PROPERTIES nl_default_props(nelsound "Library: NeL Sound")
VERSION ${NL_VERSION}
SOVERSION ${NL_VERSION_MAJOR}
PROJECT_LABEL "Library: NeL Sound")
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WIN32) nl_add_lib_suffix(nelsound)
SET_TARGET_PROPERTIES(nelsound PROPERTIES
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r")
ENDIF(WIN32)
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(nelsound ${CMAKE_CURRENT_SOURCE_DIR}/stdsound.h ${CMAKE_CURRENT_SOURCE_DIR}/stdsound.cpp) ADD_NATIVE_PRECOMPILED_HEADER(nelsound ${CMAKE_CURRENT_SOURCE_DIR}/stdsound.h ${CMAKE_CURRENT_SOURCE_DIR}/stdsound.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)
nl_gen_pc(nel-sound.pc)
INSTALL(TARGETS nelsound LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries) INSTALL(TARGETS nelsound LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries)
ADD_SUBDIRECTORY(driver) ADD_SUBDIRECTORY(driver)

View file

@ -1,22 +1,13 @@
FILE(GLOB SRC *.cpp *.h) FILE(GLOB SRC *.cpp *.h)
IF(NOT WIN32) nl_target_lib(nelsnd_lowlevel ${SRC})
ADD_LIBRARY(nelsnd_lowlevel SHARED ${SRC})
ELSE(NOT WIN32)
ADD_LIBRARY(nelsnd_lowlevel STATIC ${SRC})
ENDIF(NOT WIN32)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nelsnd_lowlevel ${LIBXML2_LIBRARIES} nelsound) TARGET_LINK_LIBRARIES(nelsnd_lowlevel ${LIBXML2_LIBRARIES} nelsound)
SET_TARGET_PROPERTIES(nelsnd_lowlevel PROPERTIES nl_default_props(nelsnd_lowlevel "Library: NeL Sound Lowlevel")
VERSION ${NL_VERSION}
SOVERSION ${NL_VERSION_MAJOR}
PROJECT_LABEL "Library: NeL Sound Lowlevel")
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WIN32) nl_add_lib_suffix(nelsnd_lowlevel)
SET_TARGET_PROPERTIES(nelsnd_lowlevel PROPERTIES DEBUG_POSTFIX "_d" RELEASE_POSTFIX "_r")
ENDIF(WIN32)
INSTALL(TARGETS nelsnd_lowlevel LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries) INSTALL(TARGETS nelsnd_lowlevel LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries)

View file

@ -1,12 +1,12 @@
FILE(GLOB SRC *.cpp *.h) FILE(GLOB SRC *.cpp *.h)
ADD_LIBRARY(nel_drv_openal SHARED ${SRC}) NL_TARGET_DRIVER(nel_drv_openal ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${OPENAL_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${OPENAL_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_drv_openal ${LIBXML2_LIBRARIES} ${OPENAL_LIBRARY} nelsnd_lowlevel) TARGET_LINK_LIBRARIES(nel_drv_openal ${LIBXML2_LIBRARIES} ${OPENAL_LIBRARY} nelsnd_lowlevel)
SET_TARGET_PROPERTIES(nel_drv_openal PROPERTIES NL_DEFAULT_PROPS(nel_drv_openal "Driver, Sound: OpenAL")
VERSION ${NL_VERSION} NL_ADD_LIB_SUFFIX(nel_drv_openal)
SOVERSION ${NL_VERSION_MAJOR}) NL_ADD_RUNTIME_FLAGS(nel_drv_openal)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
IF(WIN32) IF(WIN32)
@ -14,13 +14,6 @@ IF(WIN32)
FIND_PACKAGE(EFXUtil) FIND_PACKAGE(EFXUtil)
INCLUDE_DIRECTORIES(${EFXUTIL_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${EFXUTIL_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_drv_openal ${EFXUTIL_LIBRARY}) TARGET_LINK_LIBRARIES(nel_drv_openal ${EFXUTIL_LIBRARY})
SET_TARGET_PROPERTIES(nel_drv_openal PROPERTIES
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
DEBUG_POSTFIX "_d"
RELEASE_POSTFIX "_r"
PROJECT_LABEL "Driver, Sound: OpenAL")
ENDIF(WIN32) ENDIF(WIN32)
IF(WITH_PCH) IF(WITH_PCH)

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="9.00" Version="9,00"
Name="nel_3dsmax_shared" Name="nel_3dsmax_shared"
ProjectGUID="{CDFC60B0-9D01-4822-ACAD-B66F7130FCAD}" ProjectGUID="{CDFC60B0-9D01-4822-ACAD-B66F7130FCAD}"
RootNamespace="nel_3dsmax_shared" RootNamespace="nel_3dsmax_shared"

View file

@ -1,22 +1,12 @@
FILE(GLOB SRC *.cpp *.h) FILE(GLOB SRC *.cpp *.h)
DECORATE_NEL_LIB("nelmisc")
SET(NLMISC_LIB ${LIBNAME})
DECORATE_NEL_LIB("nelnet")
SET(NLNET_LIB ${LIBNAME})
DECORATE_NEL_LIB("nelligo")
SET(NLLIGO_LIB ${LIBNAME})
ADD_EXECUTABLE(nel_unit_test ${SRC}) ADD_EXECUTABLE(nel_unit_test ${SRC})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${CPPTEST_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${CPPTEST_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_unit_test ${LIBXML2_LIBRARIES} ${CPPTEST_LIBRARY} ${PLATFORM_LINKFLAGS} nelmisc nelnet nelligo) TARGET_LINK_LIBRARIES(nel_unit_test ${LIBXML2_LIBRARIES} ${CPPTEST_LIBRARY} ${PLATFORM_LINKFLAGS} nelmisc nelnet nelligo)
IF(WIN32) NL_DEFAULT_PROPS(nel_unit_test "Unit Tests")
SET_TARGET_PROPERTIES(nel_unit_test PROPERTIES NL_ADD_RUNTIME_FLAGS(nel_unit_test)
LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}"
LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}"
PROJECT_LABEL "Unit Tests")
ENDIF(WIN32)
ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
ADD_DEFINITIONS(-DNEL_UNIT_BASE="\\"${PROJECT_SOURCE_DIR}/tools/nel_unit_test/\\"") ADD_DEFINITIONS(-DNEL_UNIT_BASE="\\"${PROJECT_SOURCE_DIR}/tools/nel_unit_test/\\"")

View file

@ -36,7 +36,7 @@ ELSE(NOT NL_USING_MASTER_PROJECT)
SET(CMAKE_LIBRARY_PATH "${CMAKE_BINARY_DIR}/lib;${CMAKE_LIBRARY_PATH}") SET(CMAKE_LIBRARY_PATH "${CMAKE_BINARY_DIR}/lib;${CMAKE_LIBRARY_PATH}")
ENDIF(NOT NL_USING_MASTER_PROJECT) ENDIF(NOT NL_USING_MASTER_PROJECT)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8) CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(Ryzom CXX C) PROJECT(Ryzom CXX C)
SET(NL_VERSION_MAJOR 0) SET(NL_VERSION_MAJOR 0)
@ -63,9 +63,9 @@ ENDIF(COMMAND cmake_policy)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Set default config options # Set default config options
#
NL_SETUP_DEFAULT_OPTIONS() NL_SETUP_DEFAULT_OPTIONS()
NL_SETUP_PREFIX_PATHS() RYZOM_SETUP_PREFIX_PATHS()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Override default options # Override default options
@ -114,6 +114,11 @@ IF(FINAL_VERSION)
ADD_DEFINITIONS(-DFINAL_VERSION=1) ADD_DEFINITIONS(-DFINAL_VERSION=1)
ENDIF(FINAL_VERSION) ENDIF(FINAL_VERSION)
# config.h configuration and use by projects
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_BINARY_DIR}/config.h)
INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
ADD_DEFINITIONS(-DHAVE_CONFIG_H)
ADD_SUBDIRECTORY(common) ADD_SUBDIRECTORY(common)
IF(WITH_CLIENT) IF(WITH_CLIENT)

View file

@ -1,53 +0,0 @@
# - Locate CEGUI library
# This module defines
# CEGUI_LIBRARY, the library to link against
# CEGUI_FOUND, if false, do not try to link to CEGUI
# CEGUI_INCLUDE_DIRS, where to find headers.
IF(CEGUI_LIBRARY AND CEGUI_INCLUDE_DIRS)
# in cache already
SET(CEGUI_FIND_QUIETLY TRUE)
ENDIF(CEGUI_LIBRARY AND CEGUI_INCLUDE_DIRS)
FIND_PATH(CEGUI_INCLUDE_DIRS
CEGUI
PATHS
$ENV{CEGUI_DIR}/include
/usr/local/include
/usr/include
/sw/include
/opt/local/include
/opt/csw/include
/opt/include
PATH_SUFFIXES cegui CEGUI
)
FIND_LIBRARY(CEGUI_LIBRARY
NAMES CEGUIBase
PATHS
$ENV{CEGUI_DIR}/lib
/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
)
GET_FILENAME_COMPONENT(CEGUI_LIB_DIR ${CEGUI_LIBRARY} PATH CACHE)
IF(CEGUI_LIBRARY AND CEGUI_INCLUDE_DIRS)
SET(CEGUI_FOUND "YES")
SET(CEGUI_INCLUDE_DIRS "${CEGUI_INCLUDE_DIRS}/CEGUI")
IF(NOT CEGUI_FIND_QUIETLY)
MESSAGE(STATUS "Found CEGUI: ${CEGUI_LIBRARY}")
ENDIF(NOT CEGUI_FIND_QUIETLY)
ELSE(CEGUI_LIBRARY AND CEGUI_INCLUDE_DIRS)
IF(NOT CEGUI_FIND_QUIETLY)
MESSAGE(STATUS "Warning: Unable to find CEGUI!")
ENDIF(NOT CEGUI_FIND_QUIETLY)
ENDIF(CEGUI_LIBRARY AND CEGUI_INCLUDE_DIRS)

View file

@ -1,51 +0,0 @@
#
# Find the CppTest includes and library
#
# This module defines
# CPPTEST_INCLUDE_DIR, where to find tiff.h, etc.
# CPPTEST_LIBRARY, where to find the CppTest library.
# CPPTEST_FOUND, If false, do not try to use CppTest.
# also defined, but not for general use are
IF(CPPTEST_LIBRARY AND CPPTEST_INCLUDE_DIR)
# in cache already
SET(CPPTEST_FIND_QUIETLY TRUE)
ENDIF(CPPTEST_LIBRARY AND CPPTEST_INCLUDE_DIR)
FIND_PATH(CPPTEST_INCLUDE_DIR
cpptest.h
PATHS
/usr/local/include
/usr/include
/sw/include
/opt/local/include
/opt/csw/include
/opt/include
PATH_SUFFIXES cppunit
)
FIND_LIBRARY(CPPTEST_LIBRARY
cpptest
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
)
IF(CPPTEST_LIBRARY AND CPPTEST_INCLUDE_DIR)
SET(CPPTEST_FOUND "YES")
IF(NOT CPPTEST_FIND_QUIETLY)
MESSAGE(STATUS "Found CppTest: ${CPPTEST_LIBRARY}")
ENDIF(NOT CPPTEST_FIND_QUIETLY)
ELSE(CPPTEST_LIBRARY AND CPPTEST_INCLUDE_DIR)
IF(NOT CPPTEST_FIND_QUIETLY)
MESSAGE(STATUS "Warning: Unable to find CppTest!")
ENDIF(NOT CPPTEST_FIND_QUIETLY)
ENDIF(CPPTEST_LIBRARY AND CPPTEST_INCLUDE_DIR)

View file

@ -1,67 +0,0 @@
# - Locate FreeType library
# This module defines
# FREETYPE_LIBRARY, the library to link against
# FREETYPE_FOUND, if false, do not try to link to FREETYPE
# FREETYPE_INCLUDE_DIRS, where to find headers.
IF(FREETYPE_LIBRARY AND FREETYPE_INCLUDE_DIRS)
# in cache already
SET(FREETYPE_FIND_QUIETLY TRUE)
ENDIF(FREETYPE_LIBRARY AND FREETYPE_INCLUDE_DIRS)
FIND_PATH(FREETYPE_INCLUDE_DIRS
freetype
PATHS
$ENV{FREETYPE_DIR}/include
/usr/local/include
/usr/include
/sw/include
/opt/local/include
/opt/csw/include
/opt/include
PATH_SUFFIXES freetype freetype2
)
# ft2build.h does not reside in the freetype include dir
FIND_PATH(FREETYPE_ADDITIONAL_INCLUDE_DIR
ft2build.h
PATHS
/usr/local/include
/usr/include
/sw/include
/opt/local/include
/opt/csw/include
/opt/include
)
# combine both include directories into one variable
IF(FREETYPE_ADDITIONAL_INCLUDE_DIR)
SET(FREETYPE_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS} ${FREETYPE_ADDITIONAL_INCLUDE_DIR})
ENDIF(FREETYPE_ADDITIONAL_INCLUDE_DIR)
FIND_LIBRARY(FREETYPE_LIBRARY
NAMES freetype libfreetype freetype219
PATHS
$ENV{FREETYPE_DIR}/lib
/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
)
IF(FREETYPE_LIBRARY AND FREETYPE_INCLUDE_DIRS)
SET(FREETYPE_FOUND "YES")
IF(NOT FREETYPE_FIND_QUIETLY)
MESSAGE(STATUS "Found FreeType: ${FREETYPE_LIBRARY}")
ENDIF(NOT FREETYPE_FIND_QUIETLY)
ELSE(FREETYPE_LIBRARY AND FREETYPE_INCLUDE_DIRS)
IF(NOT FREETYPE_FIND_QUIETLY)
MESSAGE(STATUS "Warning: Unable to find FreeType!")
ENDIF(NOT FREETYPE_FIND_QUIETLY)
ENDIF(FREETYPE_LIBRARY AND FREETYPE_INCLUDE_DIRS)

View file

@ -1,452 +0,0 @@
# - Try to find GTK2
# Once done this will define
#
# GTK2_FOUND - System has Boost
# GTK2_INCLUDE_DIRS - GTK2 include directory
# GTK2_LIBRARIES - Link these to use GTK2
# GTK2_LIBRARY_DIRS - The path to where the GTK2 library files are.
# GTK2_DEFINITIONS - Compiler switches required for using GTK2
#
# Copyright (c) 2007 Andreas Schneider <mail@cynapses.org>
#
# Redistribution and use is allowed according to the terms of the New
# BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
set(GTK2_DEBUG ON)
macro(GTK2_DEBUG_MESSAGE _message)
if (GTK2_DEBUG)
message(STATUS "(DEBUG) ${_message}")
endif (GTK2_DEBUG)
endmacro(GTK2_DEBUG_MESSAGE _message)
if (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
# in cache already
set(GTK2_FOUND TRUE)
else (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
if (UNIX)
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
include(UsePkgConfig)
pkgconfig(gtk+-2.0 _GTK2IncDir _GTK2LinkDir _GTK2LinkFlags _GTK2Cflags)
find_path(GTK2_GTK_INCLUDE_DIR
NAMES
gtk/gtk.h
PATHS
$ENV{GTK2_HOME}
${_GTK2IncDir}
/usr/include/gtk-2.0
/usr/local/include/gtk-2.0
/opt/include/gtk-2.0
/opt/gnome/include/gtk-2.0
/sw/include/gtk-2.0
)
gtk2_debug_message("GTK2_GTK_INCLUDE_DIR is ${GTK2_GTK_INCLUDE_DIR}")
# Some Linux distributions (e.g. Red Hat) have glibconfig.h
# and glib.h in different directories, so we need to look
# for both.
# - Atanas Georgiev <atanas@cs.columbia.edu>
pkgconfig(glib-2.0 _GLIB2IncDir _GLIB2LinkDir _GLIB2LinkFlags _GLIB2Cflags)
pkgconfig(gmodule-2.0 _GMODULE2IncDir _GMODULE2LinkDir _GMODULE2LinkFlags _GMODULE2Cflags)
find_path(GTK2_GLIBCONFIG_INCLUDE_DIR
NAMES
glibconfig.h
PATHS
${_GLIB2IncDir}
${_GMODULE2IncDir}
/opt/gnome/lib64/glib-2.0/include
/opt/gnome/lib/glib-2.0/include
/opt/lib/glib-2.0/include
/usr/lib64/glib-2.0/include
/usr/lib/glib-2.0/include
/sw/lib/glib-2.0/include
)
gtk2_debug_message("GTK2_GLIBCONFIG_INCLUDE_DIR is ${GTK2_GLIBCONFIG_INCLUDE_DIR}")
find_path(GTK2_GLIB_INCLUDE_DIR
NAMES
glib.h
PATHS
${_GLIB2IncDir}
${_GMODULE2IncDir}
/opt/include/glib-2.0
/opt/gnome/include/glib-2.0
/usr/include/glib-2.0
/sw/include/glib-2.0
)
gtk2_debug_message("GTK2_GLIB_INCLUDE_DIR is ${GTK2_GLIB_INCLUDE_DIR}")
pkgconfig(gdk-2.0 _GDK2IncDir _GDK2LinkDir _GDK2LinkFlags _GDK2Cflags)
find_path(GTK2_GDK_INCLUDE_DIR
NAMES
gdkconfig.h
PATHS
${_GDK2IncDir}
/opt/gnome/lib/gtk-2.0/include
/opt/gnome/lib64/gtk-2.0/include
/opt/lib/gtk-2.0/include
/usr/lib/gtk-2.0/include
/usr/lib64/gtk-2.0/include
/sw/lib/gtk-2.0/include
)
gtk2_debug_message("GTK2_GDK_INCLUDE_DIR is ${GTK2_GDK_INCLUDE_DIR}")
find_path(GTK2_GTKGL_INCLUDE_DIR
NAMES
gtkgl/gtkglarea.h
PATHS
${_GLIB2IncDir}
/usr/include
/usr/include/gtkgl-2.0
/usr/local/include
/usr/openwin/share/include
/opt/gnome/include
/opt/include
/sw/include
)
gtk2_debug_message("GTK2_GTKGL_INCLUDE_DIR is ${GTK2_GTKGL_INCLUDE_DIR}")
pkgconfig(libglade-2.0 _GLADEIncDir _GLADELinkDir _GLADELinkFlags _GLADECflags)
find_path(GTK2_GLADE_INCLUDE_DIR
NAMES
glade/glade.h
PATHS
${_GLADEIncDir}
/opt/gnome/include/libglade-2.0
/usr/include/libglade-2.0
/opt/include/libglade-2.0
/sw/include/libglade-2.0
)
gtk2_debug_message("GTK2_GLADE_INCLUDE_DIR is ${GTK2_GLADE_INCLUDE_DIR}")
pkgconfig(pango _PANGOIncDir _PANGOLinkDir _PANGOLinkFlags _PANGOCflags)
find_path(GTK2_PANGO_INCLUDE_DIR
NAMES
pango/pango.h
PATHS
${_PANGOIncDir}
/usr/include/pango-1.0
/opt/gnome/include/pango-1.0
/opt/include/pango-1.0
/sw/include/pango-1.0
)
gtk2_debug_message("GTK2_PANGO_INCLUDE_DIR is ${GTK2_PANGO_INCLUDE_DIR}")
pkgconfig(cairo _CAIROIncDir _CAIROLinkDir _CAIROLinkFlags _CAIROCflags)
find_path(GTK2_CAIRO_INCLUDE_DIR
NAMES
cairo.h
PATHS
${_CAIROIncDir}
/opt/gnome/include/cairo
/usr/include
/usr/include/cairo
/opt/include
/opt/include/cairo
/sw/include
/sw/include/cairo
)
gtk2_debug_message("GTK2_CAIRO_INCLUDE_DIR is ${GTK2_CAIRO_INCLUDE_DIR}")
pkgconfig(atk _ATKIncDir _ATKLinkDir _ATKLinkFlags _ATKCflags)
find_path(GTK2_ATK_INCLUDE_DIR
NAMES
atk/atk.h
PATHS
${_ATKIncDir}
/opt/gnome/include/atk-1.0
/usr/include/atk-1.0
/opt/include/atk-1.0
/sw/include/atk-1.0
)
gtk2_debug_message("GTK2_ATK_INCLUDE_DIR is ${GTK2_ATK_INCLUDE_DIR}")
find_library(GTK2_GTK_LIBRARY
NAMES
gtk-x11-2.0
PATHS
${_GTK2LinkDir}
/usr/lib
/usr/local/lib
/usr/openwin/lib
/usr/X11R6/lib
/opt/gnome/lib
/opt/lib
/sw/lib
)
gtk2_debug_message("GTK2_GTK_LIBRARY is ${GTK2_GTK_LIBRARY}")
find_library(GTK2_GDK_LIBRARY
NAMES
gdk-x11-2.0
PATHS
${_GDK2LinkDir}
/usr/lib
/usr/local/lib
/usr/openwin/lib
/usr/X11R6/lib
/opt/gnome/lib
/opt/lib
/sw/lib
)
gtk2_debug_message("GTK2_GDK_LIBRARY is ${GTK2_GDK_LIBRARY}")
find_library(GTK2_GDK_PIXBUF_LIBRARY
NAMES
gdk_pixbuf-2.0
PATHS
${_GDK2LinkDir}
/usr/lib
/usr/local/lib
/usr/openwin/lib
/usr/X11R6/lib
/opt/gnome/lib
/opt/lib
/sw/lib
)
gtk2_debug_message("GTK2_GDK_PIXBUF_LIBRARY is ${GTK2_GDK_PIXBUF_LIBRARY}")
find_library(GTK2_GMODULE_LIBRARY
NAMES
gmodule-2.0
PATHS
${_GMODULE2LinkDir}
/usr/lib
/usr/local/lib
/usr/openwin/lib
/usr/X11R6/lib
/opt/gnome/lib
/opt/lib
/sw/lib
)
gtk2_debug_message("GTK2_GMODULE_LIBRARY is ${GTK2_GMODULE_LIBRARY}")
find_library(GTK2_GTHREAD_LIBRARY
NAMES
gthread-2.0
PATHS
${_GTK2LinkDir}
/usr/lib
/usr/local/lib
/usr/openwin/lib
/usr/X11R6/lib
/opt/gnome/lib
/opt/lib
/sw/lib
)
gtk2_debug_message("GTK2_GTHREAD_LIBRARY is ${GTK2_GTHREAD_LIBRARY}")
find_library(GTK2_GOBJECT_LIBRARY
NAMES
gobject-2.0
PATHS
${_GTK2LinkDir}
/usr/lib
/usr/local/lib
/usr/openwin/lib
/usr/X11R6/lib
/opt/gnome/lib
/opt/lib
/sw/lib
)
gtk2_debug_message("GTK2_GOBJECT_LIBRARY is ${GTK2_GOBJECT_LIBRARY}")
find_library(GTK2_GLIB_LIBRARY
NAMES
glib-2.0
PATHS
${_GLIB2LinkDir}
/usr/lib
/usr/local/lib
/usr/openwin/lib
/usr/X11R6/lib
/opt/gnome/lib
/opt/lib
/sw/lib
)
gtk2_debug_message("GTK2_GLIB_LIBRARY is ${GTK2_GLIB_LIBRARY}")
find_library(GTK2_GTKGL_LIBRARY
NAMES
gtkgl-2.0
PATHS
${_GTK2LinkDir}
/usr/lib
/usr/local/lib
/usr/openwin/lib
/usr/X11R6/lib
/opt/gnome/lib
/opt/lib
/sw/lib
)
gtk2_debug_message("GTK2_GTKGL_LIBRARY is ${GTK2_GTKGL_LIBRARY}")
find_library(GTK2_GLADE_LIBRARY
NAMES
glade-2.0
PATHS
${_GLADELinkDir}
/usr/lib
/usr/local/lib
/usr/openwin/lib
/usr/X11R6/lib
/opt/gnome/lib
/opt/lib
/sw/lib
)
gtk2_debug_message("GTK2_GLADE_LIBRARY is ${GTK2_GLADE_LIBRARY}")
find_library(GTK2_PANGO_LIBRARY
NAMES
pango-1.0
PATHS
${_PANGOLinkDir}
/usr/lib
/usr/local/lib
/usr/openwin/lib
/usr/X11R6/lib
/opt/gnome/lib
/opt/lib
/sw/lib
)
gtk2_debug_message("GTK2_PANGO_LIBRARY is ${GTK2_PANGO_LIBRARY}")
find_library(GTK2_CAIRO_LIBRARY
NAMES
pangocairo-1.0
PATHS
${_CAIROLinkDir}
/usr/lib
/usr/local/lib
/usr/openwin/lib
/usr/X11R6/lib
/opt/gnome/lib
/opt/lib
/sw/lib
)
gtk2_debug_message("GTK2_PANGO_LIBRARY is ${GTK2_CAIRO_LIBRARY}")
find_library(GTK2_ATK_LIBRARY
NAMES
atk-1.0
PATHS
${_ATKinkDir}
/usr/lib
/usr/local/lib
/usr/openwin/lib
/usr/X11R6/lib
/opt/gnome/lib
/opt/lib
/sw/lib
)
gtk2_debug_message("GTK2_ATK_LIBRARY is ${GTK2_ATK_LIBRARY}")
set(GTK2_INCLUDE_DIRS
${GTK2_GTK_INCLUDE_DIR}
${GTK2_GLIBCONFIG_INCLUDE_DIR}
${GTK2_GLIB_INCLUDE_DIR}
${GTK2_GDK_INCLUDE_DIR}
${GTK2_GLADE_INCLUDE_DIR}
${GTK2_PANGO_INCLUDE_DIR}
${GTK2_CAIRO_INCLUDE_DIR}
${GTK2_ATK_INCLUDE_DIR}
)
if (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR)
if (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR)
if (GTK2_GMODULE_LIBRARY)
if (GTK2_GTHREAD_LIBRARY)
if (GTK2_GOBJECT_LIBRARY)
if (GTK2_GLADE_LIBRARY AND GTK2_GLADE_INCLUDE_DIR)
if (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR)
if (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR)
if (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR)
# set GTK2 libraries
set (GTK2_LIBRARIES
${GTK2_GTK_LIBRARY}
${GTK2_GDK_LIBRARY}
${GTK2_GDK_PIXBUF_LIBRARY}
${GTK2_GMODULE_LIBRARY}
${GTK2_GTHREAD_LIBRARY}
${GTK2_GOBJECT_LIBRARY}
${GTK2_GLADE_LIBRARY}
${GTK2_PANGO_LIBRARY}
${GTK2_CAIRO_LIBRARY}
${GTK2_ATK_LIBRARY}
)
# check for gtkgl support
if (GTK2_GTKGL_LIBRARY AND GTK2_GTKGL_INCLUDE_DIR)
set(GTK2_GTKGL_FOUND TRUE)
set(GTK2_INCLUDE_DIRS
${GTK2_INCLUDE_DIRS}
${GTK2_GTKGL_INCLUDE_DIR}
)
set(GTK2_LIBRARIES
${GTK2_LIBRARIES}
${GTK2_GTKGL_LIBRARY}
)
endif (GTK2_GTKGL_LIBRARY AND GTK2_GTKGL_INCLUDE_DIR)
else (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR)
message(SEND_ERROR "Could not find ATK")
endif (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR)
else (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR)
message(SEND_ERROR "Could not find CAIRO")
endif (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR)
else (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR)
message(SEND_ERROR "Could not find PANGO")
endif (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR)
else (GTK2_GLADE_LIBRARY AND GTK2_GLADE_INCLUDE_DIR)
message(SEND_ERROR "Could not find GLADE")
endif (GTK2_GLADE_LIBRARY AND GTK2_GLADE_INCLUDE_DIR)
else (GTK2_GOBJECT_LIBRARY)
message(SEND_ERROR "Could not find GOBJECT")
endif (GTK2_GOBJECT_LIBRARY)
else (GTK2_GTHREAD_LIBRARY)
message(SEND_ERROR "Could not find GTHREAD")
endif (GTK2_GTHREAD_LIBRARY)
else (GTK2_GMODULE_LIBRARY)
message(SEND_ERROR "Could not find GMODULE")
endif (GTK2_GMODULE_LIBRARY)
else (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR)
message(SEND_ERROR "Could not find GDK (GDK_PIXBUF)")
endif (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR)
else (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR)
message(SEND_ERROR "Could not find GTK2-X11")
endif (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR)
if (GTK2_INCLUDE_DIRS AND GTK2_LIBRARIES)
set(GTK2_FOUND TRUE)
endif (GTK2_INCLUDE_DIRS AND GTK2_LIBRARIES)
if (GTK2_FOUND)
if (NOT GTK2_FIND_QUIETLY)
message(STATUS "Found GTK2: ${GTK2_LIBRARIES}")
endif (NOT GTK2_FIND_QUIETLY)
else (GTK2_FOUND)
if (GTK2_FIND_REQUIRED)
message(FATAL_ERROR "Could not find GTK2")
endif (GTK2_FIND_REQUIRED)
endif (GTK2_FOUND)
# show the GTK2_INCLUDE_DIRS and GTK2_LIBRARIES variables only in the advanced view
mark_as_advanced(GTK2_INCLUDE_DIRS GTK2_LIBRARIES)
endif (UNIX)
endif (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)

View file

@ -1,50 +0,0 @@
# - Locate Jpeg library
# This module defines
# JPEG_LIBRARY, the library to link against
# JPEG_FOUND, if false, do not try to link to JPEG
# JPEG_INCLUDE_DIR, where to find headers.
IF(JPEG_LIBRARY AND JPEG_INCLUDE_DIR)
# in cache already
SET(JPEG_FIND_QUIETLY TRUE)
ENDIF(JPEG_LIBRARY AND JPEG_INCLUDE_DIR)
FIND_PATH(JPEG_INCLUDE_DIR
jpeglib.h
PATHS
$ENV{JPEG_DIR}/include
/usr/local/include
/usr/include
/sw/include
/opt/local/include
/opt/csw/include
/opt/include
PATH_SUFFIXES jpeg
)
FIND_LIBRARY(JPEG_LIBRARY
NAMES jpeg libjpeg
PATHS
$ENV{JPEG_DIR}/lib
/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
)
IF(JPEG_LIBRARY AND JPEG_INCLUDE_DIR)
SET(JPEG_FOUND "YES")
IF(NOT JPEG_FIND_QUIETLY)
MESSAGE(STATUS "Found Jpeg: ${JPEG_LIBRARY}")
ENDIF(NOT JPEG_FIND_QUIETLY)
ELSE(JPEG_LIBRARY AND JPEG_INCLUDE_DIR)
IF(NOT JPEG_FIND_QUIETLY)
MESSAGE(STATUS "Warning: Unable to find Jpeg!")
ENDIF(NOT JPEG_FIND_QUIETLY)
ENDIF(JPEG_LIBRARY AND JPEG_INCLUDE_DIR)

View file

@ -131,50 +131,50 @@ MACRO(NL_SETUP_BUILD_FLAGS)
SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${NL_RELEASEDEBUG_CFLAGS} ${PLATFORM_CFLAGS} ") SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${NL_RELEASEDEBUG_CFLAGS} ${PLATFORM_CFLAGS} ")
ENDMACRO(NL_SETUP_BUILD_FLAGS) ENDMACRO(NL_SETUP_BUILD_FLAGS)
MACRO(NL_SETUP_PREFIX_PATHS) MACRO(RYZOM_SETUP_PREFIX_PATHS)
## Allow override of install_prefix/etc path. ## Allow override of install_prefix path.
IF(NOT NL_ETC_PREFIX) IF(NOT RYZOM_PREFIX)
IF(WIN32) IF(WIN32)
SET(NL_ETC_PREFIX "../etc" CACHE PATH "Installation path for configurations") SET(RYZOM_PREFIX "." CACHE PATH "Installation path")
ELSE(WIN32) ELSE(WIN32)
SET(NL_ETC_PREFIX "${CMAKE_INSTALL_PREFIX}/etc" CACHE PATH "Installation path for configurations") SET(RYZOM_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Installation path")
ENDIF(WIN32) ENDIF(WIN32)
ENDIF(NOT NL_ETC_PREFIX) ENDIF(NOT RYZOM_PREFIX)
## Allow override of install_prefix/etc path.
IF(NOT RYZOM_ETC_PREFIX)
IF(WIN32)
SET(RYZOM_ETC_PREFIX "." CACHE PATH "Installation path for configurations")
ELSE(WIN32)
SET(RYZOM_ETC_PREFIX "${CMAKE_INSTALL_PREFIX}/etc/ryzom" CACHE PATH "Installation path for configurations")
ENDIF(WIN32)
ENDIF(NOT RYZOM_ETC_PREFIX)
## Allow override of install_prefix/share path. ## Allow override of install_prefix/share path.
IF(NOT NL_SHARE_PREFIX) IF(NOT RYZOM_SHARE_PREFIX)
IF(WIN32) IF(WIN32)
SET(NL_SHARE_PREFIX "../share" CACHE PATH "Installation path for data.") SET(RYZOM_SHARE_PREFIX "." CACHE PATH "Installation path for data.")
ELSE(WIN32) ELSE(WIN32)
SET(NL_SHARE_PREFIX "${CMAKE_INSTALL_PREFIX}/share" CACHE PATH "Installation path for data.") SET(RYZOM_SHARE_PREFIX "${CMAKE_INSTALL_PREFIX}/share/ryzom" CACHE PATH "Installation path for data.")
ENDIF(WIN32) ENDIF(WIN32)
ENDIF(NOT NL_SHARE_PREFIX) ENDIF(NOT RYZOM_SHARE_PREFIX)
## Allow override of install_prefix/sbin path. ## Allow override of install_prefix/sbin path.
IF(NOT NL_SBIN_PREFIX) IF(NOT RYZOM_SBIN_PREFIX)
IF(WIN32) IF(WIN32)
SET(NL_SBIN_PREFIX "../sbin" CACHE PATH "Installation path for admin tools and services.") SET(RYZOM_SBIN_PREFIX "." CACHE PATH "Installation path for admin tools and services.")
ELSE(WIN32) ELSE(WIN32)
SET(NL_SBIN_PREFIX "${CMAKE_INSTALL_PREFIX}/sbin" CACHE PATH "Installation path for admin tools and services.") SET(RYZOM_SBIN_PREFIX "${CMAKE_INSTALL_PREFIX}/sbin" CACHE PATH "Installation path for admin tools and services.")
ENDIF(WIN32) ENDIF(WIN32)
ENDIF(NOT NL_SBIN_PREFIX) ENDIF(NOT RYZOM_SBIN_PREFIX)
## Allow override of install_prefix/bin path. ## Allow override of install_prefix/bin path.
IF(NOT NL_BIN_PREFIX) IF(NOT RYZOM_BIN_PREFIX)
IF(WIN32) IF(WIN32)
SET(NL_BIN_PREFIX "../bin" CACHE PATH "Installation path for tools and applications.") SET(RYZOM_BIN_PREFIX "." CACHE PATH "Installation path for tools and applications.")
ELSE(WIN32) ELSE(WIN32)
SET(NL_BIN_PREFIX "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation path for tools and applications.") SET(RYZOM_BIN_PREFIX "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation path for client and tools.")
ENDIF(WIN32) ENDIF(WIN32)
ENDIF(NOT NL_BIN_PREFIX) ENDIF(NOT RYZOM_BIN_PREFIX)
## Allow override of install_prefix/bin path. ENDMACRO(RYZOM_SETUP_PREFIX_PATHS)
IF(NOT NL_LOG_PREFIX)
IF(WIN32)
SET(NL_LOG_PREFIX "../var/log" CACHE PATH "Installation path for tools and applications.")
ELSE(WIN32)
SET(NL_LOG_PREFIX "${CMAKE_INSTALL_PREFIX}/var/log" CACHE PATH "Installation path for tools and applications.")
ENDIF(WIN32)
ENDIF(NOT NL_LOG_PREFIX)
ENDMACRO(NL_SETUP_PREFIX_PATHS)

View file

@ -1 +1,7 @@
ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(src)
IF(UNIX AND NOT APPLE)
ADD_SUBDIRECTORY(unix)
ENDIF(UNIX AND NOT APPLE)
INSTALL(FILES client_default.cfg DESTINATION ${RYZOM_ETC_PREFIX})

View file

@ -1,8 +1,8 @@
ADD_SUBDIRECTORY(seven_zip)
# These are Windows/MFC apps # These are Windows/MFC apps
IF(WIN32) IF(WIN32)
ADD_SUBDIRECTORY(seven_zip)
ADD_SUBDIRECTORY(bug_report) ADD_SUBDIRECTORY(bug_report)
SET(SEVENZIP_LIBRARY "ryzom_sevenzip")
ENDIF(WIN32) ENDIF(WIN32)
ADD_SUBDIRECTORY(client_sheets) ADD_SUBDIRECTORY(client_sheets)
@ -10,8 +10,8 @@ ADD_SUBDIRECTORY(client_sheets)
FILE(GLOB SRC *.cpp *.h motion/*.cpp motion/*.h motion/modes/*.cpp motion/modes/*.h r2/*.h r2/*.cpp r2/dmc/*.h r2/dmc/*.cpp interface_v3/*.h interface_v3/*.cpp) FILE(GLOB SRC *.cpp *.h motion/*.cpp motion/*.h motion/modes/*.cpp motion/modes/*.h r2/*.h r2/*.cpp r2/dmc/*.h r2/dmc/*.cpp interface_v3/*.h interface_v3/*.cpp)
# Filter out the source files not actually compiled. # Filter out the source files not actually compiled.
LIST(REMOVE_ITEM SRC LIST(REMOVE_ITEM SRC
${CMAKE_CURRENT_SOURCE_DIR}/animated_scene_object.cpp ${CMAKE_CURRENT_SOURCE_DIR}/animated_scene_object.cpp
${CMAKE_CURRENT_SOURCE_DIR}/animated_scene_object.h ${CMAKE_CURRENT_SOURCE_DIR}/animated_scene_object.h
${CMAKE_CURRENT_SOURCE_DIR}/animation_fx_sheet.h ${CMAKE_CURRENT_SOURCE_DIR}/animation_fx_sheet.h
${CMAKE_CURRENT_SOURCE_DIR}/animation_fx_sheet.cpp ${CMAKE_CURRENT_SOURCE_DIR}/animation_fx_sheet.cpp
@ -38,7 +38,7 @@ if(APPLE)
SET(MACOSX_BUNDLE_INFO_STRING "Ryzom Core Client") SET(MACOSX_BUNDLE_INFO_STRING "Ryzom Core Client")
SET(MACOSX_BUNDLE_ICON_FILE "") SET(MACOSX_BUNDLE_ICON_FILE "")
SET(MACOSX_BUNDLE_GUI_IDENTIFIER "") SET(MACOSX_BUNDLE_GUI_IDENTIFIER "")
SET(MACOSX_BUNDLE_LONG_VERSION_STRING "0.8.0") SET(MACOSX_BUNDLE_LONG_VERSION_STRING ${NL_VERSION})
SET(MACOSX_BUNDLE_BUNDLE_NAME "Ryzom Core Client") SET(MACOSX_BUNDLE_BUNDLE_NAME "Ryzom Core Client")
SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "0.8") SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "0.8")
SET(MACOSX_BUNDLE_BUNDLE_VERSION "1.0") SET(MACOSX_BUNDLE_BUNDLE_VERSION "1.0")
@ -53,7 +53,7 @@ if(APPLE)
# COMMAND ${CMAKE_COMMAND} -E make_directory # COMMAND ${CMAKE_COMMAND} -E make_directory
# ${CMAKE_CURRENT_BINARY_DIR}/ryzom_client.app/Contents/Frameworks # ${CMAKE_CURRENT_BINARY_DIR}/ryzom_client.app/Contents/Frameworks
# # copy framework into app bundle # # copy framework into app bundle
# COMMAND ${CMAKE_COMMAND} -E copy ${SOME_LIBRARY} # COMMAND ${CMAKE_COMMAND} -E copy ${SOME_LIBRARY}
# ${CMAKE_CURRENT_BINARY_DIR}/ryzom_client.app/Contents/Frameworks # ${CMAKE_CURRENT_BINARY_DIR}/ryzom_client.app/Contents/Frameworks
# # ... # # ...
# # install_name_tool the lib pathes # # install_name_tool the lib pathes
@ -63,32 +63,32 @@ ELSE(APPLE)
ENDIF(APPLE) ENDIF(APPLE)
INCLUDE_DIRECTORIES( INCLUDE_DIRECTORIES(
${LIBXML2_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR}
${NEL_INCLUDE_DIR} ${NEL_INCLUDE_DIR}
${LUA_INCLUDE_DIR} ${LUA_INCLUDE_DIR}
${LIBWWW_INCLUDE_DIR} ${LIBWWW_INCLUDE_DIR}
${CURL_INCLUDE_DIRS} ${CURL_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}) ${CMAKE_CURRENT_SOURCE_DIR})
TARGET_LINK_LIBRARIES(ryzom_client ${PLATFORM_LINKFLAGS} TARGET_LINK_LIBRARIES(ryzom_client ${PLATFORM_LINKFLAGS}
${LIBXML2_LIBRARIES} ${LIBXML2_LIBRARIES}
${NELMISC_LIBRARY} ${NELMISC_LIBRARY}
ryzom_gameshare ryzom_gameshare
${NELNET_LIBRARY} ${NELNET_LIBRARY}
${NELLIGO_LIBRARY} ${NELLIGO_LIBRARY}
${NELGEORGES_LIBRARY} ${NELGEORGES_LIBRARY}
${NEL3D_LIBRARY} ${NEL3D_LIBRARY}
${LUA_LIBRARIES} ${LUA_LIBRARIES}
${CURL_LIBRARIES} ${CURL_LIBRARIES}
${NELSOUND_LIBRARY} ${NELSOUND_LIBRARY}
${NELSNDDRV_LIBRARY} ${NELSNDDRV_LIBRARY}
ryzom_clientsheets ryzom_clientsheets
${NELPACS_LIBRARY} ${NELPACS_LIBRARY}
${LIBWWW_LIBRARY} ${LIBWWW_LIBRARY}
ryzom_sevenzip ${SEVENZIP_LIBRARY}
luabind # TODO: find luabind and expat cleanly using a find script luabind # TODO: find luabind and expat cleanly using a find script
expat) expat)
IF(NOT WITH_COCOA) IF(NOT WITH_COCOA)
TARGET_LINK_LIBRARIES(ryzom_client ${X11_LIBRARIES}) TARGET_LINK_LIBRARIES(ryzom_client ${X11_LIBRARIES})
ENDIF(NOT WITH_COCOA) ENDIF(NOT WITH_COCOA)
@ -99,4 +99,4 @@ IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(ryzom_client ${CMAKE_CURRENT_SOURCE_DIR}/stdpch.h ${CMAKE_CURRENT_SOURCE_DIR}/stdpch.cpp) ADD_NATIVE_PRECOMPILED_HEADER(ryzom_client ${CMAKE_CURRENT_SOURCE_DIR}/stdpch.h ${CMAKE_CURRENT_SOURCE_DIR}/stdpch.cpp)
ENDIF(WITH_PCH) ENDIF(WITH_PCH)
INSTALL(TARGETS ryzom_client RUNTIME DESTINATION bin COMPONENT client BUNDLE DESTINATION /Applications) INSTALL(TARGETS ryzom_client RUNTIME DESTINATION ${RYZOM_BIN_PREFIX} COMPONENT client BUNDLE DESTINATION /Applications)

View file

@ -345,6 +345,16 @@ int main(int argc, char **argv)
// init the Nel context // init the Nel context
CApplicationContext *appContext = new CApplicationContext; CApplicationContext *appContext = new CApplicationContext;
// if client_default.cfg is not in current directory, use application default directory
if (!CFile::isExists("client_default.cfg"))
{
std::string currentPath = CFile::getApplicationDirectory("Ryzom");
if (!CFile::isExists(currentPath)) CFile::createDirectory(currentPath);
CPath::setCurrentPath(currentPath);
}
// temporary buffer to store Ryzom full path // temporary buffer to store Ryzom full path
char filename[1024]; char filename[1024];
@ -437,31 +447,6 @@ int main(int argc, char **argv)
GetModuleFileName(GetModuleHandle(NULL), filename, 1024); GetModuleFileName(GetModuleHandle(NULL), filename, 1024);
#else
// TODO for Linux : splashscreen
if (argc >= 3)
{
LoginLogin = argv[1];
LoginPassword = argv[2];
if (!fromString(argv[3], LoginShardId)) LoginShardId = -1;
}
else if (argc >= 2)
{
LoginLogin = argv[1];
LoginPassword = argv[2];
LoginShardId = -1;
}
strcpy(filename, argv[0]);
#endif
// initialize patch manager and set the ryzom full path, before it's used
CPatchManager *pPM = CPatchManager::getInstance();
pPM->setRyzomFilename(NLMISC::CFile::getFilename(filename));
// Delete the .bat file because it s not useful anymore // Delete the .bat file because it s not useful anymore
if (NLMISC::CFile::fileExists("updt_nl.bat")) if (NLMISC::CFile::fileExists("updt_nl.bat"))
NLMISC::CFile::deleteFile("updt_nl.bat"); NLMISC::CFile::deleteFile("updt_nl.bat");
@ -488,6 +473,31 @@ int main(int argc, char **argv)
} }
} }
#else
// TODO for Linux : splashscreen
if (argc >= 3)
{
LoginLogin = argv[1];
LoginPassword = argv[2];
if (!fromString(argv[3], LoginShardId)) LoginShardId = -1;
}
else if (argc >= 2)
{
LoginLogin = argv[1];
LoginPassword = argv[2];
LoginShardId = -1;
}
strcpy(filename, argv[0]);
#endif
// initialize patch manager and set the ryzom full path, before it's used
CPatchManager *pPM = CPatchManager::getInstance();
pPM->setRyzomFilename(NLMISC::CFile::getFilename(filename));
///////////////////////////////// /////////////////////////////////
// Initialize the application. // // Initialize the application. //
#ifndef TEST_CRASH_COUNTER #ifndef TEST_CRASH_COUNTER

View file

@ -39,6 +39,10 @@
#include "game_share/time_weather_season/time_and_season.h" #include "game_share/time_weather_season/time_and_season.h"
#include "game_share/ryzom_version.h" #include "game_share/ryzom_version.h"
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif // HAVE_CONFIG_H
/////////// ///////////
// MACRO // // MACRO //
/////////// ///////////
@ -1966,7 +1970,43 @@ void CClientConfig::serial(class NLMISC::IStream &f) throw(NLMISC::EStream)
void CClientConfig::init(const string &configFileName) void CClientConfig::init(const string &configFileName)
{ {
if(!CFile::fileExists(configFileName)) if(!CFile::fileExists(configFileName))
nlwarning("CFG::init: '%s' Not Found !!!", configFileName.c_str ()); {
std::string defaultConfigFileName = "client_default.cfg";
bool found = false;
if (CFile::isExists(defaultConfigFileName)) found = true;
#ifdef RYZOM_ETC_PREFIX
if (!found)
{
defaultConfigFileName = std::string(RYZOM_ETC_PREFIX"/") + defaultConfigFileName;
if (CFile::isExists(defaultConfigFileName)) found = true;
}
#endif // RYZOM_ETC_PREFIX
if (found)
{
// create the basic .cfg that link the default one
FILE *fp = fopen(configFileName.c_str(), "w");
if (fp == NULL)
{
nlerror ("CFG::init: Can't create config file '%s'", configFileName.c_str());
}
else
{
nlwarning("CFG::init: creating '%s' with default values", configFileName.c_str ());
}
fprintf(fp, "RootConfigFilename = \"%s\";\n", defaultConfigFileName.c_str());
#ifdef RYZOM_SHARE_PREFIX
fprintf(fp, "PreDataPath = { \"%s/data\" };\n", RYZOM_SHARE_PREFIX);
#endif // RYZOM_SHARE_PREFIX
fclose(fp);
}
else
{
nlwarning("CFG::init: '%s' Not Found !!!", defaultConfigFileName.c_str());
}
}
// if the config file will be modified, it calls automatically the function setValuesOnFileChange() // if the config file will be modified, it calls automatically the function setValuesOnFileChange()
ClientCfg.ConfigFile.setCallback (CClientConfig::setValuesOnFileChange); ClientCfg.ConfigFile.setCallback (CClientConfig::setValuesOnFileChange);

View file

@ -239,7 +239,7 @@ void CItemSheet::build(const NLGEORGES::UFormElm &item)
debug(toString("The slot name %d is Empty.", i)); debug(toString("The slot name %d is Empty.", i));
// Push the possible slots for the item in the list. // Push the possible slots for the item in the list.
SlotBF|= SINT64_CONSTANT(1)<< (SLOTTYPE::stringToSlotType(NLMISC::strupr(slotName))); SlotBF|= SINT64_CONSTANT(1)<< (SLOTTYPE::stringToSlotType(NLMISC::toUpper(slotName)));
} }
} }
} }
@ -258,7 +258,7 @@ void CItemSheet::build(const NLGEORGES::UFormElm &item)
} }
else else
{ {
Family = (ITEMFAMILY::EItemFamily) ITEMFAMILY::stringToItemFamily(NLMISC::strupr( family) ); Family = (ITEMFAMILY::EItemFamily) ITEMFAMILY::stringToItemFamily(NLMISC::toUpper( family) );
if(Family == ITEMFAMILY::UNDEFINED) if(Family == ITEMFAMILY::UNDEFINED)
debug("Item Family Undefined."); debug("Item Family Undefined.");
} }
@ -272,7 +272,7 @@ void CItemSheet::build(const NLGEORGES::UFormElm &item)
} }
else else
{ {
ItemType = (ITEM_TYPE::TItemType) ITEM_TYPE::stringToItemType(NLMISC::strupr(itemtype) ); ItemType = (ITEM_TYPE::TItemType) ITEM_TYPE::stringToItemType(NLMISC::toUpper(itemtype) );
if (ItemType == ITEM_TYPE::UNDEFINED) if (ItemType == ITEM_TYPE::UNDEFINED)
debug("Item Type Undefined."); debug("Item Type Undefined.");
} }

View file

@ -103,7 +103,7 @@ void CSBrickSheet::build (const NLGEORGES::UFormElm &root)
{ {
string sheetName= Id.toString(); string sheetName= Id.toString();
std::string::size_type end= sheetName.find(".sbrick")-2; std::string::size_type end= sheetName.find(".sbrick")-2;
BrickFamily = BRICK_FAMILIES::toSBrickFamily ( strupr(sheetName.substr(0,end)) ); BrickFamily = BRICK_FAMILIES::toSBrickFamily ( NLMISC::toUpper(sheetName.substr(0,end)) );
if(BrickFamily==BRICK_FAMILIES::Unknown) if(BrickFamily==BRICK_FAMILIES::Unknown)
nlwarning("Unknown Family for SBrick: %s", sheetName.c_str()); nlwarning("Unknown Family for SBrick: %s", sheetName.c_str());
} }

View file

@ -266,7 +266,7 @@ bool CColorSlotManager::parseTexName(const char *texName, std::string *texNameWi
static std::string nameToParse; static std::string nameToParse;
static std::string currentExt; static std::string currentExt;
static TIntCoupleVect slotsId; static TIntCoupleVect slotsId;
nameToParse = NLMISC::strupr(NLMISC::CFile::getFilenameWithoutExtension(texName)); nameToParse = NLMISC::toUpper(NLMISC::CFile::getFilenameWithoutExtension(texName));
TStrPos currPos = nameToParse.length(); TStrPos currPos = nameToParse.length();
@ -377,9 +377,8 @@ bool CColorSlotManager::changeTexName(std::string &texName, TIntCouple *slotIDs,
static TIntCoupleVect srcSlotIDs; static TIntCoupleVect srcSlotIDs;
everythingOk = true; everythingOk = true;
texNameNoExt = NLMISC::CFile::getFilenameWithoutExtension(texName); texNameNoExt = NLMISC::toUpper(NLMISC::CFile::getFilenameWithoutExtension(texName));
texExt = NLMISC::CFile::getExtension(texName); texExt = NLMISC::CFile::getExtension(texName);
NLMISC::strupr(texNameNoExt);
TTex2Slots::const_iterator texIt = _TexMap.find(texNameNoExt); TTex2Slots::const_iterator texIt = _TexMap.find(texNameNoExt);
if (texIt != _TexMap.end()) if (texIt != _TexMap.end())
{ {

View file

@ -168,7 +168,7 @@ uint TipsOfTheDayIndex;
// XML allocator functions // XML allocator functions
// Due to Bug #906, we disable the stl xml allocation // Due to Bug #906, we disable the stl xml allocation
/* /*
static volatile bool XmlAllocUsesSTL = true; static volatile bool XmlAllocUsesSTL = true;
@ -324,7 +324,7 @@ void ExitClientError (const char *format, ...)
MessageBoxW (NULL, (WCHAR*)ucstr.c_str(), (WCHAR*)CI18N::get ("TheSagaOfRyzom").c_str (), MB_OK|MB_ICONERROR); MessageBoxW (NULL, (WCHAR*)ucstr.c_str(), (WCHAR*)CI18N::get ("TheSagaOfRyzom").c_str (), MB_OK|MB_ICONERROR);
*/ */
#else #else
fprintf (stderr, str); fprintf (stderr, "%s\n", str);
#endif #endif
// Exit // Exit
extern void quitCrashReport (); extern void quitCrashReport ();
@ -691,7 +691,7 @@ void prelogInit()
// _CrtSetDbgFlag( _CRTDBG_CHECK_CRT_DF ); // _CrtSetDbgFlag( _CRTDBG_CHECK_CRT_DF );
// Init XML Lib allocator // Init XML Lib allocator
// Due to Bug #906, we disable the stl xml allocation // Due to Bug #906, we disable the stl xml allocation
// nlverify (xmlMemSetup (XmlFree4NeL, XmlMalloc4NeL, XmlRealloc4NeL, XmlStrdup4NeL) == 0); // nlverify (xmlMemSetup (XmlFree4NeL, XmlMalloc4NeL, XmlRealloc4NeL, XmlStrdup4NeL) == 0);
// Init the debug memory // Init the debug memory
@ -727,8 +727,14 @@ void prelogInit()
setReportEmailFunction ((void*)sendEmail); setReportEmailFunction ((void*)sendEmail);
setDefaultEmailParams ("smtp.nevrax.com", "", "ryzombug@nevrax.com"); setDefaultEmailParams ("smtp.nevrax.com", "", "ryzombug@nevrax.com");
// create the data dir.
if (!CFile::isExists("data")) CFile::createDirectory("data");
// create the save dir. // create the save dir.
CFile::createDirectory("save"); if (!CFile::isExists("save")) CFile::createDirectory("save");
// create the user dir.
if (!CFile::isExists("user")) CFile::createDirectory("user");
#if !FINAL_VERSION #if !FINAL_VERSION
// if we're not in final version then start the file access logger to keep track of the files that we read as we play // if we're not in final version then start the file access logger to keep track of the files that we read as we play
@ -908,6 +914,23 @@ void prelogInit()
// Set the title // Set the title
Driver->setWindowTitle(CI18N::get("TheSagaOfRyzom")); Driver->setWindowTitle(CI18N::get("TheSagaOfRyzom"));
#if defined(NL_OS_UNIX) && !defined(NL_OS_MAC)
vector<CBitmap> bitmaps;
string fileName = "/usr/share/pixmaps/ryzom.png";
CIFile file;
if (file.open(fileName))
{
CBitmap bitmap;
if (bitmap.load(file))
bitmaps.push_back(bitmap);
}
Driver->setWindowIcon(bitmaps);
#endif
sint32 posX = 0, posY = 0; sint32 posX = 0, posY = 0;
if (ClientCfg.Windowed) if (ClientCfg.Windowed)

View file

@ -71,7 +71,9 @@ class CAHDisplayInfos : public IActionHandler
{ {
// can only be used by devs and CSR or in local mode // can only be used by devs and CSR or in local mode
#if FINAL_VERSION #if FINAL_VERSION
# ifdef NL_OS_WINDOWS
if( ClientCfg.Local || hasPrivilegeDEV() || hasPrivilegeSGM() || hasPrivilegeGM() || hasPrivilegeSG() || hasPrivilegeEM() || hasPrivilegeVG() ) if( ClientCfg.Local || hasPrivilegeDEV() || hasPrivilegeSGM() || hasPrivilegeGM() || hasPrivilegeSG() || hasPrivilegeEM() || hasPrivilegeVG() )
# endif
#endif #endif
{ {
ShowInfos = (ShowInfos+1)%6; ShowInfos = (ShowInfos+1)%6;

View file

@ -595,12 +595,16 @@ void displayScreenShotSavedInfo(const string &filename)
pIM->displaySystemInfo(msg); pIM->displaySystemInfo(msg);
} }
void initScreenshot()
{
if (!CFile::isExists(ScreenshotsDirectory)) CFile::createDirectory(ScreenshotsDirectory);
}
void screenShotTGA() void screenShotTGA()
{ {
CBitmap btm; CBitmap btm;
getBuffer (btm); getBuffer (btm);
if(!ScreenshotsDirectory.empty() && !CFile::isExists(ScreenshotsDirectory)) CFile::createDirectory(ScreenshotsDirectory);
string filename = CFile::findNewFile (ScreenshotsDirectory+"screenshot.tga"); string filename = CFile::findNewFile (ScreenshotsDirectory+"screenshot.tga");
COFile fs(filename); COFile fs(filename);
btm.writeTGA(fs, 24, false); btm.writeTGA(fs, 24, false);
@ -613,7 +617,6 @@ void screenShotPNG()
CBitmap btm; CBitmap btm;
getBuffer (btm); getBuffer (btm);
if(!ScreenshotsDirectory.empty() && !CFile::isExists(ScreenshotsDirectory)) CFile::createDirectory(ScreenshotsDirectory);
string filename = CFile::findNewFile (ScreenshotsDirectory+"screenshot.png"); string filename = CFile::findNewFile (ScreenshotsDirectory+"screenshot.png");
COFile fs(filename); COFile fs(filename);
if (!btm.writePNG(fs, 24)) if (!btm.writePNG(fs, 24))
@ -634,7 +637,6 @@ void screenShotJPG()
CBitmap btm; CBitmap btm;
getBuffer (btm); getBuffer (btm);
if(!ScreenshotsDirectory.empty() && !CFile::isExists(ScreenshotsDirectory)) CFile::createDirectory(ScreenshotsDirectory);
string filename = CFile::findNewFile (ScreenshotsDirectory+"screenshot.jpg"); string filename = CFile::findNewFile (ScreenshotsDirectory+"screenshot.jpg");
COFile fs(filename); COFile fs(filename);
btm.writeJPG(fs); btm.writeJPG(fs);

View file

@ -174,6 +174,7 @@ public:
/** Capture current content of framebuffer and save the result. If a custom size is asked in ClientCfg, then the scene is rendered again /** Capture current content of framebuffer and save the result. If a custom size is asked in ClientCfg, then the scene is rendered again
* instead (possibly multiple time) * instead (possibly multiple time)
*/ */
void initScreenshot();
void screenShotTGA(); void screenShotTGA();
void screenShotPNG(); void screenShotPNG();
void screenShotJPG(); void screenShotJPG();

View file

@ -105,8 +105,7 @@ void CActionPhraseFaber::launchFaberCastWindow(sint32 memoryLine, uint memoryIn
_FaberPlanBrickFamilies.clear(); _FaberPlanBrickFamilies.clear();
if(rootBrick->Properties.size()>0) if(rootBrick->Properties.size()>0)
{ {
string prop= rootBrick->Properties[0].Text; string prop= NLMISC::toUpper(rootBrick->Properties[0].Text);
strupr(prop);
vector<string> strList; vector<string> strList;
splitString(prop, " ", strList); splitString(prop, " ", strList);
// The prop Id should be 'FPLAN:' // The prop Id should be 'FPLAN:'

View file

@ -71,6 +71,7 @@ SCharacter3DSetup::SCharacter3DSetup ()
} }
Tattoo = 0; Tattoo = 0;
EyesColor = 0; EyesColor = 0;
HairColor = 0;
CharHeight = 0.0f; CharHeight = 0.0f;
ChestWidth = 0.0f; ChestWidth = 0.0f;
ArmsWidth = 0.0f; ArmsWidth = 0.0f;

View file

@ -833,7 +833,7 @@ void CCtrlScroll::moveTargetX (sint32 dx)
_TrackPos = (sint32)factor; _TrackPos = (sint32)factor;
} }
// invlidate only position. 1 pass is sufficient // invalidate only position. 1 pass is sufficient
invalidateCoords(1); invalidateCoords(1);
} }
@ -873,7 +873,7 @@ void CCtrlScroll::moveTargetY (sint32 dy)
_TrackPos = (sint32)factor; _TrackPos = (sint32)factor;
} }
// invlidate only position. 1 pass is sufficient // invalidate only position. 1 pass is sufficient
invalidateCoords(1); invalidateCoords(1);
} }

View file

@ -370,7 +370,6 @@ HICON CCustomMouse::buildCursor(const CBitmap &src, NLMISC::CRGBA col, uint8 rot
uint mouseH = GetSystemMetrics(SM_CYCURSOR); uint mouseH = GetSystemMetrics(SM_CYCURSOR);
nlassert(src.getWidth() == mouseW); nlassert(src.getWidth() == mouseW);
nlassert(src.getHeight() == mouseH); nlassert(src.getHeight() == mouseH);
HICON result = 0;
CBitmap rotSrc = src; CBitmap rotSrc = src;
if (rot > 3) rot = 3; // mimic behavior of 'CViewRenderer::drawRotFlipBitmapTiled' (why not rot & 3 ??? ...) if (rot > 3) rot = 3; // mimic behavior of 'CViewRenderer::drawRotFlipBitmapTiled' (why not rot & 3 ??? ...)
switch(rot) switch(rot)
@ -380,62 +379,7 @@ HICON CCustomMouse::buildCursor(const CBitmap &src, NLMISC::CRGBA col, uint8 rot
case 2: rotSrc.rot90CW(); rotSrc.rot90CW(); break; case 2: rotSrc.rot90CW(); rotSrc.rot90CW(); break;
case 3: rotSrc.rot90CCW(); break; case 3: rotSrc.rot90CCW(); break;
} }
CBitmap colorBm; return rotSrc.getHICON(mouseW, mouseH, _ColorDepth == ColorDepth16 ? 16:32, col, hotSpotX, hotSpotY, true);
colorBm.resize(mouseW, mouseH, CBitmap::RGBA);
const CRGBA *srcColorPtr = (CRGBA *) &(rotSrc.getPixels()[0]);
const CRGBA *srcColorPtrLast = srcColorPtr + (mouseW * mouseH);
CRGBA *destColorPtr = (CRGBA *) &(colorBm.getPixels()[0]);
static volatile uint8 alphaThreshold = 127;
do
{
destColorPtr->modulateFromColor(*srcColorPtr, col);
std::swap(destColorPtr->R, destColorPtr->B);
++ srcColorPtr;
++ destColorPtr;
}
while (srcColorPtr != srcColorPtrLast);
//
HBITMAP colorHbm = 0;
HBITMAP maskHbm = 0;
//
if (_ColorDepth == ColorDepth16)
{
std::vector<uint16> colorBm16(colorBm.getWidth() * colorBm.getHeight());
const CRGBA *src32 = (const CRGBA *) &colorBm.getPixels(0)[0];
for (uint k = 0;k < colorBm16.size(); ++k)
{
colorBm16[k] = ((uint16)(src32[k].R&0xf8)>>3) | ((uint16)(src32[k].G&0xfc)<<3) | ((uint16)(src32[k].B & 0xf8)<<8);
}
colorHbm = CreateBitmap(mouseW, mouseH, 1, 16, &colorBm16[0]);
std::vector<uint8> bitMask((colorBm.getWidth() * colorBm.getHeight() + 7) / 8, 0);
for (uint k = 0;k < colorBm16.size(); ++k)
{
if (src32[k].A <= 120)
{
bitMask[k / 8] |= (0x80 >> (k & 7));
}
}
maskHbm = CreateBitmap(mouseW, mouseH, 1, 1, &bitMask[0]);
}
else
{
colorHbm = CreateBitmap(mouseW, mouseH, 1, 32, &colorBm.getPixels(0)[0]);
maskHbm = CreateBitmap(mouseW, mouseH, 1, 32, &colorBm.getPixels(0)[0]);
}
ICONINFO iconInfo;
iconInfo.fIcon = FALSE;
iconInfo.xHotspot = (DWORD) hotSpotX;
iconInfo.yHotspot = (DWORD) hotSpotY;
iconInfo.hbmMask = maskHbm;
iconInfo.hbmColor = colorHbm;
if (colorHbm && maskHbm)
{
result = CreateIconIndirect(&iconInfo);
}
//
if (colorHbm) DeleteObject(colorHbm);
if (maskHbm) DeleteObject(maskHbm);
return result;
} }

View file

@ -378,9 +378,8 @@ bool CCtrlSheetInfo::parseCtrlInfo(xmlNodePtr cur, CInterfaceGroup * /* parentGr
// The string may have multiple brick type separated by | // The string may have multiple brick type separated by |
string brickTypeArray= (const char*)prop; string brickTypeArray= (const char*)prop;
strupr(brickTypeArray);
vector<string> strList; vector<string> strList;
NLMISC::splitString(brickTypeArray, "|", strList); NLMISC::splitString(NLMISC::toUpper(brickTypeArray), "|", strList);
// Test All words // Test All words
for(uint i=0;i<strList.size();i++) for(uint i=0;i<strList.size();i++)
@ -406,8 +405,7 @@ bool CCtrlSheetInfo::parseCtrlInfo(xmlNodePtr cur, CInterfaceGroup * /* parentGr
if(prop) if(prop)
{ {
string str= prop; string str= prop;
strupr(str); _ItemSlot= SLOTTYPE::stringToSlotType(NLMISC::toUpper(str));
_ItemSlot= SLOTTYPE::stringToSlotType(str);
} }
// _AutoGrayed // _AutoGrayed

View file

@ -396,10 +396,9 @@ CModalContainerEditCmd::CModalContainerEditCmd()
void CModalContainerEditCmd::create(const std::string &name, bool bDefKey, bool allowAllActions) void CModalContainerEditCmd::create(const std::string &name, bool bDefKey, bool allowAllActions)
{ {
CInterfaceManager *pIM = CInterfaceManager::getInstance(); CInterfaceManager *pIM = CInterfaceManager::getInstance();
string prefix = name; string prefix = NLMISC::toUpper(name);
CanDefineKey = bDefKey; CanDefineKey = bDefKey;
_AllowAllActions = allowAllActions; _AllowAllActions = allowAllActions;
prefix = strupr(prefix);
prefix = string(DB_EDITCMD_PREFIX) + string(":") + prefix + string(":"); prefix = string(DB_EDITCMD_PREFIX) + string(":") + prefix + string(":");
DbComboSelCat = prefix + DB_EDITCMD_COMBO_SELECT_CATEGORY; DbComboSelCat = prefix + DB_EDITCMD_COMBO_SELECT_CATEGORY;
DbComboSelAct = prefix + DB_EDITCMD_COMBO_SELECT_ACTION; DbComboSelAct = prefix + DB_EDITCMD_COMBO_SELECT_ACTION;

View file

@ -611,7 +611,7 @@ void CViewRenderer::drawQuad(sint layerId, const NLMISC::CQuadUV &quadUV, sint32
std::swap(pUV0, pUV1); std::swap(pUV0, pUV1);
} }
nlassert(count <= maxNumCorners); nlassert(count <= (sint)maxNumCorners);
if (count >= 3) if (count >= 3)
{ {
count -= 2; count -= 2;
@ -1088,7 +1088,7 @@ CRGBA CViewRenderer::getTextureColor(sint32 id, sint32 x, sint32 y)
sint32 CViewRenderer::getTypoTextureW(char c) sint32 CViewRenderer::getTypoTextureW(char c)
{ {
if ((c>=0) && (c<NumTypoChar)) if ((c>=0) && (c<NumTypoChar))
return _TypoCharWs[c]; return _TypoCharWs[(uint)c];
else else
return 1; return 1;
} }
@ -1103,7 +1103,7 @@ sint32 CViewRenderer::getTypoTextureH(char /* c */)
sint32 CViewRenderer::getTypoTextureId(char c) sint32 CViewRenderer::getTypoTextureId(char c)
{ {
if ((c>=0) && (c<NumTypoChar)) if ((c>=0) && (c<NumTypoChar))
return _TypoCharToTextureIds[c]; return _TypoCharToTextureIds[(uint)c];
else else
return -1; return -1;
} }

View file

@ -1443,6 +1443,9 @@ bool mainLoop()
// initialize the structure for the ping. // initialize the structure for the ping.
Ping.init(); Ping.init();
// initialize screenshots directory
initScreenshot();
// Call a function for a demo to init. // Call a function for a demo to init.
if (ClientCfg.Local) if (ClientCfg.Local)
@ -3092,15 +3095,15 @@ void displayDebugFps()
line = 0.9f; line = 0.9f;
// Ms per frame // Ms per frame
{ {
float spf = smoothFPS.getSmoothValue ();
// Ms per frame // Ms per frame
TextContext->printfAt(0.1f, line, "%.1f ms", smoothFPS.getSmoothValue ()*1000); TextContext->printfAt(0.1f, line, "FPS %.1f ms - %.1f fps", spf*1000, 1.f/spf);
line-= lineStep; line-= lineStep;
// More Smoothed Ms per frame // More Smoothed Ms per frame
TextContext->printfAt(0.1f, line, "%.1f ms", moreSmoothFPS.getSmoothValue ()*1000); spf = moreSmoothFPS.getSmoothValue ();
TextContext->printfAt(0.1f, line, "Smoothed FPS %.1f ms - %.1f fps", spf*1000, 1.f/spf);
line-= lineStep; line-= lineStep;
} }
} }
static NLMISC::CRefPtr<CInterfaceElement> HighlightedDebugUI; static NLMISC::CRefPtr<CInterfaceElement> HighlightedDebugUI;

View file

@ -3166,7 +3166,7 @@ private:
ucstring web_app; ucstring web_app;
uint i; uint i;
const uint digitStart= 6; const uint digitStart= 6;
const uint digitMaxEnd= contentStr.size(); const uint digitMaxEnd= (uint)contentStr.size();
is_webig = true; is_webig = true;

View file

@ -0,0 +1,4 @@
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/ryzom.desktop.in" "${CMAKE_CURRENT_BINARY_DIR}/ryzom.desktop")
INSTALL(FILES ryzom.png DESTINATION share/pixmaps)
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/ryzom.desktop" DESTINATION share/applications)

View file

@ -0,0 +1,13 @@
[Desktop Entry]
Version=1.0
Name=Ryzom
Name[ru]=Ризом
Type=Application
GenericName=ryzom
Comment=Ryzom client
Comment[fr_FR]=Client Ryzom
Exec=${RYZOM_BIN_PREFIX}/ryzom_client
Icon=ryzom
Terminal=false
Hidden=false
Categories=Game;RolePlaying;

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

View file

@ -1 +1,10 @@
ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(src)
#ADD_CUSTOM_COMMAND(OUTPUT "${CMAKE_BINARY_DIR}/share/data_common.bnp"
# COMMAND bnp_make -p ${CMAKE_CURRENT_SOURCE_DIR}/data_common ${CMAKE_BINARY_DIR}/share > /dev/null)
#ADD_CUSTOM_TARGET(data_common ALL
# DEPENDS "${CMAKE_BINARY_DIR}/share/data_common.bnp")
#INSTALL(TARGETS data_common ARCHIVE DESTINATION ${RYZOM_SHARE_PREFIX}/data)
#INSTALL(FILES "${CMAKE_BINARY_DIR}/share/data_common.bnp" DESTINATION "${RYZOM_SHARE_PREFIX}/data")

View file

@ -3254,10 +3254,6 @@ void CServerEditionModule::hibernateSession(NLNET::IModuleProxy *sender, TSessio
} }
static const std::string _SubRep = "r2/";
//static const std::string _SubRep = "";
std::string CServerEditionModule::getSessionFilename(TSessionId sessionId, TCharId charId) const std::string CServerEditionModule::getSessionFilename(TSessionId sessionId, TCharId charId) const
{ {
return NLMISC::toString("r2_session_%.08u_%08u.dat", sessionId.asInt(), charId ); return NLMISC::toString("r2_session_%.08u_%08u.dat", sessionId.asInt(), charId );
@ -3265,7 +3261,7 @@ std::string CServerEditionModule::getSessionFilename(TSessionId sessionId, TChar
std::string CServerEditionModule::getOverrideRingAccessFilename() const std::string CServerEditionModule::getOverrideRingAccessFilename() const
{ {
return NLMISC::toString("r2/override_ring_access.txt", _SubRep.c_str()); return "r2/override_ring_access.txt";
} }
//implementation of characterKicked and command //implementation of characterKicked and command

View file

@ -1,3 +1,6 @@
#ifndef CONFIG_H
#define CONFIG_H
#cmakedefine HAVE_DL_H 1 #cmakedefine HAVE_DL_H 1
#cmakedefine HAVE_EXECINFO_H 1 #cmakedefine HAVE_EXECINFO_H 1
#cmakedefine HAVE_ICONV 1 #cmakedefine HAVE_ICONV 1
@ -30,3 +33,10 @@
#cmakedefine HAVE_STRTOULL 1 #cmakedefine HAVE_STRTOULL 1
#cmakedefine HAVE_STATVFS 1 #cmakedefine HAVE_STATVFS 1
#cmakedefine HAVE_STAT64 1 #cmakedefine HAVE_STAT64 1
#cmakedefine RYZOM_PREFIX "${RYZOM_PREFIX}"
#cmakedefine RYZOM_BIN_PREFIX "${RYZOM_BIN_PREFIX}"
#cmakedefine RYZOM_ETC_PREFIX "${RYZOM_ETC_PREFIX}"
#cmakedefine RYZOM_SHARE_PREFIX "${RYZOM_SHARE_PREFIX}"
#endif // CONFIG_H

View file

@ -82,7 +82,7 @@ void CPage::init (uint id, const char *name, bool bold, uint icon, uint resid, C
Parent = parent; Parent = parent;
Icon = icon; Icon = icon;
ResId = resid; ResId = resid;
ChildId = parent->Children.size (); ChildId = (uint)parent->Children.size ();
if (parent) if (parent)
parent->Children.push_back (this); parent->Children.push_back (this);
Name = name; Name = name;

View file

@ -35,7 +35,6 @@
// Client // Client
#include "sheets_packer_init.h" #include "sheets_packer_init.h"
#include "sheets_packer_release.h"
/////////// ///////////

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="9.00" Version="9,00"
Name="sheets_packer" Name="sheets_packer"
ProjectGUID="{079E2366-3714-4B09-B553-41A44D290F04}" ProjectGUID="{079E2366-3714-4B09-B553-41A44D290F04}"
TargetFrameworkVersion="0" TargetFrameworkVersion="0"
@ -426,14 +426,6 @@
RelativePath=".\sheets_packer_init.h" RelativePath=".\sheets_packer_init.h"
> >
</File> </File>
<File
RelativePath=".\sheets_packer_release.cpp"
>
</File>
<File
RelativePath=".\sheets_packer_release.h"
>
</File>
<File <File
RelativePath=".\stdpch.cpp" RelativePath=".\stdpch.cpp"
> >

View file

@ -30,8 +30,6 @@
#include "nel/ligo/ligo_config.h" #include "nel/ligo/ligo_config.h"
#include "nel/ligo/primitive.h" #include "nel/ligo/primitive.h"
// 3D Interface.
//#include "nel/3d/u_driver.h"
// Application // Application
#include "sheets_packer_init.h" #include "sheets_packer_init.h"
#include "sheets_packer_cfg.h" #include "sheets_packer_cfg.h"
@ -50,8 +48,7 @@ using namespace std;
///////////// /////////////
// GLOBALS // // GLOBALS //
///////////// /////////////
//UDriver *Driver = 0; CFileDisplayer *fd = NULL;
CFileDisplayer fd("sheets_packer.log", true, "SHEETS_PACKER.LOG");
NLLIGO::CLigoConfig LigoConfig; NLLIGO::CLigoConfig LigoConfig;
@ -68,14 +65,16 @@ bool init()
// Add a displayer for Debug Infos. // Add a displayer for Debug Infos.
createDebug(); createDebug();
fd = new CFileDisplayer(getLogDirectory() + "sheets_packer.log", true, "SHEETS_PACKER.LOG");
// register ligo 'standard' class // register ligo 'standard' class
NLLIGO::Register(); NLLIGO::Register();
DebugLog->addDisplayer (&fd); DebugLog->addDisplayer (fd);
InfoLog->addDisplayer (&fd); InfoLog->addDisplayer (fd);
WarningLog->addDisplayer (&fd); WarningLog->addDisplayer (fd);
ErrorLog->addDisplayer (&fd); ErrorLog->addDisplayer (fd);
AssertLog->addDisplayer (&fd); AssertLog->addDisplayer (fd);
// Load the application configuration. // Load the application configuration.
nlinfo("Loading config file..."); nlinfo("Loading config file...");
@ -104,6 +103,23 @@ bool init()
// The init is a success. // The init is a success.
return true; return true;
}// init // }// init //
//---------------------------------------------------
// release :
// Release all the memory.
//---------------------------------------------------
void release()
{
DebugLog->removeDisplayer ("SHEETS_PACKER.LOG");
InfoLog->removeDisplayer ("SHEETS_PACKER.LOG");
WarningLog->removeDisplayer ("SHEETS_PACKER.LOG");
ErrorLog->removeDisplayer ("SHEETS_PACKER.LOG");
AssertLog->removeDisplayer ("SHEETS_PACKER.LOG");
delete fd;
fd = NULL;
}// release //
void outputSomeDebugInfoForPackedSheetCrash() void outputSomeDebugInfoForPackedSheetCrash()
{ {
} }

View file

@ -27,6 +27,8 @@
// Initialize the application. // Initialize the application.
bool init(); bool init();
// Release all.
void release();
#endif // TL_SHEETS_PACKER_INIT_H #endif // TL_SHEETS_PACKER_INIT_H

View file

@ -1,49 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// 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 //
/////////////
#include "stdpch.h"
#include "sheets_packer_release.h"
#include "nel/misc/debug.h"
///////////
// USING //
///////////
using namespace NLMISC;
///////////////
// FUNCTIONS //
///////////////
//---------------------------------------------------
// release :
// Release all the memory.
//---------------------------------------------------
void release()
{
DebugLog->removeDisplayer ("SHEETS_PACKER.LOG");
InfoLog->removeDisplayer ("SHEETS_PACKER.LOG");
WarningLog->removeDisplayer ("SHEETS_PACKER.LOG");
ErrorLog->removeDisplayer ("SHEETS_PACKER.LOG");
AssertLog->removeDisplayer ("SHEETS_PACKER.LOG");
}// release //

View file

@ -1,33 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// 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 TL_SHEETS_PACKER_RELEASE_H
#define TL_SHEETS_PACKER_RELEASE_H
#include "nel/misc/types_nl.h"
// Release all.
void release();
#endif // TL_SHEETS_PACKER_RELEASE_H
/* End of sheets_packer_release.h */