download Demo_RendererCreate.py
Language: Python
LOC: 73
Project Info
Ogre3d Python bindings (Python-Ogre)(python-ogre)
Server: Spider_20090529_inc
Type: filesystem
...n‑Ogre‑0.9‑PY25\demos\ogre\
   Demo_Basic.py
   demo_basic1.py
   Demo_Bezier.py
   Demo_Blank.py
   Demo_BSP.py
   Demo_BspCollision.py
   Demo_CameraTracking.py
   Demo_EnvMap.py
   Demo_Facial.py
   Demo_Grass.py
   Demo_Lighting.py
   Demo_NodeListener.py
   Demo_ParticleFX.py
   Demo_RendererCreate.py
   Demo_RenderToTexture.py
   Demo_Shadows_Org.py
   Demo_SkeletalAnimation.py
   Demo_SkeletonAnimation.py
   Demo_SkyBox.py
   Demo_SkyDome.py
   Demo_SkyPlane.py
   demo_smoke.py
   Demo_Spinner.py
   Demo_Terrain.py
   Demo_TextureFX.py
   Demo_Transparency.py
   Demo_WX.py
   dotscene.py
   OgreWindowWx.py
   QuaternionMulti.py
   SampleFramework.py
   SampleLoadingBar.py
   Spinner.py
   Test_ConfigFile.py
   Test_Corners.py
   Test_General.py
   Test_Iterator.py
   Test_Log.py
   Test_TextureGetByName.py
   water.py
   WaterMesh.py

#
# Python_Ogre Demo
#
# shows how to create a window with a title etc
#

import Ogre as ogre
import SampleFramework as sf
from sys import stdout

class ApplicationFramework(object):
    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()

    def __del__(self):
        "Clear variables, this should not actually be needed."
        del self.camera
        del self.sceneManager
        del self.frameListener
        if self.world:
            del self.world
        del self.renderWindow
        del self.root
        
    def render(self):
        return self.root.renderOneFrame()
       
    def _createFrameListener(self):
        self.frameListener = ListenerFramework(self.renderWindow, self.camera, self)
        self.frameListener.showDebugOverlay(True)
        self.root.addFrameListener(self.frameListener)

class ListenerFramework(sf.FrameListener):
    def __init__(self, renderWindow, camera, client):
        self.client = client
        sf.FrameListener.__init__(self, renderWindow, camera)

    def frameStarted(self, evt):
        return sf.FrameListener.frameStarted(self, evt)
   
app = ApplicationFramework()
while app.render():
    pass     


About Koders | Resources | Downloads | Support | Black Duck | Submit Project | Terms of Service | DMCA | Privacy Policy | Site Map| Contact Us