Вопрос Проблема с ImGui в winapi

primordial
Пользователь
Статус
Оффлайн
Регистрация
4 Сен 2020
Сообщения
361
Реакции[?]
128
Поинты[?]
42K
Когда закругляю сам рект в имгуе, он закругляется, но остаются чёрные углы
Ps: знаю про SetWindowRgn, но куда бы я его не ставил, ничего не работает

 
Пользователь
Статус
Оффлайн
Регистрация
13 Янв 2018
Сообщения
193
Реакции[?]
75
Поинты[?]
10K
C++:
#pragma comment(lib, "dwmapi.lib")
#include <dwmapi.h>

HRGN region{ CreateRectRgn(0, 0, -1, -1) };
DWM_BLURBEHIND blur_behind{
    .dwFlags{ DWM_BB_ENABLE | DWM_BB_BLURREGION },
    .fEnable{ TRUE },
    .hRgnBlur{ region }
};
DwmEnableBlurBehindWindow(hwnd, &blur_behind);
DeleteObject(region);
 
primordial
Пользователь
Статус
Оффлайн
Регистрация
4 Сен 2020
Сообщения
361
Реакции[?]
128
Поинты[?]
42K
C++:
#pragma comment(lib, "dwmapi.lib")
#include <dwmapi.h>

HRGN region{ CreateRectRgn(0, 0, -1, -1) };
DWM_BLURBEHIND blur_behind{
    .dwFlags{ DWM_BB_ENABLE | DWM_BB_BLURREGION },
    .fEnable{ TRUE },
    .hRgnBlur{ region }
};
DwmEnableBlurBehindWindow(hwnd, &blur_behind);
DeleteObject(region);
К сожалению, не работает.

Сюда поставил:
1691867340322.png
А так вызвал:
1691867356941.png
Может попробуешь закруглить сам ImGui?
C++:
    auto& style = ImGui::GetStyle();
    style.WindowRounding = 4;
Уже пробовал, не помогло(
 
Пользователь
Статус
Оффлайн
Регистрация
13 Янв 2018
Сообщения
193
Реакции[?]
75
Поинты[?]
10K
К сожалению, не работает.

Сюда поставил:
Посмотреть вложение 255864
А так вызвал:
Посмотреть вложение 255866

Уже пробовал, не помогло(
Ты отдебаж хоть, скажи куда код доходит, какие значения все функции возвращают, CreateRectRgn, DwmEnableBlurBehindWindow, DeleteObject и т.д. Какие флаги ставишь при создании окна.
Ты отдебаж хоть, скажи куда код доходит, какие значения все функции возвращают, CreateRectRgn, DwmEnableBlurBehindWindow, DeleteObject и т.д. Какие флаги ставишь при создании окна.
Забыл сказать, нужно использовать dx11 а не dx9 (скорее всего можно и на dx9 реализовать, но лично я с этим не ебался)
Чтобы всё работало на dx9, нужно установить BackBufferFormat на D3DFMT_A8R8G8B8
 
Последнее редактирование:
primordial
Пользователь
Статус
Оффлайн
Регистрация
4 Сен 2020
Сообщения
361
Реакции[?]
128
Поинты[?]
42K
Ты отдебаж хоть, скажи куда код доходит, какие значения все функции возвращают, CreateRectRgn, DwmEnableBlurBehindWindow, DeleteObject и т.д. Какие флаги ставишь при создании окна.

Забыл сказать, нужно использовать dx11 а не dx9 (скорее всего можно и на dx9 реализовать, но лично я с этим не ебался)
блять
1691869779275.png
 
Эксперт
Статус
Онлайн
Регистрация
29 Мар 2021
Сообщения
1,572
Реакции[?]
594
Поинты[?]
33K
да там дебажить нехуй, создал окно д3д, спастил прозрачность в окно, убрал декораторы у окна, ты в шоколаде
 
Похожие темы
Сверху Снизу