У меня есть инструмент DirectX 9, который создает внешний оверлей для игры.
Но по любой причине у меня есть только 10-15 FPS с этим инструментом DirectX 9, в то время как в игре 150 FPS.
Мой компьютер более чем хорош с RTX 2080 Ti и чем-то еще, так что проблем на самом деле нет.
Я также тестировал Benchmarks с 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);
}