nonagon: DirectX 9 Engine for D

This is my current main project.  This actually started, in an entirely different form altogether, in the fall of 2002.  Since then, it has progressed through almost three rewrites and a translation from C++ to D, as well as going from nothing more than a basic test of DirectX functionality to almost a functional 3D engine.  The most recent update to nonagon is Release 4, which includes the following features:

Soon to come in Release 5 are:

This entire engine is written in D for use with D.  It is not yet open source, but that may change after Release 5.  nonagon is currently based on the June 2005 DirectX 9 SDK.

You can download the headers, libraries, and (rather extensive) documentation for nonagon here: nonagon base files (~680KB)

Chances are, you won't have the d3dx9_26.dll necessary to run nonagon or any nonagon samples.  d3dx9_26.dll is a part of DirectX, but for some reason, Microsoft has decided not to include the file in its DirectX redistribution package.  Instead, developers are forced to redistribute the file.  So you can download the installer here: d3dx9_26.dll installer (~1.4MB)

You can download a small demo of the new Programmable Pipeline here: nonagon shader demo (~470KB).  You must have a video card capable of Shader Model 2 (ATi Radeon 9500 and up; nVidia GeForce FX and up) in order to run the demo correctly.

If you've never heard of the D programming language, I really recommend you check it out.  Think of the best features of Java, C#, and C++ and put them together into one language, and you come pretty close to D.  You can find the D language spec, as well as download the compiler, here: Digital Mars

BlitzBasic Text Entry Userlib

W00t finally, real keyboard text entry, without any crappy user-made functions that don't work as well as the real thing! 

There is only one caveat - you must end your program with an End command, or else you will get an "Unknown Runtime Exception" error.

It also now supports B3D and B+ 1.34 and higher.  You just set the type with the BeginEntry command.  It also now supports special keys (up, down, left, right, ins, del, home, end, pgup, pgdn).  The old problems it had with forgetting to uninitialize and crashing on a program error are gone.  Lastly I fixed a problem where it was possible to initialize more than once, causing a crash.  You can download BBEntry here:

Download BBEntry