2009-10-09, 03:38 AM
It looks like there is probably hope for an easy windowed mode hack yet...
So it turns out DX (or DX7 at least -- or directdraw7 technically) has two different ways (at least) of swapping it's buffers depending whether you're in fullscreen or window mode that seems to indicate some of the weird behavior I'm seeing. So probably if we catch the "flip" call and convert it into a "blit" we'll be in a better position for window mode.
I'm still not sure how SOM is drawing it's text to the screen, but there is a function for drawing debug text (ID3DXContext::DrawDebugText) buried in the d3dx api which is probably the easiest to get at for throwing up a heads up display of sorts (just before the window blit)
I have no idea how deep I'll have to go to get at that interface, but I won't have to intercept it for any reason... so all I have to do is find/call it. Which is a whole lot less work.
If anyone with a little C++ experience wants to help map out the rest of the DX7 API, I've done like two interfaces, which I can send you the sources for. It's pretty obvious what has to be done. It's just a lot copy/paste/find/replace/remix type work. A secretary could do it with a little training. I've done like 70+ routines... altogether there is no telling how many there are. But it only takes so many seconds each once you get the hang of it.
So it turns out DX (or DX7 at least -- or directdraw7 technically) has two different ways (at least) of swapping it's buffers depending whether you're in fullscreen or window mode that seems to indicate some of the weird behavior I'm seeing. So probably if we catch the "flip" call and convert it into a "blit" we'll be in a better position for window mode.
I'm still not sure how SOM is drawing it's text to the screen, but there is a function for drawing debug text (ID3DXContext::DrawDebugText) buried in the d3dx api which is probably the easiest to get at for throwing up a heads up display of sorts (just before the window blit)
I have no idea how deep I'll have to go to get at that interface, but I won't have to intercept it for any reason... so all I have to do is find/call it. Which is a whole lot less work.
If anyone with a little C++ experience wants to help map out the rest of the DX7 API, I've done like two interfaces, which I can send you the sources for. It's pretty obvious what has to be done. It's just a lot copy/paste/find/replace/remix type work. A secretary could do it with a little training. I've done like 70+ routines... altogether there is no telling how many there are. But it only takes so many seconds each once you get the hang of it.