merge from default

This commit is contained in:
sfb 2011-06-09 14:29:05 -05:00
commit db0ef3fb3d
366 changed files with 5072 additions and 1707 deletions

View file

@ -90,27 +90,11 @@ NL_CONFIGURE_CHECKS()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
#Platform specifics #Platform specifics
SETUP_EXTERNAL()
IF(WIN32) IF(WIN32)
INCLUDE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake)
SET(WINSOCK2_LIB ws2_32.lib) SET(WINSOCK2_LIB ws2_32.lib)
FIND_PACKAGE(External REQUIRED)
IF(${CMAKE_MAKE_PROGRAM} MATCHES "Common7")
# convert IDE fullpath to VC++ path
STRING(REGEX REPLACE "Common7/IDE/.+" "VC" VC_DIR ${CMAKE_MAKE_PROGRAM})
ELSE(${CMAKE_MAKE_PROGRAM} MATCHES "Common7")
IF(${CMAKE_CXX_COMPILER} MATCHES "VC")
# convert compiler fullpath to VC++ path
STRING(REGEX REPLACE "VC/bin/.+" "VC" VC_DIR ${CMAKE_CXX_COMPILER})
ELSE(${CMAKE_CXX_COMPILER} MATCHES "VC")
# Hack for Visual C++ 2010
GET_FILENAME_COMPONENT(VC_ROOT_PATH "[HKEY_CURRENT_USER\\Software\\Microsoft\\VCExpress\\10.0_Config;InstallDir]" ABSOLUTE)
# convert IDE fullpath to VC++ path
STRING(REGEX REPLACE "Common7/.*" "VC" VC_DIR ${VC_ROOT_PATH})
ENDIF(${CMAKE_CXX_COMPILER} MATCHES "VC")
ENDIF(${CMAKE_MAKE_PROGRAM} MATCHES "Common7")
IF(WITH_MFC) IF(WITH_MFC)
FIND_PACKAGE(CustomMFC REQUIRED) FIND_PACKAGE(CustomMFC REQUIRED)
ENDIF(WITH_MFC) ENDIF(WITH_MFC)
@ -130,21 +114,10 @@ IF(WITH_STATIC)
IF(APPLE) IF(APPLE)
FIND_PACKAGE(Iconv REQUIRED) FIND_PACKAGE(Iconv REQUIRED)
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${ICONV_LIBRARIES}) SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${ICONV_LIBRARIES})
INCLUDE_DIRECTORIES(${ICONV_INCLUDE_DIR})
ENDIF(APPLE) ENDIF(APPLE)
ENDIF(WITH_STATIC) ENDIF(WITH_STATIC)
IF(WITH_STLPORT)
FIND_PACKAGE(STLport REQUIRED)
INCLUDE_DIRECTORIES(${STLPORT_INCLUDE_DIR})
IF(WIN32)
SET(VC_INCLUDE_DIR "${VC_DIR}/include")
FIND_PACKAGE(WindowsSDK REQUIRED)
# use VC++ and Windows SDK include paths
INCLUDE_DIRECTORIES(${VC_INCLUDE_DIR} ${WINSDK_INCLUDE_DIR})
ENDIF(WIN32)
ENDIF(WITH_STLPORT)
INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/PCHSupport.cmake) INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/PCHSupport.cmake)
IF(FINAL_VERSION) IF(FINAL_VERSION)

View file

@ -3,6 +3,7 @@
# The following values are defined # The following values are defined
# EXTERNAL_PATH - where to find external # EXTERNAL_PATH - where to find external
# EXTERNAL_INCLUDE_PATH - where to find external includes # EXTERNAL_INCLUDE_PATH - where to find external includes
# EXTERNAL_BINARY_PATH - where to find external binaries
# EXTERNAL_LIBRARY_PATH - where to find external libraries # EXTERNAL_LIBRARY_PATH - where to find external libraries
# EXTERNAL_FOUND - True if the external libraries are available # EXTERNAL_FOUND - True if the external libraries are available
@ -34,6 +35,13 @@ IF(EXTERNAL_PATH)
SET(EXTERNAL_FOUND TRUE) SET(EXTERNAL_FOUND TRUE)
SET(EXTERNAL_INCLUDE_PATH "${EXTERNAL_PATH}/include") SET(EXTERNAL_INCLUDE_PATH "${EXTERNAL_PATH}/include")
# Using 32 or 64 bits binaries
IF(TARGET_X64)
SET(EXTERNAL_BINARY_PATH "${EXTERNAL_PATH}/bin64")
ELSE(TARGET_X64)
SET(EXTERNAL_BINARY_PATH "${EXTERNAL_PATH}/bin")
ENDIF(TARGET_X64)
# Using 32 or 64 bits libraries # Using 32 or 64 bits libraries
IF(TARGET_X64) IF(TARGET_X64)
SET(EXTERNAL_LIBRARY_PATH "${EXTERNAL_PATH}/lib64") SET(EXTERNAL_LIBRARY_PATH "${EXTERNAL_PATH}/lib64")
@ -61,4 +69,4 @@ ELSE(EXTERNAL_FOUND)
ENDIF(External_FIND_REQUIRED) ENDIF(External_FIND_REQUIRED)
ENDIF(EXTERNAL_FOUND) ENDIF(EXTERNAL_FOUND)
MARK_AS_ADVANCED(EXTERNAL_INCLUDE_PATH EXTERNAL_LIBRARY_PATH) MARK_AS_ADVANCED(EXTERNAL_INCLUDE_PATH EXTERNAL_BINARY_PATH EXTERNAL_LIBRARY_PATH)

View file

@ -52,13 +52,23 @@ MACRO(_PCH_GET_COMPILE_FLAGS _out_compile_flags)
LIST(APPEND ${_out_compile_flags} " ${_PCH_include_prefix}\"${item}\"") LIST(APPEND ${_out_compile_flags} " ${_PCH_include_prefix}\"${item}\"")
ENDFOREACH(item) ENDFOREACH(item)
# Required for CMake 2.6
SET(GLOBAL_DEFINITIONS "")
GET_DIRECTORY_PROPERTY(DEFINITIONS COMPILE_DEFINITIONS)
FOREACH(item ${DEFINITIONS})
LIST(APPEND GLOBAL_DEFINITIONS -D${item})
ENDFOREACH(item)
GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS) GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS)
GET_DIRECTORY_PROPERTY(_global_definitions DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITIONS) GET_DIRECTORY_PROPERTY(_directory_definitions DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITIONS)
LIST(APPEND ${_out_compile_flags} ${GLOBAL_DEFINITIONS})
LIST(APPEND ${_out_compile_flags} ${_directory_flags}) LIST(APPEND ${_out_compile_flags} ${_directory_flags})
LIST(APPEND ${_out_compile_flags} ${_global_definitions}) LIST(APPEND ${_out_compile_flags} ${_directory_definitions})
LIST(APPEND ${_out_compile_flags} ${CMAKE_CXX_FLAGS}) LIST(APPEND ${_out_compile_flags} ${CMAKE_CXX_FLAGS})
# Format definitions and remove duplicates
SEPARATE_ARGUMENTS(${_out_compile_flags}) SEPARATE_ARGUMENTS(${_out_compile_flags})
LIST(REMOVE_DUPLICATES ${_out_compile_flags})
ENDMACRO(_PCH_GET_COMPILE_FLAGS) ENDMACRO(_PCH_GET_COMPILE_FLAGS)
MACRO(_PCH_GET_PDB_FILENAME out_filename _target) MACRO(_PCH_GET_PDB_FILENAME out_filename _target)
@ -134,7 +144,9 @@ MACRO(ADD_PRECOMPILED_HEADER_TO_TARGET _targetName _input _pch_output_to_use )
ENDIF(CMAKE_COMPILER_IS_GNUCXX) ENDIF(CMAKE_COMPILER_IS_GNUCXX)
SET_TARGET_PROPERTIES(${_targetName} PROPERTIES COMPILE_FLAGS ${_target_cflags}) SET_TARGET_PROPERTIES(${_targetName} PROPERTIES COMPILE_FLAGS ${_target_cflags})
SET_TARGET_PROPERTIES(${_targetName}_pch_dephelp PROPERTIES COMPILE_FLAGS ${_target_cflags}) IF(oldProps)
SET_TARGET_PROPERTIES(${_targetName}_pch_dephelp PROPERTIES COMPILE_FLAGS ${oldProps})
ENDIF(oldProps)
ADD_CUSTOM_TARGET(pch_Generate_${_targetName} DEPENDS ${_pch_output_to_use}) ADD_CUSTOM_TARGET(pch_Generate_${_targetName} DEPENDS ${_pch_output_to_use})
ADD_DEPENDENCIES(${_targetName} pch_Generate_${_targetName}) ADD_DEPENDENCIES(${_targetName} pch_Generate_${_targetName})
ENDMACRO(ADD_PRECOMPILED_HEADER_TO_TARGET) ENDMACRO(ADD_PRECOMPILED_HEADER_TO_TARGET)

View file

@ -496,3 +496,44 @@ MACRO(RYZOM_SETUP_PREFIX_PATHS)
ENDIF(NOT RYZOM_GAMES_PREFIX) ENDIF(NOT RYZOM_GAMES_PREFIX)
ENDMACRO(RYZOM_SETUP_PREFIX_PATHS) ENDMACRO(RYZOM_SETUP_PREFIX_PATHS)
MACRO(SETUP_EXTERNAL)
IF(WIN32)
FIND_PACKAGE(External REQUIRED)
INCLUDE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake)
IF(MSVC10)
GET_FILENAME_COMPONENT(VC_ROOT_DIR "[HKEY_CURRENT_USER\\Software\\Microsoft\\VisualStudio\\10.0_Config;InstallDir]" ABSOLUTE)
# VC_ROOT_DIR is set to "registry" when a key is not found
IF(VC_ROOT_DIR MATCHES "registry")
GET_FILENAME_COMPONENT(VC_ROOT_DIR "[HKEY_CURRENT_USER\\Software\\Microsoft\\VCExpress\\10.0_Config;InstallDir]" ABSOLUTE)
IF(VC_ROOT_DIR MATCHES "registry")
MESSAGE(FATAL_ERROR "Unable to find VC++ 2010 directory!")
ENDIF(VC_ROOT_DIR MATCHES "registry")
ENDIF(VC_ROOT_DIR MATCHES "registry")
# convert IDE fullpath to VC++ path
STRING(REGEX REPLACE "Common7/.*" "VC" VC_DIR ${VC_ROOT_DIR})
ELSE(MSVC10)
IF(${CMAKE_MAKE_PROGRAM} MATCHES "Common7")
# convert IDE fullpath to VC++ path
STRING(REGEX REPLACE "Common7/.*" "VC" VC_DIR ${CMAKE_MAKE_PROGRAM})
ELSE(${CMAKE_MAKE_PROGRAM} MATCHES "Common7")
# convert compiler fullpath to VC++ path
STRING(REGEX REPLACE "VC/bin/.+" "VC" VC_DIR ${CMAKE_CXX_COMPILER})
ENDIF(${CMAKE_MAKE_PROGRAM} MATCHES "Common7")
ENDIF(MSVC10)
ENDIF(WIN32)
IF(WITH_STLPORT)
FIND_PACKAGE(STLport REQUIRED)
INCLUDE_DIRECTORIES(${STLPORT_INCLUDE_DIR})
IF(WIN32)
SET(VC_INCLUDE_DIR "${VC_DIR}/include")
FIND_PACKAGE(WindowsSDK REQUIRED)
# use VC++ and Windows SDK include paths
INCLUDE_DIRECTORIES(${VC_INCLUDE_DIR} ${WINSDK_INCLUDE_DIR})
ENDIF(WIN32)
ENDIF(WITH_STLPORT)
ENDMACRO(SETUP_EXTERNAL)

View file

