[Solved] Basic tutorial 6 - no render system has been sel...

Draconius

22-03-2009 07:25:20

Hey all,

I've been working my way through the basic python-ogre tutorials. I can get the other tutorials to run from the same folder as I am trying to run tutorial 6 from, however tutorial 6 finishes loading resources, tries to set up an empty scene then crashes. As far as I can see, I have the code exactly the same as on the python-ogre wiki. The folder contains plugins.cfg, ogre.cfg, terrain.cfg, resources.cfg, folders for plugins and media, the sample framework and the other tutorials. As previously stated this setup works for the other tutorials.

Thanks for any help in advance!

Here is the code:

import ogre.renderer.OGRE as ogre
import ogre.io.OIS as OIS
import ogre.gui.CEGUI as CEGUI

class ExitListener(ogre.FrameListener):

def __init__(self, keyboard):
ogre.FrameListener.__init__(self)
self.keyboard = keyboard

def frameStarted(self, evt):
self.keyboard.capture()
return not self.keyboard.isKeyDown(OIS.KC_ESCAPE)

class Application(object):

def go(self):
self.createRoot()
self.defineResources()
self.setupRenderSystem
self.createRenderWindow()
self.initialiseResourceGroups()
self.setupScene()
self.setupInputSystem()
self.setupCEGUI()
self.createFrameListener()
self.startRenderLoop()
# self.cleanUp()

def createRoot(self):
self.root = ogre.Root()

def defineResources(self):
cf = ogre.ConfigFile()
cf.load("resources.cfg")
seci = cf.getSectionIterator()

while seci.hasMoreElements():
secName = seci.peekNextKey()
settings = seci.getNext()
for item in settings:
typeName = item.key
archName = item.value
ogre.ResourceGroupManager.getSingleton().addResourceLocation(archName, typeName, secName)


def setupRenderSystem(self):
if not self.root.restoreConfig() and not self.root.showConfigDialog():
raise Exception("User canceled the config dialog! -> Application.setupRenderSystem()")

def createRenderWindow(self):
self.root.initialise(True, "Tutorial Render Window")

def initialiseResourceGroups(self):
ogre.TextureManager.getSingleton().setDefaultNumMipmaps(5)
ogre.ResourceGroupManager.getSingleton().initialiseAllResourceGroups()

def setupScene(self):
sceneManager = self.root.createSceneManager(ogre.ST_GENERIC, "Default SceneManager")
camera = sceneManager.createCamera("Camera")
viewPort = self.root.getAutoCreatedWindow().addViewport(camera)

def setupInputSystem(self):
windowHandle = 0
renderWindow = self.root.getAutoCreatedWindow()
windowHandle = renderWindow.getCustomAttributeInt("WINDOW")
paramList = [("WINDOW", str(windowHandle))]
self.inputManager = OIS.createPythonInputSystem(paramList)
try:
self.keyboard = self.inputManager.createInputObjectKeyboard(OIS.OISkeyboard, False)
except Exception, e:
raise e

def setupCEGUI(self):
sceneManager = self.root.getSceneManager("Default SceneManager")
renderWindow = self.root.getAutoCreatedWindow()

# CEGUI SETUP
self.renderer = CEGUI.OgreCEGUIRenderer(renderWindow, ogre.RENDER_QUEUE_OVERLAY, False, 3000, sceneManager)
self.system = CEGUI.System = CEGUI.System(self.renderer)

def createFrameListener(self):
self.exitListener = ExitListener(self.keyboard)
self.root.addFrameListener(self.exitListener)

def startRenderLoop(self):
self.root.startRendering()

def cleanUp(self):
# Cleanup OIS
self.inputManager.destroyInputObjectKeyboard(self.keyboard)
ois.InputManager.destroyInputSystem(self.inputManager)
self.inputManager = None

# Cleanup CEGUI
del self.renderer
del self.system

# Cleanup ogre
del self.listener
del self.root

if __name__ == '__main__':
try:
ta = Application()
ta.go()
except ogre.OgreException, e:
print e


