How to render DirectX9 on my CLR customed control?
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?
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:
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; }
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement