DirectX 9的FPS低吗?

时间:2019-06-24 08:49:42

标签: c++ directx directx-9

我有一个DirectX 9工具,可为游戏创建一个外部覆盖。

但是出于任何原因,我使用DirectX 9工具的速度只有大约10-15 FPS,而游戏只有150 FPS。

我的PC配备了RTX 2080 Ti和其他功能,因此表现不俗。

我还用DirectX 9测试了基准测试,在那里我也有超过150 FPS。

这是我的Create Directx 9。

            using namespace d3d9;
    auto d3d_ = Direct3DCreate9(D3D_SDK_VERSION);
    D3DPRESENT_PARAMETERS d3dpp;

    ZeroMemory(&d3dpp, sizeof(d3dpp));
    d3dpp.Windowed = TRUE;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.hDeviceWindow = hwnd;
    d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
    d3dpp.BackBufferWidth = screen_width;
    d3dpp.BackBufferHeight = screen_height;
    d3dpp.EnableAutoDepthStencil = TRUE;
    d3dpp.AutoDepthStencilFormat = D3DFMT_D16;

    d3d_->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &dx9_device);

任何人都看错了什么,或者有一个想法为什么它这么低的fps?

这是代码渲染并绘制一些文本

rendering::c_renderer::get()->draw_string(w2s.x, w2s.y, d3d9::tahoma_bold_18, D3DCOLOR_RGBA(51, 204, 51, 255), DT_CENTER, false, namee.c_str());

void c_renderer::draw_string(float x, float y, LPD3DXFONT pFont, D3DCOLOR color, int flags, bool outline, std::wstring text, ...) {
    va_list va_alist;
    wchar_t buf[1024];
    va_start(va_alist, text);
    _vsnwprintf(buf, sizeof(buf), text.c_str(), va_alist);
    va_end(va_alist);

    RECT rect;
    if (outline) {
        auto alpha = ((color >> 24) & 255);
        SetRect(&rect, x - 1, y, x - 1, y);
        pFont->DrawTextW(NULL, buf, -1, &rect, flags | DT_NOCLIP, D3DCOLOR_RGBA(0, 0, 0, alpha));
        SetRect(&rect, x + 1, y, x + 1, y);
        pFont->DrawTextW(NULL, buf, -1, &rect, flags | DT_NOCLIP, D3DCOLOR_RGBA(0, 0, 0, alpha));
        SetRect(&rect, x, y - 1, x, y - 1);
        pFont->DrawTextW(NULL, buf, -1, &rect, flags | DT_NOCLIP, D3DCOLOR_RGBA(0, 0, 0, alpha));
        SetRect(&rect, x, y + 1, x, y + 1);
        pFont->DrawTextW(NULL, buf, -1, &rect, flags | DT_NOCLIP, D3DCOLOR_RGBA(0, 0, 0, alpha));
    }
    SetRect(&rect, x, y, x, y);
    pFont->DrawTextW(NULL, buf, -1, &rect, flags | DT_NOCLIP, color);
}

0 个答案:

没有答案