def __init__(self):
        self.client = None  
        self.root = ogre.Root( sf.getPluginPath() )
        config = ogre.ConfigFile()
        config.load('../resources.cfg' ) 
        
        ## this is still ugly as we need to create a real python iterator...
        
        
        section_iter = config.getSectionIterator()
        while section_iter.hasMoreElements():
            section_name = section_iter.peekNextKey()
            settings = section_iter.getNext()
            for item in settings:
                ogre.ResourceGroupManager.getSingleton().addResourceLocation(item.value, item.key, section_name)

        
                
        renList = self.root.getAvailableRenderers()
        miscParams = ogre.NameValuePairList()
        bOpenGL = True
        
        for r in renList:
            print "Renederer",r.getName(), r, type(r)
            if r.getName().startswith( "OpenGL" ) and bOpenGL:
                self.root.setRenderSystem ( r )
                miscParams["FSAA"] = "1"
                #miscParams["Full Screen"] = "Yes"
                miscParams["Full Screen"] = "No"
                
                miscParams["Video Mode"]= "1024 X 768 @ 32-bit colour"
                miscParams["title"]="Python-Ogre is COOL - Check the source to see how to set the title!!"
                stdout.write("Using OpenGL renderer")
            else:
               if r.getName().startswith('Direct') and not bOpenGL:
                    self.root.setRenderSystem ( r )
                    stdout.write("Using DirectX renderer")
                    miscParams["VSYNC"] = "YES"
                    miscParams["Anti aliasing"] = "Level4"
           
        self.root.initialise(False)
        
        self.renderWindow = self.root.createRenderWindow( "Python-Ogre Window", 800, 600, False, miscParams )
        self.sceneManager = self.root.createSceneManager(ogre.ST_GENERIC,"Test")
        
        self.camera = self.sceneManager.createCamera( "RootCam" )
        self.camera.nearClipDistance = 5
        self.camera.setPosition (180, 300, 335)
        self.camera.lookAt(0,0,0)
       
        ogre.TextureManager.getSingleton().defaultNumMipmaps = 5
        ogre.ResourceGroupManager.getSingleton().initialiseAllResourceGroups()
        self.viewport = self.renderWindow.addViewport( self.camera )
        self.viewport.setBackgroundColour (ogre.ColourValue(0, 0, 0))
        # create head entity
        entity = self.sceneManager.createEntity('head', 'ogrehead.mesh')
        self.sceneManager.getRootSceneNode().createChildSceneNode().attachObject(entity)
        
        self.camera.setPosition (20, 0, 100)
        self.camera.lookAt(0, 0, 0)     
        self._createFrameListener()