@ -107,7 +107,7 @@ public:
bool Visible; bool Visible;
/// Precomputed Lighting. /// Precomputed Lighting.
// If true (false by default), then the instance don't cast shadow (used by ig_lighter.exe). // If true (false by default), then the instance don't cast shadow (used by ig_lighter).
bool DontCastShadow; bool DontCastShadow;
// If true (false by default), then the instance's lighting will not be precomputed. // If true (false by default), then the instance's lighting will not be precomputed.
bool AvoidStaticLightPreCompute; bool AvoidStaticLightPreCompute;
@ -120,7 +120,7 @@ public:
* If 0xFF => take Ambient of the sun. * If 0xFF => take Ambient of the sun.
*/ */
uint8 LocalAmbientId; uint8 LocalAmbientId;
/** if true (false by default), the instance don't cast shadow, but ONLY FOR ig_lighter.exe (ig_lighter_lib) /** if true (false by default), the instance don't cast shadow, but ONLY FOR ig_lighter (ig_lighter_lib)
* (zone_lighter and zone_ig_lighter ignore it). * (zone_lighter and zone_ig_lighter ignore it).
* This is a special trick for the "Matis Serre" where the exterior mesh cast shadow in the interior, but * This is a special trick for the "Matis Serre" where the exterior mesh cast shadow in the interior, but
* is not visible in the interior in realTime because of cluster clipping.... omg :( * is not visible in the interior in realTime because of cluster clipping.... omg :(

View file

@ -697,6 +697,7 @@ public:
virtual bool addLinearFloatKey(const UKeyLinearFloat &key) virtual bool addLinearFloatKey(const UKeyLinearFloat &key)
{ {
CKeyFloat k; CKeyFloat k;
k.OODeltaTime= 0.f;
k.Value= key.Value; k.Value= key.Value;
addKey(k, key.Time); addKey(k, key.Time);
return true; return true;

View file

@ -142,11 +142,14 @@ namespace CEGUI
void captureCursor(bool capture) { void captureCursor(bool capture) {
m_Captured=capture; m_Captured=capture;
if(capture) { if(capture)
{
m_Driver->setCapture(true); m_Driver->setCapture(true);
m_Driver->showCursor(false); m_Driver->showCursor(false);
m_InputDriver.activateMouse(); m_InputDriver.activateMouse();
} else { }
else
{
m_Driver->setCapture(false); m_Driver->setCapture(false);
m_Driver->showCursor(true); m_Driver->showCursor(true);
m_InputDriver.deactivateMouse(); m_InputDriver.deactivateMouse();
@ -178,7 +181,8 @@ namespace CEGUI
class NeLInputDriver : public NLMISC::IEventListener class NeLInputDriver : public NLMISC::IEventListener
{ {
public: public:
NeLInputDriver() { NeLInputDriver()
{
m_MouseX=0.5f; m_MouseX=0.5f;
m_MouseY=0.5f; m_MouseY=0.5f;
m_Active=false; m_Active=false;
@ -189,7 +193,8 @@ namespace CEGUI
} }
virtual ~NeLInputDriver() { ; } virtual ~NeLInputDriver() { ; }
void addToServer(NLMISC::CEventServer& server) { void addToServer(NLMISC::CEventServer& server)
{
server.addListener(NLMISC::EventMouseMoveId, this); server.addListener(NLMISC::EventMouseMoveId, this);
server.addListener(NLMISC::EventMouseDownId, this); server.addListener(NLMISC::EventMouseDownId, this);
server.addListener(NLMISC::EventMouseUpId, this); server.addListener(NLMISC::EventMouseUpId, this);
@ -200,7 +205,8 @@ namespace CEGUI
m_AsyncListener.addToServer(server); m_AsyncListener.addToServer(server);
} }
void removeFromServer(NLMISC::CEventServer& server) { void removeFromServer(NLMISC::CEventServer& server)
{
server.removeListener(NLMISC::EventMouseMoveId, this); server.removeListener(NLMISC::EventMouseMoveId, this);
server.removeListener(NLMISC::EventMouseDownId, this); server.removeListener(NLMISC::EventMouseDownId, this);
server.removeListener(NLMISC::EventMouseUpId, this); server.removeListener(NLMISC::EventMouseUpId, this);
@ -226,9 +232,11 @@ namespace CEGUI
* *
* \param event An event, probably a CEventMouse or CEventKey/Char. * \param event An event, probably a CEventMouse or CEventKey/Char.
*/ */
virtual void operator ()(const NLMISC::CEvent& event) { virtual void operator ()(const NLMISC::CEvent& event)
{
// don't process any input if we're inactive. // don't process any input if we're inactive.
if(m_Active==false) { if(m_Active==false)
{
return; // not processing ANY input return; // not processing ANY input
} }
@ -236,36 +244,51 @@ namespace CEGUI
{ {
// otherwise, on with the festivities. // otherwise, on with the festivities.
// catch ALL mouse event, just in case. // catch ALL mouse event, just in case.
if(event==NLMISC::EventMouseDownId||event==NLMISC::EventMouseUpId||event==NLMISC::EventMouseMoveId||event==NLMISC::EventMouseDblClkId||event==NLMISC::EventMouseWheelId) { if(event==NLMISC::EventMouseDownId||event==NLMISC::EventMouseUpId||event==NLMISC::EventMouseMoveId||event==NLMISC::EventMouseDblClkId||event==NLMISC::EventMouseWheelId)
if(!m_MouseActive) { {
if(!m_MouseActive)
{
// we're not processing any mouse activity. The cursor isn't captured maybe? // we're not processing any mouse activity. The cursor isn't captured maybe?
return; return;
} }
NLMISC::CEventMouse *mouseEvent=(NLMISC::CEventMouse *)&event; NLMISC::CEventMouse *mouseEvent=(NLMISC::CEventMouse *)&event;
// a mouse button was pressed. // a mouse button was pressed.
if(event == NLMISC::EventMouseDownId) { if(event == NLMISC::EventMouseDownId)
{
// it was the left button... // it was the left button...
if (mouseEvent->Button & NLMISC::leftButton) { if (mouseEvent->Button & NLMISC::leftButton)
{
CEGUI::System::getSingleton().injectMouseButtonDown(CEGUI::LeftButton); CEGUI::System::getSingleton().injectMouseButtonDown(CEGUI::LeftButton);
// it was the right button... // it was the right button...
} else if (mouseEvent->Button & NLMISC::rightButton) { }
else if (mouseEvent->Button & NLMISC::rightButton)
{
CEGUI::System::getSingleton().injectMouseButtonDown(CEGUI::RightButton); CEGUI::System::getSingleton().injectMouseButtonDown(CEGUI::RightButton);
} else if (mouseEvent->Button & NLMISC::middleButton) { }
else if (mouseEvent->Button & NLMISC::middleButton)
{
CEGUI::System::getSingleton().injectMouseButtonDown(CEGUI::MiddleButton); CEGUI::System::getSingleton().injectMouseButtonDown(CEGUI::MiddleButton);
} }
// a mouse button was released // a mouse button was released
} else if (event == NLMISC::EventMouseUpId) { }
else if (event == NLMISC::EventMouseUpId)
{
// it was the left button... // it was the left button...
if(mouseEvent->Button & NLMISC::leftButton) { if(mouseEvent->Button & NLMISC::leftButton)
{
CEGUI::System::getSingleton().injectMouseButtonUp(CEGUI::LeftButton); CEGUI::System::getSingleton().injectMouseButtonUp(CEGUI::LeftButton);
// it was the right button... // it was the right button...
} else if (mouseEvent->Button & NLMISC::rightButton) { }
else if (mouseEvent->Button & NLMISC::rightButton)
{
CEGUI::System::getSingleton().injectMouseButtonUp(CEGUI::RightButton); CEGUI::System::getSingleton().injectMouseButtonUp(CEGUI::RightButton);
} else if (mouseEvent->Button & NLMISC::middleButton) { } else if (mouseEvent->Button & NLMISC::middleButton) {
CEGUI::System::getSingleton().injectMouseButtonUp(CEGUI::MiddleButton); CEGUI::System::getSingleton().injectMouseButtonUp(CEGUI::MiddleButton);
} }
} else if (event == NLMISC::EventMouseMoveId) { }
else if (event == NLMISC::EventMouseMoveId)
{
// convert into screen coordinates. // convert into screen coordinates.
float delta_x=(float)(mouseEvent->X - m_MouseX)*m_Width; float delta_x=(float)(mouseEvent->X - m_MouseX)*m_Width;
float delta_y=(float)((1.0f-mouseEvent->Y) - m_MouseY)*m_Height; float delta_y=(float)((1.0f-mouseEvent->Y) - m_MouseY)*m_Height;
@ -276,18 +299,26 @@ namespace CEGUI
// and save for delta. // and save for delta.
m_MouseX=mouseEvent->X; m_MouseX=mouseEvent->X;
m_MouseY=1.0f-mouseEvent->Y; m_MouseY=1.0f-mouseEvent->Y;
} else if (event == NLMISC::EventMouseWheelId) { }
else if (event == NLMISC::EventMouseWheelId)
{
NLMISC::CEventMouseWheel *ev=(NLMISC::CEventMouseWheel *)&event; NLMISC::CEventMouseWheel *ev=(NLMISC::CEventMouseWheel *)&event;
float dir=0.0f; float dir=0.0f;
if(ev->Direction) dir=0.5f; if(ev->Direction) dir=0.5f;
else dir=-0.5f; else dir=-0.5f;
CEGUI::System::getSingleton().injectMouseWheelChange(dir); CEGUI::System::getSingleton().injectMouseWheelChange(dir);
} }
} else { // assume otherwise that it's a character. }
if(event==NLMISC::EventCharId) { else
{
// assume otherwise that it's a character.
if(event==NLMISC::EventCharId)
{
unsigned char c = (char)((NLMISC::CEventChar&)event).Char; unsigned char c = (char)((NLMISC::CEventChar&)event).Char;
CEGUI::System::getSingleton().injectChar((CEGUI::utf32)c); CEGUI::System::getSingleton().injectChar((CEGUI::utf32)c);
} else if(event==NLMISC::EventKeyDownId) { }
else if(event==NLMISC::EventKeyDownId)
{
NLMISC::CEventKeyDown *keyvent=(NLMISC::CEventKeyDown *)&event; NLMISC::CEventKeyDown *keyvent=(NLMISC::CEventKeyDown *)&event;
CEGUI::System::getSingleton().injectKeyDown(m_KeyMap[keyvent->Key]); CEGUI::System::getSingleton().injectKeyDown(m_KeyMap[keyvent->Key]);
} }
@ -296,7 +327,8 @@ namespace CEGUI
catch (CEGUI::Exception) { } catch (CEGUI::Exception) { }
} }
void initKeyMap() { void initKeyMap()
{
m_KeyMap[NLMISC::Key0 ]=CEGUI::Key::Zero; m_KeyMap[NLMISC::Key0 ]=CEGUI::Key::Zero;
m_KeyMap[NLMISC::Key1 ]=CEGUI::Key::One; m_KeyMap[NLMISC::Key1 ]=CEGUI::Key::One;
m_KeyMap[NLMISC::Key2 ]=CEGUI::Key::Two; m_KeyMap[NLMISC::Key2 ]=CEGUI::Key::Two;

View file

@ -201,7 +201,7 @@ void loadForm (const std::vector<std::string> &sheetFilters, const std::string &
ifile.serialCont (container); ifile.serialCont (container);
ifile.close (); ifile.close ();
} }
catch (NLMISC::Exception &e) catch (const NLMISC::Exception &e)
{ {
// clear the container because it can contains partially loaded sheet so we must clean it before continue // clear the container because it can contains partially loaded sheet so we must clean it before continue
container.clear (); container.clear ();
@ -456,7 +456,7 @@ void loadForm (const std::vector<std::string> &sheetFilters, const std::string &
ofile.close (); ofile.close ();
} }
} }
catch (NLMISC::Exception &e) catch (const NLMISC::Exception &e)
{ {
nlinfo ("loadForm(): Exception during saving the packed file, it will be recreated next launch (%s)", e.what()); nlinfo ("loadForm(): Exception during saving the packed file, it will be recreated next launch (%s)", e.what());
} }
@ -564,7 +564,7 @@ void loadForm2(const std::vector<std::string> &sheetFilters, const std::string &
ifile.serialPtrCont (container); ifile.serialPtrCont (container);
ifile.close (); ifile.close ();
} }
catch (NLMISC::Exception &e) catch (const NLMISC::Exception &e)
{ {
// clear the container because it can contains partially loaded sheet so we must clean it before continue // clear the container because it can contains partially loaded sheet so we must clean it before continue
container.clear (); container.clear ();
@ -819,7 +819,7 @@ void loadForm2(const std::vector<std::string> &sheetFilters, const std::string &
ofile.close (); ofile.close ();
} }
} }
catch (NLMISC::Exception &e) catch (const NLMISC::Exception &e)
{ {
nlinfo ("loadForm(): Exception during saving the packed file, it will be recreated next launch (%s)", e.what()); nlinfo ("loadForm(): Exception during saving the packed file, it will be recreated next launch (%s)", e.what());
} }
@ -925,7 +925,7 @@ void loadForm (const std::vector<std::string> &sheetFilters, const std::string &
ifile.serialCont (container); ifile.serialCont (container);
ifile.close (); ifile.close ();
} }
catch (NLMISC::Exception &e) catch (const NLMISC::Exception &e)
{ {
// clear the container because it can contains partially loaded sheet so we must clean it before continue // clear the container because it can contains partially loaded sheet so we must clean it before continue
container.clear (); container.clear ();
@ -1183,7 +1183,7 @@ void loadForm (const std::vector<std::string> &sheetFilters, const std::string &
ofile.close (); ofile.close ();
} }
} }
catch (NLMISC::Exception &e) catch (const NLMISC::Exception &e)
{ {
nlinfo ("loadForm(): Exception during saving the packed file, it will be recreated next launch (%s)", e.what()); nlinfo ("loadForm(): Exception during saving the packed file, it will be recreated next launch (%s)", e.what());
} }

View file

@ -261,7 +261,7 @@ inline bool loadXmlPrimitiveFile(CPrimitives &primDoc, const std::string &fileNa
// Read it // Read it
return primDoc.read (xmlIn.getRootNode (), NLMISC::CFile::getFilename(fileName).c_str(), ligoConfig); return primDoc.read (xmlIn.getRootNode (), NLMISC::CFile::getFilename(fileName).c_str(), ligoConfig);
} }
catch(NLMISC::Exception e) catch(const NLMISC::Exception &e)
{ {
nlwarning("Error reading input file '%s': '%s'", fileName.c_str(), e.what()); nlwarning("Error reading input file '%s': '%s'", fileName.c_str(), e.what());
return false; return false;
@ -294,7 +294,7 @@ inline bool saveXmlPrimitiveFile(CPrimitives &primDoc, const std::string &fileNa
// return xmlSaveFile(fileName.c_str(), xmlDoc) != -1; // return xmlSaveFile(fileName.c_str(), xmlDoc) != -1;
} }
catch(NLMISC::Exception e) catch(const NLMISC::Exception &e)
{ {
nlwarning("Error writing output file '%s': '%s'", fileName.c_str(), e.what()); nlwarning("Error writing output file '%s': '%s'", fileName.c_str(), e.what());
return false; return false;

View file

@ -63,7 +63,7 @@ namespace NLMISC
* printf ("%d ", bar.asInt (i)); * printf ("%d ", bar.asInt (i));
* printf("\n"); * printf("\n");
* } * }
* catch (EConfigFile &e) * catch (const EConfigFile &e)
* { * {
* // Something goes wrong... catch that * // Something goes wrong... catch that
* printf ("%s\n", e.what ()); * printf ("%s\n", e.what ());

View file

@ -238,11 +238,11 @@ namespace STRING_MANAGER
return false; return false;
} }
bool findCol(ucstring colName, uint &colIndex) bool findCol(const ucstring &colName, uint &colIndex)
{ {
if (Data.empty()) if (Data.empty())
return false; return false;
TWorksheet::TRow::iterator it = std::find(Data[0].begin(), Data[0].end(), ucstring(colName)); TWorksheet::TRow::iterator it = std::find(Data[0].begin(), Data[0].end(), colName);
if (it == Data[0].end()) if (it == Data[0].end())
return false; return false;

View file

@ -71,7 +71,7 @@ struct EXmlParsingError : public EStream
// File not found // File not found
} }
} }
catch (Exception &e) catch (const Exception &e)
{ {
// Something wrong appends // Something wrong appends
} }

View file

@ -64,7 +64,7 @@ namespace NLMISC {
// Close the file // Close the file
file.close (); file.close ();
} }
catch (Exception &e) catch (const Exception &e)
{ {
} }
\endcode \endcode

View file

@ -524,7 +524,7 @@ namespace NLNET
// run the module task command control to module task method // run the module task command control to module task method
(_Module->*_TaskMethod)(); (_Module->*_TaskMethod)();
} }
catch (NLMISC::Exception e) catch (const NLMISC::Exception &e)
{ {
nlwarning("In module task '%s', exception '%e' thrown", typeid(this).name(), e.what()); nlwarning("In module task '%s', exception '%e' thrown", typeid(this).name(), e.what());
} }

View file

@ -94,7 +94,7 @@ CInstanceGroup* LoadInstanceGroup(const char* sFilename)
newIG->serial (file); newIG->serial (file);
// All is good // All is good
} }
catch (Exception &) catch (const Exception &)
{ {
// Cannot save the file // Cannot save the file
delete newIG; delete newIG;

View file

@ -116,7 +116,7 @@ int main (int /* argc */, char ** /* argv */)
int val = cf.getVar ("unknown_variable").asInt(); int val = cf.getVar ("unknown_variable").asInt();
nlinfo("unknown_variable = %d", val); nlinfo("unknown_variable = %d", val);
} }
catch (EConfigFile &e) catch (const EConfigFile &e)
{ {
nlinfo("something goes wrong with configfile: %s", e.what()); nlinfo("something goes wrong with configfile: %s", e.what());
} }

View file

@ -63,7 +63,7 @@ int main (int /* argc */, char ** /* argv */)
{ {
nlerror ("nlerror() %d", 4); nlerror ("nlerror() %d", 4);
} }
catch(EFatalError &) catch(const EFatalError &)
{ {
// just continue... // just continue...
nlinfo ("nlerror() generated an EFatalError exception, just ignore it"); nlinfo ("nlerror() generated an EFatalError exception, just ignore it");

View file

@ -109,7 +109,7 @@ int main (int argc, char **argv)
CInetAddress addr(LSHost+":3333"); CInetAddress addr(LSHost+":3333");
Client->connect(addr); Client->connect(addr);
} }
catch(ESocket &e) catch(const ESocket &e)
{ {
printf("%s\n", e.what()); printf("%s\n", e.what());
return 0; return 0;

View file

@ -101,7 +101,7 @@ public:
{ {
fsPort = IService::ConfigFile.getVar("FSPort").asInt(); fsPort = IService::ConfigFile.getVar("FSPort").asInt();
} }
catch ( EUnknownVar& ) catch (const EUnknownVar&)
{ {
} }
_FServer.init(fsPort); _FServer.init(fsPort);
@ -148,7 +148,7 @@ public:
{ {
fesPort = IService5::ConfigFile.getVar("FESPort").asInt(); fesPort = IService5::ConfigFile.getVar("FESPort").asInt();
} }
catch ( EUnknownVar& ) catch (const EUnknownVar&)
{ {
} }

View file

@ -190,7 +190,7 @@ void cbInit (CMessage &msgin, TSockId from, CCallbackNetBase &netbase)
return; return;
} }
} }
catch (Exception &) catch (const Exception &)
{ {
// bad client version, disconnect it // bad client version, disconnect it
CallbackServer->disconnect (from); CallbackServer->disconnect (from);
@ -530,7 +530,7 @@ void handleReceivedPong (CClient *client, sint64 pongTime)
// init the UDP connection // init the UDP connection
if (client == NULL) if (client == NULL)
{ {
uint32 session; uint32 session = 0;
msgin.serial (session); msgin.serial (session);
// Find a new udp connection, find the linked // Find a new udp connection, find the linked
@ -568,13 +568,13 @@ void handleReceivedPong (CClient *client, sint64 pongTime)
} }
// Read the message // Read the message
sint64 pingTime; sint64 pingTime = 0;
msgin.serial(pingTime); msgin.serial(pingTime);
uint32 pongNumber; uint32 pongNumber = 0;
msgin.serial(pongNumber); msgin.serial(pongNumber);
uint32 blockNumber; uint32 blockNumber = 0;
msgin.serial(blockNumber); msgin.serial(blockNumber);
// nlinfo ("receive a pong from %s pongnb %d %"NL_I64"d", CurrentInMsg->AddrFrom.asString().c_str(), pongNumber, pongTime - pingTime); // nlinfo ("receive a pong from %s pongnb %d %"NL_I64"d", CurrentInMsg->AddrFrom.asString().c_str(), pongNumber, pongTime - pingTime);
@ -611,7 +611,7 @@ void sendPing ()
// send the new ping to the client // send the new ping to the client
ReceiveTask->DataSock->sendTo (msgout.buffer(), size, GETCLIENTA(it)->Address); ReceiveTask->DataSock->sendTo (msgout.buffer(), size, GETCLIENTA(it)->Address);
} }
catch (Exception &e) catch (const Exception &e)
{ {
nlwarning ("Can't send UDP packet to '%s' (%s)", GETCLIENTA(it)->Address.asString().c_str(), e.what()); nlwarning ("Can't send UDP packet to '%s' (%s)", GETCLIENTA(it)->Address.asString().c_str(), e.what());
} }
@ -734,7 +734,7 @@ public:
updateStat (); updateStat ();
} }
} }
catch (Exception &e) catch (const Exception &e)
{ {
nlerrornoex ("Exception not catched: '%s'", e.what()); nlerrornoex ("Exception not catched: '%s'", e.what());
} }

