Софт Вопрос Не работает Fullscreen | Internal Hack DX9 - ImGui

Начинающий
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
136
Реакции[?]
11
Поинты[?]
6K
Можно ли вообще имгуи заставить работать в фуллскрине? Сколько сурсов имгуи беру с обещаниями работы в фуллскрине, но ничего не пашет.
 
Начинающий
Статус
Оффлайн
Регистрация
19 Янв 2024
Сообщения
57
Реакции[?]
1
Поинты[?]
1K
Можно ли вообще имгуи заставить работать в фуллскрине? Сколько сурсов имгуи беру с обещаниями работы в фуллскрине, но ничего не пашет.
Directx d3d9 imgui kiero hook
 
Начинающий
Статус
Оффлайн
Регистрация
31 Мар 2024
Сообщения
83
Реакции[?]
18
Поинты[?]
19K
Может у тебя проблема с ресайзом? В дх9 не знаю, но в 11м надо хукать еще ресайз чтоб он адекватно работал а фулскрине и при изменении разрешения и прочего
 
Начинающий
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
136
Реакции[?]
11
Поинты[?]
6K
Может у тебя проблема с ресайзом? В дх9 не знаю, но в 11м надо хукать еще ресайз чтоб он адекватно работал а фулскрине и при изменении разрешения и прочего
без понятия, использую ссылки с гитхабов с дх9(в том числе и киеро хук)
 
Начинающий
Статус
Оффлайн
Регистрация
15 Янв 2022
Сообщения
130
Реакции[?]
18
Поинты[?]
8K
без понятия, использую ссылки с гитхабов с дх9(в том числе и киеро хук)
Тебе нужно создать render target view и применить его при ините дкс'а. Так же хук на ресайз и там пересоздание этой хуйни сделать.
 
Начинающий
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
136
Реакции[?]
11
Поинты[?]
6K
Тебе нужно создать render target view и применить его при ините дкс'а. Так же хук на ресайз и там пересоздание этой хуйни сделать.
Бинупс конечно понял что ты наколдовал, но я написать всё что связано с рендером не смогу, поэтому мне нужен рабочий готовый сурс. В любом случае спасибо
 
Начинающий
Статус
Оффлайн
Регистрация
15 Янв 2022
Сообщения
130
Реакции[?]
18
Поинты[?]
8K
Бинупс конечно понял что ты наколдовал, но я написать всё что связано с рендером не смогу, поэтому мне нужен рабочий готовый сурс. В любом случае спасибо
init dx:
inline auto EFT::Render::init_all(IDXGISwapChain* pSwapChain) -> bool
{
    DXGI_SWAP_CHAIN_DESC desc;
    pSwapChain->GetDesc(&desc);
    width = desc.BufferDesc.Width;
    height = desc.BufferDesc.Height;

    ID3D11Device* device;
    pSwapChain->GetDevice(__uuidof(ID3D11Device), reinterpret_cast<void**>(&device));

    device->GetImmediateContext(&render_context);

    ID3D11Texture2D* BackBuffer;
    pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&BackBuffer);
    device->CreateRenderTargetView(BackBuffer, NULL, &render_target_view);
    BackBuffer->Release();

    orig_wnd_proc = SetWindowLongPtr(FindWindow(L"UnityWndClass", NULL), GWLP_WNDPROC, (LONG_PTR)WndProc);
    GetWindowRect(desc.OutputWindow, &window_rect);

    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO(); (void)io;
    ImGui::StyleColorsDark();

    static ImFontConfig font_config;
    font_config.FontBuilderFlags |= ImGuiFreeTypeBuilderFlags_MonoHinting;

    static const ImWchar ranges[] =
    {
        0x0020, 0x00FF, // Basic Latin + Latin Supplement
        0x0400, 0x052F, // Cyrillic + Cyrillic Supplement
        0x2DE0, 0x2DFF, // Cyrillic Extended-A
        0xA640, 0xA69F, // Cyrillic Extended-B
        0xE000, 0xE226, // icons
        ICON_MIN_FA,ICON_MAX_FA,
        0,
    };

    font_config.GlyphRanges = ranges;

    medium = io.Fonts->AddFontFromMemoryTTF(PTRootUIMedium, sizeof(PTRootUIMedium), 15.0f, &font_config, ranges);
    bold = io.Fonts->AddFontFromMemoryTTF(PTRootUIBold, sizeof(PTRootUIBold), 15.0f, &font_config, ranges);
    tab_icons = io.Fonts->AddFontFromMemoryTTF(clarityfont, sizeof(clarityfont), 15.0f, &font_config, ranges);
    logo = io.Fonts->AddFontFromMemoryTTF(clarityfont, sizeof(clarityfont), 21.0f, &font_config, ranges);
    fa_logo_size = io.Fonts->AddFontFromMemoryTTF(FaSolid, sizeof(FaSolid), 27.0f, &font_config, ranges);
    fa_esp = io.Fonts->AddFontFromMemoryTTF(FaSolid, sizeof(FaSolid), 13.0f, &font_config, ranges);
    esp = io.Fonts->AddFontFromMemoryTTF(PTRootUIBold, sizeof(PTRootUIBold), 11.f, &font_config, ranges);
    tab_title = io.Fonts->AddFontFromMemoryTTF(PTRootUIBold, sizeof(PTRootUIBold), 19.0f, &font_config, ranges);
    tab_title_icon = io.Fonts->AddFontFromMemoryTTF(clarityfont, sizeof(clarityfont), 18.0f, &font_config, ranges);
    subtab_title = io.Fonts->AddFontFromMemoryTTF(PTRootUIBold, sizeof(PTRootUIBold), 15.0f, &font_config, ranges);
    combo_arrow = io.Fonts->AddFontFromMemoryTTF(combo, sizeof(combo), 9.0f, &font_config, ranges);

    ImGui_ImplWin32_Init(desc.OutputWindow);
    ImGui_ImplDX11_Init(device, render_context);

    static auto domain = VmGeneralType::Domain::Get();
    static auto thread = VmGeneralType::Thread::Attach(domain);

    return true;
}

