Page 1 of 1
Horde3D
Posted: Thu May 10, 2012 7:36 am
by idle
Just noticed Horde3D now supports windows OSX and Linux
From a usability point of view it's good news it's all extern c and modular
http://www.horde3d.org/
Will post examples if I get a chance to write an import over the weekend
here's the zip of the knight example Linux binaries only
http://www.idlearts.com/knight.zip
windows and mac users will need to download and build horde3D
http://www.horde3d.org/download.html

Re: Horde3D
Posted: Thu May 10, 2012 8:22 am
by eesau
I had a wrapper made for the current beta 5 version of Horde3D (
here) but it's not currently online. I can re-upload it if you want.
Horde3D is a great framework but needs a bit of fiddling with pipelines etc. to get results. Also it needs an OpenGL rendering context but I suppose you could use PB with the OpenGL subsystem and a screen for that (never tried that though, I used to create it on my own or with SFML).
Re: Horde3D
Posted: Thu May 10, 2012 8:33 am
by jesperbrannmark
Ok. Yes this is very interesting. Please put that online (or maybe it could go on purearea website as well?)
Thanks!

Re: Horde3D
Posted: Thu May 10, 2012 11:00 am
by eesau
Here's the link. I haven't touched it in months but it should work just fine. Let me know if there are any bugs etc.
Re: Horde3D
Posted: Thu May 10, 2012 8:51 pm
by idle
Thanks eesau, that will save some time.
I guess you could use PB's screen libs with opengl subsystem
there's also GLFW which is what the examples are based on
http://www.purebasic.fr/english/viewtop ... 16&t=49395
Re: Horde3D
Posted: Sun May 13, 2012 4:41 am
by idle
did a more or less 1:1 port of the knight example
windows and mac users will need to download the sdk and build it.
I generated prototypes rather than using the imports to avoid linker errors with the shared objects
but will add the unresolved lib imports to eesau's includes at a later stage
here's the zip
http://www.idlearts.com/knight.zip
Hord3D SDK
http://www.horde3d.org/download.html
Re: Horde3D
Posted: Sun May 13, 2012 9:15 am
by DarkDragon
eesau wrote:Also it needs an OpenGL rendering context but I suppose you could use PB with the OpenGL subsystem and a screen for that
No, because of depth buffer settings. PB needs no depth buffer for the sprites. Only if you use InitEngine3D before, but then it will also load OGRE.
Re: Horde3D
Posted: Sun May 13, 2012 2:02 pm
by Polo
Works nice on Mac!
Re: Horde3D
Posted: Sun May 13, 2012 5:02 pm
by eesau
DarkDragon wrote:eesau wrote:Also it needs an OpenGL rendering context but I suppose you could use PB with the OpenGL subsystem and a screen for that
No, because of depth buffer settings. PB needs no depth buffer for the sprites. Only if you use InitEngine3D before, but then it will also load OGRE.
Right, didn't remember that! No use then using PB's screens then, as including Ogre kind of defeats the purpose.
Re: Horde3D
Posted: Sun May 13, 2012 6:12 pm
by idle
DarkDragon wrote:eesau wrote:Also it needs an OpenGL rendering context but I suppose you could use PB with the OpenGL subsystem and a screen for that
No, because of depth buffer settings. PB needs no depth buffer for the sprites. Only if you use InitEngine3D before, but then it will also load OGRE.
Horde just needs an OpenGL context, so PB's screen functions should work fine, no ogre required
Code: Select all
InitSprite()
InitKeyboard()
Global myApp.iApplication = New_Application(gHordePath)
Debug PeekS(h3dGetVersionString())
OpenWindow(0,0,0,1024,768,myApp\getTitle(),#PB_Window_ScreenCentered | #PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0),0,0,1024,768,0,0,0)
If myApp\init()
myApp\resize(1024,768)
Repeat
Repeat
Ev = WindowEvent()
Evt = EventType
If ev = #PB_Event3D_CloseWindow
myapp\release()
myapp\Free()
End
EndIf
Until ev = 0
ClearScreen(0)
Myapp\mainLoop(ElapsedMilliseconds())
Myapp\ExamineMouse(WindowMouseX(0), WindowMouseY(0))
Myapp\keyStateHandler()
FlipBuffers()
ForEver
EndIf
Re: Horde3D
Posted: Sun May 13, 2012 6:18 pm
by DarkDragon
idle wrote:DarkDragon wrote:eesau wrote:Also it needs an OpenGL rendering context but I suppose you could use PB with the OpenGL subsystem and a screen for that
No, because of depth buffer settings. PB needs no depth buffer for the sprites. Only if you use InitEngine3D before, but then it will also load OGRE.
Horde just needs an OpenGL context, so PB's screen functions should work fine, no ogre required
Yes, but Horde won't display anything correctly if no depth buffer is initialized. And you're only able to initialize it manually or with InitEngine3D. The only way it works is if Horde3D uses Offscreen Rendering for everything and copies the manually defined backbuffer to the front buffer. PureBasic won't initialize the depth buffer if you don't use InitEngine3D/Ogre.
Re: Horde3D
Posted: Sun May 13, 2012 6:33 pm
by idle
It works fine on Linux but if there's a problem on windows using the sprite lib with the opengl subsystem
it's easy enough to GLFW statically linked or just call the utility functions to create the gl context.