View file

@ -232,7 +232,7 @@ void cbInit (CMessage &msgin, TSockId from, CCallbackNetBase &netbase)
{ {
UdpSock->connect( CInetAddress (ServerAddr, UDPPort) ); UdpSock->connect( CInetAddress (ServerAddr, UDPPort) );
} }
catch ( Exception& e ) catch (const Exception &e)
{ {
InfoLog->displayRawNL ("Cannot connect to remote UDP host '%s': %s", ServerAddr.c_str(), e.what() ); InfoLog->displayRawNL ("Cannot connect to remote UDP host '%s': %s", ServerAddr.c_str(), e.what() );
exit (""); exit ("");
@ -291,7 +291,7 @@ int main( int argc, char **argv )
InfoLog->displayRawNL ("Waiting the server answer..."); InfoLog->displayRawNL ("Waiting the server answer...");
} }
catch(Exception &e) catch(const Exception &e)
{ {
InfoLog->displayRawNL ("Can't connect to %s:%d (%s)\n", ServerAddr.c_str(), TCPPort, e.what()); InfoLog->displayRawNL ("Can't connect to %s:%d (%s)\n", ServerAddr.c_str(), TCPPort, e.what());
exit (""); exit ("");

View file

@ -108,7 +108,7 @@ void CReceiveTask::run()
DataSock->receivedFrom( _ReceivedMessage.userDataW(), _DatagramLength, _ReceivedMessage.AddrFrom ); DataSock->receivedFrom( _ReceivedMessage.userDataW(), _DatagramLength, _ReceivedMessage.AddrFrom );
d = CTime::getLocalTime (); d = CTime::getLocalTime ();
} }
catch ( ESocket& ) catch (const ESocket&)
{ {
// Remove the client corresponding to the address // Remove the client corresponding to the address
_ReceivedMessage.setTypeEvent( TReceivedMessage::RemoveClient ); _ReceivedMessage.setTypeEvent( TReceivedMessage::RemoveClient );

View file

@ -371,7 +371,7 @@ int main ()
// Remove mouse listener // Remove mouse listener
pDriver->delete3dMouseListener (plistener); pDriver->delete3dMouseListener (plistener);
} }
catch (Exception& e) catch (const Exception& e)
{ {
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
::MessageBox (NULL, e.what(), "Test collision move", MB_OK|MB_ICONEXCLAMATION); ::MessageBox (NULL, e.what(), "Test collision move", MB_OK|MB_ICONEXCLAMATION);

View file

@ -85,7 +85,7 @@ void Init()
AudioMixer->getListener()->setOrientation( frontvec, upvec ); AudioMixer->getListener()->setOrientation( frontvec, upvec );
} }
catch( Exception& e ) catch(const Exception &e)
{ {
nlerror( "Error: %s", e.what() ); nlerror( "Error: %s", e.what() );
} }

View file

@ -227,7 +227,7 @@ bool CAnimationSet::loadFromFiles(const std::string &path, bool recurse /* = tru
iFile.close(); iFile.close();
} }
catch (NLMISC::EStream &e) catch (const NLMISC::EStream &e)
{ {
if (wantWarningMessage) if (wantWarningMessage)
{ {

View file

@ -338,7 +338,7 @@ void CAsyncFileManager3D::CMeshLoad::run()
// Finally affect the pointer (Trans-Thread operation -> this operation must be atomic) // Finally affect the pointer (Trans-Thread operation -> this operation must be atomic)
*_ppShp = mesh.getShapePointer(); *_ppShp = mesh.getShapePointer();
} }
catch(EPathNotFound &) catch(const EPathNotFound &)
{ {
nlwarning ("Couldn't load '%s'", MeshName.c_str()); nlwarning ("Couldn't load '%s'", MeshName.c_str());
*_ppShp = (IShape*)-1; *_ppShp = (IShape*)-1;
@ -382,7 +382,7 @@ void CAsyncFileManager3D::CIGLoad::run (void)
*_ppIG = pIG; *_ppIG = pIG;
} }
catch(EPathNotFound &) catch(const EPathNotFound &)
{ {
nlwarning ("Couldn't load '%s'", _IGName.c_str()); nlwarning ("Couldn't load '%s'", _IGName.c_str());
*_ppIG = (CInstanceGroup*)-1; *_ppIG = (CInstanceGroup*)-1;
@ -429,7 +429,7 @@ void CAsyncFileManager3D::CIGLoadUser::run (void)
return; return;
} }
} }
catch(EPathNotFound &) catch(const EPathNotFound &)
{ {
nlwarning ("Couldn't load '%s'", _IGName.c_str()); nlwarning ("Couldn't load '%s'", _IGName.c_str());
delete pIG; delete pIG;

View file

@ -1600,7 +1600,7 @@ bool CDriverD3D::setDisplay(nlWindow wnd, const GfxMode& mode, bool show, bool r
_EventEmitter.addEmitter(diee, true); _EventEmitter.addEmitter(diee, true);
} }
} }
catch(EDirectInput &e) catch(const EDirectInput &e)
{ {
nlinfo(e.what()); nlinfo(e.what());
} }

View file

@ -485,7 +485,7 @@ NLMISC::IMouseDevice* CDriverD3D::enableLowLevelMouse(bool enable, bool exclusiv
if (diee) if (diee)
res = diee->getMouseDevice(exclusive); res = diee->getMouseDevice(exclusive);
} }
catch (EDirectInput &) catch (const EDirectInput &)
{ {
} }
} }
@ -517,7 +517,7 @@ NLMISC::IKeyboardDevice* CDriverD3D::enableLowLevelKeyboard(bool enable)
if (diee) if (diee)
res = diee->getKeyboardDevice(); res = diee->getKeyboardDevice();
} }
catch (EDirectInput &) catch (const EDirectInput &)
{ {
} }
} }
@ -561,7 +561,7 @@ uint CDriverD3D::getDoubleClickDelay(bool hardwareMouse)
{ {
md = diee->getMouseDevice(hardwareMouse); md = diee->getMouseDevice(hardwareMouse);
} }
catch (EDirectInput &) catch (const EDirectInput &)
{ {
// could not get device .. // could not get device ..
} }

View file

@ -1,4 +1,5 @@
FILE(GLOB SRC *.cpp *.h *.def) FILE(GLOB SRC *.cpp *.h *.def)
IF(APPLE) IF(APPLE)
FILE(GLOB MAC_SRC mac/*.h mac/*.m mac/*.mm mac/*.cpp) FILE(GLOB MAC_SRC mac/*.h mac/*.m mac/*.mm mac/*.cpp)
SET(SRC ${SRC} ${MAC_SRC}) SET(SRC ${SRC} ${MAC_SRC})

View file

@ -20,22 +20,67 @@
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
#ifdef NL_OS_MAC #ifdef USE_OPENGLES
# define GL_GLEXT_LEGACY # include <GLES/gl.h>
# include <OpenGL/gl.h> # include <GLES/glext.h>
# include "mac/glext.h"
#else #else
# include <GL/gl.h> # ifdef NL_OS_MAC
# include <GL/glext.h> // Please download it from http://www.opengl.org/registry/ # define GL_GLEXT_LEGACY
# if defined(NL_OS_WINDOWS) # include <OpenGL/gl.h>
# include <GL/wglext.h> # include "mac/glext.h"
# endif # else
# include <GL/gl.h>
# include <GL/glext.h>
# if defined(NL_OS_WINDOWS)
# include <GL/wglext.h>
# endif
# endif
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#ifdef USE_OPENGLES
// OES_mapbuffer
//==============
typedef void* (APIENTRY * NEL_PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
typedef GLboolean (APIENTRY * NEL_PFNGLUNMAPBUFFEROESPROC) (GLenum target);
typedef void (APIENTRY * NEL_PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void** params);
typedef void (APIENTRY * NEL_PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
// GL_OES_framebuffer_object
//==================================
typedef GLboolean (APIENTRY * NEL_PFNGLISRENDERBUFFEROESPROC) (GLuint renderbuffer);
typedef void (APIENTRY * NEL_PFNGLBINDRENDERBUFFEROESPROC) (GLenum target, GLuint renderbuffer);
typedef void (APIENTRY * NEL_PFNGLDELETERENDERBUFFERSOESPROC) (GLsizei n, const GLuint* renderbuffers);
typedef void (APIENTRY * NEL_PFNGLGENRENDERBUFFERSOESPROC) (GLsizei n, GLuint* renderbuffers);
typedef void (APIENTRY * NEL_PFNGLRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (APIENTRY * NEL_PFNGLGETRENDERBUFFERPARAMETERIVOESPROC) (GLenum target, GLenum pname, GLint* params);
typedef GLboolean (APIENTRY * NEL_PFNGLISFRAMEBUFFEROESPROC) (GLuint framebuffer);
typedef void (APIENTRY * NEL_PFNGLBINDFRAMEBUFFEROESPROC) (GLenum target, GLuint framebuffer);
typedef void (APIENTRY * NEL_PFNGLDELETEFRAMEBUFFERSOESPROC) (GLsizei n, const GLuint* framebuffers);
typedef void (APIENTRY * NEL_PFNGLGENFRAMEBUFFERSOESPROC) (GLsizei n, GLuint* framebuffers);
typedef GLenum (APIENTRY * NEL_PFNGLCHECKFRAMEBUFFERSTATUSOESPROC) (GLenum target);
typedef void (APIENTRY * NEL_PFNGLFRAMEBUFFERRENDERBUFFEROESPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
typedef void (APIENTRY * NEL_PFNGLFRAMEBUFFERTEXTURE2DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
typedef void (APIENTRY * NEL_PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params);
typedef void (APIENTRY * NEL_PFNGLGENERATEMIPMAPOESPROC) (GLenum target);
// GL_OES_texture_cube_map
//==================================
typedef void (APIENTRY * NEL_PFNGLTEXGENFOESPROC) (GLenum coord, GLenum pname, GLfloat param);
typedef void (APIENTRY * NEL_PFNGLTEXGENFVOESPROC) (GLenum coord, GLenum pname, const GLfloat *params);
typedef void (APIENTRY * NEL_PFNGLTEXGENIOESPROC) (GLenum coord, GLenum pname, GLint param);
typedef void (APIENTRY * NEL_PFNGLTEXGENIVOESPROC) (GLenum coord, GLenum pname, const GLint *params);
typedef void (APIENTRY * NEL_PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param);
typedef void (APIENTRY * NEL_PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed *params);
typedef void (APIENTRY * NEL_PFNGLGETTEXGENFVOESPROC) (GLenum coord, GLenum pname, GLfloat *params);
typedef void (APIENTRY * NEL_PFNGLGETTEXGENIVOESPROC) (GLenum coord, GLenum pname, GLint *params);
typedef void (APIENTRY * NEL_PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed *params);
#endif
// *************************************************************************** // ***************************************************************************
// *************************************************************************** // ***************************************************************************
// The NEL Functions Typedefs. // The NEL Functions Typedefs.

View file

@ -684,7 +684,7 @@ NLMISC::IMouseDevice* CDriverGL::enableLowLevelMouse(bool enable, bool exclusive
if (diee) if (diee)
res = diee->getMouseDevice(exclusive); res = diee->getMouseDevice(exclusive);
} }
catch (EDirectInput &) catch (const EDirectInput &)
{ {
} }
} }
@ -722,7 +722,7 @@ NLMISC::IKeyboardDevice* CDriverGL::enableLowLevelKeyboard(bool enable)
if (diee) if (diee)
res = diee->getKeyboardDevice(); res = diee->getKeyboardDevice();
} }
catch (EDirectInput &) catch (const EDirectInput &)
{ {
} }
} }
@ -778,7 +778,7 @@ uint CDriverGL::getDoubleClickDelay(bool hardwareMouse)
{ {
md = diee->getMouseDevice(hardwareMouse); md = diee->getMouseDevice(hardwareMouse);
} }
catch (EDirectInput &) catch (const EDirectInput &)
{ {
// could not get device .. // could not get device ..
} }

View file

@ -819,7 +819,7 @@ void CDriverGL::setupLightMapPass(uint pass)
// fallBack if extension MulAdd not found. just mul factor with (Ambient+Diffuse) // fallBack if extension MulAdd not found. just mul factor with (Ambient+Diffuse)
if(_LightMapNoMulAddFallBack) if(_LightMapNoMulAddFallBack)
{ {
// do not use consant color to blend lightmap, but incoming diffuse color, for stage0 only. // do not use constant color to blend lightmap, but incoming diffuse color, for stage0 only.
GLfloat glcol[4]; GLfloat glcol[4];
convColor(lmapFactor, glcol); convColor(lmapFactor, glcol);
_DriverGLStates.setEmissive(lmapFactor.getPacked(), glcol); _DriverGLStates.setEmissive(lmapFactor.getPacked(), glcol);
@ -2191,7 +2191,7 @@ static const float IdentityTexMat[4] = { 1.f, 0.f, 0.f, 1.f };
// *************************************************************************** // ***************************************************************************
void CDriverGL::setupWaterPassNV20(const CMaterial &mat) void CDriverGL::setupWaterPassNV20(const CMaterial &mat)
{ {
H_AUTO_OGL(CDriverGL_setupWaterPassNV20) H_AUTO_OGL(CDriverGL_setupWaterPassNV20);
#ifndef USE_OPENGLES #ifndef USE_OPENGLES
static bool setupDone = false; static bool setupDone = false;

View file

@ -201,7 +201,7 @@ bool CTextureDrvInfosGL::initFrameBufferObject(ITexture * tex)
break; break;
#endif #endif
default: default:
nlwarning("Framebuffer incomplete\n"); nlwarning("Framebuffer incomplete status %d", (sint)status);
//nlassert(0); //nlassert(0);
} }
@ -505,7 +505,7 @@ static inline GLenum translateMinFilterToGl(CTextureDrvInfosGL *glText)
// *************************************************************************** // ***************************************************************************
static inline bool sameDXTCFormat(ITexture &tex, GLint glfmt) static inline bool sameDXTCFormat(ITexture &tex, GLint glfmt)
{ {
H_AUTO_OGL(sameDXTCFormat) H_AUTO_OGL(sameDXTCFormat);
if(glfmt==GL_COMPRESSED_RGB_S3TC_DXT1_EXT && tex.PixelFormat==CBitmap::DXTC1) if(glfmt==GL_COMPRESSED_RGB_S3TC_DXT1_EXT && tex.PixelFormat==CBitmap::DXTC1)
return true; return true;
if(glfmt==GL_COMPRESSED_RGBA_S3TC_DXT1_EXT && tex.PixelFormat==CBitmap::DXTC1Alpha) if(glfmt==GL_COMPRESSED_RGBA_S3TC_DXT1_EXT && tex.PixelFormat==CBitmap::DXTC1Alpha)
@ -521,7 +521,7 @@ static inline bool sameDXTCFormat(ITexture &tex, GLint glfmt)
// *************************************************************************** // ***************************************************************************
static inline bool isDXTCFormat(GLint glfmt) static inline bool isDXTCFormat(GLint glfmt)
{ {
H_AUTO_OGL(isDXTCFormat) H_AUTO_OGL(isDXTCFormat);
if(glfmt==GL_COMPRESSED_RGB_S3TC_DXT1_EXT) if(glfmt==GL_COMPRESSED_RGB_S3TC_DXT1_EXT)
return true; return true;
if(glfmt==GL_COMPRESSED_RGBA_S3TC_DXT1_EXT) if(glfmt==GL_COMPRESSED_RGBA_S3TC_DXT1_EXT)

View file

@ -113,7 +113,7 @@ protected:
bool _Invalid; bool _Invalid;
}; };
#ifndef USE_OPENGLES
// *************************************************************************** // ***************************************************************************
// *************************************************************************** // ***************************************************************************
@ -456,6 +456,8 @@ public:
#endif #endif
}; };
#endif
// *************************************************************************** // ***************************************************************************
// *************************************************************************** // ***************************************************************************
// ARB_vertex_buffer_object implementation // ARB_vertex_buffer_object implementation
@ -553,6 +555,11 @@ private:
CVertexArrayRangeARB *_VertexArrayRange; CVertexArrayRangeARB *_VertexArrayRange;
CVertexBuffer::TPreferredMemory _MemType; CVertexBuffer::TPreferredMemory _MemType;
void *_VertexPtr; // pointer on current datas. Null if not locked void *_VertexPtr; // pointer on current datas. Null if not locked
#ifdef USE_OPENGLES
uint8 *_Buffer;
uint32 _BufferSize;
uint32 _LastBufferSize;
#endif
// if buffer has been invalidated, returns a dummy memory block and silently fails rendering // if buffer has been invalidated, returns a dummy memory block and silently fails rendering
std::vector<uint8> _DummyVB; std::vector<uint8> _DummyVB;
// for use by CVertexArrayRangeARB // for use by CVertexArrayRangeARB

View file

@ -309,7 +309,7 @@ static uint convInputRegisterToVBFlag(uint index)
// For debugging with swizzling // For debugging with swizzling
static void doSwizzle(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW) static void doSwizzle(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW)
{ {
H_AUTO_OGL(doSwizzle) H_AUTO_OGL(doSwizzle);
nglSwizzleEXT(res, in, outX, outY, outZ, outW); nglSwizzleEXT(res, in, outX, outY, outZ, outW);
#ifdef DEBUG_SETUP_EXT_VERTEX_SHADER #ifdef DEBUG_SETUP_EXT_VERTEX_SHADER
std::string swzStr = "Swizzle : "; std::string swzStr = "Swizzle : ";
@ -359,7 +359,7 @@ static void doSwizzle(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum ou
// Perform write mask and output de bug information // Perform write mask and output de bug information
static void doWriteMask(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW) static void doWriteMask(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW)
{ {
H_AUTO_OGL(doWriteMask) H_AUTO_OGL(doWriteMask);
nglWriteMaskEXT(res, in, outX, outY, outZ, outW); nglWriteMaskEXT(res, in, outX, outY, outZ, outW);
#ifdef DEBUG_SETUP_EXT_VERTEX_SHADER #ifdef DEBUG_SETUP_EXT_VERTEX_SHADER
nlinfo("3D: Write Mask : %c%c%c%c", nlinfo("3D: Write Mask : %c%c%c%c",
@ -376,7 +376,7 @@ static void doWriteMask(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum
*/ */
bool CDriverGL::setupEXTVertexShader(const CVPParser::TProgram &program, GLuint id, uint variants[EVSNumVariants], uint16 &usedInputRegisters) bool CDriverGL::setupEXTVertexShader(const CVPParser::TProgram &program, GLuint id, uint variants[EVSNumVariants], uint16 &usedInputRegisters)
{ {
H_AUTO_OGL(CDriverGL_setupEXTVertexShader) H_AUTO_OGL(CDriverGL_setupEXTVertexShader);
// counter to see what is generated // counter to see what is generated
uint numOp = 0; uint numOp = 0;
uint numOpIndex = 0; uint numOpIndex = 0;
@ -1440,6 +1440,14 @@ bool CDriverGL::setupARBVertexProgram (const CVPParser::TProgram &inParsedProgra
nlassert(0); nlassert(0);
return false; return false;
} }
#ifdef NL_OS_MAC
// Wait for GPU to finish program upload, else draw comands might crash.
// Happened to CVegetableBlendLayerModel (glDrawElements()).
// For more information, see http://dev.ryzom.com/issues/1006
glFinish();
#endif
return true; return true;
} }

