-
Автор темы
- #1
Отрисовываю в hkEndScene DrawLine с помощью D3D, чем больше отрисовываю линий, тем больше лагов. Линий всего 20-30 штук допустим, но фпса становится неиграбельно мало. Какие есть более эффективные варианта отрисовки, или что я делаю не так, что настолько сильно лагает?
C++:
void DrawLine(int x1, int y1, int x2, int y2, int thickness, D3DCOLOR col) {
ID3DXLine* lineL;
D3DXCreateLine(ExternalDevice, &lineL);
D3DXVECTOR2 Line[2];
Line[0] = D3DXVECTOR2(x1, y1);
Line[1] = D3DXVECTOR2(x2, y2);
lineL->SetWidth(thickness);
lineL->Draw(Line, 2, col);
lineL->Release();
}
//далее уже в hkEndScene
if (checkBox_smth) {
//Допустим вызываю DrawLine
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
DrawLine(100, 200, 1000, 700, 1, D3DCOLOR_ARGB(255, 255, 255, 220));
}