Have anybody tested dynamic switching between OpenGL and D3D on one DC?
No, but I can tell you now that it would probably not work… you’d have to take OpenGL down and put D3D up as if you were exiting and rerunning the app to do this. And wtf would you want to, anyway? You would sooner want to find a way to make the computer write programs by simply telling it what you wanted the program to do verbally and in the human english language. That would be quite a feat, really, so I guess I’d opt for the first one
Simply releasing all the resources of one then loading the other should work (you can’t reuse the hdc or hWnd). And don’t forget to reload all textures. I had this working for a while in my app, but eventually I decided not to support it because it didn’t seem to work very well with all systems/video cards. Now I have them select their video options from a menu and restart the app for them if any option besides resolution changed.
But what about mipping, filtering, etc.?
Sorry, I just had to say that
But what’s wrong with mipping, filtering???
We’re writting Indirect3D component library that will have both OpenGL, Direct3D an abstract components.
I just want to see a radio buttons that will switch between OpenGL/Direct3D. I remember I have seen such thing in ActiveX control that made 3D things in Internet.
Lets watch a game like… CounterStrike. What we see? We can go to options and check, what type of rendering we should use: OpenGL or Direct3D. It happens WITHOUT rerunning, and only visible aspect is that monitor changes mode, and it seems for me that it hapeens only because of the fullscreen reinitialization.
What, to the GOD will happing with mipping or texture filtering? They will die of starvation or will be killed by angry Direct3D device?
And at last, if anybody finds a way to TELL computer using HUMAN language, what it really has to do, then programmer profession will die next day. Every idiot will come and tell computer “verbally”: “I want cool 3D shooter” and computer will do it for him . Good idea, but seems totally unreachable!