View file

@ -374,18 +374,25 @@ bool CDriverGL::init (uint windowIcon, emptyProc exitFunc)
} }
#endif // HAVE_XRENDER #endif // HAVE_XRENDER
// list all supported extensions nldebug("3D: Available X Extensions:");
sint nextensions = 0;
char **extensions = XListExtensions(_dpy, &nextensions);
std::string exts; if (DebugLog)
{
// list all supported extensions
sint nextensions = 0;
char **extensions = XListExtensions(_dpy, &nextensions);
for(sint i = 0; i < nextensions; ++i) for(sint i = 0; i < nextensions; ++i)
exts += NLMISC::toString(" %s", extensions[i]); {
if(i%5==0) DebugLog->displayRaw("3D: ");
DebugLog->displayRaw(NLMISC::toString("%s ", extensions[i]).c_str());
if(i%5==4) DebugLog->displayRaw("\n");
}
XFreeExtensionList(extensions); DebugLog->displayRaw("\n");
nlinfo("X Extensions:%s", exts.c_str()); XFreeExtensionList(extensions);
}
// set default X errors handler // set default X errors handler
XSetErrorHandler(nelXErrorsHandler); XSetErrorHandler(nelXErrorsHandler);
@ -906,7 +913,6 @@ bool CDriverGL::setDisplay(nlWindow wnd, const GfxMode &mode, bool show, bool re
_hRC=wglCreateContext(_hDC); _hRC=wglCreateContext(_hDC);
wglMakeCurrent(_hDC,_hRC); wglMakeCurrent(_hDC,_hRC);
} }
/// release old emitter /// release old emitter
@ -929,7 +935,7 @@ bool CDriverGL::setDisplay(nlWindow wnd, const GfxMode &mode, bool show, bool re
_EventEmitter.addEmitter(diee, true); _EventEmitter.addEmitter(diee, true);
} }
} }
catch(EDirectInput &e) catch(const EDirectInput &e)
{ {
nlinfo(e.what()); nlinfo(e.what());
} }
@ -1577,7 +1583,7 @@ bool CDriverGL::destroyWindow()
#elif defined(NL_OS_MAC) #elif defined(NL_OS_MAC)
if(_DestroyWindow) if (_DestroyWindow)
{ {
[[containerView() window] release]; [[containerView() window] release];
[containerView() release]; [containerView() release];
@ -2297,7 +2303,7 @@ emptyProc CDriverGL::getWindowProc()
// -------------------------------------------------- // --------------------------------------------------
bool CDriverGL::activate() bool CDriverGL::activate()
{ {
H_AUTO_OGL(CDriverGL_activate) H_AUTO_OGL(CDriverGL_activate);
if (_win == EmptyWindow) if (_win == EmptyWindow)
return false; return false;

View file

@ -359,7 +359,7 @@ bool CCocoaEventEmitter::processMessage(NSEvent* event, CEventServer* server)
// push the key press event to the event server // push the key press event to the event server
server->postEvent(new NLMISC::CEventKeyDown( server->postEvent(new NLMISC::CEventKeyDown(
virtualKeycodeToNelKey([event keyCode]), virtualKeycodeToNelKey([event keyCode]),
modifierFlagsToNelKeyButton([event modifierFlags]), modifiers,
[event isARepeat] == NO, this)); [event isARepeat] == NO, this));
// if this was a text event // if this was a text event
@ -372,7 +372,7 @@ bool CCocoaEventEmitter::processMessage(NSEvent* event, CEventServer* server)
// push the text event to event server as well // push the text event to event server as well
server->postEvent(new NLMISC::CEventChar( server->postEvent(new NLMISC::CEventChar(
ucstr[0], NLMISC::noKeyButton, this)); ucstr[0], modifiers, this));
} }
break; break;
} }
@ -381,7 +381,7 @@ bool CCocoaEventEmitter::processMessage(NSEvent* event, CEventServer* server)
// push the key release event to the event server // push the key release event to the event server
server->postEvent(new NLMISC::CEventKeyUp( server->postEvent(new NLMISC::CEventKeyUp(
virtualKeycodeToNelKey([event keyCode]), virtualKeycodeToNelKey([event keyCode]),
modifierFlagsToNelKeyButton([event modifierFlags]), this)); modifiers, this));
break; break;
} }
case NSFlagsChanged:break; case NSFlagsChanged:break;

View file

@ -1746,7 +1746,7 @@ void CDriverUser::loadHLSBank(const std::string &fileName)
throw EPathNotFound(path); throw EPathNotFound(path);
fIn.serial(*hlsBank); fIn.serial(*hlsBank);
} }
catch(Exception &) catch(const Exception &)
{ {
delete hlsBank; delete hlsBank;
throw; throw;

View file

@ -121,7 +121,7 @@ bool CInstanceGroupUser::init (const std::string &instanceGroup, bool async)
// Read the class // Read the class
_InstanceGroup.serial (file); _InstanceGroup.serial (file);
} }
catch (EStream& e) catch (const EStream& e)
{ {
// Avoid visual warning // Avoid visual warning
EStream ee=e; EStream ee=e;

View file

@ -283,7 +283,7 @@ void CLandscapeUser::refreshZonesAround(const CVector &pos, float radius, std::s
{ {
_Landscape->Landscape.checkBinds(Work.Zone->getZoneId()); _Landscape->Landscape.checkBinds(Work.Zone->getZoneId());
} }
catch (EBadBind &e) catch (const EBadBind &e)
{ {
nlwarning ("Bind error : %s", e.what()); nlwarning ("Bind error : %s", e.what());
nlstopex(("Zone Data Bind Error. Please send a report. You may continue but it should crash!")); nlstopex(("Zone Data Bind Error. Please send a report. You may continue but it should crash!"));

View file

@ -1291,7 +1291,7 @@ bool CPSConstraintMesh::update(std::vector<sint> *numVertsVect /*= NULL*/)
{ {
_ModelBank->load(_MeshShapeFileName[k]); _ModelBank->load(_MeshShapeFileName[k]);
} }
catch (NLMISC::EPathNotFound &) catch (const NLMISC::EPathNotFound &)
{ {
nlwarning("mesh not found : %s; used as a constraint mesh particle", _MeshShapeFileName[k].c_str()); nlwarning("mesh not found : %s; used as a constraint mesh particle", _MeshShapeFileName[k].c_str());
// shape not found, so not present in the shape bank -> we create a dummy shape // shape not found, so not present in the shape bank -> we create a dummy shape

View file

@ -93,7 +93,7 @@ bool CShader::loadShaderFile (const char *filename)
nlwarning ("Can't open the file %s for reading", _filename.c_str()); nlwarning ("Can't open the file %s for reading", _filename.c_str());
} }
} }
catch (Exception &e) catch (const Exception &e)
{ {
nlwarning ("Error while reading %s : %s", _filename.c_str(), e.what()); nlwarning ("Error while reading %s : %s", _filename.c_str(), e.what());
} }

View file

@ -50,12 +50,12 @@ static inline void GetTextureSize(ITexture *tex, uint &width, uint &height)
width = srcWidth; width = srcWidth;
height = srcHeight; height = srcHeight;
} }
catch (NLMISC::EPathNotFound &e) catch (const NLMISC::EPathNotFound &e)
{ {
nlinfo("%s", e.what()); nlinfo("%s", e.what());
width = height = 0; width = height = 0;
} }
catch (NLMISC::EStream &e) catch (const NLMISC::EStream &e)
{ {
nlinfo("unable to load size from a bitmap ! name = %s", tf->getFileName().c_str()); nlinfo("unable to load size from a bitmap ! name = %s", tf->getFileName().c_str());
nlinfo("reason = %s", e.what()); nlinfo("reason = %s", e.what());

View file

@ -1573,7 +1573,7 @@ void CTileSet::loadTileVegetableDesc()
// load the TileVegetableDesc // load the TileVegetableDesc
f.serial(_TileVegetableDesc); f.serial(_TileVegetableDesc);
} }
catch(Exception &e) catch(const Exception &e)
{ {
nlinfo("Error loading TileVegetableDesc: %s", e.what()); nlinfo("Error loading TileVegetableDesc: %s", e.what());
} }

View file

@ -816,7 +816,7 @@ CVegetableShape *CVegetableManager::getVegetableShape(const std::string &shap
ret = NULL; ret = NULL;
} }
} }
catch (Exception &e) catch (const Exception &e)
{ {
// Warning // Warning
nlwarning ("CVegetableManager::getVegetableShape error while loading shape file '%s' : '%s'", shape.c_str (), e.what ()); nlwarning ("CVegetableManager::getVegetableShape error while loading shape file '%s' : '%s'", shape.c_str (), e.what ());

View file

@ -844,7 +844,7 @@ void SaveZBuffer (CZoneLighter::CZBuffer &zbuffer, const char *filename)
// Save it // Save it
bitmap.writeJPG (outputZFile, 128); bitmap.writeJPG (outputZFile, 128);
} }
catch (Exception& except) catch (const Exception& except)
{ {
// Error message // Error message
nlwarning ("ERROR writing %s: %s\n", filename, except.what()); nlwarning ("ERROR writing %s: %s\n", filename, except.what());
@ -3080,13 +3080,13 @@ void CZoneLighter::lightWater(CWaterShape &ws, const CMatrix &MT, const CLightDe
diffuseTex->writeTGA(of, 24); diffuseTex->writeTGA(of, 24);
of.close(); of.close();
} }
catch (NLMISC::Exception &) catch (const NLMISC::Exception &)
{ {
nlwarning("Zone lighter : while lighting a water shape, writing %s failed! ", texFileName.c_str()); nlwarning("Zone lighter : while lighting a water shape, writing %s failed! ", texFileName.c_str());
} }
} }
} }
catch(NLMISC::Exception &e) catch(const NLMISC::Exception &e)
{ {
nlwarning("Water shape lighting failed !"); nlwarning("Water shape lighting failed !");
nlwarning(e.what()); nlwarning(e.what());

View file

@ -105,7 +105,7 @@ CType *CFormLoader::loadType (const char *filename)
type = NULL; type = NULL;
} }
} }
catch (Exception &e) catch (const Exception &e)
{ {
// Output error // Output error
warning (false, "loadType", "Error while loading the form (%s): %s", filename, e.what()); warning (false, "loadType", "Error while loading the form (%s): %s", filename, e.what());
@ -179,7 +179,7 @@ CFormDfn *CFormLoader::loadFormDfn (const char *filename, bool forceLoad)
_MapFormDfn.erase (lowerStr); _MapFormDfn.erase (lowerStr);
} }
} }
catch (Exception &e) catch (const Exception &e)
{ {
// Output error // Output error
warning (false, "loadFormDfn", "Error while loading the form (%s): %s", filename, e.what()); warning (false, "loadFormDfn", "Error while loading the form (%s): %s", filename, e.what());
@ -276,7 +276,7 @@ UForm *CFormLoader::loadForm (const char *filename)
_MapForm.erase (lowerStr); _MapForm.erase (lowerStr);
} }
} }
catch (Exception &e) catch (const Exception &e)
{ {
// Output error // Output error
warning (false, "loadForm", "Error while loading the form (%s): %s", filename, e.what()); warning (false, "loadForm", "Error while loading the form (%s): %s", filename, e.what());

View file

@ -220,7 +220,7 @@ bool CLigoConfig::readPrimitiveClass (const char *_fileName, bool parsePrimitive
syntaxError (filename.c_str(), root, "Wrong root node, should be NEL_LIGO_PRIMITIVE_CLASS"); syntaxError (filename.c_str(), root, "Wrong root node, should be NEL_LIGO_PRIMITIVE_CLASS");
} }
} }
catch (Exception &e) catch (const Exception &e)
{ {
errorMessage ("File read error (%s):%s", filename.c_str(), e.what ()); errorMessage ("File read error (%s):%s", filename.c_str(), e.what ());
} }

View file

@ -146,7 +146,7 @@ void CZoneBank::debugSaveInit (CZoneBankElement &zbeTmp, const string &fileName)
output.init (&fileOut); output.init (&fileOut);
zbeTmp.serial (output); zbeTmp.serial (output);
} }
catch (Exception& /*e*/) catch (const Exception& /*e*/)
{ {
} }
@ -541,7 +541,7 @@ bool CZoneBank::addElement (const std::string &elementName, std::string &error)
error = "Can't open file " + elementName; error = "Can't open file " + elementName;
} }
} }
catch (Exception& e) catch (const Exception& e)
{ {
error = "Error while loading ligozone "+elementName+" : "+e.what(); error = "Error while loading ligozone "+elementName+" : "+e.what();
} }

View file

@ -188,7 +188,7 @@ bool ICommand::execute (const std::string &commandWithArgs, CLog &log, bool quie
{ {
return CCommandRegistry::getInstance().execute(commandWithArgs, log, quiet, human); return CCommandRegistry::getInstance().execute(commandWithArgs, log, quiet, human);
} }
catch(exception e) catch(const exception &e)
{ {
log.displayNL("Command '%s' thrown an exception :", commandWithArgs.c_str()); log.displayNL("Command '%s' thrown an exception :", commandWithArgs.c_str());
log.displayNL(e.what()); log.displayNL(e.what());

View file

@ -27,7 +27,10 @@ using namespace NLMISC;
#define YY_NEVER_INTERACTIVE 1 #define YY_NEVER_INTERACTIVE 1
#ifdef WIN32 #ifdef WIN32
#define YY_NO_UNISTD_H 1
#include <io.h>
#define read _read #define read _read
#define isatty _isatty
#endif #endif
/* Types */ /* Types */
@ -122,6 +125,12 @@ string \"[^\"\n]*\"
if (!cf_Ignore) if (!cf_Ignore)
{ {
cflval.Val.Type = T_STRING; cflval.Val.Type = T_STRING;
if (strlen(yytext+1) >= sizeof(cflval.Val.String))
{
strcpy (cflval.Val.String, "");
DEBUG_PRINTF("lex: string '%s' exceeds max length\n", yytext);
return STRING;
}
strcpy (cflval.Val.String, yytext+1); strcpy (cflval.Val.String, yytext+1);
cflval.Val.String[strlen(cflval.Val.String)-1] = '\0'; cflval.Val.String[strlen(cflval.Val.String)-1] = '\0';
DEBUG_PRINTF("lex: string '%s' '%s'\n", yytext, cflval.Val.String); DEBUG_PRINTF("lex: string '%s' '%s'\n", yytext, cflval.Val.String);
@ -133,6 +142,12 @@ string \"[^\"\n]*\"
if (!cf_Ignore) if (!cf_Ignore)
{ {
cflval.Val.Type = T_STRING; cflval.Val.Type = T_STRING;
if (strlen(yytext+1) >= sizeof(cflval.Val.String))
{
strcpy (cflval.Val.String, "");
DEBUG_PRINTF("lex: string '%s' exceeds max length\n", yytext);
return VARIABLE;
}
strcpy (cflval.Val.String, yytext); strcpy (cflval.Val.String, yytext);
DEBUG_PRINTF("lex: variable '%s' '%s'\n", yytext, cflval.Val.String); DEBUG_PRINTF("lex: variable '%s' '%s'\n", yytext, cflval.Val.String);
return VARIABLE; return VARIABLE;

View file

@ -832,7 +832,7 @@ void CConfigFile::checkConfigFiles ()
{ {
(*it)->reparse (); (*it)->reparse ();
} }
catch (EConfigFile &e) catch (const EConfigFile &e)
{ {
nlwarning ("CF: Exception will re-read modified config file '%s': %s", (*it)->getFilename().c_str(), e.what ()); nlwarning ("CF: Exception will re-read modified config file '%s': %s", (*it)->getFilename().c_str(), e.what ());
} }

View file

@ -1016,7 +1016,7 @@ void getCallStack(std::string &result, sint skipNFirst)
array[0] = skipNFirst; array[0] = skipNFirst;
RaiseException (0xACE0ACE, 0, 1, array); RaiseException (0xACE0ACE, 0, 1, array);
} }
catch (EDebug &e) catch (const EDebug &e)
{ {
result += e.what(); result += e.what();
} }
@ -1051,7 +1051,7 @@ void getCallStackAndLog (string &result, sint /* skipNFirst */)
// array[0] = skipNFirst; // array[0] = skipNFirst;
// RaiseException (0xACE0ACE, 0, 1, array); // RaiseException (0xACE0ACE, 0, 1, array);
// } // }
// catch (EDebug &e) // catch (const EDebug &e)
// { // {
// result += e.what(); // result += e.what();
// } // }

View file

@ -84,7 +84,7 @@ bool loadStringFile(const std::string filename, vector<TStringInfo> &stringInfos
buffer = new uint8[size]; buffer = new uint8[size];
fp.serialBuffer(buffer, size); fp.serialBuffer(buffer, size);
} }
catch(Exception &e) catch(const Exception &e)
{ {
nlinfo("Can't open file [%s] (%s)\n", filename.c_str(), e.what()); nlinfo("Can't open file [%s] (%s)\n", filename.c_str(), e.what());
return true; return true;

View file

@ -120,7 +120,7 @@ void IDisplayer::display ( const CLog::TDisplayInfo& args, const char *message )
{ {
doDisplay( args, message ); doDisplay( args, message );
} }
catch (Exception &) catch (const Exception &)
{ {
// silence // silence
} }

View file

@ -365,7 +365,7 @@ void CIFile::getline (char *buffer, uint32 bufferSize)
// read one byte // read one byte
serialBuffer ((uint8 *)buffer, 1); serialBuffer ((uint8 *)buffer, 1);
} }
catch (EFile &) catch (const EFile &)
{ {
*buffer = '\0'; *buffer = '\0';
return; return;

View file

@ -419,7 +419,7 @@ namespace NLMISC
} }
} }
} }
catch(EStream &) catch(const EStream &)
{ {
nlwarning("CInterWindowMsgQueue : Bad message format in inter window communication"); nlwarning("CInterWindowMsgQueue : Bad message format in inter window communication");
} }

View file

@ -66,15 +66,20 @@ namespace NLMISC {
vector<string> splitted; vector<string> splitted;
explode(string(buffer), string("\n"), splitted, true); explode(string(buffer), string("\n"), splitted, true);
std::string value;
for(uint32 i = 0; i < splitted.size(); i++) for(uint32 i = 0; i < splitted.size(); i++)
{ {
vector<string> sline; vector<string> sline;
explode(splitted[i], string(":"), sline, true); explode(splitted[i], string(":"), sline, true);
if(sline.size() == 2 && trim(sline[0]) == colname) if(sline.size() == 2 && trim(sline[0]) == colname)
{ {
return trim(sline[1]); value = sline[1];
} }
} }
if (!value.empty())
return trim(value);
} }
nlwarning ("SI: Can't find the colname '%s' in /proc/cpuinfo", colname.c_str()); nlwarning ("SI: Can't find the colname '%s' in /proc/cpuinfo", colname.c_str());
return ""; return "";
@ -549,7 +554,7 @@ string CSystemInfo::getOS()
{ {
OSString += " Professional"; OSString += " Professional";
} }
else else
{ {
if( osvi.wSuiteMask & VER_SUITE_DATACENTER ) if( osvi.wSuiteMask & VER_SUITE_DATACENTER )
OSString += " Datacenter Server"; OSString += " Datacenter Server";
@ -805,6 +810,9 @@ string CSystemInfo::getProc ()
#elif defined NL_OS_UNIX #elif defined NL_OS_UNIX
uint processors = 0;
if (fromString(getCpuInfo("processor"), processors)) ++processors;
ProcString = getCpuInfo("model name"); ProcString = getCpuInfo("model name");
ProcString += " / ?"; ProcString += " / ?";
ProcString += " Family " + getCpuInfo("cpu family"); ProcString += " Family " + getCpuInfo("cpu family");
@ -815,7 +823,7 @@ string CSystemInfo::getProc ()
ProcString += " / "; ProcString += " / ";
ProcString += getCpuInfo("cpu MHz")+"MHz"; ProcString += getCpuInfo("cpu MHz")+"MHz";
ProcString += " / "; ProcString += " / ";
ProcString += "? Processors found"; ProcString += toString("%u Processors found", processors);
#endif #endif

View file

@ -55,7 +55,7 @@ bool CWordsDictionary::init( const string& configFileName )
cf.load( configFileName ); cf.load( configFileName );
cfFound = true; cfFound = true;
} }
catch ( EConfigFile& e ) catch (const EConfigFile &e)
{ {
nlwarning( "WD: %s", e.what() ); nlwarning( "WD: %s", e.what() );
} }

View file

@ -451,7 +451,7 @@ void CClientReceiveTask::run()
NbLoop++; NbLoop++;
} }
catch ( ESocket& ) catch (const ESocket&)
{ {
LNETL1_DEBUG( "LNETL1: Client connection %s broken", sockId()->asString().c_str() ); LNETL1_DEBUG( "LNETL1: Client connection %s broken", sockId()->asString().c_str() );
sockId()->Sock->disconnect(); sockId()->Sock->disconnect();

View file

@ -829,7 +829,7 @@ void CListenTask::run()
NbLoop++; NbLoop++;
} }
catch ( ESocket& e ) catch (const ESocket &e)
{ {
LNETL1_INFO( "LNETL1: Exception in listen thread: %s", e.what() ); LNETL1_INFO( "LNETL1: Exception in listen thread: %s", e.what() );
// It can occur when too many sockets are open (e.g. 885 connections) // It can occur when too many sockets are open (e.g. 885 connections)
@ -1131,12 +1131,12 @@ void CServerReceiveTask::run()
*/ */
} }
} }
// catch ( ESocketConnectionClosed& ) // catch (const ESocketConnectionClosed&)
// { // {
// LNETL1_DEBUG( "LNETL1: Connection %s closed", serverbufsock->asString().c_str() ); // LNETL1_DEBUG( "LNETL1: Connection %s closed", serverbufsock->asString().c_str() );
// // The socket went to _Connected=false when throwing the exception // // The socket went to _Connected=false when throwing the exception
// } // }
catch ( ESocket& ) catch (const ESocket&)
{ {
LNETL1_DEBUG( "LNETL1: Connection %s broken", serverbufsock->asString().c_str() ); LNETL1_DEBUG( "LNETL1: Connection %s broken", serverbufsock->asString().c_str() );
(*ic)->Sock->disconnect(); (*ic)->Sock->disconnect();

View file

@ -280,7 +280,7 @@ void CCallbackClient::connect( const CInetAddress& addr )
_MR_Recorder.recordNext( _MR_UpdateCounter, Connecting, _BufSock, addrmsg ); _MR_Recorder.recordNext( _MR_UpdateCounter, Connecting, _BufSock, addrmsg );
} }
} }
catch ( ESocketConnectionFailed& ) catch (const ESocketConnectionFailed&)
{ {
if ( _MR_RecordingState == Record ) if ( _MR_RecordingState == Record )
{ {

View file

@ -155,7 +155,7 @@ void CCallbackNetBase::processOneMessage ()
{ {
receive (msgin, &tsid); receive (msgin, &tsid);
} }
catch (Exception &e) catch (const Exception &e)
{ {
nlwarning(e.what()); nlwarning(e.what());
return; return;

View file

@ -330,7 +330,7 @@ bool sendEmail (const string &smtpServer, const string &from, const string &to,
ok = true; ok = true;
} }
} }
catch (Exception &e) catch (const Exception &e)
{ {
nlwarning ("EMAIL: Can't send email: %s", e.what()); nlwarning ("EMAIL: Can't send email: %s", e.what());
goto end; goto end;

View file

@ -146,7 +146,7 @@ string CLoginClient::authenticateBegin(const string &loginServiceAddr, const ucs
_LSCallbackClient->disconnect(); _LSCallbackClient->disconnect();
_LSCallbackClient->connect (CInetAddress(addr)); _LSCallbackClient->connect (CInetAddress(addr));
} }
catch (ESocket &e) catch (const ESocket &e)
{ {
delete _LSCallbackClient; delete _LSCallbackClient;
_LSCallbackClient = 0; _LSCallbackClient = 0;
@ -226,7 +226,7 @@ string CLoginClient::connectToShard(CLoginCookie &lc, const std::string &addr, C
// have we received the answer? // have we received the answer?
if (!ShardValidate) return "FES disconnect me"; if (!ShardValidate) return "FES disconnect me";
} }
catch (ESocket &e) catch (const ESocket &e)
{ {
return string("FES refused the connection (") + e.what () + ")"; return string("FES refused the connection (") + e.what () + ")";
} }
@ -250,7 +250,7 @@ string CLoginClient::connectToShard (const std::string &addr, CUdpSock &cnx)
// //
cnx.connect (CInetAddress(addr)); cnx.connect (CInetAddress(addr));
} }
catch (ESocket &e) catch (const ESocket &e)
{ {
return string("FES refused the connection (") + e.what () + ")"; return string("FES refused the connection (") + e.what () + ")";
} }
@ -272,7 +272,7 @@ string CLoginClient::connectToShard (const std::string &addr, CUdpSimSock &cnx)
// //
cnx.connect (CInetAddress(addr)); cnx.connect (CInetAddress(addr));
} }
catch (ESocket &e) catch (const ESocket &e)
{ {
return string("FES refused the connection (") + e.what () + ")"; return string("FES refused the connection (") + e.what () + ")";
} }

View file

@ -349,17 +349,17 @@ void CLoginServer::init (const string &listenAddress)
try { try {
cfcbDefaultUserPriv(IService::getInstance()->ConfigFile.getVar("DefaultUserPriv")); cfcbDefaultUserPriv(IService::getInstance()->ConfigFile.getVar("DefaultUserPriv"));
IService::getInstance()->ConfigFile.setCallback("DefaultUserPriv", cfcbDefaultUserPriv); IService::getInstance()->ConfigFile.setCallback("DefaultUserPriv", cfcbDefaultUserPriv);
} catch(Exception &) { } } catch(const Exception &) { }
try { try {
cfcbAcceptInvalidCookie (IService::getInstance()->ConfigFile.getVar("AcceptInvalidCookie")); cfcbAcceptInvalidCookie (IService::getInstance()->ConfigFile.getVar("AcceptInvalidCookie"));
IService::getInstance()->ConfigFile.setCallback("AcceptInvalidCookie", cfcbAcceptInvalidCookie); IService::getInstance()->ConfigFile.setCallback("AcceptInvalidCookie", cfcbAcceptInvalidCookie);
} catch(Exception &) { } } catch(const Exception &) { }
try { try {
cfcbTimeBeforeEraseCookie (IService::getInstance()->ConfigFile.getVar("TimeBeforeEraseCookie")); cfcbTimeBeforeEraseCookie (IService::getInstance()->ConfigFile.getVar("TimeBeforeEraseCookie"));
IService::getInstance()->ConfigFile.setCallback("TimeBeforeEraseCookie", cfcbTimeBeforeEraseCookie); IService::getInstance()->ConfigFile.setCallback("TimeBeforeEraseCookie", cfcbTimeBeforeEraseCookie);
} catch(Exception &) { } } catch(const Exception &) { }
// setup the listen address // setup the listen address

View file

@ -330,7 +330,7 @@ namespace NLNET
_onProcessModuleMessage(currentSender, currentMessage); _onProcessModuleMessage(currentSender, currentMessage);
_CurrentMessageFailed = false; _CurrentMessageFailed = false;
} }
catch (NLMISC::Exception e) catch (const NLMISC::Exception &e)
{ {
nlwarning("In module task '%s' (cotask message receiver), exception '%e' thrown", typeid(this).name(), e.what()); nlwarning("In module task '%s' (cotask message receiver), exception '%e' thrown", typeid(this).name(), e.what());
// an exception have been thrown // an exception have been thrown

View file

@ -109,7 +109,7 @@ namespace NLNET
sd->serial(s); sd->serial(s);
} }
} }
catch(EStreamOverflow e) catch(const EStreamOverflow &)
{ {
// FAILED to read the security block, rewind to old pos and serial as unknow // FAILED to read the security block, rewind to old pos and serial as unknow
nlwarning("Error while reading stream for security data type %u", dataTag); nlwarning("Error while reading stream for security data type %u", dataTag);

View file

@ -684,7 +684,7 @@ namespace NLNET
route->CallbackClient.connect(addr); route->CallbackClient.connect(addr);
nldebug("CGatewayL3ClientTransport : Connected to %s with connId %u", addr.asString().c_str(), connId); nldebug("CGatewayL3ClientTransport : Connected to %s with connId %u", addr.asString().c_str(), connId);
} }
catch (ESocketConnectionFailed e) catch (const ESocketConnectionFailed &)
{ {
nlinfo("CGatewayL3ClientTransport : Failed to connect to server %s, retrying in %u seconds", addr.asString().c_str(), _RetryInterval); nlinfo("CGatewayL3ClientTransport : Failed to connect to server %s, retrying in %u seconds", addr.asString().c_str(), _RetryInterval);
} }

View file

@ -502,7 +502,7 @@ bool CNamingClient::lookupAndConnect (const std::string &name, CCallbackClient &
// connection succeeded // connection succeeded
return true; return true;
} }
catch (ESocketConnectionFailed &e) catch (const ESocketConnectionFailed &e)
{ {
nldebug( "NC: Connection to %s failed: %s, tring another service if available", servaddr.asString().c_str(), e.what() ); nldebug( "NC: Connection to %s failed: %s, tring another service if available", servaddr.asString().c_str(), e.what() );

View file

@ -79,7 +79,7 @@ void CNetDisplayer::setLogServer (const CInetAddress& logServerAddr)
{ {
_Server->connect (_ServerAddr); _Server->connect (_ServerAddr);
} }
catch( ESocket& ) catch(const ESocket&)
{ {
// Silence // Silence
} }
@ -153,7 +153,7 @@ void CNetDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *mess
msg.serial( s ); msg.serial( s );
_Server->send (msg, 0, false); _Server->send (msg, 0, false);
} }
catch( NLMISC::Exception& ) catch(const NLMISC::Exception& )
{ {
// Silence // Silence
} }

View file

@ -914,7 +914,7 @@ sint IService::main (const char *serviceShortName, const char *serviceLongName,
// Get the localhost name // Get the localhost name
localhost = CInetAddress::localHost().hostName(); localhost = CInetAddress::localHost().hostName();
} }
catch (NLNET::ESocket &) catch (const NLNET::ESocket &)
{ {
localhost = "<UnknownHost>"; localhost = "<UnknownHost>";
} }
@ -1091,7 +1091,7 @@ sint IService::main (const char *serviceShortName, const char *serviceLongName,
return 10; return 10;
} }
} }
catch (ESocketConnectionFailed &) catch (const ESocketConnectionFailed &)
{ {
nlinfo ("SERVICE: Could not connect to the Naming Service (%s). Retrying in a few seconds...", loc.asString().c_str()); nlinfo ("SERVICE: Could not connect to the Naming Service (%s). Retrying in a few seconds...", loc.asString().c_str());
nlSleep (5000); nlSleep (5000);
@ -1495,13 +1495,13 @@ sint IService::main (const char *serviceShortName, const char *serviceLongName,
MyTAT.deactivate(); MyTAT.deactivate();
} }
} }
catch (EFatalError &) catch (const EFatalError &)
{ {
// Somebody call nlerror, so we have to quit now, the message already display // Somebody call nlerror, so we have to quit now, the message already display
// so we don't have to to anything // so we don't have to to anything
setExitStatus (EXIT_FAILURE); setExitStatus (EXIT_FAILURE);
} }
catch (ESocket &e) catch (const ESocket &e)
{ {
// Catch NeL network exception to release the system cleanly setExitStatus (EXIT_FAILURE); // Catch NeL network exception to release the system cleanly setExitStatus (EXIT_FAILURE);
ErrorLog->displayNL( "NeL Exception in \"%s\": %s", _ShortName.c_str(), e.what() ); ErrorLog->displayNL( "NeL Exception in \"%s\": %s", _ShortName.c_str(), e.what() );
@ -1560,7 +1560,7 @@ sint IService::main (const char *serviceShortName, const char *serviceLongName,
nlinfo ("SERVICE: Service released successfully"); nlinfo ("SERVICE: Service released successfully");
} }
catch (EFatalError &) catch (const EFatalError &)
{ {
// Somebody call nlerror, so we have to quit now, the message already display // Somebody call nlerror, so we have to quit now, the message already display
// so we don't have to to anything // so we don't have to to anything

View file

@ -419,7 +419,7 @@ void getNameOfMessageOrTransportClass( NLNET::CMessage& msgin, std::string& msgN
msgin.seek( msgin.getHeaderSize(), NLMISC::IStream::begin ); msgin.seek( msgin.getHeaderSize(), NLMISC::IStream::begin );
msgin.serial( msgName ); msgin.serial( msgName );
} }
catch ( EStreamOverflow& ) catch (const EStreamOverflow&)
{ {
msgName = "<Name not found>"; msgName = "<Name not found>";
} }

View file

@ -481,7 +481,7 @@ void CAliveCheck::run()
CheckList[i].AddressValid = true; CheckList[i].AddressValid = true;
cbc.disconnect(); cbc.disconnect();
} }
catch (ESocketConnectionFailed &e) catch (const ESocketConnectionFailed &e)
{ {
#if FINAL_VERSION #if FINAL_VERSION
nlinfo ("HNETL5: can't connect to %s-%hu now (%s)", CheckList[i].ServiceName.c_str(), CheckList[i].ServiceId.get(), e.what ()); nlinfo ("HNETL5: can't connect to %s-%hu now (%s)", CheckList[i].ServiceName.c_str(), CheckList[i].ServiceId.get(), e.what ());
@ -587,7 +587,7 @@ bool CUnifiedNetwork::init(const CInetAddress *addr, CCallbackNetBase::TRecordin
{ {
_CbServer->init(port); _CbServer->init(port);
} }
catch (ESocket &) catch (const ESocket &)
{ {
nlwarning("Failed to init the listen socket on port %u, is the service already running ?", port); nlwarning("Failed to init the listen socket on port %u, is the service already running ?", port);
// wait a little before retrying // wait a little before retrying
@ -866,7 +866,7 @@ void CUnifiedNetwork::addService(const string &name, const vector<CInetAddress>
cbc->connect(addr[i]); cbc->connect(addr[i]);
connectSuccess = true; connectSuccess = true;
} }
catch (ESocketConnectionFailed &e) catch (const ESocketConnectionFailed &e)
{ {
nlwarning ("HNETL5: can't connect to %s (sid %u) now (%s) '%s'", name.c_str(), sid.get(), e.what (), addr[i].asString ().c_str()); nlwarning ("HNETL5: can't connect to %s (sid %u) now (%s) '%s'", name.c_str(), sid.get(), e.what (), addr[i].asString ().c_str());
connectSuccess = false; connectSuccess = false;
@ -1010,7 +1010,7 @@ void CUnifiedNetwork::update(TTime timeout)
laddr[i].setPort(_ServerPort); laddr[i].setPort(_ServerPort);
CNamingClient::resendRegisteration (_Name, laddr, _SId); CNamingClient::resendRegisteration (_Name, laddr, _SId);
} }
catch (ESocketConnectionFailed &) catch (const ESocketConnectionFailed &)
{ {
nlwarning ("HNETL5: Could not connect to the Naming Service (%s). Retrying in a few seconds...", _NamingServiceAddr.asString().c_str()); nlwarning ("HNETL5: Could not connect to the Naming Service (%s). Retrying in a few seconds...", _NamingServiceAddr.asString().c_str());
} }
@ -1209,7 +1209,7 @@ void CUnifiedNetwork::autoReconnect( CUnifiedConnection &uc, uint connectionInde
// call the user callback // call the user callback
callServiceUpCallback (uc.ServiceName, uc.ServiceId); callServiceUpCallback (uc.ServiceName, uc.ServiceId);
} }
catch (ESocketConnectionFailed &e) catch (const ESocketConnectionFailed &e)
{ {
#if FINAL_VERSION #if FINAL_VERSION
nlinfo ("HNETL5: can't connect to %s-%hu now (%s)", uc.ServiceName.c_str(), uc.ServiceId.get(), e.what ()); nlinfo ("HNETL5: can't connect to %s-%hu now (%s)", uc.ServiceName.c_str(), uc.ServiceId.get(), e.what ());

View file

@ -387,7 +387,7 @@ void NLPACS::CGlobalRetriever::makeLinks(uint n)
instance.link(neighbor, _RetrieverBank->getRetrievers()); instance.link(neighbor, _RetrieverBank->getRetrievers());
neighbor.link(instance, _RetrieverBank->getRetrievers()); neighbor.link(instance, _RetrieverBank->getRetrievers());
} }
catch (Exception &e) catch (const Exception &e)
{ {
nlwarning("in NLPACS::CGlobalRetriever::makeLinks()"); nlwarning("in NLPACS::CGlobalRetriever::makeLinks()");
nlwarning("caught an exception during linkage of %d and %d: %s", instance.getInstanceId(), neighbor.getInstanceId(), e.what()); nlwarning("caught an exception during linkage of %d and %d: %s", instance.getInstanceId(), neighbor.getInstanceId(), e.what());

View file

@ -150,7 +150,7 @@ public:
{ {
f.serial(_Retrievers[i]); f.serial(_Retrievers[i]);
} }
catch (NLMISC::Exception &e) catch (const NLMISC::Exception &e)
{ {
nlwarning("Couldn't load retriever file '%s', %s", fname.c_str(), e.what()); nlwarning("Couldn't load retriever file '%s', %s", fname.c_str(), e.what());
_Retrievers[i].clear(); _Retrievers[i].clear();

View file

@ -370,7 +370,7 @@ void CAudioMixerUser::initDriver(const std::string &driverName)
_SoundDriver = ISoundDriver::createDriver(this, driverType); _SoundDriver = ISoundDriver::createDriver(this, driverType);
nlassert(_SoundDriver); nlassert(_SoundDriver);
} }
catch (ESoundDriver &e) catch (const ESoundDriver &e)
{ {
nlwarning(e.what()); nlwarning(e.what());
delete _SoundDriver; _SoundDriver = NULL; delete _SoundDriver; _SoundDriver = NULL;
@ -458,7 +458,7 @@ void CAudioMixerUser::initDevice(const std::string &deviceName, const CInitInfo
manualRolloff = false; // not really needed, but set anyway in case this is still used later in this function manualRolloff = false; // not really needed, but set anyway in case this is still used later in this function
} }
} }
catch (ESoundDriver &e) catch (const ESoundDriver &e)
{ {
nlwarning(e.what()); nlwarning(e.what());
delete _SoundDriver; _SoundDriver = NULL; delete _SoundDriver; _SoundDriver = NULL;
@ -883,7 +883,7 @@ void CAudioMixerUser::buildSampleBankList()
} }
} }
} }
catch(Exception e) catch(const Exception &)
{ {
upToDate = false; upToDate = false;
} }
@ -2100,7 +2100,7 @@ uint32 CAudioMixerUser::loadSampleBank(bool async, const std::string &name, st
{ {
bank->load(async); bank->load(async);
} }
catch (Exception& e) catch (const Exception& e)
{ {
if (notfoundfiles) if (notfoundfiles)
{ {
@ -2489,7 +2489,7 @@ void CAudioMixerUser::changeMaxTrack(uint maxTrack)
_FreeTracks.insert(_FreeTracks.begin(), _Tracks[i]); _FreeTracks.insert(_FreeTracks.begin(), _Tracks[i]);
} }
} }
catch ( ESoundDriver & ) catch (const ESoundDriver &)
{ {
delete _Tracks[i]; delete _Tracks[i];
// If the source generation failed, keep only the generated number of sources // If the source generation failed, keep only the generated number of sources

View file

@ -605,7 +605,7 @@ void CSoundDriverDSound::initDevice(const std::string &device, ISoundDriver::TSo
_SourceCount++; _SourceCount++;
} }
} }
catch (ESoundDriver& e) catch (const ESoundDriver& e)
{ {
// Okay, here's the situation: I'm listening to WinAmp while debugging. // Okay, here's the situation: I'm listening to WinAmp while debugging.
// The caps told me there were 31 buffers available. In reality, there were // The caps told me there were 31 buffers available. In reality, there were

View file

@ -892,12 +892,22 @@ void CSourceAL::setStreamingBuffersMax(uint buffers)
for(uint i = 0; i < _BuffersMax; ++i) for(uint i = 0; i < _BuffersMax; ++i)
{ {
// create a new buffer try
CBufferAL *buffer = static_cast<CBufferAL*>(_SoundDriver->createBuffer()); {
// use StorageSoftware because buffers will be reused // create a new buffer
// deleting and recreating them is a waste of time CBufferAL *buffer = static_cast<CBufferAL*>(_SoundDriver->createBuffer());
buffer->setStorageMode(IBuffer::StorageSoftware); // use StorageSoftware because buffers will be reused
_Buffers[buffer->bufferName()] = buffer; // deleting and recreating them is a waste of time
buffer->setStorageMode(IBuffer::StorageSoftware);
_Buffers[buffer->bufferName()] = buffer;
}
catch(const ESoundDriverGenBuf &e)
{
nlwarning("Cannot create %d buffers. openal fails after %d buffers", buffers, i);
_BuffersMax = i;
_BuffersName.resize(i);
break;
}
} }
} }

View file

