17. December 2008 06:44
I started on a project to move WinROTT to Direct 3D from DirectDraw. I soon realized I had very little idea how WinROTT was drawing it's images. (WinROTT uses DirectDraw, modexlib and rt_vid to handle update of the video buffers and image rendering.) I managed a simple upgrade to DirectDraw 7 interfaces, but I'll have to learn how WinROTT is assembling its video images. I think WinROTT is using ModeX, which will mean a fair amount of work rearranging the video buffer to work with Direct 3D.
I also started a review of WinROTT data structures, with the intention of consolidating the use of byte, short, int and long data types. I'll be limited on the types of data structures I can use for disk storage in order to be able to read old ROT game files. ROTT was written to compile with C, not C++ compilers. I doubt the authors realized how much data was being exchanged between 32 bit and 16 bit numbers and the performance hit you take when converting.
Anyway, it's an interesting problem and I am probably going to learn a lot more about Direct 3D that I wanted to know. I'll try to have a release for this weekend with the updated direct draw code.