Вопрос Меню рендерится поверх стим оверлея

When every god dead, I can live a normal life...
Забаненный
Статус
Оффлайн
Регистрация
9 Авг 2020
Сообщения
328
Реакции[?]
48
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Проблема в этом:
1623517557915.png
1623517636572.png

Как это можно пофиксить? Чтобы меню рендерилось как бг
 
When every god dead, I can live a normal life...
Забаненный
Статус
Оффлайн
Регистрация
9 Авг 2020
Сообщения
328
Реакции[?]
48
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
6 Дек 2019
Сообщения
643
Реакции[?]
322
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
Чтобы меню рендерилось как бг
Рисовать средствами игры поверх определенной панели.
imgui генерирует геометрию в список отрисовки, затем в хуке D3D9 ты вызываешь оригинальную отрисовку где игра рисует все свои слои (включая оверлей), и затем поверх рисуешься ты, т.е. ты не можешь никак вклиниться где-то между.
Поэтому всегда отрисовка собственными средствами будет поверх консоли, оверлея и самой игры.
 
When every god dead, I can live a normal life...
Забаненный
Статус
Оффлайн
Регистрация
9 Авг 2020
Сообщения
328
Реакции[?]
48
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
предлагаю хоть код кинуть хука
C++:
long D3DAPI Hooks::hkEndScene(IDirect3DDevice9* Direct3DDevice) {

    static auto Original = EndScene.GetOriginal<decltype(&hkEndScene)>(Indexes::EndScene);

    CMenu::Inst().Setup();

    return Original(Direct3DDevice);

} // !Hooks::hkEndScene(...)
C++:
void CMenu::Setup() {

    /* Initialize Styles and Colors once */
    if (!m_bBackendSetuped)
        SetupBackend();

    /* Initialize DX9 and Win32 */
    ImGui_ImplDX9_NewFrame();
    ImGui_ImplWin32_NewFrame();

    /* Create frame */
    ImGui::NewFrame();

    /* Render menu */
    this->Render();

    /* Render visuals, etc... (from imgui render) */
    //Render::Draw();

    /* End frame */
    ImGui::EndFrame();

    /* Render menu from ImGui */
    ImGui::Render();

    /* Render draw lists from draw data */
    ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());

} // !CMenu::Setup(...)
you need to implement an D3D9 Renderer
I void my menu in EndScene hook
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
5 Май 2021
Сообщения
47
Реакции[?]
1
Поинты[?]
0
C++:
long D3DAPI Hooks::hkEndScene(IDirect3DDevice9* Direct3DDevice) {

    static auto Original = EndScene.GetOriginal<decltype(&hkEndScene)>(Indexes::EndScene);

    CMenu::Inst().Setup();

    return Original(Direct3DDevice);

} // !Hooks::hkEndScene(...)
C++:
void CMenu::Setup() {

    /* Initialize Styles and Colors once */
    if (!m_bBackendSetuped)
        SetupBackend();

    /* Initialize DX9 and Win32 */
    ImGui_ImplDX9_NewFrame();
    ImGui_ImplWin32_NewFrame();

    /* Create frame */
    ImGui::NewFrame();

    /* Render menu */
    this->Render();

    /* Render visuals, etc... (from imgui render) */
    //Render::Draw();

    /* End frame */
    ImGui::EndFrame();

    /* Render menu from ImGui */
    ImGui::Render();

    /* Render draw lists from draw data */
    ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());

} // !CMenu::Setup(...)

I void my menu in EndScene hook
u need to implement ur menu like Menu::Get().Render(); from menu.cpp
 
When every god dead, I can live a normal life...
Забаненный
Статус
Оффлайн
Регистрация
9 Авг 2020
Сообщения
328
Реакции[?]
48
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
When every god dead, I can live a normal life...
Забаненный
Статус
Оффлайн
Регистрация
9 Авг 2020
Сообщения
328
Реакции[?]
48
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Рисовать средствами игры поверх определенной панели.
imgui генерирует геометрию в список отрисовки, затем в хуке D3D9 ты вызываешь оригинальную отрисовку где игра рисует все свои слои (включая оверлей), и затем поверх рисуешься ты, т.е. ты не можешь никак вклиниться где-то между.
Поэтому всегда отрисовка собственными средствами будет поверх консоли, оверлея и самой игры.
Подскажи какой сейчас ещё и актуальный паттерн для D3D9 который через shaderapidx9.dll
 
Пользователь
Статус
Оффлайн
Регистрация
3 Июл 2019
Сообщения
137
Реакции[?]
77
Поинты[?]
2K
не рисуйте меню с EndScene, используйте вместо этого Present
 
Пользователь
Статус
Оффлайн
Регистрация
12 Июн 2019
Сообщения
865
Реакции[?]
127
Поинты[?]
1K
я думаю можно решить просто проверяя или длл-ка оверлея открыта или нет
 
When every god dead, I can live a normal life...
Забаненный
Статус
Оффлайн
Регистрация
9 Авг 2020
Сообщения
328
Реакции[?]
48
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу