Changeset 149
- Timestamp:
- 09/03/10 00:25:58 (17 months ago)
- Location:
- cafu/trunk
- Files:
-
- 3 added
- 22 modified
- 1 copied
-
Ca3DE/AppCafu.cpp (modified) (6 diffs)
-
Ca3DE/AppCafu.hpp (modified) (3 diffs)
-
Ca3DE/MainCanvas.cpp (modified) (4 diffs)
-
Ca3DE/MainCanvas.hpp (modified) (1 diff)
-
Games/DeathMatch/Code/ScriptState.cpp (modified) (2 diffs)
-
Libs/ConsoleCommands/Console.cpp (modified) (2 diffs)
-
Libs/ConsoleCommands/Console.hpp (modified) (2 diffs)
-
Libs/ConsoleCommands/ConsoleComposite.cpp (added)
-
Libs/ConsoleCommands/ConsoleComposite.hpp (added)
-
Libs/ConsoleCommands/ConsoleInterpreterImpl.cpp (modified) (2 diffs)
-
Libs/ConsoleCommands/Console_Lua.cpp (copied) (copied from cafu/trunk/Libs/ConsoleCommands/Console.cpp) (3 diffs)
-
Libs/ConsoleCommands/Console_Lua.hpp (added)
-
Libs/GuiSys/GuiImpl.cpp (modified) (2 diffs)
-
Libs/MaterialSystem/MapComposition.cpp (modified) (2 diffs)
-
Libs/MaterialSystem/MaterialManagerImpl.cpp (modified) (6 diffs)
-
Libs/MaterialSystem/RendererARBprogs/RendererImpl.cpp (modified) (5 diffs)
-
Libs/MaterialSystem/RendererARBprogs/Shaders/_CommonHelpers.cpp (modified) (2 diffs)
-
Libs/MaterialSystem/RendererCgARB1/RendererImpl.cpp (modified) (4 diffs)
-
Libs/MaterialSystem/RendererCgARB1/Shaders/_CommonCgHelpers.cpp (modified) (3 diffs)
-
Libs/MaterialSystem/RendererCgNV2X/RendererImpl.cpp (modified) (1 diff)
-
Libs/MaterialSystem/RendererCgNV2X/Shaders/_CommonCgHelpers.cpp (modified) (3 diffs)
-
Libs/MaterialSystem/RendererOpenGL12/RendererImpl.cpp (modified) (5 diffs)
-
Libs/PlatformAux.cpp (modified) (17 diffs)
-
Libs/PlatformAux.hpp (modified) (1 diff)
-
Libs/SConscript (modified) (1 diff)
-
SConscript (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
cafu/trunk/Ca3DE/AppCafu.cpp
r146 r149 27 27 #include "ClipSys/CollisionModelMan_impl.hpp" 28 28 #include "ConsoleCommands/ConsoleInterpreterImpl.hpp" 29 #include "ConsoleCommands/ConsoleComposite.hpp" 30 #include "ConsoleCommands/ConsoleFile.hpp" 29 31 #include "ConsoleCommands/ConsoleStringBuffer.hpp" 30 32 #include "ConsoleCommands/ConVar.hpp" … … 48 50 // For each interface that is globally available to the application, 49 51 // provide a definition for the pointer instance and have it point to an implementation. 50 static cf::ConsoleStringBufferT ConsoleStringBuffer; 51 cf::ConsoleI* Console=&ConsoleStringBuffer; 52 53 // static cf::ConsoleFileT ConsoleFile("console.log"); 54 // cf::ConsoleI* Console=&ConsoleFile; 55 56 static cf::FileSys::FileManImplT FileManImpl; 57 cf::FileSys::FileManI* cf::FileSys::FileMan=&FileManImpl; 58 59 static cf::ClipSys::CollModelManImplT CCM; 60 cf::ClipSys::CollModelManI* cf::ClipSys::CollModelMan=&CCM; 61 62 static ConsoleInterpreterImplT ConInterpreterImpl; 63 ConsoleInterpreterI* ConsoleInterpreter=&ConInterpreterImpl; // TODO: Put it into a proper namespace. 64 65 static MaterialManagerImplT MaterialManagerImpl; 66 MaterialManagerI* MaterialManager=&MaterialManagerImpl; // TODO: Put it into a proper namespace. 67 68 static SoundShaderManagerImplT SoundShaderManagerImpl; 69 SoundShaderManagerI* SoundShaderManager=&SoundShaderManagerImpl; // TODO: Put it into a proper namespace. 52 static cf::CompositeConsoleT s_CompositeConsole; 53 cf::ConsoleI* Console=&s_CompositeConsole; 54 55 static cf::FileSys::FileManImplT s_FileManImpl; 56 cf::FileSys::FileManI* cf::FileSys::FileMan=&s_FileManImpl; 57 58 static cf::ClipSys::CollModelManImplT s_CCM; 59 cf::ClipSys::CollModelManI* cf::ClipSys::CollModelMan=&s_CCM; 60 61 static ConsoleInterpreterImplT s_ConInterpreterImpl; 62 ConsoleInterpreterI* ConsoleInterpreter=&s_ConInterpreterImpl; // TODO: Put it into a proper namespace. 63 64 static MaterialManagerImplT s_MaterialManagerImpl; 65 MaterialManagerI* MaterialManager=&s_MaterialManagerImpl; // TODO: Put it into a proper namespace. 66 67 static SoundShaderManagerImplT s_SoundShaderManagerImpl; 68 SoundShaderManagerI* SoundShaderManager=&s_SoundShaderManagerImpl; // TODO: Put it into a proper namespace. 70 69 71 70 // static WinSockT WinSock; // This unfortunately can throw. … … 167 166 AppCafuT::AppCafuT() 168 167 : wxApp(), 168 m_ConBuffer(new cf::ConsoleStringBufferT()), 169 m_ConFile(NULL), 169 170 m_IsCustomVideoMode(false), 170 171 m_MainFrame(NULL) 171 172 { 173 s_CompositeConsole.Attach(m_ConBuffer); 174 172 175 // All global convars and confuncs have registered themselves in linked lists. 173 176 // Register them with the console interpreter now. … … 184 187 185 188 Console->Print("Cafu Engine, "__DATE__"\n"); 189 } 190 191 192 AppCafuT::~AppCafuT() 193 { 194 s_CompositeConsole.Detach(m_ConFile); 195 delete m_ConFile; 196 197 s_CompositeConsole.Detach(m_ConBuffer); 198 delete m_ConBuffer; 199 } 200 201 202 cf::CompositeConsoleT& AppCafuT::GetConComposite() const 203 { 204 return s_CompositeConsole; 186 205 } 187 206 … … 373 392 Parser.AddOption("clPlayerName", "", "Player name ["+Options_DeathMatchPlayerName.GetValueString()+"].", wxCMD_LINE_VAL_STRING); 374 393 Parser.AddOption("clModelName", "", "Name of the players model ["+Options_DeathMatchModelName.GetValueString()+"].", wxCMD_LINE_VAL_STRING); 394 Parser.AddOption("log", "", "Logs all console message into the specified file."); 375 395 Parser.AddParam("worldname", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL); 376 396 … … 403 423 if (Parser.Found("clModelName", &s)) Options_DeathMatchModelName=s.ToStdString(); 404 424 425 if (Parser.Found("log", &s) && m_ConFile==NULL) 426 { 427 m_ConFile=new cf::ConsoleFileT(s.ToStdString()); 428 m_ConFile->Print(m_ConBuffer->GetBuffer()); 429 430 s_CompositeConsole.Attach(m_ConFile); 431 } 432 405 433 if (!Parser.Found("svWorld") && Parser.GetParamCount()==1) 406 434 Options_ServerWorldName=Parser.GetParam(0).ToStdString(); -
cafu/trunk/Ca3DE/AppCafu.hpp
r136 r149 39 39 40 40 41 namespace cf { class CompositeConsoleT; } 42 namespace cf { class ConsoleFileT; } 43 namespace cf { class ConsoleStringBufferT; } 41 44 class MainFrameT; 42 45 … … 48 51 49 52 AppCafuT(); 53 ~AppCafuT(); 54 55 /// Returns the composite console that is also available via the global Console pointer. 56 cf::CompositeConsoleT& GetConComposite() const; 57 58 /// Returns the console that buffers all output. 59 cf::ConsoleStringBufferT& GetConBuffer() const { return *m_ConBuffer; } 60 61 // /// Returns the console that logs all output into a file (can be NULL if not used). 62 // cf::ConsoleFileT& GetConFile() const { return *m_ConFile; } 50 63 51 64 /// Returns whether we successfully set a custom video mode (screen resolution) during initialization. … … 68 81 bool OnCmdLineParsed(wxCmdLineParser& Parser); 69 82 70 bool m_IsCustomVideoMode; ///< Whether we successfully set a custom video mode (screen resolution) during initialization. 71 wxVideoMode m_CurrentMode; ///< The video mode that we're currently using. 72 MainFrameT* m_MainFrame; ///< The Cafu application main frame. 83 cf::ConsoleStringBufferT* m_ConBuffer; ///< The console that buffers all output. 84 cf::ConsoleFileT* m_ConFile; ///< The console that logs all output into a file (can be NULL if not used). 85 bool m_IsCustomVideoMode; ///< Whether we successfully set a custom video mode (screen resolution) during initialization. 86 wxVideoMode m_CurrentMode; ///< The video mode that we're currently using. 87 MainFrameT* m_MainFrame; ///< The Cafu application main frame. 73 88 }; 74 89 -
cafu/trunk/Ca3DE/MainCanvas.cpp
r136 r149 33 33 #include "ConsoleCommands/Console.hpp" 34 34 #include "ConsoleCommands/ConsoleInterpreter.hpp" 35 #include "ConsoleCommands/ConsoleComposite.hpp" 35 36 #include "ConsoleCommands/ConsoleStringBuffer.hpp" 36 37 #include "ConsoleCommands/ConVar.hpp" … … 119 120 m_Server(NULL), 120 121 m_SvGuiCallback(NULL), 121 m_PrevConsole(NULL),122 122 m_ConByGuiWin(NULL), 123 123 m_Timer(), … … 136 136 m_InitState=INIT_REQUIRED; 137 137 138 if (Console==m_ConByGuiWin) 139 { 140 Console=m_PrevConsole; 141 m_PrevConsole=NULL; 142 } 143 138 wxGetApp().GetConComposite().Detach(m_ConByGuiWin); 144 139 delete m_ConByGuiWin; 145 140 m_ConByGuiWin=NULL; … … 436 431 cf::GuiSys::WindowT* ConsoleWindow=ConsoleGui ? ConsoleGui->GetRootWindow()->Find("ConsoleOutput") : NULL; 437 432 433 // Copy the previously collected console output to the new graphical console. 438 434 m_ConByGuiWin=new cf::GuiSys::ConsoleByWindowT(ConsoleWindow); 439 m_PrevConsole=Console; 440 Console=m_ConByGuiWin; 441 442 // Copy the output to the previous console to the now current console. 443 cf::ConsoleStringBufferT* ConsoleSB=dynamic_cast<cf::ConsoleStringBufferT*>(m_PrevConsole); 444 if (ConsoleSB) Console->Print(ConsoleSB->GetBuffer()); 435 m_ConByGuiWin->Print(wxGetApp().GetConBuffer().GetBuffer()); 436 wxGetApp().GetConComposite().Attach(m_ConByGuiWin); 445 437 446 438 m_InitState=INIT_SUCCESS; -
cafu/trunk/Ca3DE/MainCanvas.hpp
r136 r149 86 86 ServerT* m_Server; 87 87 SvGuiCallbT* m_SvGuiCallback; 88 cf::ConsoleI* m_PrevConsole;89 88 cf::ConsoleI* m_ConByGuiWin; ///< This points to an instance of cf::GuiSys::ConsoleByWindowT. 90 89 TimerT m_Timer; -
cafu/trunk/Games/DeathMatch/Code/ScriptState.cpp
r138 r149 25 25 #include "TypeSys.hpp" 26 26 #include "ConsoleCommands/Console.hpp" 27 #include "ConsoleCommands/Console_Lua.hpp" 27 28 #include "ConsoleCommands/ConsoleInterpreter.hpp" 28 29 #include "ConsoleCommands/ConFunc.hpp" … … 64 65 65 66 // Load the console library. (Adds a global table with name "Console" to the LuaState with the functions of the ConsoleI interface.) 66 cf::Console I::RegisterLua(LuaState);67 cf::Console_RegisterLua(LuaState); 67 68 68 69 // Load the "ci" (console interpreter) library. (Adds a global table with name "ci" to the LuaState with (some of) the functions of the ConsoleInterpreterI interface.) -
cafu/trunk/Libs/ConsoleCommands/Console.cpp
r36 r149 23 23 24 24 #include "Console.hpp" 25 26 extern "C" 27 { 28 #include <lua.h> 29 #include <lauxlib.h> 30 } 25 #include <stdarg.h> 31 26 32 27 #if defined(_WIN32) && defined (_MSC_VER) … … 52 47 return Buffer; 53 48 } 54 55 56 static int LuaConsole_Print(lua_State* LuaState)57 {58 const char* s=lua_tostring(LuaState, 1);59 60 Console->Print(s!=NULL ? s : "[not a string]\n");61 return 0;62 }63 64 65 static int LuaConsole_DevPrint(lua_State* LuaState)66 {67 const char* s=lua_tostring(LuaState, 1);68 69 Console->DevPrint(s!=NULL ? s : "[not a string]\n");70 return 0;71 }72 73 74 static int LuaConsole_Warning(lua_State* LuaState)75 {76 const char* s=lua_tostring(LuaState, 1);77 78 Console->Warning(s!=NULL ? s : "[not a string]\n");79 return 0;80 }81 82 83 static int LuaConsole_DevWarning(lua_State* LuaState)84 {85 const char* s=lua_tostring(LuaState, 1);86 87 Console->DevWarning(s!=NULL ? s : "[not a string]\n");88 return 0;89 }90 91 92 #ifdef _WIN3293 #define WIN32_LEAN_AND_MEAN94 #include <windows.h>95 #undef FindWindow96 #else97 #include <cstring>98 #include <dirent.h>99 #endif100 101 /// Returns an array (a table) with the file and directory entries of the given directory.102 /// If the string "f" is passed as a second parameter, only entries of type file are returned,103 /// if the string "d" is passed as a second parameter, only entries of type directory are returned,104 /// all entries are returned in all other cases.105 ///106 /// TODO: This function should be implemented INDEPENDENTLY from the "Console" interface (i.e. elsewhere where107 /// it is a better topical fit), but for now the "Console" interface is the only interface that is included108 /// in all of our Lua instances (console interpreter, GUIs, map scripts, ...)!109 /// IDEA: Can we make ConVars and ConFuncs directly available not only in the console Lua instance, but in arbitrary110 /// many Lua instances?? Then the GUI and map scripts could directly access ConVars and ConFuncs, too...!111 /// (And GetDir() would be a regular ConFunc.)112 static int GetDir(lua_State* LuaState)113 {114 std::string DirName;115 const char* DirFilter=NULL;116 117 // // Support calling this function both as gui.GetDir(...) as well as gui:GetDir(...).118 // if (lua_istable(LuaState, 1))119 // {120 // // It's called as gui:GetDir(...).121 // DirName =luaL_checkstring(LuaState, 2);122 // DirFilter=lua_tostring(LuaState, 3);123 // }124 // else125 {126 // It's called as gui.GetDir(...).127 DirName =luaL_checkstring(LuaState, 1);128 DirFilter=lua_tostring(LuaState, 2);129 }130 131 lua_newtable(LuaState);132 133 if (DirName=="") return 1;134 135 #ifdef _WIN32136 WIN32_FIND_DATA FindFileData;137 HANDLE FindHandle=FindFirstFile((DirName+"\\*").c_str(), &FindFileData);138 int EntryCount=1; // Lua array numbering starts per convention at 1.139 140 if (FindHandle==INVALID_HANDLE_VALUE) return 1;141 142 do143 {144 if (strcmp(FindFileData.cFileName, "." )==0) continue;145 if (strcmp(FindFileData.cFileName, "..")==0) continue;146 147 if (DirFilter!=NULL)148 {149 const bool IsDir=(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)!=0;150 151 if (strcmp(DirFilter, "f")==0 && IsDir) continue;152 if (strcmp(DirFilter, "d")==0 && !IsDir) continue;153 }154 155 lua_pushstring(LuaState, FindFileData.cFileName);156 lua_rawseti(LuaState, -2, EntryCount++);157 }158 while (FindNextFile(FindHandle, &FindFileData)!=0);159 160 if (GetLastError()!=ERROR_NO_MORE_FILES) Console->Warning("Error in GetDir() while enumerating directory entries.\n");161 FindClose(FindHandle);162 #else163 DIR* Dir=opendir(DirName.c_str());164 int EntryCount=1; // Lua array numbering starts per convention at 1.165 166 if (!Dir) return 1;167 168 for (dirent* DirEnt=readdir(Dir); DirEnt!=NULL; DirEnt=readdir(Dir))169 {170 if (strcmp(DirEnt->d_name, "." )==0) continue;171 if (strcmp(DirEnt->d_name, "..")==0) continue;172 173 if (DirFilter!=NULL)174 {175 DIR* TempDir=opendir((DirName+"/"+DirEnt->d_name).c_str());176 bool IsDir=(TempDir!=NULL);177 178 if (TempDir!=NULL) closedir(TempDir);179 180 if (strcmp(DirFilter, "f")==0 && IsDir) continue;181 if (strcmp(DirFilter, "d")==0 && !IsDir) continue;182 }183 184 // For portability, only the 'd_name' member of a 'dirent' may be accessed.185 lua_pushstring(LuaState, DirEnt->d_name);186 lua_rawseti(LuaState, -2, EntryCount++);187 }188 189 closedir(Dir);190 #endif191 192 return 1;193 }194 195 196 void cf::ConsoleI::RegisterLua(lua_State* LuaState)197 {198 static const luaL_Reg ConsoleFunctions[]=199 {200 { "Print", LuaConsole_Print },201 { "DevPrint", LuaConsole_DevPrint },202 { "Warning", LuaConsole_Warning },203 { "DevWarning", LuaConsole_DevWarning },204 { "GetDir", GetDir },205 { NULL, NULL }206 };207 208 luaL_register(LuaState, "Console", ConsoleFunctions);209 lua_pop(LuaState, 1); // Remove the Console table from the stack (it was left there by the luaL_register() function).210 } -
cafu/trunk/Libs/ConsoleCommands/Console.hpp
r136 r149 22 22 */ 23 23 24 /***************/25 /*** Console ***/26 /***************/27 28 24 #ifndef _CF_CONSOLE_HPP_ 29 25 #define _CF_CONSOLE_HPP_ 30 26 31 27 #include <string> 32 33 struct lua_State;34 28 35 29 … … 47 41 48 42 // Methods for console output. 49 // TODO: These methods could also have a signature like (const char* s="", ...) directly, see GuiSys/Gui.hpp for an example!!50 // Much better of course would be to implement operator <<, as with std::cout.51 43 virtual void Print(const std::string& s)=0; ///< Print message to console. 52 44 virtual void DevPrint(const std::string& s)=0; ///< Print dev message to console. 53 45 virtual void Warning(const std::string& s)=0; ///< Print warning to console. 54 46 virtual void DevWarning(const std::string& s)=0; ///< Print dev warning to console. 55 56 57 /// Registers the methods of this interface with LuaState as a Lua module as described in the PiL2 book, chapter 26.2.58 /// The key idea is that all methods are called via the global Console variable defined below,59 /// and therefore we may consider them as a collection of C-style functions (no OO involved),60 /// so that putting them in a Lua table as described in chapter 26 of the PiL2 book is straightforward.61 static void RegisterLua(lua_State* LuaState);62 47 }; 63 48 -
cafu/trunk/Libs/ConsoleCommands/ConsoleInterpreterImpl.cpp
r136 r149 32 32 #include "ConVar.hpp" 33 33 #include "Console.hpp" 34 #include "Console_Lua.hpp" 34 35 35 36 extern "C" … … 71 72 72 73 // Load the console library. (Adds a global table with name "Console" to the LuaState with the functions of the ConsoleI interface.) 73 cf::Console I::RegisterLua(LuaState);74 cf::Console_RegisterLua(LuaState); 74 75 75 76 -
cafu/trunk/Libs/ConsoleCommands/Console_Lua.cpp
r36 r149 22 22 */ 23 23 24 #include "Console_Lua.hpp" 24 25 #include "Console.hpp" 25 26 … … 28 29 #include <lua.h> 29 30 #include <lauxlib.h> 30 }31 32 #if defined(_WIN32) && defined (_MSC_VER)33 #if (_MSC_VER<1300)34 #define vsnprintf _vsnprintf35 #define for if (false) ; else for36 #endif37 #endif38 39 40 std::string cf::va(const char* FormatString, ...)41 {42 va_list ArgList;43 char Buffer[1024];44 45 if (!FormatString) return "";46 47 va_start(ArgList, FormatString);48 vsnprintf(Buffer, 1024-1, FormatString, ArgList);49 Buffer[1024-1]=0;50 va_end(ArgList);51 52 return Buffer;53 31 } 54 32 … … 194 172 195 173 196 void cf::Console I::RegisterLua(lua_State* LuaState)174 void cf::Console_RegisterLua(lua_State* LuaState) 197 175 { 198 176 static const luaL_Reg ConsoleFunctions[]= -
cafu/trunk/Libs/GuiSys/GuiImpl.cpp
r136 r149 27 27 #include "WindowCreateParams.hpp" 28 28 #include "ConsoleCommands/Console.hpp" 29 #include "ConsoleCommands/Console_Lua.hpp" 29 30 #include "ConsoleCommands/ConsoleInterpreter.hpp" 30 31 #include "MaterialSystem/Renderer.hpp" … … 88 89 89 90 // Load the console library. (Adds a global table with name "Console" to the LuaState with the functions of the ConsoleI interface.) 90 cf::Console I::RegisterLua(LuaState);91 cf::Console_RegisterLua(LuaState); 91 92 92 93 // Load the "ci" (console interpreter) library. (Adds a global table with name "ci" to the LuaState with (some of) the functions of the ConsoleInterpreterI interface.) -
cafu/trunk/Libs/MaterialSystem/MapComposition.cpp
r51 r149 27 27 28 28 #include <math.h> 29 #include <stdio.h>30 29 31 30 #include "MapComposition.hpp" … … 748 747 749 748 case HeightMapToNormalMap: 750 { 751 char hmScaleString[32]; 752 753 sprintf(hmScaleString, "%f", HeightScale); 754 return std::string("hm2nm(")+Child1->GetString()+", "+hmScaleString+")"; 755 } 749 return std::string("hm2nm(")+Child1->GetString()+", "+cf::va("%f", HeightScale)+")"; 756 750 757 751 case FlipNormalMapYAxis: -
cafu/trunk/Libs/MaterialSystem/MaterialManagerImpl.cpp
r36 r149 46 46 #include "Expression.hpp" 47 47 #include "Material.hpp" 48 #include "ConsoleCommands/Console.hpp" 48 49 #include "TextParser/TextParser.hpp" 49 50 … … 202 203 if (!T) 203 204 { 204 printf("Error parsing %s near %s at input byte %lu.\n", FileName.c_str(), Token.c_str(), TextParser.GetReadPosByte());205 Console->Print("Error parsing "+FileName+" near "+Token+cf::va(" at input byte %lu.\n", TextParser.GetReadPosByte())); 205 206 break; 206 207 } … … 226 227 else 227 228 { 228 printf("File %s, material \"%s\": duplicate definition (ignored).\n", FileName.c_str(), NewMat->Name.c_str());229 Console->Print("File " + FileName + ", material \"" + NewMat->Name + "\": duplicate definition (ignored).\n"); 229 230 delete NewMat; 230 231 } … … 234 235 catch (const TextParserT::ParseError&) 235 236 { 236 printf("Error parsing %s at input byte %lu.\n", FileName.c_str(), TextParser.GetReadPosByte());237 Console->Print("Error parsing "+FileName+cf::va(" at input byte %lu.\n", TextParser.GetReadPosByte())); 237 238 } 238 239 … … 339 340 MaterialT* MaterialManagerImplT::GetMaterial(const std::string& MaterialName) 340 341 { 341 // Note that I'm*not* just writing return Materials[MaterialName] here, because that342 // Note that we are *not* just writing return Materials[MaterialName] here, because that 342 343 // would implicitly create a NULL entry for every MaterialName that does not actually exist. 343 344 std::map<std::string, MaterialT*>::const_iterator It=Materials.find(MaterialName); … … 345 346 if (It!=Materials.end()) return It->second; 346 347 347 printf("%s (%u): GetMaterial(\"%s\") returns NULL.\n", __FILE__, __LINE__, MaterialName.c_str());348 Console->Print(cf::va("%s (%u): ", __FILE__, __LINE__)+"GetMaterial(\""+MaterialName+"\") returns NULL.\n"); 348 349 return NULL; 349 350 } -
cafu/trunk/Libs/MaterialSystem/RendererARBprogs/RendererImpl.cpp
r36 r149 48 48 49 49 #include "../Common/OpenGLEx.hpp" 50 #include "ConsoleCommands/Console.hpp" 50 51 #include "Templates/Array.hpp" 51 52 … … 115 116 { 116 117 #ifdef DEBUG 117 printf("\n%s (%u): glGetError() returned error %lu (0x%X).\n", __FILE__, __LINE__, (unsigned long)LastError, LastError);118 Console->Print(cf::va("\n%s (%u): glGetError() returned error %lu (0x%X).\n", __FILE__, __LINE__, (unsigned long)LastError, LastError)); 118 119 #endif 119 120 return false; … … 463 464 464 465 if (Error!=GL_NO_ERROR) 465 printf("glGetError()==%i\n", Error);466 Console->Print(cf::va("glGetError()==%i\n", Error)); 466 467 #endif 467 468 } … … 472 473 void RendererImplT::EndFrame() 473 474 { 474 // printf("%4lu", ShaderChangeCounter);475 // Console->Print(cf::va("%4lu", ShaderChangeCounter)); 475 476 // static int LineWrap=0; 476 477 // LineWrap++; 477 // if (LineWrap==20) { printf("\n"); LineWrap=0; }478 // if (LineWrap==20) { Console->Print("\n"); LineWrap=0; } 478 479 } 479 480 … … 549 550 } 550 551 551 // printf("%lu textures pre-cached.\n", TexMapRepository.Size());552 // Console->Print(cf::va("%lu textures pre-cached.\n", TexMapRepository.Size())); 552 553 } 553 554 -
cafu/trunk/Libs/MaterialSystem/RendererARBprogs/Shaders/_CommonHelpers.cpp
r138 r149 28 28 #include "_CommonHelpers.hpp" 29 29 #include "../../Common/OpenGLEx.hpp" 30 #include "ConsoleCommands/Console.hpp" 30 31 #include <stdio.h> 31 32 #include <string.h> … … 64 65 if (ErrorID!=GL_NO_ERROR || ErrorPos!=-1 || ErrorStringLen>0) 65 66 { 66 printf("%s\n\nProblem detected:\nglGetError() == %i,\nerror position: %i,\nerror string: %s\n", ProgramCode, ErrorID, ErrorPos, ErrorString);67 Console->Print(cf::va("%s\n\nProblem detected:\nglGetError() == %i,\nerror position: %i,\nerror string: %s\n", ProgramCode, ErrorID, ErrorPos, ErrorString)); 67 68 68 69 FILE* ErrorFile=fopen("ProgError.txt", "a"); -
cafu/trunk/Libs/MaterialSystem/RendererCgARB1/RendererImpl.cpp
r42 r149 48 48 49 49 #include "../Common/OpenGLEx.hpp" 50 #include "ConsoleCommands/Console.hpp" 50 51 #include "Templates/Array.hpp" 51 52 … … 455 456 456 457 if (Error!=GL_NO_ERROR) 457 printf("glGetError()==%i\n", Error);458 Console->Print(cf::va("glGetError()==%i\n", Error)); 458 459 #endif 459 460 } … … 464 465 void RendererImplT::EndFrame() 465 466 { 466 // printf("%4lu", ShaderChangeCounter);467 // Console->Print(cf::va("%4lu", ShaderChangeCounter)); 467 468 // static int LineWrap=0; 468 469 // LineWrap++; 469 // if (LineWrap==20) { printf("\n"); LineWrap=0; }470 // if (LineWrap==20) { Console->Print("\n"); LineWrap=0; } 470 471 } 471 472 … … 541 542 } 542 543 543 // printf("%lu textures pre-cached.\n", TexMapRepository.Size());544 // Console->Print(cf::va("%lu textures pre-cached.\n", TexMapRepository.Size())); 544 545 } 545 546 -
cafu/trunk/Libs/MaterialSystem/RendererCgARB1/Shaders/_CommonCgHelpers.cpp
r36 r149 27 27 28 28 #include "_CommonCgHelpers.hpp" 29 #include "ConsoleCommands/Console.hpp" 30 29 31 #include <stdio.h> 30 32 … … 41 43 CGerror err =cgGetError(); 42 44 43 printf("ERROR: Unable to create Cg program: %s\n", cgGetErrorString(err));45 Console->Print(std::string("ERROR: Unable to create Cg program: ")+cgGetErrorString(err)+"\n"); 44 46 if (ErrorFile) fprintf(ErrorFile, "ERROR: Unable to create Cg program: %s\n", cgGetErrorString(err)); 45 47 46 48 const char* LastListing=cgGetLastListing(CgContext); 47 if (LastListing) printf("LAST LISTING:\n%s\n", LastListing);49 if (LastListing) Console->Print(std::string("LAST LISTING:\n")+LastListing+"\n"); 48 50 if (LastListing && ErrorFile) fprintf(ErrorFile, "LAST LISTING:\n%s\n", LastListing); 49 51 … … 58 60 { 59 61 // This should never happen, as we have already made sure elsewhere that the desired profile is supported! 60 printf("ERROR: Unable to load Cg program: %s\n", cgGetErrorString(err));62 Console->Print(std::string("ERROR: Unable to load Cg program: ")+cgGetErrorString(err)+"\n"); 61 63 return NULL; 62 64 } -
cafu/trunk/Libs/MaterialSystem/RendererCgNV2X/RendererImpl.cpp
r36 r149 441 441 442 442 443 // #include <stdio.h>444 445 443 void RendererImplT::EndFrame() 446 444 { 447 // printf("%4lu", ShaderChangeCounter);445 // Console->Print(cf::va("%4lu", ShaderChangeCounter)); 448 446 // static int LineWrap=0; 449 447 // LineWrap++; 450 // if (LineWrap==20) { printf("\n"); LineWrap=0; }448 // if (LineWrap==20) { Console->Print("\n"); LineWrap=0; } 451 449 } 452 450 -
cafu/trunk/Libs/MaterialSystem/RendererCgNV2X/Shaders/_CommonCgHelpers.cpp
r36 r149 27 27 28 28 #include "_CommonCgHelpers.hpp" 29 #include "ConsoleCommands/Console.hpp" 30 29 31 #include <stdio.h> 30 32 … … 41 43 CGerror err =cgGetError(); 42 44 43 printf("ERROR: Unable to create Cg program: %s\n", cgGetErrorString(err));45 Console->Print(std::string("ERROR: Unable to create Cg program: ")+cgGetErrorString(err)+"\n"); 44 46 if (ErrorFile) fprintf(ErrorFile, "ERROR: Unable to create Cg program: %s\n", cgGetErrorString(err)); 45 47 46 48 const char* LastListing=cgGetLastListing(CgContext); 47 if (LastListing) printf("LAST LISTING:\n%s\n", LastListing);49 if (LastListing) Console->Print(std::string("LAST LISTING:\n")+LastListing+"\n"); 48 50 if (LastListing && ErrorFile) fprintf(ErrorFile, "LAST LISTING:\n%s\n", LastListing); 49 51 … … 58 60 { 59 61 // This should never happen, as we have already made sure elsewhere that the desired profile is supported! 60 printf("ERROR: Unable to load Cg program: %s\n", cgGetErrorString(err));62 Console->Print(std::string("ERROR: Unable to load Cg program: ")+cgGetErrorString(err)+"\n"); 61 63 return NULL; 62 64 } -
cafu/trunk/Libs/MaterialSystem/RendererOpenGL12/RendererImpl.cpp
r51 r149 41 41 42 42 #include "../Common/OpenGLEx.hpp" 43 #include "ConsoleCommands/Console.hpp" 43 44 #include "Templates/Array.hpp" 44 45 … … 89 90 // glGetError(); // Clear the error flag manually (will set error GL_INVALID_OPERATION on invalid RC). 90 91 #ifdef DEBUG 91 printf("\n%s (%u): Entering RendererImplT::IsSupported().\n", __FILE__, __LINE__);92 Console->Print(cf::va("\n%s (%u): Entering RendererImplT::IsSupported().\n", __FILE__, __LINE__)); 92 93 #endif 93 94 GLenum LastError=glGetError(); … … 95 96 { 96 97 #ifdef DEBUG 97 printf("%s (%u): glGetError() returned error %lu (0x%X).\n", __FILE__, __LINE__, (unsigned long)LastError, LastError);98 Console->Print(cf::va("%s (%u): glGetError() returned error %lu (0x%X).\n", __FILE__, __LINE__, (unsigned long)LastError, LastError)); 98 99 #endif 99 100 return false; … … 105 106 106 107 #ifdef DEBUG 107 printf("%s (%u): GL_VERSION string is \"%s\".\n", __FILE__, __LINE__, Version==NULL ? "NULL" : Version);108 Console->Print(cf::va("%s (%u): GL_VERSION string is \"%s\".\n", __FILE__, __LINE__, Version==NULL ? "NULL" : Version)); 108 109 #endif 109 110 if (Version==NULL) return false; // This is another way to see if the RC is valid. … … 113 114 cf::Init_GL_ARB_multitexture(); 114 115 #ifdef DEBUG 115 printf("%s (%u): GL_ARB_multitexture_AVAIL==%u.\n", __FILE__, __LINE__, cf::GL_ARB_multitexture_AVAIL);116 Console->Print(cf::va("%s (%u): GL_ARB_multitexture_AVAIL==%u.\n", __FILE__, __LINE__, cf::GL_ARB_multitexture_AVAIL)); 116 117 #endif 117 118 if (!cf::GL_ARB_multitexture_AVAIL) return false; // Require the GL_ARB_multitexture extension. -
cafu/trunk/Libs/PlatformAux.cpp
r36 r149 21 21 ================================================================================= 22 22 */ 23 24 /********************************/25 /*** Platform Auxiliary Stuff ***/26 /********************************/27 23 28 24 #include "PlatformAux.hpp" … … 119 115 std::string DLLName=Path+"/"+FindFileData.cFileName; 120 116 #ifdef SCONS_BUILD_DIR 121 const std::string Suffix =".dll";122 #else 123 const std::string Suffix =GetEnvFileSuffix()+".dll"; // printf("Suffix %s, DLLName %s\n", Suffix.c_str(), DLLName.c_str());117 const std::string Suffix=".dll"; 118 #else 119 const std::string Suffix=GetEnvFileSuffix()+".dll"; // Console->Print("Suffix "+Suffix+", DLLName "+DLLName+"\n"); 124 120 #endif 125 121 … … 178 174 // Please refer to the man page of dlopen for more details. 179 175 OutRendererDLL=dlopen(DLLName.c_str(), RTLD_NOW); 180 if (!OutRendererDLL) printf("\"%s\", ", dlerror());181 #endif 182 183 if (!OutRendererDLL) { printf("FAILED - could not load the library at %s.\n", DLLName.c_str()); return NULL; }176 if (!OutRendererDLL) Console->Print(std::string(dlerror()) + ", "); 177 #endif 178 179 if (!OutRendererDLL) { Console->Print("FAILED - could not load the library at "+DLLName+".\n"); return NULL; } 184 180 185 181 … … 192 188 #endif 193 189 194 if (!GetRendererFunc) { printf("FAILED - could not get the address of the GetRenderer() function.\n"); FreeLibrary(OutRendererDLL); return NULL; }190 if (!GetRendererFunc) { Console->Print("FAILED - could not get the address of the GetRenderer() function.\n"); FreeLibrary(OutRendererDLL); return NULL; } 195 191 196 192 … … 201 197 MatSys::RendererI* Renderer=GetRendererFunc(Console, cf::FileSys::FileMan); 202 198 203 if (!Renderer) { printf("FAILED - could not get the renderer.\n"); FreeLibrary(OutRendererDLL); return NULL; }204 if (!Renderer->IsSupported()) { printf("FAILED - renderer says it's not supported.\n"); FreeLibrary(OutRendererDLL); return NULL; }199 if (!Renderer) { Console->Print("FAILED - could not get the renderer.\n"); FreeLibrary(OutRendererDLL); return NULL; } 200 if (!Renderer->IsSupported()) { Console->Print("FAILED - renderer says it's not supported.\n"); FreeLibrary(OutRendererDLL); return NULL; } 205 201 206 202 return Renderer; … … 221 217 ArrayT<std::string> DLLNames; 222 218 223 printf("\n");224 printf("Scanning cwd for all available renderers...\n");219 Console->Print("\n"); 220 Console->Print("Scanning cwd for all available renderers...\n"); 225 221 GetDLLs(".", "Renderer", DLLNames); 226 222 227 223 if (DLLNames.Size()==0) 228 224 { 229 printf("Scanning %s for all available renderers...\n", Path.c_str());225 Console->Print("Scanning "+Path+" for all available renderers...\n"); 230 226 GetDLLs(Path, "Renderer", DLLNames); 231 227 } … … 237 233 for (unsigned long DLLNr=0; DLLNr<DLLNames.Size(); DLLNr++) 238 234 { 239 printf("%s ... ", DLLNames[DLLNr].c_str());235 Console->Print(DLLNames[DLLNr]+" ... "); 240 236 241 237 HMODULE RendererDLL; … … 251 247 if (PrefNr<10) 252 248 { 253 // Idon't want the Null renderer to be possibly selected for client rendering249 // We don't want the Null renderer to be possibly selected for client rendering 254 250 // (which can happen in the presence of other errors). 255 251 // It would only confuse and worry users to sit in front of a black, apparently frozen screen. 256 printf("SUCCESS - but excluded from auto-selection (Pref# %i).\n", PrefNr);252 Console->Print(cf::va("SUCCESS - but excluded from auto-selection (Pref# %i).\n", PrefNr)); 257 253 continue; 258 254 } … … 260 256 if (PrefNr>BestPrefNr) 261 257 { 262 printf("SUCCESS - %s renderer (Pref# %i).\n", BestPrefNr<0 ? "first supported" : "higher preference", PrefNr);258 Console->Print(cf::va("SUCCESS - %s renderer (Pref# %i).\n", BestPrefNr<0 ? "first supported" : "higher preference", PrefNr)); 263 259 264 260 BestDLLIndex=DLLNr; 265 261 BestPrefNr =PrefNr; 266 262 } 267 else printf("SUCCESS - but no higher preference (Pref# %i).\n", PrefNr);263 else Console->Print(cf::va("SUCCESS - but no higher preference (Pref# %i).\n", PrefNr)); 268 264 } 269 265 270 266 if (BestPrefNr==-1) 271 267 { 272 printf("No renderer qualified.\n");268 Console->Print("No renderer qualified.\n"); 273 269 return NULL; 274 270 } 275 271 276 printf("Reloading previously auto-selected renderer %s ... \n", DLLNames[BestDLLIndex].c_str());272 Console->Print("Reloading previously auto-selected renderer "+DLLNames[BestDLLIndex]+" ...\n"); 277 273 return GetRenderer(DLLNames[BestDLLIndex], OutRendererDLL); 278 274 } … … 289 285 #endif 290 286 291 if (!GetTMM) { printf("FAILED - could not get the address of the GetTextureMapManager() function.\n"); return NULL; }287 if (!GetTMM) { Console->Print("FAILED - could not get the address of the GetTextureMapManager() function.\n"); return NULL; } 292 288 293 289 return GetTMM(); … … 304 300 // Please refer to the man page of dlopen for more details. 305 301 OutSoundSysDLL=dlopen(DLLName.c_str(), RTLD_NOW); 306 if (!OutSoundSysDLL) printf("\"%s\", ", dlerror());307 #endif 308 309 if (!OutSoundSysDLL) { printf("FAILED - could not load the library at %s.\n", DLLName.c_str()); return NULL; }302 if (!OutSoundSysDLL) Console->Print(std::string(dlerror()) + ", "); 303 #endif 304 305 if (!OutSoundSysDLL) { Console->Print("FAILED - could not load the library at "+DLLName+".\n"); return NULL; } 310 306 311 307 … … 318 314 #endif 319 315 320 if (!GetSoundSysFunc) { printf("FAILED - could not get the address of the GetSoundSys() function.\n"); FreeLibrary(OutSoundSysDLL); return NULL; }316 if (!GetSoundSysFunc) { Console->Print("FAILED - could not get the address of the GetSoundSys() function.\n"); FreeLibrary(OutSoundSysDLL); return NULL; } 321 317 322 318 … … 327 323 SoundSysI* SoundSys=GetSoundSysFunc(Console, cf::FileSys::FileMan); 328 324 329 if (!SoundSys) { printf("FAILED - could not get the SoundSys.\n"); FreeLibrary(OutSoundSysDLL); return NULL; }330 if (!SoundSys->IsSupported()) { printf("FAILED - SoundSys says it's not supported.\n"); FreeLibrary(OutSoundSysDLL); return NULL; }325 if (!SoundSys) { Console->Print("FAILED - could not get the SoundSys.\n"); FreeLibrary(OutSoundSysDLL); return NULL; } 326 if (!SoundSys->IsSupported()) { Console->Print("FAILED - SoundSys says it's not supported.\n"); FreeLibrary(OutSoundSysDLL); return NULL; } 331 327 332 328 return SoundSys; … … 347 343 ArrayT<std::string> DLLNames; 348 344 349 printf("\n");350 printf("Scanning cwd for all available sound systems...\n");345 Console->Print("\n"); 346 Console->Print("Scanning cwd for all available sound systems...\n"); 351 347 GetDLLs(".", "SoundSys", DLLNames); 352 348 353 349 if (DLLNames.Size()==0) 354 350 { 355 printf("Scanning %s for all available sound systems...\n", Path.c_str());351 Console->Print("Scanning "+Path+" for all available sound systems...\n"); 356 352 GetDLLs(Path, "SoundSys", DLLNames); 357 353 } … … 363 359 for (unsigned long DLLNr=0; DLLNr<DLLNames.Size(); DLLNr++) 364 360 { 365 printf("%s ... ", DLLNames[DLLNr].c_str());361 Console->Print(DLLNames[DLLNr]+" ... "); 366 362 367 363 HMODULE SoundSysDLL; … … 377 373 if (PrefNr<10) 378 374 { 379 // Idon't want the Null sound system to be possibly selected for client375 // We don't want the Null sound system to be possibly selected for client 380 376 // (which can happen in the presence of other errors). 381 377 // It would only confuse and worry users to sit in front of a black, apparently frozen screen. 382 printf("SUCCESS - but excluded from auto-selection (Pref# %i).\n", PrefNr);378 Console->Print(cf::va("SUCCESS - but excluded from auto-selection (Pref# %i).\n", PrefNr)); 383 379 continue; 384 380 } … … 386 382 if (PrefNr>BestPrefNr) 387 383 { 388 printf("SUCCESS - %s sound system (Pref# %i).\n", BestPrefNr<0 ? "first supported" : "higher preference", PrefNr);384 Console->Print(cf::va("SUCCESS - %s sound system (Pref# %i).\n", BestPrefNr<0 ? "first supported" : "higher preference", PrefNr)); 389 385 390 386 BestDLLIndex=DLLNr; 391 387 BestPrefNr =PrefNr; 392 388 } 393 else printf("SUCCESS - but no higher preference (Pref# %i).\n", PrefNr);389 else Console->Print(cf::va("SUCCESS - but no higher preference (Pref# %i).\n", PrefNr)); 394 390 } 395 391 396 392 if (BestPrefNr==-1) 397 393 { 398 printf("No sound system qualified.\n");394 Console->Print("No sound system qualified.\n"); 399 395 return NULL; 400 396 } 401 397 402 printf("Reloading previously auto-selected sound system %s ... \n", DLLNames[BestDLLIndex].c_str());398 Console->Print("Reloading previously auto-selected sound system "+DLLNames[BestDLLIndex]+" ...\n"); 403 399 return GetSoundSys(DLLNames[BestDLLIndex], OutSoundSysDLL); 404 400 } -
cafu/trunk/Libs/PlatformAux.hpp
r36 r149 21 21 ================================================================================= 22 22 */ 23 24 /********************************/25 /*** Platform Auxiliary Stuff ***/26 /********************************/27 23 28 24 #ifndef _PLATFORM_AUX_HPP_ -
cafu/trunk/Libs/SConscript
r148 r149 9 9 ConsoleCommands/ConVar.cpp ConsoleCommands/ConFunc.cpp 10 10 ConsoleCommands/ConsoleInterpreterImpl.cpp ConsoleCommands/ConsoleInterpreter_LuaBinding.cpp 11 ConsoleCommands/Console.cpp ConsoleCommands/Console Stdout.cpp ConsoleCommands/ConsoleStringBuffer.cpp ConsoleCommands/ConsoleWarningsOnly.cpp ConsoleCommands/ConsoleFile.cpp11 ConsoleCommands/Console.cpp ConsoleCommands/Console_Lua.cpp ConsoleCommands/ConsoleComposite.cpp ConsoleCommands/ConsoleStdout.cpp ConsoleCommands/ConsoleStringBuffer.cpp ConsoleCommands/ConsoleWarningsOnly.cpp ConsoleCommands/ConsoleFile.cpp 12 12 Fonts/Font.cpp Fonts/FontTT.cpp 13 13 FileSys/FileManImpl.cpp FileSys/FileSys_LocalPath.cpp FileSys/FileSys_ZipArchive_GV.cpp FileSys/File_local.cpp FileSys/File_memory.cpp FileSys/Password.cpp -
cafu/trunk/SConscript
r148 r149 9 9 env.Program('CaBSP/CaBSP', # I had preferred writing 'CaBSP' instead of 'CaBSP/CaBSP' here, but then under Linux we would get both a directory *and* an executeable with name 'CaBSP' in the build directory, which is not allowed/possible. 10 10 Split("CaBSP/CaBSP.cpp CaBSP/BspTreeBuilder/BspTreeBuilder.cpp") + CommonWorldObject, 11 LIBS=Split("SceneGraph MatSys cfsLib ClipSyscfs_png cfs_jpeg bulletcollision lua minizip lightwave z"))11 LIBS=Split("SceneGraph MatSys ClipSys cfsLib cfs_png cfs_jpeg bulletcollision lua minizip lightwave z")) 12 12 13 13 env.Program('CaPVS/CaPVS', 14 14 Split("CaPVS/CaPVS.cpp CaPVS/CaPVSWorld.cpp") + CommonWorldObject, 15 LIBS=Split("SceneGraph MatSys cfsLib ClipSyscfs_png cfs_jpeg bulletcollision lua minizip lightwave z"))15 LIBS=Split("SceneGraph MatSys ClipSys cfsLib cfs_png cfs_jpeg bulletcollision lua minizip lightwave z")) 16 16 17 17 env.Program('CaLight/CaLight', 18 18 Split("CaLight/CaLight.cpp CaLight/CaLightWorld.cpp") + CommonWorldObject, 19 LIBS=Split("SceneGraph MatSys cfsLib ClipSyscfs_png cfs_jpeg bulletcollision lua minizip lightwave z"))19 LIBS=Split("SceneGraph MatSys ClipSys cfsLib cfs_png cfs_jpeg bulletcollision lua minizip lightwave z")) 20 20 21 21 env.Program('CaSHL/CaSHL', 22 22 Split("CaSHL/CaSHL.cpp CaSHL/CaSHLWorld.cpp") + CommonWorldObject, 23 LIBS=Split("SceneGraph MatSys cfsLib ClipSyscfs_png cfs_jpeg bulletcollision lua minizip lightwave z"))23 LIBS=Split("SceneGraph MatSys ClipSys cfsLib cfs_png cfs_jpeg bulletcollision lua minizip lightwave z")) 24 24 25 25 … … 31 31 envTools.Append(LIBPATH=['ExtLibs/DirectX7/lib']) 32 32 # glu32 is only needed for the TerrainViewerOld... 33 envTools.Append(LIBS=Split("SceneGraph MatSys cfsLib ClipSyscfs_png cfs_jpeg bulletcollision lua minizip lightwave z")33 envTools.Append(LIBS=Split("SceneGraph MatSys ClipSys cfsLib cfs_png cfs_jpeg bulletcollision lua minizip lightwave z") 34 34 + Split("gdi32 glu32 opengl32 user32") + ['cfsOpenGL', 'dinput', 'dxguid']) 35 35 elif sys.platform=="linux2": … … 37 37 # GLU is needed for the TerrainViewerOld *and* for e.g. gluBuild2DMipmaps() in the renderers... 38 38 envTools.Append(CPPPATH=['/usr/include/freetype2']) # As of 2009-09-10, this line is to become unnecessary in the future, see /usr/include/ftbuild.h for details. 39 envTools.Append(LIBS=Split("SceneGraph MatSys cfsOpenGL cfsLib ClipSyscfs_png cfs_jpeg bulletcollision lua minizip lightwave z")39 envTools.Append(LIBS=Split("SceneGraph MatSys cfsOpenGL ClipSys cfsLib cfs_png cfs_jpeg bulletcollision lua minizip lightwave z") 40 40 + Split("GL GLU")) 41 41 … … 147 147 envCaWE = wxEnv.Clone() 148 148 envCaWE.Append(CPPPATH=['ExtLibs/lua/src', 'ExtLibs/noise/src']) 149 envCaWE.Append(LIBS=Split("SceneGraph MatSys cfsLib ClipSyscfs_png cfs_jpeg bulletcollision noise lua minizip lightwave z"))149 envCaWE.Append(LIBS=Split("SceneGraph MatSys ClipSys cfsLib cfs_png cfs_jpeg bulletcollision noise lua minizip lightwave z")) 150 150 151 151 if sys.platform=="win32":
