C++ Direct3D on.NET控件-屏幕刷新率

C++ Direct3D on.NET控件-屏幕刷新率,c++,.net,controls,direct3d,C++,.net,Controls,Direct3d,我正在使用Direct3D 9渲染到系统.Windows.Forms.Control 我的渲染循环速度不超过120 FPS,这是我屏幕的刷新速度。我尝试更改刷新率,但它确实相应地限制了渲染循环。此外,我还发现,IDirect3DDevice9::Present(/*…*/)限制了渲染速度。我可以做些什么来消除这个限制 D3D初始化: // ctrl : System::Windows::Forms::Control int render_w = ctrl->Width; int rend

我正在使用Direct3D 9渲染到
系统.Windows.Forms.Control

我的渲染循环速度不超过120 FPS,这是我屏幕的刷新速度。我尝试更改刷新率,但它确实相应地限制了渲染循环。此外,我还发现,
IDirect3DDevice9::Present(/*…*/)
限制了渲染速度。我可以做些什么来消除这个限制

D3D初始化:

// ctrl : System::Windows::Forms::Control

int render_w = ctrl->Width;
int render_h = ctrl->Height;
HWND ctrl_hnd = (HWND)ctrl->Handle.ToPointer();

// d3dpp : D3DPRESENT_PARAMETERS

d3dpp.hDeviceWindow = ctrl_hnd;
d3dpp.Windowed = TRUE;
d3dpp.BackBufferWidth = render_w;
d3dpp.BackBufferHeight = render_h;
// and further settings...

// d3d : LPDIRECT3D9
// d3ddev : LPDIRECT3DDEVICE9

d3d->CreateDevice(
    D3DADAPTER_DEFAULT,
    D3DDEVTYPE_HAL,
    ctrl_hnd,
    D3DCREATE_HARDWARE_VERTEXPROCESSING,
    &d3dpp,
    &d3ddev);

你为什么要这样做?你也可以检查一下:(
D3DPRESENT\u INTERVAL\u ONE
)因为我想看看实际速度。谢谢你的链接。使用D3D当前时间间隔立即,我设法提高了速度。尽管它仍然比我那台虚弱的旧笔记本电脑慢,这很奇怪。6毫秒对4毫秒