Here is the ogre.log:

18:18:13: Creating resource group General
18:18:13: Creating resource group Internal
18:18:13: Creating resource group Autodetect
18:18:13: SceneManagerFactory for type 'DefaultSceneManager' registered.
18:18:13: Registering ResourceManager for type Material
18:18:13: Registering ResourceManager for type Mesh
18:18:13: Registering ResourceManager for type Skeleton
18:18:13: MovableObjectFactory for type 'ParticleSystem' registered.
18:18:13: OverlayElementFactory for type Panel registered.
18:18:13: OverlayElementFactory for type BorderPanel registered.
18:18:13: OverlayElementFactory for type TextArea registered.
18:18:13: Registering ResourceManager for type Font
18:18:13: ArchiveFactory for archive type FileSystem registered.
18:18:13: ArchiveFactory for archive type Zip registered.
18:18:13: FreeImage version: 3.10.0
18:18:13: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
18:18:13: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2
18:18:13: DDS codec registering
18:18:13: Registering ResourceManager for type HighLevelGpuProgram
18:18:13: Registering ResourceManager for type Compositor
18:18:13: MovableObjectFactory for type 'Entity' registered.
18:18:13: MovableObjectFactory for type 'Light' registered.
18:18:13: MovableObjectFactory for type 'BillboardSet' registered.
18:18:13: MovableObjectFactory for type 'ManualObject' registered.
18:18:13: MovableObjectFactory for type 'BillboardChain' registered.
18:18:13: MovableObjectFactory for type 'RibbonTrail' registered.
18:18:13: Loading library plugins/RenderSystem_GL.dll
18:18:13: Installing plugin: GL RenderSystem
18:18:13: OpenGL Rendering Subsystem created.
18:18:13: Plugin successfully installed
18:18:13: Loading library plugins/RenderSystem_Direct3D9.dll
18:18:13: Installing plugin: D3D9 RenderSystem
18:18:13: D3D9 : Direct3D9 Rendering Subsystem created.
18:18:13: D3D9: Driver Detection Starts
18:18:13: D3D9: Driver Detection Ends
18:18:13: Plugin successfully installed
18:18:13: Loading library plugins/Plugin_ParticleFX.dll
18:18:13: Installing plugin: ParticleFX
18:18:13: Particle Emitter Type 'Point' registered
18:18:13: Particle Emitter Type 'Box' registered
18:18:13: Particle Emitter Type 'Ellipsoid' registered
18:18:13: Particle Emitter Type 'Cylinder' registered
18:18:13: Particle Emitter Type 'Ring' registered
18:18:13: Particle Emitter Type 'HollowEllipsoid' registered
18:18:13: Particle Affector Type 'LinearForce' registered
18:18:13: Particle Affector Type 'ColourFader' registered
18:18:13: Particle Affector Type 'ColourFader2' registered
18:18:13: Particle Affector Type 'ColourImage' registered
18:18:13: Particle Affector Type 'ColourInterpolator' registered
18:18:13: Particle Affector Type 'Scaler' registered
18:18:13: Particle Affector Type 'Rotator' registered
18:18:13: Particle Affector Type 'DirectionRandomiser' registered
18:18:13: Particle Affector Type 'DeflectorPlane' registered
18:18:13: Plugin successfully installed
18:18:13: Loading library plugins/Plugin_BSPSceneManager.dll
18:18:13: Installing plugin: BSP Scene Manager
18:18:13: Plugin successfully installed
18:18:13: Loading library plugins/Plugin_OctreeSceneManager.dll
18:18:13: Installing plugin: Octree & Terrain Scene Manager
18:18:13: Plugin successfully installed
18:18:13: Loading library plugins/Plugin_CgProgramManager.dll
18:18:13: Installing plugin: Cg Program Manager
18:18:13: Plugin successfully installed
18:18:13: *-*-* OGRE Initialising
18:18:13: *-*-* Version 1.6.1 (Shoggoth)
18:18:13: Creating resource group Bootstrap
18:18:13: Added resource location 'media/packs/OgreCore.zip' of type 'Zip' to resource group 'Bootstrap'
18:18:13: Added resource location 'media' of type 'FileSystem' to resource group 'General'
18:18:13: Added resource location 'media/fonts' of type 'FileSystem' to resource group 'General'
18:18:13: Added resource location 'media/sounds' of type 'FileSystem' to resource group 'General'
18:18:13: Added resource location 'media/Audio' of type 'FileSystem' to resource group 'General'
18:18:13: Added resource location 'media/materials/programs' of type 'FileSystem' to resource group 'General'
18:18:13: Added resource location 'media/materials/scripts' of type 'FileSystem' to resource group 'General'
18:18:13: Added resource location 'media/materials/textures' of type 'FileSystem' to resource group 'General'
18:18:13: Added resource location 'media/models' of type 'FileSystem' to resource group 'General'
18:18:13: Added resource location 'media/overlays' of type 'FileSystem' to resource group 'General'
18:18:13: Added resource location 'media/particle' of type 'FileSystem' to resource group 'General'
18:18:13: Added resource location 'media/gui' of type 'FileSystem' to resource group 'General'
18:18:13: Added resource location 'media/packs/cubemap.zip' of type 'Zip' to resource group 'General'
18:18:13: Added resource location 'media/packs/cubemapsJS.zip' of type 'Zip' to resource group 'General'
18:18:13: Added resource location 'media/packs/dragon.zip' of type 'Zip' to resource group 'General'
18:18:13: Added resource location 'media/packs/fresneldemo.zip' of type 'Zip' to resource group 'General'
18:18:13: Added resource location 'media/packs/ogretestmap.zip' of type 'Zip' to resource group 'General'
18:18:13: Added resource location 'media/packs/skybox.zip' of type 'Zip' to resource group 'General'
18:18:13: OGRE EXCEPTION(1:InvalidStateException): Cannot initialise - no render system has been selected. in Root::initialise at ..\src\OgreRoot.cpp (line 510)
18:18:14: *-*-* OGRE Shutdown
18:18:14: Unregistering ResourceManager for type Compositor
18:18:14: Unregistering ResourceManager for type Font
18:18:14: Unregistering ResourceManager for type Skeleton
18:18:14: Unregistering ResourceManager for type Mesh
18:18:14: Unregistering ResourceManager for type HighLevelGpuProgram
18:18:14: Uninstalling plugin: Cg Program Manager
18:18:14: Plugin successfully uninstalled
18:18:14: Unloading library plugins/Plugin_CgProgramManager.dll
18:18:14: Uninstalling plugin: Octree & Terrain Scene Manager
18:18:14: Plugin successfully uninstalled
18:18:14: Unloading library plugins/Plugin_OctreeSceneManager.dll
18:18:14: Uninstalling plugin: BSP Scene Manager
18:18:14: Plugin successfully uninstalled
18:18:14: Unloading library plugins/Plugin_BSPSceneManager.dll
18:18:14: Uninstalling plugin: ParticleFX
18:18:14: Plugin successfully uninstalled
18:18:14: Unloading library plugins/Plugin_ParticleFX.dll
18:18:14: Uninstalling plugin: D3D9 RenderSystem
18:18:14: D3D9 : Shutting down cleanly.
18:18:14: D3D9 : Direct3D9 Rendering Subsystem destroyed.
18:18:14: Plugin successfully uninstalled
18:18:14: Unloading library plugins/RenderSystem_Direct3D9.dll
18:18:14: Uninstalling plugin: GL RenderSystem
18:18:14: *** Stopping Win32GL Subsystem ***
18:18:14: Plugin successfully uninstalled
18:18:14: Unloading library plugins/RenderSystem_GL.dll
18:18:14: Unregistering ResourceManager for type Material

dermont

22-03-2009 08:25:58

Looks like it may be a typo in your code:

#self.setupRenderSystem
self.setupRenderSystem()

Draconius

23-03-2009 05:58:13

:? Thanks for the help, i really should have got that...