 |

19.01.2024, 11:22
|
|
Новичок
Регистрация: 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
;
}
|
|
|

19.01.2024, 17:14
|
|
Новичок
Регистрация: 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
)
;
}
|
|
|

19.01.2024, 18:11
|
|
Новичок
Регистрация: 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)
|
|
|
|