@ -213,7 +213,7 @@ void CSampleBank::load(bool async)
_SampleBankManager->m_LoadedSize += _ByteSize; _SampleBankManager->m_LoadedSize += _ByteSize;
} }
catch(Exception &e) catch(const Exception &e)
{ {
// loading failed ! // loading failed !
nlwarning("Exception %s during loading of sample bank %s", e.what(), filename.c_str()); nlwarning("Exception %s during loading of sample bank %s", e.what(), filename.c_str());
@ -281,7 +281,7 @@ void CSampleBank::load(bool async)
// Warn the sound bank that the sample are available. // Warn the sound bank that the sample are available.
CSoundBank::instance()->bufferLoaded(sampleName, ibuffer); CSoundBank::instance()->bufferLoaded(sampleName, ibuffer);
} }
catch (ESoundDriver &e) catch (const ESoundDriver &e)
{ {
if (ibuffer != NULL) { if (ibuffer != NULL) {
delete ibuffer; delete ibuffer;

View file

@ -36,7 +36,7 @@ using namespace NLMISC;
namespace NLSOUND { namespace NLSOUND {
CSampleBankManager::CSampleBankManager(CAudioMixerUser *audioMixer) : m_AudioMixer(audioMixer), m_LoadedSize(NULL) CSampleBankManager::CSampleBankManager(CAudioMixerUser *audioMixer) : m_AudioMixer(audioMixer), m_LoadedSize(0)
{ {
} }

View file

@ -103,7 +103,7 @@ int main(int argc, char* argv[])
animationOptimizer.addLowPrecisionTrack(anim_low_precision_tracks.asString(lpt)); animationOptimizer.addLowPrecisionTrack(anim_low_precision_tracks.asString(lpt));
} }
} }
catch(EUnknownVar &) catch(const EUnknownVar &)
{ {
nlwarning("\"anim_low_precision_tracks\" not found in the parameter file. Add \"Finger\" and \"Ponytail\" by default"); nlwarning("\"anim_low_precision_tracks\" not found in the parameter file. Add \"Finger\" and \"Ponytail\" by default");
animationOptimizer.addLowPrecisionTrack("Finger"); animationOptimizer.addLowPrecisionTrack("Finger");
@ -126,7 +126,7 @@ int main(int argc, char* argv[])
animationOptimizer.setSampleFrameRate(sr); animationOptimizer.setSampleFrameRate(sr);
} }
} }
catch(EUnknownVar &) catch(const EUnknownVar &)
{ {
nlwarning("\"anim_sample_rate\" not found in the parameter file. Use Default of 30 fps."); nlwarning("\"anim_sample_rate\" not found in the parameter file. Use Default of 30 fps.");
animationOptimizer.setSampleFrameRate(30); animationOptimizer.setSampleFrameRate(30);
@ -198,7 +198,7 @@ int main(int argc, char* argv[])
nlinfo("Anim skipped: %4d", numSkipped); nlinfo("Anim skipped: %4d", numSkipped);
} }
catch (Exception& except) catch (const Exception& except)
{ {
// Error message // Error message
nlwarning ("ERROR %s\n", except.what()); nlwarning ("ERROR %s\n", except.what());

View file

@ -124,7 +124,7 @@ int main(int argc, char* argv[])
return -1; return -1;
} }
} }
catch (Exception& e) catch (const Exception& e)
{ {
// Error message // Error message
fprintf (stderr, "Error: %s\n", e.what()); fprintf (stderr, "Error: %s\n", e.what());

View file

@ -173,7 +173,7 @@ int main(int argc, char *argv[])
// NB: the key name here is the entire file, with the .anim, for easier georges editing. // NB: the key name here is the entire file, with the .anim, for easier georges editing.
lodBuilder.addAnim(animFileName.c_str(), anim, bakeFrameRate); lodBuilder.addAnim(animFileName.c_str(), anim, bakeFrameRate);
} }
catch(EPathNotFound &) catch(const EPathNotFound &)
{ {
printf("ERROR anim not found %s\n", animFileName.c_str()); printf("ERROR anim not found %s\n", animFileName.c_str());
delete anim; delete anim;
@ -186,7 +186,7 @@ int main(int argc, char *argv[])
uint32 shapeId= lodShapeBank.addShape(); uint32 shapeId= lodShapeBank.addShape();
*lodShapeBank.getShapeFullAcces(shapeId)= lodBuilder.getLodShape(); *lodShapeBank.getShapeFullAcces(shapeId)= lodBuilder.getLodShape();
} }
catch(EUnknownVar &evar) catch(const EUnknownVar &evar)
{ {
nlwarning(evar.what()); nlwarning(evar.what());
// Any other exception will make the program quit. // Any other exception will make the program quit.
@ -205,7 +205,7 @@ int main(int argc, char *argv[])
oFile.serial(lodShapeBank); oFile.serial(lodShapeBank);
oFile.close(); oFile.close();
} }
catch (Exception& except) catch (const Exception& except)
{ {
// Error message // Error message
printf ("ERROR %s.\n Aborting.\n", except.what()); printf ("ERROR %s.\n Aborting.\n", except.what());

View file

@ -100,7 +100,7 @@ bool computeOneShape(const char *lodFile, const char *shapeIn, const char *shape
COFile dbgF("testDBG.tga"); COFile dbgF("testDBG.tga");
dbg.writeTGA(dbgF, 32);*/ dbg.writeTGA(dbgF, 32);*/
} }
catch(Exception &e) catch(const Exception &e)
{ {
nlwarning("ERROR: %s", e.what()); nlwarning("ERROR: %s", e.what());
return false; return false;
@ -179,7 +179,7 @@ int main(int argc, char *argv[])
LodFilters[i]= var.asString(i*2+1); LodFilters[i]= var.asString(i*2+1);
} }
} }
catch(Exception &e) catch(const Exception &e)
{ {
// It is not an error to have a bad config file: files will be copied // It is not an error to have a bad config file: files will be copied
nlwarning(e.what()); nlwarning(e.what());

View file

@ -255,12 +255,12 @@ int main(int argc, char* argv[])
nlwarning ("WARNING no coarse mesh to compute, abort.\n"); nlwarning ("WARNING no coarse mesh to compute, abort.\n");
} }
} }
catch (EConfigFile &e) catch (const EConfigFile &e)
{ {
// Something goes wrong... catch that // Something goes wrong... catch that
nlwarning ("ERROR %s\n", e.what ()); nlwarning ("ERROR %s\n", e.what ());
} }
catch (Exception &e) catch (const Exception &e)
{ {
// Something goes wrong... catch that // Something goes wrong... catch that
nlwarning ("ERROR %s\n", e.what ()); nlwarning ("ERROR %s\n", e.what ());

View file

@ -120,7 +120,7 @@ bool fillTileFar (uint tile, const char* sName, CTileFarBank::TFarType type, CTi
// Ok. // Ok.
return true; return true;
} }
catch (Exception& except) catch (const Exception& except)
{ {
nlwarning ("ERROR %s\n", except.what()); nlwarning ("ERROR %s\n", except.what());
} }
@ -409,7 +409,7 @@ int main (int argc, char **argv)
nlwarning ("ERROR Can't open file %s for writing\n", argv[2]); nlwarning ("ERROR Can't open file %s for writing\n", argv[2]);
} }
} }
catch (Exception& except) catch (const Exception& except)
{ {
nlwarning ("ERROR %s\n", except.what()); nlwarning ("ERROR %s\n", except.what());
} }

View file

@ -267,7 +267,7 @@ int main(int nNbArg, char **ppArgs)
pBtmp->load(inFile); pBtmp->load(inFile);
AllMaps[i] = pBtmp; AllMaps[i] = pBtmp;
} }
catch (NLMISC::Exception &e) catch (const NLMISC::Exception &e)
{ {
outString (string("ERROR :") + e.what()); outString (string("ERROR :") + e.what());
return -1; return -1;

View file

@ -70,7 +70,7 @@ int main(int argc, char* argv[])
} }
} }
catch (Exception& e) catch (const Exception& e)
{ {
// Error // Error
nlwarning ("ERROR fatal error: %s", e.what()); nlwarning ("ERROR fatal error: %s", e.what());

View file

@ -94,7 +94,7 @@ CInstanceGroup* LoadInstanceGroup(const char* sFilename)
newIG->serial (file); newIG->serial (file);
// All is good // All is good
} }
catch (Exception &) catch (const Exception &)
{ {
// Cannot save the file // Cannot save the file
delete newIG; delete newIG;

View file

@ -331,9 +331,9 @@ void displayInfoFileInStream(FILE *logStream, const char *fileName, const set<st
fprintf(logStream, " 'StaticLight Not Computed' means the instance has a ASP flag or the ig is not yet lighted\n"); fprintf(logStream, " 'StaticLight Not Computed' means the instance has a ASP flag or the ig is not yet lighted\n");
fprintf(logStream, " If lighted, for each instance, the format is 'SunContribution(8Bit) - idLight0;idLight1 (or NOLIGHT) - LocalAmbientId (or GLOBAL_AMBIENT)' \n"); fprintf(logStream, " If lighted, for each instance, the format is 'SunContribution(8Bit) - idLight0;idLight1 (or NOLIGHT) - LocalAmbientId (or GLOBAL_AMBIENT)' \n");
fprintf(logStream, " DCS means the instance don't cast shadow (used in the lighter)\n"); fprintf(logStream, " DCS means the instance don't cast shadow (used in the lighter)\n");
fprintf(logStream, " DCSINT Same but very special for ig_lighter.exe only\n"); fprintf(logStream, " DCSINT Same but very special for ig_lighter only\n");
fprintf(logStream, " DCSEXT Same but very special for zone_lighter and zone_ig_lighter.exe only\n"); fprintf(logStream, " DCSEXT Same but very special for zone_lighter and zone_ig_lighter only\n");
fprintf(logStream, " ASP means the instance AvoidStaticLightPreCompute (used in the lighter.exe)\n"); fprintf(logStream, " ASP means the instance AvoidStaticLightPreCompute (used in the lighter)\n");
fprintf(logStream, " -------------------------------------------------------------\n"); fprintf(logStream, " -------------------------------------------------------------\n");
uint k; uint k;
for(k = 0; k < ig._InstancesInfos.size(); ++k) for(k = 0; k < ig._InstancesInfos.size(); ++k)

View file

@ -125,7 +125,7 @@ int main(int argc, char *argv[])
f.serial(textInfo); f.serial(textInfo);
addTextToBank(textInfo, textBank); addTextToBank(textInfo, textBank);
} }
catch(Exception &e) catch(const Exception &e)
{ {
nlwarning("ERROR: Unable to process %s. Reason: %s. Processing next", hlsInfofiles[k].c_str(), e.what()); nlwarning("ERROR: Unable to process %s. Reason: %s. Processing next", hlsInfofiles[k].c_str(), e.what());
} }
@ -143,7 +143,7 @@ int main(int argc, char *argv[])
fOut.serial(textBank); fOut.serial(textBank);
fOut.close(); fOut.close();
} }
catch(Exception &e) catch(const Exception &e)
{ {
nlwarning("ERROR: Unable to write HLS Bank %s: %s", argv[2], e.what()); nlwarning("ERROR: Unable to write HLS Bank %s: %s", argv[2], e.what());
exit(-1); exit(-1);

View file

@ -37,7 +37,7 @@ CInstanceGroup* LoadInstanceGroup (const char* sFilename)
{ {
newIG->serial (file); newIG->serial (file);
} }
catch (Exception &) catch (const Exception &)
{ {
delete newIG; delete newIG;
return NULL; return NULL;
@ -62,7 +62,7 @@ bool SaveInstanceGroup (const char* sFilename, CInstanceGroup *pIG)
{ {
pIG->serial (file); pIG->serial (file);
} }
catch (Exception &) catch (const Exception &)
{ {
return false; return false;
} }

View file

@ -106,7 +106,7 @@ struct SExportOptions
CConfigFile::CVar &cvLandFile = cf.getVar("LandFile"); CConfigFile::CVar &cvLandFile = cf.getVar("LandFile");
LandFile = cvLandFile.asString(); LandFile = cvLandFile.asString();
} }
catch (EConfigFile &e) catch (const EConfigFile &e)
{ {
string sTmp = string("ERROR : Error in config file : ") + e.what() + "\n"; string sTmp = string("ERROR : Error in config file : ") + e.what() + "\n";
outString (sTmp); outString (sTmp);
@ -173,7 +173,7 @@ CZoneRegion *loadLand (const string &filename)
outString (sTmp); outString (sTmp);
} }
} }
catch (Exception& e) catch (const Exception& e)
{ {
string sTmp = string("Error in land file : ") + e.what(); string sTmp = string("Error in land file : ") + e.what();
outString (sTmp); outString (sTmp);
@ -194,7 +194,7 @@ CInstanceGroup* LoadInstanceGroup (const char* sFilename)
{ {
newIG->serial (file); newIG->serial (file);
} }
catch (Exception &) catch (const Exception &)
{ {
// Cannot save the file // Cannot save the file
delete newIG; delete newIG;
@ -220,7 +220,7 @@ void SaveInstanceGroup (const char* sFilename, CInstanceGroup *pIG)
{ {
pIG->serial (file); pIG->serial (file);
} }
catch (Exception &e) catch (const Exception &e)
{ {
outString(string(e.what())); outString(string(e.what()));
} }
@ -339,7 +339,7 @@ int main(int nNbArg, char**ppArgs)
HeightMap1 = NULL; HeightMap1 = NULL;
} }
} }
catch (Exception &e) catch (const Exception &e)
{ {
string sTmp = string("Cant load height map : ") + options.HeightMapFile1 + " : " + e.what(); string sTmp = string("Cant load height map : ") + options.HeightMapFile1 + " : " + e.what();
outString (sTmp); outString (sTmp);
@ -365,7 +365,7 @@ int main(int nNbArg, char**ppArgs)
HeightMap2 = NULL; HeightMap2 = NULL;
} }
} }
catch (Exception &e) catch (const Exception &e)
{ {
string sTmp = string("Cant load height map : ") + options.HeightMapFile2 + " : " + e.what() + "\n"; string sTmp = string("Cant load height map : ") + options.HeightMapFile2 + " : " + e.what() + "\n";
outString (sTmp); outString (sTmp);

View file

@ -83,7 +83,7 @@ int main(int argc, char **argv)
printf("TotalCells: %d\n", totalCells); printf("TotalCells: %d\n", totalCells);
} }
catch (std::exception &e) catch (const std::exception &e)
{ {
printf("%s\n", e.what()); printf("%s\n", e.what());
} }

View file

