Почему меняются пропорции примитивов directX?

Сразу прошу прощения за, возможно, глупые вопросы,я только начал читать про directx.Проблема такова,я создаю окно,и рисую на него квадрат:

int Render()
{
    dx_Device->Clear(0, 0, D3DCLEAR_TARGET, 0, 1.0f, 0);
    dx_Device->BeginScene();

    DrawBox(0, 0, 50, 80, 1, 255, 100, 20, 255);

    dx_Device->EndScene();
    dx_Device->PresentEx(0, 0, 0, 0, 0);
    return 0;
}
void DrawBox(float x, float y, float width, float height, float px, int r, int g, int b, int a)
{
    D3DXVECTOR2 points[5];
    points[0] = D3DXVECTOR2(x, y);
    points[1] = D3DXVECTOR2(x + width, y);
    points[2] = D3DXVECTOR2(x + width, y + height);
    points[3] = D3DXVECTOR2(x, y + height);
    points[4] = D3DXVECTOR2(x, y);
    dx_Line->SetWidth(px);
    dx_Line->Draw(points, 5, D3DCOLOR_RGBA(r, g, b, a));
}
LRESULT CALLBACK Proc(HWND CheatHWND, UINT Message, WPARAM wParam, LPARAM lParam)
{
    switch (Message)
    {
    case WM_PAINT: // we need to paint? lets paint!
        Render();
        break;
    case WM_CREATE:
        return DwmExtendFrameIntoClientArea(CheatHWND, &pMargin); // extension of window frame into client area
        break;
    case WM_DESTROY:
        PostQuitMessage(0); // We need to use this to exit a message loop
        break;
    default:
        return DefWindowProc(CheatHWND, Message, wParam, lParam); // Making sure all messages are processed
        break;
    }
}

Но при изменении размера окна,почему то фигура растягивается или сжимается,причем если окно довольно узкое фигура может сразу рисоваться не того размера которого я задал.Почему так происходит,ведь я же четко задаю размеры примитиву?

p.s за что минус?


Ответы (0 шт):