Рисование небольших примитивов DirectX 9
Есть ли способ эффективно рисовать небольшие примитивы в DirectX? У меня есть главный цикл, и видеокарта нагружается на 30% при отображении линий, но если поместить сцену в цикл (рисовать сразу большое количество вершин), то нагрузка незначительна. Как с этим быть?
// параметры:
this->dxParams_.Windowed = TRUE;
this->dxParams_.BackBufferWidth = this->screenWidth;
this->dxParams_.BackBufferHeight = this->screenHeight;
this->dxParams_.AutoDepthStencilFormat = D3DFMT_D16;
this->dxParams_.EnableAutoDepthStencil = TRUE;
this->dxParams_.MultiSampleQuality = D3DMULTISAMPLE_NONE;
this->dxParams_.BackBufferFormat = D3DFMT_A8R8G8B8;
this->dxParams_.SwapEffect = D3DSWAPEFFECT_DISCARD;
this->dxParams_.hDeviceWindow = this->getOverlayHwnd();
this->dxParams_.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
// отрисовка:
for (int i = 0; i < 10; i++) { // данный цикл-обёртка сильно снижает нагрузку
dxDevice_->Clear(0, NULL, D3DCLEAR_TARGET, 0, 1.0f, 0);
dxDevice_->BeginScene();
draw();
dxDevice_->EndScene();
}
dxDevice_->PresentEx(NULL, NULL, NULL, NULL, NULL);
// флаги окна:
WS_EX_TOPMOST | WS_EX_TRANSPARENT | WS_EX_NOACTIVATE | WS_EX_LAYERED