DirectShow code - long night of coding
After a long night of coding I finally have DirectShow working inside of my engine for fullscreen and/or windowed videos.
I tried using the new IVMRWindowlessControl interface to no avail. However, the older IVideoWindow interface works like a charm.
Once the intro videos play for the engine, company, and game if needed - a variable is incremented denoting completion of each step. After all videos are shown, the title screen is rendered. Once a selection is made, then the variable is set to in game status and the renderer switches modes.
This was NOT easy to do. DirectShow is a frieking mess of interfaces that all do very different things. But the class can also be used to play MP3's while in-game which is quite nice. I could even create a custom MP3 player so players could play their own songs during gameplay. In fact, I just might do that.
Also found a way to have class-based WndProc's instead of non-member WndProc's. Got the idea from the net and had to re-work it a bit, but it works very well. I'll not explain it here but I can say that now I can define the base helper WndProc's for game and video's that call the class based versions. The class-based versions are implemented by user classes that are derived from CD3DApp and CDXShowWnd.
Here is a frame grab re-sampled to 800x600 from 1024x768. It's a sample video created in ULead Cool 3D Studio and it's just something to show off the engine running the game. It's a 3D engine but this version is only doing 2D stuff.