hk_swap_chain_resize_buffer:
    width = Width;
    height = Height;

    auto result = orig_swap_chain_resize_buffer.stdcall<HRESULT>(pSwapChain, BufferCount, Width, Height, NewFormat, SwapChainFlags);

    ID3D11Device* device;
    pSwapChain->GetDevice(__uuidof(ID3D11Device), (void**)&device);

    ID3D11Texture2D* backBuffer;
    pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D*), (LPVOID*)&backBuffer);
    if (backBuffer)
    {
        device->CreateRenderTargetView(backBuffer, 0, &render_target_view);
        backBuffer->Release();
    }

    ImGuiIO& io = ImGui::GetIO();
    io.DisplaySize = ImVec2(static_cast<float>(Width), static_cast<float>(Height));

    return result;
 
Начинающий
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
136
Реакции[?]
11
Поинты[?]
6K
init dx:
inline auto EFT::Render::init_all(IDXGISwapChain* pSwapChain) -> bool
{
    DXGI_SWAP_CHAIN_DESC desc;
    pSwapChain->GetDesc(&desc);
    width = desc.BufferDesc.Width;
    height = desc.BufferDesc.Height;

    ID3D11Device* device;
    pSwapChain->GetDevice(__uuidof(ID3D11Device), reinterpret_cast<void**>(&device));

    device->GetImmediateContext(&render_context);

    ID3D11Texture2D* BackBuffer;
    pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&BackBuffer);
    device->CreateRenderTargetView(BackBuffer, NULL, &render_target_view);
    BackBuffer->Release();

    orig_wnd_proc = SetWindowLongPtr(FindWindow(L"UnityWndClass", NULL), GWLP_WNDPROC, (LONG_PTR)WndProc);
    GetWindowRect(desc.OutputWindow, &window_rect);

    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO(); (void)io;
    ImGui::StyleColorsDark();

    static ImFontConfig font_config;
    font_config.FontBuilderFlags |= ImGuiFreeTypeBuilderFlags_MonoHinting;

    static const ImWchar ranges[] =
    {
        0x0020, 0x00FF, // Basic Latin + Latin Supplement
        0x0400, 0x052F, // Cyrillic + Cyrillic Supplement
        0x2DE0, 0x2DFF, // Cyrillic Extended-A
        0xA640, 0xA69F, // Cyrillic Extended-B
        0xE000, 0xE226, // icons
        ICON_MIN_FA,ICON_MAX_FA,
        0,
    };

    font_config.GlyphRanges = ranges;

    medium = io.Fonts->AddFontFromMemoryTTF(PTRootUIMedium, sizeof(PTRootUIMedium), 15.0f, &font_config, ranges);
    bold = io.Fonts->AddFontFromMemoryTTF(PTRootUIBold, sizeof(PTRootUIBold), 15.0f, &font_config, ranges);
    tab_icons = io.Fonts->AddFontFromMemoryTTF(clarityfont, sizeof(clarityfont), 15.0f, &font_config, ranges);
    logo = io.Fonts->AddFontFromMemoryTTF(clarityfont, sizeof(clarityfont), 21.0f, &font_config, ranges);
    fa_logo_size = io.Fonts->AddFontFromMemoryTTF(FaSolid, sizeof(FaSolid), 27.0f, &font_config, ranges);
    fa_esp = io.Fonts->AddFontFromMemoryTTF(FaSolid, sizeof(FaSolid), 13.0f, &font_config, ranges);
    esp = io.Fonts->AddFontFromMemoryTTF(PTRootUIBold, sizeof(PTRootUIBold), 11.f, &font_config, ranges);
    tab_title = io.Fonts->AddFontFromMemoryTTF(PTRootUIBold, sizeof(PTRootUIBold), 19.0f, &font_config, ranges);
    tab_title_icon = io.Fonts->AddFontFromMemoryTTF(clarityfont, sizeof(clarityfont), 18.0f, &font_config, ranges);
    subtab_title = io.Fonts->AddFontFromMemoryTTF(PTRootUIBold, sizeof(PTRootUIBold), 15.0f, &font_config, ranges);
    combo_arrow = io.Fonts->AddFontFromMemoryTTF(combo, sizeof(combo), 9.0f, &font_config, ranges);

    ImGui_ImplWin32_Init(desc.OutputWindow);
    ImGui_ImplDX11_Init(device, render_context);

    static auto domain = VmGeneralType::Domain::Get();
    static auto thread = VmGeneralType::Thread::Attach(domain);

    return true;
}

hk_swap_chain_resize_buffer:
    width = Width;
    height = Height;

    auto result = orig_swap_chain_resize_buffer.stdcall<HRESULT>(pSwapChain, BufferCount, Width, Height, NewFormat, SwapChainFlags);

    ID3D11Device* device;
    pSwapChain->GetDevice(__uuidof(ID3D11Device), (void**)&device);

    ID3D11Texture2D* backBuffer;
    pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D*), (LPVOID*)&backBuffer);
    if (backBuffer)
    {
        device->CreateRenderTargetView(backBuffer, 0, &render_target_view);
        backBuffer->Release();
    }

    ImGuiIO& io = ImGui::GetIO();
    io.DisplaySize = ImVec2(static_cast<float>(Width), static_cast<float>(Height));

    return result;
cпасибо большое!!!
 
Сверху Снизу