Ok, we spent all day fixing things. Felt a bit awkward starting a new thread. But this build will hopefully fix all the remaining problems.
Changes below:
Lina worked realy hard today and Flow is now set up to make its own window using a Fg (FlowGraphics) window rather than using a Bmax window. This makes it faster and easier to use with performance benefits. Now the rendering contexts won't fight and things should operate much more smoothly.
Fullscreen in GL now works properly.
Widescreen should work without stretching (needs testing on more machines)
The HLSL offset normal map shader was converted to CG and now works in both D3D and GL on PS2.0 Cards.
http://www.flow3d.org/walkiestest.zip

Here's the full source. I didn't post the ogre setup code for the original demo before,mostly because it was quite large and messy and detracted from the simplicity of the actual app code.
Here's what the old ogre setup code looked like:
Fingers crossed this will be the last compatibility test till we release a proper demo :).
NOTE. If you have problems, it's worth consulting the log.txt file in the root/conf folder.
So far it runs perfectly on the following cards.
NVIDIA GeForce 9600GT.....Shaders ok GL & D3D
Nvidia 8800 GTS...........Shaders ok GL & D3D
Nvidia 8800 GT............Shaders ok GL & D3D
ATI Radeon X1950Pro ......Shaders ok GL & D3D
Nvidia GForce 8800........Shaders ok GL & D3D
Nvidia 8600M GT....Wine 0.9.56 on Ubuntu 64 bit.
Nvidia 8600 GTS...........Shaders ok GL & D3D
Nvidia 7800 GS AGP........Shaders ok GL & D3D
ATI Radeon X1650XT........Shaders ok GL & D3D
Nvidia Go 7600 SE.........Shaders ok GL & D3D
Nvidia 7600 AGP...........Shaders ok GL & D3D
Nvidia 7600 to go.........Shaders ok GL & D3D
Nvidia 6600 GT............Shaders ok GL & D3D
Nvidia 6600 to Go.........Shaders ok GL & D3D
Geforce 6600 ............Shadows ok GL & D3D (no shaders)
ATI X600..................Shaders ok GL & D3D
ATI x600 Mobility.........Shaders ok GL & D3D
Intel GMA 900.............Shaders ok GL & D3D
Nvidia 6100 integrated....Shaders ok GL & D3D
ATI Radeon X300 Mobility..Shaders ok GL & D3D
Nvidia Geforce 5700.......Shaders ok GL & D3D
Nvidia 5200 FX............Shaders ok GL & D3D
Nvidia GeForce4 MX 440....Shaders? ok GL & D3D
Not so well on these:
ATI Radeon X1950 Pro......D3D ok, GL no window or anything
Intel GMA X3100.... graphics DX good GL full screen shadow
ATI Radeon X300... DX GL good, no Bump in GL
Intel GMA900... 64mb shared GL good inc shaders No render window in D3D
Intel '915GM/GMS,910GML'
If your having problems feel free to email your Log.txt file to adriantmaxATyahoo.com for troubleshooting.
Changes below:
Lina worked realy hard today and Flow is now set up to make its own window using a Fg (FlowGraphics) window rather than using a Bmax window. This makes it faster and easier to use with performance benefits. Now the rendering contexts won't fight and things should operate much more smoothly.
Fullscreen in GL now works properly.
Widescreen should work without stretching (needs testing on more machines)
The HLSL offset normal map shader was converted to CG and now works in both D3D and GL on PS2.0 Cards.
http://www.flow3d.org/walkiestest.zip

