How to render DirectX9 on my CLR customed control?

Started by
1 comment, last by akira32 14 years, 5 months ago
My CLR project have many Split Containers, one Container has a customed user control. I want to Render a cylinder with DirectX9 on the user control. Could somebody tell how to get windows handle of user control or render with DirectX?
akira32 編程之家 Yahoohttp://tw.myblog.yahoo.com/akira32-akira32
Advertisement
The Control.Handle property gives you the window handle as an IntPtr.
Thank you, I can create device successfully.
But another problem appear when I create device using the variable d3ddev.
It appears error message as below:

Error 1 error C2664: 'IDirect3D9::CreateDevice' : cannot convert parameter 6 from 'cli::interior_ptr<Type>' to 'IDirect3DDevice9 **' d:\svn\.....\PreviewView.h 121

So I use another local variable(d3ddevTmp) to create device and then set the d3ddevTmp to d3ddev member variable.

That is my partial source code:

public ref class PreviewView : public System::Windows::Forms::UserControl{LPDIRECT3DDEVICE9 d3ddev; private: void initD3D(HWND hHandle)    {     d3d = Direct3DCreate9(D3D_SDK_VERSION);    // create the Direct3D interface     ZeroMemory(pd3dpp, sizeof(*pd3dpp));    // clear out the struct for use     pd3dpp->Windowed = true;    // program windowed, not fullscreen     pd3dpp->SwapEffect = D3DSWAPEFFECT_DISCARD;    // discard old frames     pd3dpp->hDeviceWindow = hHandle;    // set the window to be used by Direct3D     LPDIRECT3DDEVICE9 d3ddevTmp;     // create a device class using this information and information from the d3dpp stuct     d3d->CreateDevice(D3DADAPTER_DEFAULT,      D3DDEVTYPE_HAL,      hHandle,      D3DCREATE_SOFTWARE_VERTEXPROCESSING,      pd3dpp,      &d3ddevTmp);     d3ddev=d3ddevTmp;    }
akira32 編程之家 Yahoohttp://tw.myblog.yahoo.com/akira32-akira32

This topic is closed to new replies.

Advertisement