[Mono-dev] Managed DirectX

Brian Crowell mono-devel at fluggo.com
Thu Oct 26 11:46:08 EDT 2006

> Unfortunately this dll depends on Wine. The dependency is not too big, but 
> needed for certain functionality, namely IWineD3DSurface::GetDC. This method 
> allows applications to do normal gdi operations on d3d surfaces and the 
> framebuffer. I don't know if managed dx still supports that, because GetDC a 
> broken api and ms even tried to remove it from d3d8, but reintroduced it in 
> d3d9

This is available in Managed DirectX indirectly through the Surface.GetGraphics() method.

> At the moment wined3d calls glx directly, but we want to change it to use our 
> opengl32.dll instead and fix some opengl issues(windowed gl, glx<->agl 
> abstraction) in opengl32.dll.

I think I don't understand what you're looking for. Managed DirectX is a thin wrapper around the DX9 COM interfaces. The most important entry points are functions like Direct3DCreate9() and DirectSoundCreate8() (ignoring for the moment all the D3DX stuff)-- everything else is available through interface calls and calls to IUnknown functions. To look at it another way, if you have an implementation of COM and DirectX 9, all you have to do is wrap it; the exact same managed DLL should run on both Windows and Wine. 

(I confess to ignorance about how Wine works, so if that doesn't sound right, let me know.)

It sounds like what you want is an implementation of Managed DirectX that doesn't actually use DirectX, or at least talks to the Wine libs more directly. Is that right?


More information about the Mono-devel-list mailing list