Here's the full source. I didn't post the ogre setup code for the original demo before,mostly because it was quite large and messy and detracted from the simplicity of the actual app code.
'Header SuperStrict Include "headers/flow_header.bmx" '/Header 'Initializing Ogre AppTitle = "Flow [Escape to exit - C to toggle Shadows, R for offset normal map GL & D3D ]" fG.init(True) HideMouse() 'Setting the Scene 'Main scene light positioned to the right- Global Light:TLight = fG.createLight("mainLight", Tlight.LT_POINT) Light.Setposition(- 40, 600, - 20) Light.setDiffuseColour(1, 1, 1) Light.setSpecularColour(.5, .5, .5) 'Turn on shadows- fG._scene.setShadowTechnique(SHADOWTYPE_STENCIL_MODULATIVE) 'Load the Robot OSM- fG.LoadOSM("walkie.OSM") 'Grab the robot legs entity and node- Global robot:TEntity = fG._scene.getEntity("Walkie") Global robotnode:Tscenenode = robot.getParentSceneNode() 'Grab the robot head assembly ( head, weapons, mounts ) node- Global robotHeadAssembly:tscenenode = fG._scene.getentity("Box03").getParentSceneNode() 'Get the robot's spine for attaching the head assembly to- Global spine:TBone = robot.getSkeleton().getBoneWithName("MechPelvis") 'Get the robot leg's animations, enable standing by default- Global animWalk:TAnimationState = Robot.getAnimationState("Walk") Global animStrafe:TAnimationState = Robot.getAnimationState("Strafe") Global animStand:TAnimationState = Robot.getAnimationState("Idle") animStand.setEnabled(True) 'Main Camera Setup Global cameraNode:TSceneNode = RobotNode.createChildSceneNode("cameraNode", 0, 0, 0) cameraNode.setInheritOrientation(False) fG._camera.setPosition(0, 15, - 30) cameraNode.attachObject(fG._camera) 'Set up the floor Global Floor:TEntity = fG._scene.createEntity("floor", "Plane01.mesh") Global floornode:TSceneNode = fG._rootnode.createChildSceneNode("floornode", 0, 0, 0) floornode.attachObject(Floor) Floor.setMaterialName("Rocks") '/Setting the Scene 'Variables used for mouselook- Global yaw:Float = 0 Global mousepos_x:Int = fg._ogre.width / 2 Global mousepos_y:Int = fg._ogre.height / 2 Global currMouse_x:Int = fg._ogre.width / 2 Global currMouse_y:Int = fg._ogre.height / 2 Global mouserel_x:Int Global mouserel_y:Int Global rotyaw:Float = 0 Global rotpitch:Float = 0 cameraNode.rotate(TVector3.Create(0, 1, 0), 180) Global shadows:Int = True Global showRocks:Byte = True 'Ad these are for you! Global animSpeed:Float =.03 Global strafeSpeed:Float =.5 Global walkSpeed:Float = 1 Repeat fG._camera.lookAt(robotnode.getPosition().x[0] , robotnode.getPosition().y[0] , robotnode.getPosition().z[0] ) 'Increase the animation timer each frame- 'animState1.addTime(.005) 'Capture relative mouse coords- currMouse_x = MouseX() currMouse_y = MouseY() mouserel_x = currMouse_x - mousepos_x mouserel_y = currMouse_y - mousepos_y MoveMouse(mousepos_x, mousepos_y) 'Transform the camera based on these coords and keyboard activity- cameraNode.yaw(rotyaw + (mouserel_x * 3 *.025) , TS_LOCAL) 'cameraNode.pitch(rotpitch + (mouserel_y * 3 * -.025) , TS_LOCAL) 'Instead of actual movement, set up animations- 'Check input to determine the states of the robot- animStand.setEnabled(False) animStrafe.setEnabled(False) animWalk.setenabled(False) 'The following variables contain movement details: Local Strafe:Int = KeyDown(KEY_D) - KeyDown(KEY_A) Local Walk:Int = KeyDown(KEY_W) - KeyDown(KEY_S) 'Actually move the mesh: robotnode.translate(Strafe * strafeSpeed, 0, Walk * -walkSpeed, TS_LOCAL) 'Set the head assembly node's position to that of the spine bone. Get spine bone by transforming spine's local position 'From it's parent bone by the leg entity's world transform. robotHeadAssembly.setPositionWithVector3(robot._getParentNodeFullTransform().mulWithVector3(spine._getDerivedPosition())) 'Lets reset animation type to keep animations synced together. If KeyHit(KEY_D) Or KeyHit(KEY_A) Or .. KeyHit(KEY_W) Or KeyHit(KEY_S) Then animStrafe.setTimePosition(0) ;animWalk.setTimePosition(0) If (Strafe Or Walk) Then If Strafe Then animStrafe.setenabled(True) animStrafe.addTime(animSpeed * strafe) End If If Walk Then animWalk.setenabled(True) animWalk.addTime(animSpeed * walk) End If Else animWalk.setEnabled(False) animStrafe.setEnabled(False) animStand.setenabled(True) animStand.addTime(animSpeed *.1) EndIf 'If user hits "R" then toggle between offset materials and standard ( Direct3D Only! ) If KeyHit(KEY_R) If showRocks = True Then showRocks = False Floor.setMaterialName("OffsetMappingSample") Else showRocks = True Floor.setMaterialName("Rocks") EndIf EndIf 'If user hits "C" then toggle shadows If KeyHit(KEY_C) Then shadows = 1 - shadows;fG._viewport.setShadowsEnabled(shadows) 'Render one frame every 60 seconds- fG.renderWorld() Delay 1000 / 60 Until KeyHit(KEY_ESCAPE) Or AppTerminate()
Here's what the old ogre setup code looked like:
'Header SuperStrict Include "headers/flow_header.bmx" '/Header ' Initialize ogre- 'Initializing Ogre Global Ogre:Togre = Togre.CreateRoot("Conf/Plugins.cfg", "Conf/ogre.cfg", "Conf/log.txt") Ogre.ShowConfigDialog() TResourceGroupManager.LoadResourceFile("Conf/Resources.cfg") Ogre.initialise(False) Graphics Ogre.width, Ogre.height 'TRenderWindow Setup Global opts:TNameValuePairList = New TNameValuePairList.Create() opts.insert("externalWindowHandle", String(GetActiveWindow())) Global mainRenderWindow:TRenderWindow = ogre.createRenderWindow("mainWindow", ogre.width, ogre.height, ogre.FullScreen, opts) 'Initialize resources - Do this after the render window is created in case materials require shaders, etc. TResourceGroupManager.InitialiseAllResourceGroups() 'Scene Manager Global mainSceneManager:TSceneManager = ogre.createSceneManager(ST_Generic, "MainScene") mainSceneManager.setShadowTechnique(SHADOWTYPE_STENCIL_MODULATIVE) mainSceneManager.setambientlight(TColourValue.Create(.2, .2, .2, 1)) '/Initializing Ogre 'Setting the Scene 'Get the root scene node for attaching children- Global RootNode:TSceneNode = mainSceneManager.getRootSceneNode()
Fingers crossed this will be the last compatibility test till we release a proper demo :).
NOTE. If you have problems, it's worth consulting the log.txt file in the root/conf folder.
So far it runs perfectly on the following cards.
NVIDIA GeForce 9600GT.....Shaders ok GL & D3D
Nvidia 8800 GTS...........Shaders ok GL & D3D
Nvidia 8800 GT............Shaders ok GL & D3D
ATI Radeon X1950Pro ......Shaders ok GL & D3D
Nvidia GForce 8800........Shaders ok GL & D3D
Nvidia 8600M GT....Wine 0.9.56 on Ubuntu 64 bit.
Nvidia 8600 GTS...........Shaders ok GL & D3D
Nvidia 7800 GS AGP........Shaders ok GL & D3D
ATI Radeon X1650XT........Shaders ok GL & D3D
Nvidia Go 7600 SE.........Shaders ok GL & D3D
Nvidia 7600 AGP...........Shaders ok GL & D3D
Nvidia 7600 to go.........Shaders ok GL & D3D
Nvidia 6600 GT............Shaders ok GL & D3D
Nvidia 6600 to Go.........Shaders ok GL & D3D
Geforce 6600 ............Shadows ok GL & D3D (no shaders)
ATI X600..................Shaders ok GL & D3D
ATI x600 Mobility.........Shaders ok GL & D3D
Intel GMA 900.............Shaders ok GL & D3D
Nvidia 6100 integrated....Shaders ok GL & D3D
ATI Radeon X300 Mobility..Shaders ok GL & D3D
Nvidia Geforce 5700.......Shaders ok GL & D3D
Nvidia 5200 FX............Shaders ok GL & D3D
Nvidia GeForce4 MX 440....Shaders? ok GL & D3D
Not so well on these:
ATI Radeon X1950 Pro......D3D ok, GL no window or anything
Intel GMA X3100.... graphics DX good GL full screen shadow
ATI Radeon X300... DX GL good, no Bump in GL
Intel GMA900... 64mb shared GL good inc shaders No render window in D3D
Intel '915GM/GMS,910GML'
If your having problems feel free to email your Log.txt file to adriantmaxATyahoo.com for troubleshooting.

