Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Roblox DX11 Internal — Проблемы с прозрачностью ImGui оверлея на Win11 24H2

Обратите внимание, что на пользователя недавно была жалоба: Жалоба от lovehvhneverlose на hex_cat. Будьте осторожны!
Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
470
Реакции
10
Народ, кто уже перекатился на Windows 11 24H2? Столкнулся с классической проблемой: после обновы винды мой internal оверлей на Roblox (да, роблокс, не судите строго) превратился в квадрат Малевича. Раньше всё работало идеально, фон был прозрачным, а теперь — сплошной чёрный цвет.

Суть в том, что я использую стандартный Alpha Compositing, и до этого апдейта проблем не было. Ощущение, что в новой сборке винды DWM или сам DX11 стали как-то иначе переваривать слои.

Код создания окна:
Код:
Expand Collapse Copy
wc = { sizeof(wc), CS_CLASSDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, (LPCWSTR)(randomString(20).c_str()), nullptr };
::RegisterClassExW(&wc);
hwnd = ::CreateWindowExW(WS_EX_TOOLWINDOW, wc.lpszClassName, (LPCWSTR)(randomString(20).c_str()), WS_POPUP, 100, 100, 1280, 800, nullptr, nullptr, wc.hInstance, nullptr);

if (!CreateDeviceD3D(hwnd))
{
    CleanupDeviceD3D();
    ::UnregisterClassW(wc.lpszClassName, wc.hInstance);
    return;
}

::ShowWindow(hwnd, SW_SHOWDEFAULT);
::UpdateWindow(hwnd);

IMGUI_CHECKVERSION();
ImGui::CreateContext();
ImGui_ImplWin32_Init(hwnd);
ImGui_ImplWin32_EnableAlphaCompositing(hwnd);
ImGui_ImplDX11_Init(g_pd3dDevice, g_pd3dDeviceContext);

Логика рендера:
Код:
Expand Collapse Copy
ImGui::Render();
const float clear_color_with_alpha[4] = { 0.f, 0.f, 0.f, 0.f };
g_pd3dDeviceContext->OMSetRenderTargets(1, &g_mainRenderTargetView, nullptr);
g_pd3dDeviceContext->ClearRenderTargetView(g_mainRenderTargetView, clear_color_with_alpha);
ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());

HRESULT hr = g_pSwapChain->Present(1, 0);

Пробовал курить западные форумы, но внятного ответа по 24H2 пока нет. ClearRenderTargetView с нулевой альфой отрабатывает, но прозрачности в самом окне нет. Возможно, нужно копать в сторону DwmExtendFrameIntoClientArea или менять флаги в DXGI_SWAP_CHAIN_DESC, но раньше-то EnableAlphaCompositing справлялся в соло.

Кто-нибудь уже фиксил подобный прикол на свежих билдах Win11?
 

Похожие темы

Ответы
2
Просмотры
681
Назад
Сверху Снизу