Jedimace1
16-11-2008 16:59:41
Hello. I ran the tutorial 6 with some rendering code, and couldn't see anything on the screen. I tried moving the object around the world and I tried checking the log. The log says it loaded fine, yet it was not displayed. Here's the log: http://rafb.net/p/h8Prg141.html, and here's my code:
Thanks for any help, I want to get this working so I can do some more cool stuff. Please ignore the Hikari code, I haven't finished it yet.
-Jedimace1
import ogre.renderer.OGRE as ogre
import ogre.io.OIS as OIS
import ogre.gui.CEGUI as CEGUI
import ogre.gui.hikari as Hikari
import SampleFramework as sf
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 AppFrameListener(ogre.FrameListener):
def __init__(self, keyboard, mouse, joystick, hikariMgr):
ogre.FrameListener.__init__(self)
self.keyboard = keyboard
self.mouse = mouse
self.joystick = joystick
self.hikariMgr = hikariMgr
def frameStarted(self, evt):
self.keyboard.capture()
self.joystick.capture()
self.mouse.capture()
self.hikariMgr.update()
return True;
class Application(object):
def go(self, title):
self.createRoot()
self.defineResources()
self.setupRenderSystem()
self.createRenderWindow(title)
self.initializeResourceGroups()
self.setupPreScene()
self.setupScene()
self.setupInputSystem()
self.setupGUI()
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, title):
self.root.initialise(True, title)
def initializeResourceGroups(self):
ogre.TextureManager.getSingleton().setDefaultNumMipmaps(5)
ogre.ResourceGroupManager.getSingleton().initialiseAllResourceGroups()
def setupPreScene(self):
self.hikariMgr = Hikari.HikariManager(".\\")
self.sceneMgr = self.root.createSceneManager(ogre.ST_GENERIC, "Default SceneManager")
self.camera = self.sceneMgr.createCamera("Camera")
self.viewPort = self.root.getAutoCreatedWindow().addViewport(self.camera)
def setupScene(self):
sceneMgr = self.sceneMgr
sceneMgr.ambientLight = (1.0, 1.0, 1.0)
ent1 = sceneMgr.createEntity ('Robot', 'ninja.mesh')
node1 = sceneMgr.getRootSceneNode().createChildSceneNode ('RobotNode')
node1.attachObject (ent1)
ent2 = sceneMgr.createEntity ('Robot2', 'ninja.mesh')
node2 = node1.createChildSceneNode ('RobotNode2', (50, 0, 0))
node2.attachObject (ent2)
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)
self.mouse = self.inputManager.createInputObjectMouse(OIS.OISMouse, False)
self.joystick = self.inputManager.createInputObjectJoyStick(OIS.OISJoyStick, False)
except Exception, e:
raise e
def setupGUI(self):
self.renderer = CEGUI.OgreCEGUIRenderer(self.root.getAutoCreatedWindow(), ogre.RENDER_QUEUE_OVERLAY, False, 3000, self.root.getSceneManager("Default SceneManager"))
self.system = CEGUI.System(self.renderer)
def createFrameListener(self):
self.exitListener = ExitListener(self.keyboard)
self.root.addFrameListener(self.exitListener)
self.appFrameListener = AppFrameListener(self.keyboard, self.mouse, self.joystick, self.hikariMgr)
self.root.addFrameListener(self.appFrameListener)
self.debugListener = sf.FrameListener(self.root.getAutoCreatedWindow(), self.camera, True, True)
self.debugListener.showDebugOverlay(True)
self.root.addFrameListener(self.debugListener)
def startRenderLoop(self):
self.root.startRendering()
def cleanUp(self):
self.inputManager.destroyInputObjectKeyboard(self.keyboard)
self.inputManager.destroyInputObjectMouse(self.mouse)
self.inputManager.destroyInputObjectJoyStick(self.joystick)
OIS.InputManager.destroyInputSystem(self.inputManager)
self.inputManager = None
del self.renderer
del self.system
del self.viewPort
del slef.camera
del self.sceneMgr
del self.hikariMgr
del self.appFrameListener
del self.exitListener
del self.root
if __name__ == '__main__':
try:
import psyco
psyco.full()
except ImportError:
pass
try:
ta = Application()
ta.go("Test Window")
except ogre.OgreException, e:
print e
Thanks for any help, I want to get this working so I can do some more cool stuff. Please ignore the Hikari code, I haven't finished it yet.
-Jedimace1