Fair bit of progress tonight. I've gone from a diffuse coloured cube spinning around on the screen to a randomly generated maze of textured cubes, with pixel fog enabled and a camera that allows for WASD and mouse-based freelook left and right and up and down.
Collision detection is sort of working along the X/Z plane, just by tradional 2D methods. It needs a lot of development since it is quite basic and you can't slide along walls if the angle of movement is slightly towards them, but never mind for now.
The floor is two big triangles, textured with wrap mode on.
I've also added a directional light and normals to the vertices. I'm just using the face normal for each vertex normal since everything is cubic. I don't pretend to understand the maths, but I lifted a function from the book to compute these face normals, and it seems to work.
Generally, for a 24 hour period since last posting, I call that steps in the right direction [smile].
On a side note, I've also finally been convinced of the joys of GetAsyncKeyState(Key) & 0x8000f over responding to WM_KEYDOWN and WM_KEYUP messages. Yay! One less dependancy between my main.cpp and my engine.