Possible bug in class D3D9RenderWindow (Ogre1.0.2)

Anything and everything that's related to OGRE or the wider graphics field that doesn't fit into the other forums.
Post Reply
Posts: 1
Joined: Fri Jun 03, 2005 5:52 pm
Location: Austria

Possible bug in class D3D9RenderWindow (Ogre1.0.2)

Post by mrPossible »

Ogre v1.0.2:
I found this (possible)bug since I want to use Ogre for a normal Win32 App with multiple windows (MDI). I create a primary render window that I hide.
Then I create further secondary render windows (using the "externalWindowHandle" param in createRenderWindow() and setting its param deviceIfSwapChain to a non-NULL device pointer). The App is so flexible that the user can close 3D windows and create new ones.

The problem occurs, when I close, open, close, open... a 3D window. Somewhen (on RenderSystem Direct3D9), an error returns and Ogre.log says it cannot create new swap chains.
I found in D3D9RenderWindow::destroyD3DResources() that in there, a swap chain of a secondary window will be released.
But D3D9RenderWindow::destroyD3DResources() is *NEVER* called anywhere.
In the D3D9RenderWindow destructor, only the deinit-part for the primary window is executed, but not for secondary render windows.

If this is the wrong place for posting a bug, I am sorry, but I did not find a section related for bug reports.

PS: For OpenGL, there does not seem to be a problem of this kind.

Unfortunately Direct3D7 render system does not support "externalWindowHandle" and "parentWindowHandle" parameters for creating a secondary render window.
Is this not possible with Direct3D7 or is this feature just not implemented because D3D9 support does exist already and is a newer API, and will it ever be implemented?
I am asking, because my App should run also on a bit older system which possibly do not have Direct3D9 or OpenGL.

Post Reply