Index: source/g3d_viewer/main.cpp =================================================================== --- source/g3d_viewer/main.cpp (Revision 191) +++ source/g3d_viewer/main.cpp (Arbeitskopie) @@ -2,7 +2,6 @@ #include -#include "graphics_factory_basic_gl.h" #include "graphics_interface.h" #include "util.h" @@ -11,8 +10,15 @@ using namespace Shared::Graphics::Gl; using namespace Shared::Util; -using namespace std; +using std::exception; +#if (wxUSE_UNICODE == 1) +#define STRCONV(x) wxConvUTF8.cMB2WC(x) +#else +#define STRCONV(x) x +#endif + + namespace Shared{ namespace G3dViewer{ // =============================================== @@ -24,7 +30,7 @@ MainWindow::MainWindow(const string &modelPath): wxFrame( - NULL, -1, winHeader.c_str(), + NULL, -1, STRCONV(winHeader.c_str()), wxPoint(Renderer::windowX, Renderer::windowY), wxSize(Renderer::windowW, Renderer::windowH)) { @@ -37,38 +43,33 @@ glCanvas = new GlCanvas(this); - glCanvas->SetCurrent(); - - renderer->init(); - - menu= new wxMenuBar(); //menu menuFile= new wxMenu(); - menuFile->Append(miFileLoad, "Load"); - menu->Append(menuFile, "File"); + menuFile->Append(miFileLoad, wxT("Load")); + menu->Append(menuFile, wxT("File")); //mode menuMode= new wxMenu(); - menuMode->AppendCheckItem(miModeNormals, "Normals"); - menuMode->AppendCheckItem(miModeWireframe, "Wireframe"); - menuMode->AppendCheckItem(miModeGrid, "Grid"); - menu->Append(menuMode, "Mode"); + menuMode->AppendCheckItem(miModeNormals, wxT("Normals")); + menuMode->AppendCheckItem(miModeWireframe, wxT("Wireframe")); + menuMode->AppendCheckItem(miModeGrid, wxT("Grid")); + menu->Append(menuMode, wxT("Mode")); //mode menuSpeed= new wxMenu(); - menuSpeed->Append(miSpeedSlower, "Slower"); - menuSpeed->Append(miSpeedFaster, "Faster"); - menu->Append(menuSpeed, "Speed"); + menuSpeed->Append(miSpeedSlower, wxT("Slower")); + menuSpeed->Append(miSpeedFaster, wxT("Faster")); + menu->Append(menuSpeed, wxT("Speed")); //custom color menuCustomColor= new wxMenu(); - menuCustomColor->AppendCheckItem(miColorRed, "Red"); - menuCustomColor->AppendCheckItem(miColorBlue, "Blue"); - menuCustomColor->AppendCheckItem(miColorYellow, "Yellow"); - menuCustomColor->AppendCheckItem(miColorGreen, "Green"); - menu->Append(menuCustomColor, "Custom Color"); + menuCustomColor->AppendCheckItem(miColorRed, wxT("Red")); + menuCustomColor->AppendCheckItem(miColorBlue, wxT("Blue")); + menuCustomColor->AppendCheckItem(miColorYellow, wxT("Yellow")); + menuCustomColor->AppendCheckItem(miColorGreen, wxT("Green")); + menu->Append(menuCustomColor, wxT("Custom Color")); menuMode->Check(miModeGrid, true); menuCustomColor->Check(miColorRed, true); @@ -88,13 +89,6 @@ timer = new wxTimer(this); timer->Start(40); - - if(!modelPath.empty()){ - Model *tmpModel= new ModelGl(); - renderer->loadTheModel(tmpModel, modelPath); - model= tmpModel; - GetStatusBar()->SetStatusText(getModelInfo().c_str()); - } } MainWindow::~MainWindow(){ @@ -104,6 +98,17 @@ delete glCanvas; } +void MainWindow::init(){ + glCanvas->SetCurrent(); + renderer->init(); + if(!modelPath.empty()){ + Model *tmpModel= new ModelGl(); + renderer->loadTheModel(tmpModel, modelPath); + model= tmpModel; + GetStatusBar()->SetStatusText(STRCONV(getModelInfo().c_str())); + } +} + void MainWindow::onPaint(wxPaintEvent &event){ renderer->reset(GetClientSize().x, GetClientSize().y, playerColor); renderer->transform(rotX, rotY, zoom); @@ -141,13 +146,14 @@ void MainWindow::onMenuFileLoad(wxCommandEvent &event){ string fileName; wxFileDialog fileDialog(this); - fileDialog.SetWildcard("G3D files (*.g3d)|*.g3d"); + fileDialog.SetWildcard(wxT("G3D files (*.g3d)|*.g3d")); if(fileDialog.ShowModal()==wxID_OK){ delete model; Model *tmpModel= new ModelGl(); - renderer->loadTheModel(tmpModel, fileDialog.GetPath().c_str()); + fileName = wxFNCONV(fileDialog.GetPath()); + renderer->loadTheModel(tmpModel, fileName); model= tmpModel; - GetStatusBar()->SetStatusText(getModelInfo().c_str()); + GetStatusBar()->SetStatusText(wxString(getModelInfo().c_str(), wxConvUTF8)); } } @@ -252,7 +258,7 @@ // ===================================================== GlCanvas::GlCanvas(MainWindow * mainWindow): - wxGLCanvas(mainWindow, -1) + wxGLCanvas(mainWindow, -1, wxDefaultPosition) { this->mainWindow = mainWindow; } @@ -261,13 +267,8 @@ mainWindow->onMouseMove(event); } -void GlCanvas::onPaint(wxPaintEvent &event){ - mainWindow->onPaint(event); -} - BEGIN_EVENT_TABLE(GlCanvas, wxGLCanvas) EVT_MOTION(GlCanvas::onMouseMove) - EVT_PAINT(GlCanvas::onPaint) END_EVENT_TABLE() // =============================================== @@ -277,11 +278,12 @@ bool App::OnInit(){ string modelPath; if(argc==2){ - modelPath= argv[1]; + modelPath = wxFNCONV(argv[1]); } mainWindow= new MainWindow(modelPath); mainWindow->Show(); + mainWindow->init(); return true; } @@ -290,9 +292,9 @@ return wxApp::MainLoop(); } catch(const exception &e){ - wxMessageDialog(NULL, e.what(), "Exception", wxOK | wxICON_ERROR).ShowModal(); - return 0; + wxMessageDialog(NULL, STRCONV(e.what()), wxT("Exception"), wxOK | wxICON_ERROR).ShowModal(); } + return 0; } int App::OnExit(){ Index: source/g3d_viewer/main.h =================================================================== --- source/g3d_viewer/main.h (Revision 191) +++ source/g3d_viewer/main.h (Arbeitskopie) @@ -7,12 +7,13 @@ #include #include +#include "graphics_factory_basic_gl.h" #include "renderer.h" #include "util.h" #include "window.h" -using Shared::Platform::Window; -using Shared::Platform::MouseState; +//using Shared::Platform::Window; +//using Shared::Platform::MouseState; using std::string; @@ -70,6 +71,8 @@ MainWindow(const string &modelPath); ~MainWindow(); + void init(); + void Notify(); void onPaint(wxPaintEvent &event); Index: mk/linux/Jamfile =================================================================== --- mk/linux/Jamfile (Revision 191) +++ mk/linux/Jamfile (Arbeitskopie) @@ -26,7 +26,7 @@ } Library glestlib : $(LIB_SOURCES) ; -ExternalLibs glestlib : SDL GL GLU XERCES VORBIS VORBISFILE OGG OPENAL LUA ; +ExternalLibs glestlib : SDL GL GLU XERCES VORBISFILE OPENAL LUA ; IncludeDir glestlib : $(LIB_INCLUDE_DIRS) ; #### Game #### @@ -55,7 +55,7 @@ Application glest : $(GLEST_SOURCES) ; LinkWith glest : glestlib ; -ExternalLibs glest : SDL GL GLU XERCES VORBIS VORBISFILE OGG OPENAL LUA ; +ExternalLibs glest : SDL GL GLU XERCES VORBISFILE OPENAL LUA ; IncludeDir glest : ../shared_lib/include/$(LIB_INCLUDE_DIRS) $(GLEST_DIRS) ; #### Editor #### @@ -69,7 +69,22 @@ Application glest_editor : $(GLEST_MAP_SOURCES) ; LinkWith glest_editor : glestlib ; - ExternalLibs glest_editor : SDL GL GLU XERCES VORBIS VORBISFILE OGG OPENAL WX ; + ExternalLibs glest_editor : SDL GL GLU XERCES VORBISFILE OPENAL WX ; IncludeDir glest_editor : ../shared_lib/include/$(LIB_INCLUDE_DIRS) $(GLEST_MAP_DIRS) ; } +### Viewer ### +if $(WX_AVAILABLE) = "yes" { + SubDir TOP g3d_viewer ; + + GLEST_VIEWER_DIRS = . ; + for i in $(GLEST_DIRS) { + GLEST_VIEWER_SOURCES += [ Wildcard $(i) : *.cpp *.h ] ; + } + + Application glest_g3dviewer : $(GLEST_VIEWER_SOURCES) ; + LinkWith glest_g3dviewer : glestlib ; + ExternalLibs glest_g3dviewer : SDL GL GLU XERCES VORBISFILE OPENAL WX ; + IncludeDir glest_g3dviewer : ../shared_lib/include/$(LIB_INCLUDE_DIRS) $(GLEST_VIEWER_DIRS) ; +} + Index: mk/linux/autogen.sh =================================================================== --- mk/linux/autogen.sh (Revision 191) +++ mk/linux/autogen.sh (Arbeitskopie) @@ -34,4 +34,6 @@ if [ ! -d glest_map_editor ]; then ln -sf ../../source/glest_map_editor . fi - +if [ ! -d g3d_viewer ]; then + ln -sf ../../source/g3d_viewer . +fi