@ -344,7 +344,7 @@ int main(int argc, char* argv[])
} }
} }
catch (Exception& except) catch (const Exception& except)
{ {
// Error message // Error message
nlwarning ("ERROR %s\n", except.what()); nlwarning ("ERROR %s\n", except.what());

View file

@ -365,7 +365,7 @@ int main(int nNbArg, char **ppArgs)
CMeshBase *pMB = dynamic_cast<CMeshBase*>(mesh.getShapePointer()); CMeshBase *pMB = dynamic_cast<CMeshBase*>(mesh.getShapePointer());
AllShapes.push_back (pMB); AllShapes.push_back (pMB);
} }
catch (NLMISC::EPathNotFound &e) catch (const NLMISC::EPathNotFound &e)
{ {
outString(string("ERROR: shape not found ")+AllShapeNames[nShp]+" - "+e.what()); outString(string("ERROR: shape not found ")+AllShapeNames[nShp]+" - "+e.what());
return -1; return -1;
@ -529,7 +529,7 @@ int main(int nNbArg, char **ppArgs)
inFile.open(sTmp2); inFile.open(sTmp2);
CBitmap::loadSize(inFile, wRef, hRef); CBitmap::loadSize(inFile, wRef, hRef);
} }
catch (NLMISC::Exception &e) catch (const NLMISC::Exception &e)
{ {
outString (string("ERROR :") + e.what()); outString (string("ERROR :") + e.what());
return -1; return -1;
@ -546,7 +546,7 @@ int main(int nNbArg, char **ppArgs)
inFile.open(sTmp3); inFile.open(sTmp3);
CBitmap::loadSize(inFile, wCur, hCur); CBitmap::loadSize(inFile, wCur, hCur);
} }
catch (NLMISC::Exception &) catch (const NLMISC::Exception &)
{ {
} }
@ -595,7 +595,7 @@ int main(int nNbArg, char **ppArgs)
pBtmp->load(inFile); pBtmp->load(inFile);
AllLightmaps[i] = pBtmp; AllLightmaps[i] = pBtmp;
} }
catch (NLMISC::Exception &e) catch (const NLMISC::Exception &e)
{ {
outString (string("ERROR :") + e.what()); outString (string("ERROR :") + e.what());
return -1; return -1;
@ -671,7 +671,7 @@ int main(int nNbArg, char **ppArgs)
BitmapJ.load (inFile); BitmapJ.load (inFile);
inFile.close (); inFile.close ();
} }
catch (NLMISC::Exception &e) catch (const NLMISC::Exception &e)
{ {
outString (string("ERROR :") + e.what()); outString (string("ERROR :") + e.what());
return -1; return -1;
@ -883,7 +883,7 @@ int main(int nNbArg, char **ppArgs)
meshfile.close (); meshfile.close ();
} }
} }
catch (NLMISC::EPathNotFound &e) catch (const NLMISC::EPathNotFound &e)
{ {
outString(string("ERROR: cannot save shape ")+AllShapeNames[k]+" - "+e.what()); outString(string("ERROR: cannot save shape ")+AllShapeNames[k]+" - "+e.what());
return -1; return -1;

View file

@ -23,10 +23,10 @@ namespace Core
namespace Constants namespace Constants
{ {
const char * const OVQT_VERSION_LONG = "0.0.1"; const char * const OVQT_VERSION_LONG = "0.1";
const char * const OVQT_VENDOR = "Ryzom Core"; const char * const OVQT_VENDOR = "Ryzom Core";
const char * const OVQT_YEAR = "2010, 2011"; const char * const OVQT_YEAR = "2010, 2011";
const char * const OVQT_CORE_PLUGIN = "Core"; const char * const OVQT_CORE_PLUGIN = "Core";
//mainwindow //mainwindow
const char * const MAIN_WINDOW = "ObjectViewerQt.MainWindow"; const char * const MAIN_WINDOW = "ObjectViewerQt.MainWindow";
@ -43,12 +43,26 @@ const char * const M_TOOLS = "ObjectViewerQt.Menu.Tools";
const char * const M_WINDOW = "ObjectViewerQt.Menu.Window"; const char * const M_WINDOW = "ObjectViewerQt.Menu.Window";
const char * const M_HELP = "ObjectViewerQt.Menu.Help"; const char * const M_HELP = "ObjectViewerQt.Menu.Help";
const char * const M_FILE_RECENTFILES = "ObjectViewerQt.Menu.File.RecentFiles";
const char * const M_SHEET = "ObjectViewerQt.Menu.Sheet"; const char * const M_SHEET = "ObjectViewerQt.Menu.Sheet";
//actions //actions
const char * const NEW = "ObjectViewerQt.New"; const char * const NEW = "ObjectViewerQt.New";
const char * const OPEN = "ObjectViewerQt.Open"; const char * const OPEN = "ObjectViewerQt.Open";
const char * const EXIT = "ObjectViewerQt.Exit"; const char * const SAVE = "ObjectViewerQt.Save";
const char * const SAVE_AS = "ObjectViewerQt.SaveAs";
const char * const SAVE_ALL = "ObjectViewerQt.SaveAll";
const char * const EXIT = "ObjectViewerQt.Exit";
const char * const UNDO = "ObjectViewerQt.Undo";
const char * const REDO = "ObjectViewerQt.Redo";
const char * const CUT = "ObjectViewerQt.Cut";
const char * const COPY = "ObjectViewerQt.Copy";
const char * const PASTE = "ObjectViewerQt.Paste";
const char * const DEL = "ObjectViewerQt.Del";
const char * const FIND = "ObjectViewerQt.Find";
const char * const SELECT_ALL = "ObjectViewerQt.SelectAll";
const char * const GOTO_POS = "ObjectViewerQt.Goto";
const char * const SETTINGS = "ObjectViewerQt.Settings"; const char * const SETTINGS = "ObjectViewerQt.Settings";
const char * const TOGGLE_FULLSCREEN = "ObjectViewerQt.ToggleFullScreen"; const char * const TOGGLE_FULLSCREEN = "ObjectViewerQt.ToggleFullScreen";

View file

@ -57,8 +57,15 @@ MainWindow::MainWindow(ExtensionSystem::IPluginManager *pluginManager, QWidget *
m_settings = m_pluginManager->settings(); m_settings = m_pluginManager->settings();
m_coreImpl = new CoreImpl(this); m_coreImpl = new CoreImpl(this);
#ifdef Q_WS_MAC
m_menuBar = new QMenuBar(0);
#else
m_menuBar = new QMenuBar(this);
setMenuBar(m_menuBar);
#endif
m_menuManager = new MenuManager(this); m_menuManager = new MenuManager(this);
m_menuManager->setMenuBar(menuBar()); m_menuManager->setMenuBar(m_menuBar);
m_tabWidget = new QTabWidget(this); m_tabWidget = new QTabWidget(this);
m_tabWidget->setTabPosition(QTabWidget::South); m_tabWidget->setTabPosition(QTabWidget::South);
@ -98,11 +105,11 @@ bool MainWindow::initialize(QString *errorString)
void MainWindow::extensionsInitialized() void MainWindow::extensionsInitialized()
{ {
readSettings(); readSettings();
connect(m_contextManager, SIGNAL(currentContextChanged(Core::IContext*)), connect(m_contextManager, SIGNAL(currentContextChanged(Core::IContext*)),
this, SLOT(updateContext(Core::IContext*))); this, SLOT(updateContext(Core::IContext*)));
if (m_contextManager->currentContext() != NULL) if (m_contextManager->currentContext() != NULL)
updateContext(m_contextManager->currentContext()); updateContext(m_contextManager->currentContext());
show(); show();
} }
@ -141,6 +148,56 @@ void MainWindow::open()
m_contextManager->currentContext()->open(); m_contextManager->currentContext()->open();
} }
void MainWindow::newFile()
{
}
void MainWindow::save()
{
}
void MainWindow::saveAs()
{
}
void MainWindow::saveAll()
{
}
void MainWindow::cut()
{
}
void MainWindow::copy()
{
}
void MainWindow::paste()
{
}
void MainWindow::del()
{
}
void MainWindow::find()
{
}
void MainWindow::gotoPos()
{
}
void MainWindow::setFullScreen(bool enabled)
{
if (bool(windowState() & Qt::WindowFullScreen) == enabled)
return;
if (enabled)
setWindowState(windowState() | Qt::WindowFullScreen);
else
setWindowState(windowState() & ~Qt::WindowFullScreen);
}
bool MainWindow::showOptionsDialog(const QString &group, bool MainWindow::showOptionsDialog(const QString &group,
const QString &page, const QString &page,
QWidget *parent) QWidget *parent)
@ -186,6 +243,13 @@ void MainWindow::closeEvent(QCloseEvent *event)
void MainWindow::createActions() void MainWindow::createActions()
{ {
m_newAction = new QAction(tr("&New"), this);
m_newAction->setIcon(QIcon(Constants::ICON_NEW));
m_newAction->setShortcut(QKeySequence::New);
menuManager()->registerAction(m_newAction, Constants::NEW);
connect(m_newAction, SIGNAL(triggered()), this, SLOT(newFile()));
m_newAction->setEnabled(false);
m_openAction = new QAction(tr("&Open..."), this); m_openAction = new QAction(tr("&Open..."), this);
m_openAction->setIcon(QIcon(Constants::ICON_OPEN)); m_openAction->setIcon(QIcon(Constants::ICON_OPEN));
m_openAction->setShortcut(QKeySequence::Open); m_openAction->setShortcut(QKeySequence::Open);
@ -193,12 +257,80 @@ void MainWindow::createActions()
menuManager()->registerAction(m_openAction, Constants::OPEN); menuManager()->registerAction(m_openAction, Constants::OPEN);
connect(m_openAction, SIGNAL(triggered()), this, SLOT(open())); connect(m_openAction, SIGNAL(triggered()), this, SLOT(open()));
m_saveAction = new QAction(tr("&Save"), this);
m_saveAction->setIcon(QIcon(Constants::ICON_SAVE));
m_saveAction->setShortcut(QKeySequence::Save);
menuManager()->registerAction(m_saveAction, Constants::SAVE);
connect(m_saveAction, SIGNAL(triggered()), this, SLOT(save()));
m_saveAction->setEnabled(false);
m_saveAsAction = new QAction(tr("Save &As..."), this);
m_saveAsAction->setIcon(QIcon(Constants::ICON_SAVE_AS));
m_saveAsAction->setShortcut(QKeySequence::SaveAs);
menuManager()->registerAction(m_saveAsAction, Constants::SAVE_AS);
connect(m_saveAsAction, SIGNAL(triggered()), this, SLOT(saveAs()));
m_saveAsAction->setEnabled(false);
m_saveAllAction = new QAction(tr("&Save A&ll"), this);
m_saveAllAction->setShortcut(QKeySequence::SelectAll);
menuManager()->registerAction(m_saveAllAction, Constants::SAVE_ALL);
connect(m_saveAllAction, SIGNAL(triggered()), this, SLOT(saveAll()));
m_saveAllAction->setEnabled(false);
m_exitAction = new QAction(tr("E&xit"), this); m_exitAction = new QAction(tr("E&xit"), this);
m_exitAction->setShortcut(QKeySequence(tr("Ctrl+Q"))); m_exitAction->setShortcut(QKeySequence(tr("Ctrl+Q")));
m_exitAction->setStatusTip(tr("Exit the application")); m_exitAction->setStatusTip(tr("Exit the application"));
menuManager()->registerAction(m_exitAction, Constants::EXIT); menuManager()->registerAction(m_exitAction, Constants::EXIT);
connect(m_exitAction, SIGNAL(triggered()), this, SLOT(close())); connect(m_exitAction, SIGNAL(triggered()), this, SLOT(close()));
m_cutAction = new QAction(tr("Cu&t"), this);
m_cutAction->setShortcut(QKeySequence::Cut);
menuManager()->registerAction(m_cutAction, Constants::CUT);
connect(m_cutAction, SIGNAL(triggered()), this, SLOT(cut()));
m_cutAction->setEnabled(false);
m_copyAction = new QAction(tr("&Copy"), this);
m_copyAction->setShortcut(QKeySequence::Copy);
menuManager()->registerAction(m_copyAction, Constants::COPY);
connect(m_copyAction, SIGNAL(triggered()), this, SLOT(copy()));
m_copyAction->setEnabled(false);
m_pasteAction = new QAction(tr("&Paste"), this);
m_pasteAction->setShortcut(QKeySequence::Paste);
menuManager()->registerAction(m_pasteAction, Constants::PASTE);
connect(m_pasteAction, SIGNAL(triggered()), this, SLOT(paste()));
m_pasteAction->setEnabled(false);
m_delAction = new QAction(tr("&Delete"), this);
m_delAction->setShortcut(QKeySequence::Delete);
menuManager()->registerAction(m_delAction, Constants::DEL);
connect(m_delAction, SIGNAL(triggered()), this, SLOT(del()));
m_delAction->setEnabled(false);
m_selectAllAction = new QAction(tr("Select &All"), this);
m_selectAllAction->setShortcut(QKeySequence::SelectAll);
menuManager()->registerAction(m_selectAllAction, Constants::SELECT_ALL);
connect(m_selectAllAction, SIGNAL(triggered()), this, SLOT(selectAll()));
m_selectAllAction->setEnabled(false);
m_findAction = new QAction(tr("&Find"), this);
m_findAction->setShortcut(QKeySequence::Find);
menuManager()->registerAction(m_findAction, Constants::FIND);
connect(m_findAction, SIGNAL(triggered()), this, SLOT(find()));
m_findAction->setEnabled(false);
m_gotoAction = new QAction(tr("&Go To.."), this);
m_gotoAction->setShortcut(QKeySequence(tr("Ctrl+G")));
menuManager()->registerAction(m_gotoAction, Constants::GOTO_POS);
connect(m_gotoAction, SIGNAL(triggered()), this, SLOT(gotoPos()));
m_gotoAction->setEnabled(false);
m_fullscreenAction = new QAction(tr("Fullscreen"), this);
m_fullscreenAction->setCheckable(true);
m_fullscreenAction->setShortcut(QKeySequence(tr("Ctrl+Shift+F11")));
menuManager()->registerAction(m_fullscreenAction, Constants::TOGGLE_FULLSCREEN);
connect(m_fullscreenAction, SIGNAL(triggered(bool)), this, SLOT(setFullScreen(bool)));
m_settingsAction = new QAction(tr("&Settings"), this); m_settingsAction = new QAction(tr("&Settings"), this);
m_settingsAction->setIcon(QIcon(":/images/preferences.png")); m_settingsAction->setIcon(QIcon(":/images/preferences.png"));
m_settingsAction->setShortcut(QKeySequence::Preferences); m_settingsAction->setShortcut(QKeySequence::Preferences);
@ -232,22 +364,43 @@ void MainWindow::createActions()
void MainWindow::createMenus() void MainWindow::createMenus()
{ {
m_fileMenu = menuBar()->addMenu(tr("&File")); m_fileMenu = m_menuBar->addMenu(tr("&File"));
menuManager()->registerMenu(m_fileMenu, Constants::M_FILE); menuManager()->registerMenu(m_fileMenu, Constants::M_FILE);
m_fileMenu->addAction(m_newAction);
m_fileMenu->addAction(m_openAction); m_fileMenu->addAction(m_openAction);
m_fileMenu->addSeparator();
m_fileMenu->addAction(m_saveAction);
m_fileMenu->addAction(m_saveAsAction);
m_fileMenu->addAction(m_saveAllAction);
m_fileMenu->addSeparator();
m_recentFilesMenu = m_fileMenu->addMenu(tr("Recent &Files"));
m_recentFilesMenu->setEnabled(false);
menuManager()->registerMenu(m_recentFilesMenu, Constants::M_FILE_RECENTFILES);
m_fileMenu->addSeparator(); m_fileMenu->addSeparator();
m_fileMenu->addAction(m_exitAction); m_fileMenu->addAction(m_exitAction);
m_editMenu = menuBar()->addMenu(tr("&Edit")); m_editMenu = m_menuBar->addMenu(tr("&Edit"));
m_editMenu->addAction(m_undoGroup->createUndoAction(this)); m_editMenu->addAction(m_undoGroup->createUndoAction(this));
m_editMenu->addAction(m_undoGroup->createRedoAction(this)); m_editMenu->addAction(m_undoGroup->createRedoAction(this));
m_editMenu->addSeparator(); m_editMenu->addSeparator();
m_editMenu->addAction(m_cutAction);
m_editMenu->addAction(m_copyAction);
m_editMenu->addAction(m_pasteAction);
m_editMenu->addAction(m_delAction);
m_editMenu->addSeparator();
m_editMenu->addAction(m_selectAllAction);
m_editMenu->addSeparator();
m_editMenu->addAction(m_findAction);
m_editMenu->addAction(m_gotoAction);
menuManager()->registerMenu(m_editMenu, Constants::M_EDIT); menuManager()->registerMenu(m_editMenu, Constants::M_EDIT);
m_viewMenu = menuBar()->addMenu(tr("&View")); m_viewMenu = m_menuBar->addMenu(tr("&View"));
m_viewMenu->addAction(m_fullscreenAction);
menuManager()->registerMenu(m_viewMenu, Constants::M_VIEW); menuManager()->registerMenu(m_viewMenu, Constants::M_VIEW);
m_toolsMenu = menuBar()->addMenu(tr("&Tools")); m_toolsMenu = m_menuBar->addMenu(tr("&Tools"));
menuManager()->registerMenu(m_toolsMenu, Constants::M_TOOLS); menuManager()->registerMenu(m_toolsMenu, Constants::M_TOOLS);
m_sheetMenu = m_toolsMenu->addMenu(tr("&Sheet")); m_sheetMenu = m_toolsMenu->addMenu(tr("&Sheet"));
@ -257,9 +410,9 @@ void MainWindow::createMenus()
m_toolsMenu->addAction(m_settingsAction); m_toolsMenu->addAction(m_settingsAction);
menuBar()->addSeparator(); m_menuBar->addSeparator();
m_helpMenu = menuBar()->addMenu(tr("&Help")); m_helpMenu = m_menuBar->addMenu(tr("&Help"));
menuManager()->registerMenu(m_helpMenu, Constants::M_HELP); menuManager()->registerMenu(m_helpMenu, Constants::M_HELP);
m_helpMenu->addAction(m_aboutAction); m_helpMenu->addAction(m_aboutAction);
m_helpMenu->addAction(m_aboutQtAction); m_helpMenu->addAction(m_aboutQtAction);

View file

@ -66,6 +66,17 @@ public Q_SLOTS:
private Q_SLOTS: private Q_SLOTS:
void open(); void open();
void newFile();
void save();
void saveAs();
void saveAll();
void cut();
void copy();
void paste();
void del();
void find();
void gotoPos();
void setFullScreen(bool enabled);
void about(); void about();
void updateContext(Core::IContext *context); void updateContext(Core::IContext *context);
@ -99,15 +110,28 @@ private:
QTabWidget *m_tabWidget; QTabWidget *m_tabWidget;
QMenu *m_fileMenu; QMenu *m_fileMenu;
QMenu *m_recentFilesMenu;
QMenu *m_editMenu; QMenu *m_editMenu;
QMenu *m_viewMenu; QMenu *m_viewMenu;
QMenu *m_toolsMenu; QMenu *m_toolsMenu;
QMenu *m_helpMenu; QMenu *m_helpMenu;
QMenuBar *m_menuBar;
QMenu *m_sheetMenu; QMenu *m_sheetMenu;
QAction *m_newAction;
QAction *m_openAction; QAction *m_openAction;
QAction *m_saveAction;
QAction *m_saveAsAction;
QAction *m_saveAllAction;
QAction *m_exitAction; QAction *m_exitAction;
QAction *m_cutAction;
QAction *m_copyAction;
QAction *m_pasteAction;
QAction *m_delAction;
QAction *m_selectAllAction;
QAction *m_findAction;
QAction *m_gotoAction;
QAction *m_fullscreenAction;
QAction *m_settingsAction; QAction *m_settingsAction;
QAction *m_pluginViewAction; QAction *m_pluginViewAction;
QAction *m_aboutAction; QAction *m_aboutAction;

Some files were not shown because too many files have changed in this diff Show more