From: <ror...@us...> - 2007-08-21 10:52:48
|
Revision: 165 http://roreditor.svn.sourceforge.net/roreditor/?rev=165&view=rev Author: rorthomas Date: 2007-08-21 03:52:43 -0700 (Tue, 21 Aug 2007) Log Message: ----------- new dir structure Modified Paths: -------------- trunk/lib_windows/ror/starter.py trunk/lib_windows/wxogre/OgreManager.py Added Paths: ----------- trunk/lib_common/ trunk/lib_linux/ trunk/lib_windows/ Removed Paths: ------------- trunk/lib/ Copied: trunk/lib_windows (from rev 164, trunk/lib) Modified: trunk/lib_windows/ror/starter.py =================================================================== --- trunk/lib/ror/starter.py 2007-08-19 11:16:59 UTC (rev 164) +++ trunk/lib_windows/ror/starter.py 2007-08-21 10:52:43 UTC (rev 165) @@ -19,287 +19,289 @@ class ImagePanel(wx.Panel): - """ class Panel1 creates a panel with an image on it, inherits wx.Panel """ - def __init__(self, parent, id, imageFile): - wx.Panel.__init__(self, parent, id) - try: - jpg1 = wx.Image(imageFile, wx.BITMAP_TYPE_ANY).ConvertToBitmap() - wx.StaticBitmap(self, wx.ID_ANY, jpg1, (0, 0), (jpg1.GetWidth(), jpg1.GetHeight())) - except IOError: - log().error("Image file %s not found" % imageFile) - raise SystemExit + """ class Panel1 creates a panel with an image on it, inherits wx.Panel """ + def __init__(self, parent, id, imageFile): + wx.Panel.__init__(self, parent, id) + try: + jpg1 = wx.Image(imageFile, wx.BITMAP_TYPE_ANY).ConvertToBitmap() + wx.StaticBitmap(self, wx.ID_ANY, jpg1, (0, 0), (jpg1.GetWidth(), jpg1.GetHeight())) + except IOError: + log().error("Image file %s not found" % imageFile) + raise SystemExit -class SettingsDialog(wx.Frame): - rordir = None - def __init__(self, *args, **kwds): - kwds["style"] = wx.SYSTEM_MENU | wx.CAPTION | wx.CLIP_CHILDREN | wx.CLOSE_BOX - wx.Frame.__init__(self, *args, **kwds) +class SettingsDialog(wx.Frame): + rordir = None + def __init__(self, *args, **kwds): + kwds["style"] = wx.SYSTEM_MENU | wx.CAPTION | wx.CLIP_CHILDREN | wx.CLOSE_BOX + wx.Frame.__init__(self, *args, **kwds) - self.panel = wx.Panel(self, wx.ID_ANY) - - self.image = ImagePanel(self.panel, wx.ID_ANY, SPLASHIMAGE) - - self.lblRoRDir = wx.StaticText(self.panel, wx.ID_ANY, "Please select Rigs of Rods Directory!", size = (20, 40), style = wx.ALIGN_CENTRE | wx.ST_NO_AUTORESIZE) - self.btnSelectRoRDir = wx.Button(self.panel, wx.ID_ANY, "Select RoR Directory") - self.Bind(wx.EVT_BUTTON, self.OnSelectRoRDir, self.btnSelectRoRDir) + self.panel = wx.Panel(self, wx.ID_ANY) - self.btnStartRoR = wx.Button(self.panel, wx.ID_ANY, "Start RoR") - self.Bind(wx.EVT_BUTTON, self.OnStartRoR, self.btnStartRoR) + self.image = ImagePanel(self.panel, wx.ID_ANY, SPLASHIMAGE) - self.cbbRenderEngine = wx.ComboBox(self.panel, wx.ID_ANY, RENDERSYSTEMS[0], style=wx.CB_READONLY, choices=RENDERSYSTEMS) - self.Bind(wx.EVT_COMBOBOX, self.OnSelectRenderer, self.cbbRenderEngine) - - self.btnStartTerrainEditor = wx.Button(self.panel, wx.ID_ANY, "Start Editor") - self.Bind(wx.EVT_BUTTON, self.OnTerrainEditor, self.btnStartTerrainEditor) - - self.btnBugReport = wx.Button(self.panel, wx.ID_ANY, "Report a Bug") - self.Bind(wx.EVT_BUTTON, self.OnBugReport, self.btnBugReport) + self.lblRoRDir = wx.StaticText(self.panel, wx.ID_ANY, "Please select Rigs of Rods Directory!", size = (20, 40), style = wx.ALIGN_CENTRE | wx.ST_NO_AUTORESIZE) + self.btnSelectRoRDir = wx.Button(self.panel, wx.ID_ANY, "Select RoR Directory") + self.Bind(wx.EVT_BUTTON, self.OnSelectRoRDir, self.btnSelectRoRDir) - self.btnUpdate = wx.Button(self.panel, wx.ID_ANY, "Update") - self.Bind(wx.EVT_BUTTON, self.OnUpdate, self.btnUpdate) - - self.btnDepGraph = wx.Button(self.panel, wx.ID_ANY, "Dependency Graph") - self.Bind(wx.EVT_BUTTON, self.OnDepGraph, self.btnDepGraph) + self.btnStartRoR = wx.Button(self.panel, wx.ID_ANY, "Start RoR") + self.Bind(wx.EVT_BUTTON, self.OnStartRoR, self.btnStartRoR) - self.btnModUninstaller = wx.Button(self.panel, wx.ID_ANY, "Mod Uninstaller") - self.Bind(wx.EVT_BUTTON, self.OnModUninstaller, self.btnModUninstaller) + if sys.platform == 'win32': + self.cbbRenderEngine = wx.ComboBox(self.panel, wx.ID_ANY, RENDERSYSTEMS[0], style=wx.CB_READONLY, choices=RENDERSYSTEMS) + self.Bind(wx.EVT_COMBOBOX, self.OnSelectRenderer, self.cbbRenderEngine) - self.btnRepClient = wx.Button(self.panel, wx.ID_ANY, "Repository Client") - self.Bind(wx.EVT_BUTTON, self.OnRepClient, self.btnRepClient) - - self.btnExit = wx.Button(self.panel, wx.ID_ANY, "Exit") - self.Bind(wx.EVT_BUTTON, self.OnExit, self.btnExit) - - self.rordir = getSettingsManager().getSetting("RigsOfRods", "BasePath") - self.checkRoRDir(self.rordir) - - #print self.rordir - self.displayRoRDir() - self.__set_properties() - self.__do_layout() - - self.renderSystem = RENDERSYSTEMS[0] + self.btnStartTerrainEditor = wx.Button(self.panel, wx.ID_ANY, "Start Editor") + self.Bind(wx.EVT_BUTTON, self.OnTerrainEditor, self.btnStartTerrainEditor) - def OnRepClient(self, event=None): - import repomanager - repomanager.main() - - def displayRoRDir(self): - if self.rordir == "": - self.btnStartRoR.Enable(False) - #self.btnStartTruckEditor.Enable(False) - self.btnStartTerrainEditor.Enable(False) - self.btnBugReport.Enable(False) - self.lblRoRDir.SetLabel("Please select Rigs of Rods Directory!") - else: - self.btnStartRoR.Enable(True) - #self.btnStartTruckEditor.Enable(True) - self.btnStartTerrainEditor.Enable(True) - self.btnBugReport.Enable(True) - self.lblRoRDir.SetLabel("Selected Rigs of Rods Directory: " + self.rordir) - - def OnSelectRenderer(self, id=None, func=None): - self.renderSystem = self.cbbRenderEngine.GetCurrentSelection() - self.updateRenderer() + self.btnBugReport = wx.Button(self.panel, wx.ID_ANY, "Report a Bug") + self.Bind(wx.EVT_BUTTON, self.OnBugReport, self.btnBugReport) - def updateRenderer(self): - filename = os.path.join(os.getcwd(), "plugins.cfg") - f=open(filename, 'r') - content = f.readlines() - f.close() - log().info("selected rendersystem: %s" % RENDERSYSTEMS[self.renderSystem]) - for i in range(0, len(content)): - if content[i].find(OPENGLLINE) >= 0: - if self.renderSystem == 0: - content[i] = OPENGLLINE+"\n" - else: - content[i] = "#"+OPENGLLINE+"\n" - elif content[i].find(DIRECTXLINE) >= 0: - if self.renderSystem == 1: - content[i] = DIRECTXLINE+"\n" - else: - content[i] = "#"+DIRECTXLINE+"\n" + self.btnUpdate = wx.Button(self.panel, wx.ID_ANY, "Update") + self.Bind(wx.EVT_BUTTON, self.OnUpdate, self.btnUpdate) - f=open(filename, 'w') - f.writelines(content) - f.close() - - def OnDepGraph(self, event=None): - import ror.depchecker - ror.depchecker.RoRDepChecker(self.rordir, "all", "") - file = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "..", "graphs", "alldependencies.png")) - #print file - if os.path.isfile(file): - dlg = wx.MessageDialog(self, "Graph successfully created:\n"+file, "Info", wx.OK | wx.ICON_INFORMATION) - dlg.ShowModal() - dlg.Destroy() - cmd = file - p = subprocess.Popen(cmd, shell = True, stderr = subprocess.PIPE, stdout = subprocess.PIPE) - else: - dlg = wx.MessageDialog(self, "Graph creation failed :(", "Info", wx.OK | wx.ICON_INFORMATION) - dlg.ShowModal() - dlg.Destroy() - - def OnModUninstaller(self, event=None): - import modgui - gui = modgui.ModGUI(None, -1, "") - gui.Show() - del gui - - def OnUpdate(self, event=None): - import svngui - gui = svngui.svnUpdate() - del gui + self.btnDepGraph = wx.Button(self.panel, wx.ID_ANY, "Dependency Graph") + self.Bind(wx.EVT_BUTTON, self.OnDepGraph, self.btnDepGraph) - def checkForUpdate(self): - import svn - return svn.checkForUpdate() - + self.btnModUninstaller = wx.Button(self.panel, wx.ID_ANY, "Mod Uninstaller") + self.Bind(wx.EVT_BUTTON, self.OnModUninstaller, self.btnModUninstaller) - def OnStartRoR(self, event=None): - try: - path = os.path.join(self.rordir, "RoR.exe") - log().info("starting RoR: %s" % path) - p = Popen(path, shell = False, cwd = self.rordir) - #sts = os.waitpid(p.pid, 0) - except Exception, e: - log().exception(str(e)) + self.btnRepClient = wx.Button(self.panel, wx.ID_ANY, "Repository Client") + self.Bind(wx.EVT_BUTTON, self.OnRepClient, self.btnRepClient) - # def OnTruckEditor(self, event=None): - # try: - # import rortruckeditor.MainFrame - # self.Close() - # log().info("starting Truckeditor") - # app = rortruckeditor.MainFrame.startApp() - # del app - # except Exception, e: - # log().exception(str(e)) - - def OnBugReport(self, event=None): - try: - if self.checkForUpdate(): - dlg = wx.MessageDialog(self, "Update Available!\nPlease update prior submitting a BugReport!", "Info", wx.OK | wx.ICON_INFORMATION) - dlg.ShowModal() - dlg.Destroy() - self.btnBugReport.Enable(False) - return - - log().info("starting bugreporter") - import ror.bugreport - ror.bugreport.showBugReportFrame() - except Exception, e: - log().exception(str(e)) + self.btnExit = wx.Button(self.panel, wx.ID_ANY, "Exit") + self.Bind(wx.EVT_BUTTON, self.OnExit, self.btnExit) - def OnTerrainEditor(self, event=None): - try: - log().info("starting Terraineditor") - self.Close() - app = roreditor.MainFrame.startApp() - del app - #self.Show() - except Exception, e: - log().exception(str(e)) + self.rordir = getSettingsManager().getSetting("RigsOfRods", "BasePath") + self.checkRoRDir(self.rordir) - def checkRoRDir(self, fn): - # withoutspaces = (fn.find(" ") == -1) - # if not withoutspaces: - # dlg = wx.MessageDialog(self, "Your RoR installation directory contains spaces. Rename/move it to a directory with no spaces.\nFor example c:\\ror", "Error", wx.OK | wx.ICON_INFORMATION) - # dlg.ShowModal() - # dlg.Destroy() - # return False - - exists = os.path.isfile(os.path.join(fn,"RoR.exe")) - if not exists: - dlg = wx.MessageDialog(self, "RoR.exe not found in the selected directory!\nPlease select a new directory!", "Error", wx.OK | wx.ICON_INFORMATION) - dlg.ShowModal() - dlg.Destroy() - self.rordir = "" - return False - - self.rordir = fn - return True - - def OnSelectRoRDir(self, event=None): - dialog = wx.DirDialog(self, "Choose RoR Directory", "") - res = dialog.ShowModal() - if res == wx.ID_OK: - newpath = dialog.GetPath() - if not self.checkRoRDir(newpath): - return - - # no need to escape here! - #newpath = newpath.replace(" ", "\ ") - self.rordir = newpath - getSettingsManager().setSetting("RigsOfRods", "BasePath", newpath) - self.displayRoRDir() - - def OnExit(self, event=None): - self.Close() - sys.exit(0) + #print self.rordir + self.displayRoRDir() + self.__set_properties() + self.__do_layout() - def __set_properties(self): - #try: - import ror.svn - self.SetTitle("RoR Toolkit r%d" % ror.svn.getRevision()) - #except: - # self.SetTitle("RoR Toolkit") + self.renderSystem = RENDERSYSTEMS[0] - def __do_layout(self): - - sizer_panel = wx.BoxSizer(wx.VERTICAL) - sizer_panel.Add(self.image, 0, wx.EXPAND, 0) - - sizer_a = wx.BoxSizer(wx.HORIZONTAL) - sizer_a.Add(self.lblRoRDir, 1, wx.EXPAND, 0) - sizer_a.Add(self.btnSelectRoRDir, 0, wx.EXPAND, 0) - sizer_panel.Add(sizer_a, 0, wx.EXPAND, 0) - - sizer_b = wx.BoxSizer(wx.HORIZONTAL) - sizer_b.Add(self.btnStartRoR, 0, wx.EXPAND, 0) + def OnRepClient(self, event=None): + import repomanager + repomanager.main() - sizer_c = wx.BoxSizer(wx.VERTICAL) - #sizer_c.Add(self.btnStartTruckEditor, 1, wx.EXPAND, 0) - sizer_c.Add(self.btnStartTerrainEditor, 1, wx.EXPAND, 0) - sizer_b.Add(sizer_c, 1, wx.EXPAND, 0) - - sizer_b.Add(self.cbbRenderEngine, 0, wx.EXPAND, 0) - sizer_panel.Add(sizer_b, 1, wx.EXPAND, 0) + def displayRoRDir(self): + if self.rordir == "": + self.btnStartRoR.Enable(False) + #self.btnStartTruckEditor.Enable(False) + self.btnStartTerrainEditor.Enable(False) + self.btnBugReport.Enable(False) + self.lblRoRDir.SetLabel("Please select Rigs of Rods Directory!") + else: + self.btnStartRoR.Enable(True) + #self.btnStartTruckEditor.Enable(True) + self.btnStartTerrainEditor.Enable(True) + self.btnBugReport.Enable(True) + self.lblRoRDir.SetLabel("Selected Rigs of Rods Directory: " + self.rordir) - sizer_d = wx.BoxSizer(wx.HORIZONTAL) - sizer_d.Add(self.btnBugReport, 1, wx.EXPAND, 0) - sizer_d.Add(self.btnUpdate, 1, wx.EXPAND, 0) - sizer_panel.Add(sizer_d, 0, wx.EXPAND, 0) - - - sizer_e = wx.BoxSizer(wx.HORIZONTAL) - sizer_e.Add(self.btnDepGraph, 1, wx.EXPAND, 0) - sizer_e.Add(self.btnRepClient, 1, wx.EXPAND, 0) - sizer_e.Add(self.btnModUninstaller, 1, wx.EXPAND, 0) - sizer_panel.Add(sizer_e, 0, wx.EXPAND, 0) - - sizer_panel.Add(self.btnExit, 0, wx.EXPAND, 0) - self.panel.SetSizer(sizer_panel) + def OnSelectRenderer(self, id=None, func=None): + self.renderSystem = self.cbbRenderEngine.GetCurrentSelection() + self.updateRenderer() - sizer_main = wx.BoxSizer(wx.VERTICAL) - sizer_main.Add(self.panel, 0, wx.EXPAND, 0) - - self.SetAutoLayout(True) - self.SetSizer(sizer_main) - sizer_main.Fit(self) - sizer_main.SetSizeHints(self) - self.Layout() + def updateRenderer(self): + filename = os.path.join(os.getcwd(), "plugins_windows.cfg") + f=open(filename, 'r') + content = f.readlines() + f.close() + log().info("selected rendersystem: %s" % RENDERSYSTEMS[self.renderSystem]) + for i in range(0, len(content)): + if content[i].find(OPENGLLINE) >= 0: + if self.renderSystem == 0: + content[i] = OPENGLLINE+"\n" + else: + content[i] = "#"+OPENGLLINE+"\n" + elif content[i].find(DIRECTXLINE) >= 0: + if self.renderSystem == 1: + content[i] = DIRECTXLINE+"\n" + else: + content[i] = "#"+DIRECTXLINE+"\n" + f=open(filename, 'w') + f.writelines(content) + f.close() + + def OnDepGraph(self, event=None): + import ror.depchecker + ror.depchecker.RoRDepChecker(self.rordir, "all", "") + file = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "..", "graphs", "alldependencies.png")) + #print file + if os.path.isfile(file): + dlg = wx.MessageDialog(self, "Graph successfully created:\n"+file, "Info", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + cmd = file + p = subprocess.Popen(cmd, shell = True, stderr = subprocess.PIPE, stdout = subprocess.PIPE) + else: + dlg = wx.MessageDialog(self, "Graph creation failed :(", "Info", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + + def OnModUninstaller(self, event=None): + import modgui + gui = modgui.ModGUI(None, -1, "") + gui.Show() + del gui + + def OnUpdate(self, event=None): + import svngui + gui = svngui.svnUpdate() + del gui + + def checkForUpdate(self): + import svn + return svn.checkForUpdate() + + + def OnStartRoR(self, event=None): + try: + path = os.path.join(self.rordir, "RoR.exe") + log().info("starting RoR: %s" % path) + p = Popen(path, shell = False, cwd = self.rordir) + #sts = os.waitpid(p.pid, 0) + except Exception, e: + log().exception(str(e)) + + # def OnTruckEditor(self, event=None): + # try: + # import rortruckeditor.MainFrame + # self.Close() + # log().info("starting Truckeditor") + # app = rortruckeditor.MainFrame.startApp() + # del app + # except Exception, e: + # log().exception(str(e)) + + def OnBugReport(self, event=None): + try: + if self.checkForUpdate(): + dlg = wx.MessageDialog(self, "Update Available!\nPlease update prior submitting a BugReport!", "Info", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + self.btnBugReport.Enable(False) + return + + log().info("starting bugreporter") + import ror.bugreport + ror.bugreport.showBugReportFrame() + except Exception, e: + log().exception(str(e)) + + def OnTerrainEditor(self, event=None): + try: + log().info("starting Terraineditor") + self.Close() + app = roreditor.MainFrame.startApp() + del app + #self.Show() + except Exception, e: + log().exception(str(e)) + + def checkRoRDir(self, fn): + # withoutspaces = (fn.find(" ") == -1) + # if not withoutspaces: + # dlg = wx.MessageDialog(self, "Your RoR installation directory contains spaces. Rename/move it to a directory with no spaces.\nFor example c:\\ror", "Error", wx.OK | wx.ICON_INFORMATION) + # dlg.ShowModal() + # dlg.Destroy() + # return False + + exists = os.path.isfile(os.path.join(fn,"RoR.exe")) + if not exists: + dlg = wx.MessageDialog(self, "RoR.exe not found in the selected directory!\nPlease select a new directory!", "Error", wx.OK | wx.ICON_INFORMATION) + dlg.ShowModal() + dlg.Destroy() + self.rordir = "" + return False + + self.rordir = fn + return True + + def OnSelectRoRDir(self, event=None): + dialog = wx.DirDialog(self, "Choose RoR Directory", "") + res = dialog.ShowModal() + if res == wx.ID_OK: + newpath = dialog.GetPath() + if not self.checkRoRDir(newpath): + return + + # no need to escape here! + #newpath = newpath.replace(" ", "\ ") + self.rordir = newpath + getSettingsManager().setSetting("RigsOfRods", "BasePath", newpath) + self.displayRoRDir() + + def OnExit(self, event=None): + self.Close() + sys.exit(0) + + def __set_properties(self): + #try: + import ror.svn + self.SetTitle("RoR Toolkit r%d" % ror.svn.getRevision()) + #except: + # self.SetTitle("RoR Toolkit") + + def __do_layout(self): + + sizer_panel = wx.BoxSizer(wx.VERTICAL) + sizer_panel.Add(self.image, 0, wx.EXPAND, 0) + + sizer_a = wx.BoxSizer(wx.HORIZONTAL) + sizer_a.Add(self.lblRoRDir, 1, wx.EXPAND, 0) + sizer_a.Add(self.btnSelectRoRDir, 0, wx.EXPAND, 0) + sizer_panel.Add(sizer_a, 0, wx.EXPAND, 0) + + sizer_b = wx.BoxSizer(wx.HORIZONTAL) + sizer_b.Add(self.btnStartRoR, 0, wx.EXPAND, 0) + + sizer_c = wx.BoxSizer(wx.VERTICAL) + #sizer_c.Add(self.btnStartTruckEditor, 1, wx.EXPAND, 0) + sizer_c.Add(self.btnStartTerrainEditor, 1, wx.EXPAND, 0) + sizer_b.Add(sizer_c, 1, wx.EXPAND, 0) + + if sys.platform == 'win32': + sizer_b.Add(self.cbbRenderEngine, 0, wx.EXPAND, 0) + sizer_panel.Add(sizer_b, 1, wx.EXPAND, 0) + + sizer_d = wx.BoxSizer(wx.HORIZONTAL) + sizer_d.Add(self.btnBugReport, 1, wx.EXPAND, 0) + sizer_d.Add(self.btnUpdate, 1, wx.EXPAND, 0) + sizer_panel.Add(sizer_d, 0, wx.EXPAND, 0) + + + sizer_e = wx.BoxSizer(wx.HORIZONTAL) + sizer_e.Add(self.btnDepGraph, 1, wx.EXPAND, 0) + sizer_e.Add(self.btnRepClient, 1, wx.EXPAND, 0) + sizer_e.Add(self.btnModUninstaller, 1, wx.EXPAND, 0) + sizer_panel.Add(sizer_e, 0, wx.EXPAND, 0) + + sizer_panel.Add(self.btnExit, 0, wx.EXPAND, 0) + self.panel.SetSizer(sizer_panel) + + sizer_main = wx.BoxSizer(wx.VERTICAL) + sizer_main.Add(self.panel, 0, wx.EXPAND, 0) + + self.SetAutoLayout(True) + self.SetSizer(sizer_main) + sizer_main.Fit(self) + sizer_main.SetSizeHints(self) + self.Layout() + def startApp(): - MainApp = wx.PySimpleApp() - wx.InitAllImageHandlers() #you may or may not need this - myFrame = SettingsDialog(None, -1, "") + MainApp = wx.PySimpleApp() + wx.InitAllImageHandlers() #you may or may not need this + myFrame = SettingsDialog(None, -1, "") - # add icon to the window - icon = wx.Icon("ror.ico",wx.BITMAP_TYPE_ICO) - myFrame.SetIcon(icon) - MainApp.SetTopWindow(myFrame) - - myFrame.Show() - - MainApp.MainLoop() + # add icon to the window + icon = wx.Icon("ror.ico",wx.BITMAP_TYPE_ICO) + myFrame.SetIcon(icon) + MainApp.SetTopWindow(myFrame) + + myFrame.Show() + + MainApp.MainLoop() Modified: trunk/lib_windows/wxogre/OgreManager.py =================================================================== --- trunk/lib/wxogre/OgreManager.py 2007-08-19 11:16:59 UTC (rev 164) +++ trunk/lib_windows/wxogre/OgreManager.py 2007-08-21 10:52:43 UTC (rev 165) @@ -1,7 +1,7 @@ #Thomas Fischer 31/05/2007, th...@th... import sys import wx -import ogre.renderer.OGRE as ogre +import ogre.renderer.OGRE as ogre from ror.logger import log from ror.ogrelogger import initOgreLogging @@ -11,116 +11,122 @@ # singleton implementation of OgreManager _ogremanager = None def getOgreManager(): - global _ogremanager - if _ogremanager is None: - _ogremanager = OgreManager() - return _ogremanager + global _ogremanager + if _ogremanager is None: + _ogremanager = OgreManager() + return _ogremanager class MyLog(ogre.LogListener): - def __init__(self): - # Creates a C++ log that will try and write to console and file - ogre.LogListener.__init__(self) - - def messageLogged(self, message, level, debug, logName): - print ">>>", message - return True - + def __init__(self): + # Creates a C++ log that will try and write to console and file + ogre.LogListener.__init__(self) + def messageLogged(self, message, level, debug, logName): + print ">>>", message + return True + + class OgreManager(): - renderWindows = {} + renderWindows = {} - def restart(self): - self.ogreRoot.shutdown() - self.init() - - def __init__(self): - self.init() - - def init(self): - #Root creation - self.ogreRoot = ogre.Root(self.getConfigPath('plugins.cfg'), self.getConfigPath('ogre.cfg'), "Ogre.log") - #logMgr = ogre.LogManager() - #currentLog = ogre.LogManager.getSingletonPtr().createLog("ogre.log" ,True, False, False) - #myLog = MyLog() - #currentLog.addListener ( myLog ) - #ogre.LogManager.getSingletonPtr().setDefaultLog(currentLog) + def restart(self): + self.ogreRoot.shutdown() + self.init() - if not self.tryDetectRenderer(): - self.ogreRoot.showConfigDialog() - self.ogreRoot.initialise(False) + def __init__(self): + self.init() - def tryDetectRenderer(self): - for rs in self.ogreRoot.getAvailableRenderers(): - try : - rs.setConfigOption("Full Screen","No") - rs.setConfigOption("Video Mode","800 x 600 @ 32-bit colour") - self.ogreRoot.setRenderSystem(rs) - log().info("successfully autodeteced renderer : %s" % rs.getName()) - return True - except: - log().info("not able to auto-detect renderer! showing ogre config dialog instead") - return False - - def getRoot(self): - return self.ogreRoot - - def getConfigPath(self, filename): - """Return the absolute path to a valid config file.""" - import sys - import os - import os.path - - paths = [os.path.join(os.getcwd(), filename), - os.path.join(os.path.dirname(os.path.abspath(__file__)), filename)] + def init(self): + #Root creation + pluginsfile = 'plugins.cfg' + if sys.platform in ['linux', 'linux2']: + pluginsfile = 'plugins_linux.cfg' + elif sys.platform in ['win32']: + pluginsfile = 'plugins_windows.cfg' + + self.ogreRoot = ogre.Root(self.getConfigPath(pluginsfile), self.getConfigPath('ogre.cfg'), "Ogre.log") + #logMgr = ogre.LogManager() + #currentLog = ogre.LogManager.getSingletonPtr().createLog("ogre.log" ,True, False, False) + #myLog = MyLog() + #currentLog.addListener ( myLog ) + #ogre.LogManager.getSingletonPtr().setDefaultLog(currentLog) - for path in paths: - if os.path.exists(path): - print path - return path + if not self.tryDetectRenderer(): + self.ogreRoot.showConfigDialog() + self.ogreRoot.initialise(False) - sys.stderr.write("\n" - "** Warning: Unable to locate a suitable " + filename + " file.\n" - "** Warning: Please check your ogre installation and copy a\n" - "** Warning: working plugins.cfg file to the current directory.\n\n") - #raise ogre.Exception(0, "can't locate the '%s' file" % filename, "") - - def createRenderWindow(self, wxOgrewin, name, width, height, fullscreen, handle): - renderParameters = ogre.NameValuePairList() - renderParameters['externalWindowHandle'] = str(handle) - # use len to make the names unique! - renderWindow = self.ogreRoot.createRenderWindow(name + str(len(self.renderWindows)), width, height, fullscreen, renderParameters) - #renderWindow.active = True - self.renderWindows[wxOgrewin] = renderWindow - return renderWindow + def tryDetectRenderer(self): + for rs in self.ogreRoot.getAvailableRenderers(): + try : + rs.setConfigOption("Full Screen","No") + rs.setConfigOption("Video Mode","800 x 600 @ 32-bit colour") + self.ogreRoot.setRenderSystem(rs) + log().info("successfully autodeteced renderer : %s" % rs.getName()) + return True + except: + log().info("not able to auto-detect renderer! showing ogre config dialog instead") + return False - def removeRenderWindow(self, wxOgrewin): - print "removing render target" - self.ogreRoot.detachRenderTarget(self.renderWindows[wxOgrewin]) - del self.renderWindows[wxOgrewin] + def getRoot(self): + return self.ogreRoot - def RenderAll(self): - for ogrewin in self.renderWindows.keys(): - try: - ogrewin.OnFrameStarted() - except: - continue - - try: - self.ogreRoot.renderOneFrame() - except ogre.OgreException, e: - print '## EXCEPTION ##' - print str(e) - pass - - for ogrewin in self.renderWindows.keys(): - try: - ogrewin.OnFrameEnded() - except: - continue - - def createSceneManager(self, type): - return self.ogreRoot.createSceneManager(type, "SceneManager" + str(randomID())) + def getConfigPath(self, filename): + """Return the absolute path to a valid config file.""" + import sys + import os + import os.path - def destroySceneManager(self, sm): - return self.ogreRoot.destroySceneManager(sm) - \ No newline at end of file + paths = [os.path.join(os.getcwd(), filename), + os.path.join(os.path.dirname(os.path.abspath(__file__)), filename)] + + for path in paths: + if os.path.exists(path): + print path + return path + + sys.stderr.write("\n" + "** Warning: Unable to locate a suitable " + filename + " file.\n" + "** Warning: Please check your ogre installation and copy a\n" + "** Warning: working plugins.cfg file to the current directory.\n\n") + #raise ogre.Exception(0, "can't locate the '%s' file" % filename, "") + + def createRenderWindow(self, wxOgrewin, name, width, height, fullscreen, handle): + renderParameters = ogre.NameValuePairList() + renderParameters['externalWindowHandle'] = str(handle) + # use len to make the names unique! + renderWindow = self.ogreRoot.createRenderWindow(name + str(len(self.renderWindows)), width, height, fullscreen, renderParameters) + #renderWindow.active = True + self.renderWindows[wxOgrewin] = renderWindow + return renderWindow + + def removeRenderWindow(self, wxOgrewin): + print "removing render target" + self.ogreRoot.detachRenderTarget(self.renderWindows[wxOgrewin]) + del self.renderWindows[wxOgrewin] + + def RenderAll(self): + for ogrewin in self.renderWindows.keys(): + try: + ogrewin.OnFrameStarted() + except: + continue + + try: + self.ogreRoot.renderOneFrame() + except ogre.OgreException, e: + print '## EXCEPTION ##' + print str(e) + pass + + for ogrewin in self.renderWindows.keys(): + try: + ogrewin.OnFrameEnded() + except: + continue + + def createSceneManager(self, type): + return self.ogreRoot.createSceneManager(type, "SceneManager" + str(randomID())) + + def destroySceneManager(self, sm): + return self.ogreRoot.destroySceneManager(sm) + \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |