HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 19.01.2024, 11:22
Lqst31
Новичок
Регистрация: 24.12.2023
Сообщений: 8
С нами: 1258778

Репутация: 3
По умолчанию

я не знаю туда ли я пишу но вот вопрос, как мне пофиксить проблему с ImGui когда я закрываю меню у меня игра зависает но звуки кнопок и музика игры идёт но когда картинка зависает игра всеровно роботает типо если нажать на инвентарь например и нажать на кнопку открытия меню то в игре картинка поменяеться я взял обычний хук киеро 11direct x и рисовал меню вот код (и еще не роботают флаги) и не применяються темы когда я пишу ImGui::StyleColorLight все билдиться нормально но при открытии меню игра крашиться или не применяеться

C++:





Код:
#include "includes.h"
#include "offsets.h"
extern
LRESULT
ImGui_ImplWin32_WndProcHandler
(
HWND hWnd
,
UINT msg
,
WPARAM wParam
,
LPARAM lParam
)
;
Present oPresent
;
HWND window
=
NULL
;
WNDPROC oWndProc
;
ID3D11Device
*
pDevice
=
NULL
;
ID3D11DeviceContext
*
pContext
=
NULL
;
ID3D11RenderTargetView
*
mainRenderTargetView
;
void
InitImGui
(
)
{
ImGui
::
CreateContext
(
)
;
ImGuiIO
&
io
=
ImGui
::
GetIO
(
)
;
static
ImGuiWindowFlags winFlags
=
{
ImGuiWindowFlags_NoResize
|
ImGuiWindowFlags_NoSavedSettings
|
ImGuiWindowFlags_NoMove
|
ImGuiWindowFlags_NoCollapse
}
;
ImGui_ImplWin32_Init
(
window
)
;
ImGui_ImplDX11_Init
(
pDevice
,
pContext
)
;
}
LRESULT __stdcall
WndProc
(
const
HWND hWnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
true
&&
ImGui_ImplWin32_WndProcHandler
(
hWnd
,
uMsg
,
wParam
,
lParam
)
)
return
true
;
return
CallWindowProc
(
oWndProc
,
hWnd
,
uMsg
,
wParam
,
lParam
)
;
}
bool
init
=
false
;
bool
menu
=
false
;
HRESULT __stdcall
hkPresent
(
IDXGISwapChain
*
pSwapChain
,
UINT SyncInterval
,
UINT Flags
)
{
if
(
!
init
)
{
if
(
SUCCEEDED
(
pSwapChain
->
GetDevice
(
__uuidof
(
ID3D11Device
)
,
(
void
*
*
)
&
pDevice
)
)
)
{
ImGui
::
StyleColorsLight
;
pDevice
->
GetImmediateContext
(
&
pContext
)
;
DXGI_SWAP_CHAIN_DESC sd
;
pSwapChain
->
GetDesc
(
&
sd
)
;
window
=
sd
.
OutputWindow
;
ID3D11Texture2D
*
pBackBuffer
;
pSwapChain
->
GetBuffer
(
0
,
__uuidof
(
ID3D11Texture2D
)
,
(
LPVOID
*
)
&
pBackBuffer
)
;
pDevice
->
CreateRenderTargetView
(
pBackBuffer
,
NULL
,
&
mainRenderTargetView
)
;
pBackBuffer
->
Release
(
)
;
oWndProc
=
(
WNDPROC
)
SetWindowLongPtr
(
window
,
GWLP_WNDPROC
,
(
LONG_PTR
)
WndProc
)
;
InitImGui
(
)
;
init
=
true
;
}
else
return
oPresent
(
pSwapChain
,
SyncInterval
,
Flags
)
;
}
if
(
GetAsyncKeyState
(
VK_INSERT
)
&
1
)
{
menu
=
!
menu
;
}
if
(
menu
)
{
ImGui_ImplDX11_NewFrame
(
)
;
ImGui_ImplWin32_NewFrame
(
)
;
ImGui
::
NewFrame
(
)
;
ImGui
::
Begin
(
"я гей но об этом никто не узнает"
)
;
ImGui
::
End
(
)
;
ImGui
::
Render
(
)
;
pContext
->
OMSetRenderTargets
(
1
,
&
mainRenderTargetView
,
NULL
)
;
ImGui_ImplDX11_RenderDrawData
(
ImGui
::
GetDrawData
(
)
)
;
return
oPresent
(
pSwapChain
,
SyncInterval
,
Flags
)
;
}
}
DWORD WINAPI
MainThread
(
LPVOID lpReserved
)
{
bool
init_hook
=
false
;
do
{
if
(
kiero
::
init
(
kiero
::
RenderType
::
D3D11
)
==
kiero
::
Status
::
Success
)
{
kiero
::
bind
(
8
,
(
void
*
*
)
&
oPresent
,
hkPresent
)
;
init_hook
=
true
;
}
}
while
(
!
init_hook
)
;
return
TRUE
;
}
BOOL WINAPI
DllMain
(
HMODULE hMod
,
DWORD dwReason
,
LPVOID lpReserved
)
{
switch
(
dwReason
)
{
case
DLL_PROCESS_ATTACH
:
DisableThreadLibraryCalls
(
hMod
)
;
CreateThread
(
nullptr
,
0
,
MainThread
,
hMod
,
0
,
nullptr
)
;
break
;
case
DLL_PROCESS_DETACH
:
kiero
::
shutdown
(
)
;
break
;
}
return
TRUE
;
}
 
