This is probably one of the nicest parts of the D3D API, and I've just had a total pleasure setting it up and getting the basics working. Surface subdivision is now totally gone from the engine, and once I complete this (porting my old GL code for updating the texcoords is all I need now) I'll have totally cool non-breaking-up water surfaces.
Gotchas included setting up the textures correctly, and having to cover them in my device reset code (as they need to go into the default pool); I also need to test automatic mipmap generation on the Intel 910 as that seemed a little ropey back when I was using it for regular textures.
Here's the latest batch:
- Moved Multiplayer menu to framework.
- Commenced moving Setup menu to framework.
- Wrote a *real* textbox for "Hostname" and "Your Name".
- Removed display of Help page 0 ("Ordering") from the registered version.
- Fixed bug where the save menu would crash if there were no save games but was otherwise valid.
- Removed IPX Code.
- Restored r_wateralpha functionality (mimics stock GLQuake, no fancy changes).
- Cvar-ized light animation interpolation (r_lerplightstyle, default 1).
- Restored gl_flashblend 1 mode and made gl_flashbend an archive cvar (retained 0 as new default).
- Added r_lightupdatefrequency cvar to control how many times per second lightmaps update (default 0 = always) (not really that big a deal, but I felt it right to have it).
- Added CDAudio_Stop to S_StopAllSounds.
- Added DirectShow code for media playback for when no CD is present.
- Added render to texture code for water warp updates.
- Removed surface subdivision from water surfaces.