Ответить с цитированием

  #2  
Старый 19.01.2024, 17:14
Adofe
Новичок
Регистрация: 05.01.2024
Сообщений: 6
С нами: 1241133

Репутация: 3
По умолчанию

C++:





Код:
HRESULT __stdcall
hkPresent
(
IDXGISwapChain
*
pSwapChain
,
UINT SyncInterval
,
UINT Flags
)
{
if
(
!
init
)
{
if
(
SUCCEEDED
(
pSwapChain
->
GetDevice
(
__uuidof
(
ID3D11Device
)
,
(
void
*
*
)
&
pDevice
)
)
)
{
ImGui
::
StyleColorsLight
;
pDevice
->
GetImmediateContext
(
&
pContext
)
;
DXGI_SWAP_CHAIN_DESC sd
;
pSwapChain
->
GetDesc
(
&
sd
)
;
window
=
sd
.
OutputWindow
;
ID3D11Texture2D
*
pBackBuffer
;
pSwapChain
->
GetBuffer
(
0
,
__uuidof
(
ID3D11Texture2D
)
,
(
LPVOID
*
)
&
pBackBuffer
)
;
pDevice
->
CreateRenderTargetView
(
pBackBuffer
,
NULL
,
&
mainRenderTargetView
)
;
pBackBuffer
->
Release
(
)
;
oWndProc
=
(
WNDPROC
)
SetWindowLongPtr
(
window
,
GWLP_WNDPROC
,
(
LONG_PTR
)
WndProc
)
;
InitImGui
(
)
;
init
=
true
;
}
}
if
(
GetAsyncKeyState
(
VK_INSERT
)
&
1
)
{
menu
=
!
menu
;
}
if
(
menu
)
{
ImGui_ImplDX11_NewFrame
(
)
;
ImGui_ImplWin32_NewFrame
(
)
;
ImGui
::
NewFrame
(
)
;
ImGui
::
Begin
(
"я гей но об этом никто не узнает"
)
;
ImGui
::
End
(
)
;
ImGui
::
Render
(
)
;
pContext
->
OMSetRenderTargets
(
1
,
&
mainRenderTargetView
,
NULL
)
;
ImGui_ImplDX11_RenderDrawData
(
ImGui
::
GetDrawData
(
)
)
;
}
return
oPresent
(
pSwapChain
,
SyncInterval
,
Flags
)
;
}
 
Ответить с цитированием

  #3  
Старый 19.01.2024, 18:11
Lqst31
Новичок
Регистрация: 24.12.2023
Сообщений: 8
С нами: 1258778

Репутация: 3
По умолчанию

Цитата:
Сообщение от Adofe  

C++:





Код:
HRESULT __stdcall
hkPresent
(
IDXGISwapChain
*
pSwapChain
,
UINT SyncInterval
,
UINT Flags
)
{
if
(
!
init
)
{
if
(
SUCCEEDED
(
pSwapChain
->
GetDevice
(
__uuidof
(
ID3D11Device
)
,
(
void
*
*
)
&
pDevice
)
)
)
{
ImGui
::
StyleColorsLight
;
pDevice
->
GetImmediateContext
(
&
pContext
)
;
DXGI_SWAP_CHAIN_DESC sd
;
pSwapChain
->
GetDesc
(
&
sd
)
;
window
=
sd
.
OutputWindow
;
ID3D11Texture2D
*
pBackBuffer
;
pSwapChain
->
GetBuffer
(
0
,
__uuidof
(
ID3D11Texture2D
)
,
(
LPVOID
*
)
&
pBackBuffer
)
;
pDevice
->
CreateRenderTargetView
(
pBackBuffer
,
NULL
,
&
mainRenderTargetView
)
;
pBackBuffer
->
Release
(
)
;
oWndProc
=
(
WNDPROC
)
SetWindowLongPtr
(
window
,
GWLP_WNDPROC
,
(
LONG_PTR
)
WndProc
)
;
InitImGui
(
)
;
init
=
true
;
}
}
if
(
GetAsyncKeyState
(
VK_INSERT
)
&
1
)
{
menu
=
!
menu
;
}
if
(
menu
)
{
ImGui_ImplDX11_NewFrame
(
)
;
ImGui_ImplWin32_NewFrame
(
)
;
ImGui
::
NewFrame
(
)
;
ImGui
::
Begin
(
"я гей но об этом никто не узнает"
)
;
ImGui
::
End
(
)
;
ImGui
::
Render
(
)
;
pContext
->
OMSetRenderTargets
(
1
,
&
mainRenderTargetView
,
NULL
)
;
ImGui_ImplDX11_RenderDrawData
(
ImGui
::
GetDrawData
(
)
)
;
}
return
oPresent
(
pSwapChain
,
SyncInterval
,
Flags
)
;
}

спасибо все роботает
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.