Update kiero, fixed issues with other overlays maybe?

This commit is contained in:
Grinch_ 2021-04-23 02:51:40 +06:00
parent 2387adccdb
commit 298103c5db
33 changed files with 148 additions and 115 deletions

View File

@ -30,10 +30,10 @@ HRESULT Hook::Reset(IDirect3DDevice9* pDevice, D3DPRESENT_PARAMETERS* pPresentat
{
ImGui_ImplDX9_InvalidateDeviceObjects();
return oReset9(pDevice, pPresentationParameters);
return oReset(pDevice, pPresentationParameters);
}
void Hook::Present(void* ptr)
void Hook::RenderFrame(void* ptr)
{
if (!ImGui::GetCurrentContext() || Globals::menu_closing)
return;
@ -127,21 +127,22 @@ void Hook::Present(void* ptr)
io.IniFilename = NULL;
io.LogFilename = NULL;
io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad && ImGuiConfigFlags_NavEnableKeyboard;
style.WindowTitleAlign = ImVec2(0.5, 0.5);
oWndProc = (WNDPROC)SetWindowLongPtr(RsGlobal.ps->window, GWL_WNDPROC, (LRESULT)WndProc);
}
}
HRESULT Hook::PresentDx9Handler(IDirect3DDevice9* pDevice, RECT* pSourceRect, RECT* pDestRect, HWND hDestWindowOverride, RGNDATA* pDirtyRegion)
HRESULT Hook::Dx9Handler(IDirect3DDevice9* pDevice)
{
Present(pDevice);
return oPresent9(pDevice, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion);
RenderFrame(pDevice);
return oEndScene(pDevice);
}
HRESULT Hook::PresentDx11Handler(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
HRESULT Hook::Dx11Handler(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
{
Present(pSwapChain);
RenderFrame(pSwapChain);
return oPresent11(pSwapChain, SyncInterval, Flags);
}
@ -193,15 +194,15 @@ Hook::Hook()
if (kiero::init(kiero::RenderType::D3D11) == kiero::Status::Success)
{
Globals::renderer = Render_DirectX11;
kiero::bind(8, (void**)&oPresent11, PresentDx11Handler);
kiero::bind(8, (void**)&oPresent11, Dx11Handler);
}
else
{
if (kiero::init(kiero::RenderType::D3D9) == kiero::Status::Success)
{
Globals::renderer = Render_DirectX9;
kiero::bind(16, (void**)&oReset9, Reset);
kiero::bind(17, (void**)&oPresent9, PresentDx9Handler);
kiero::bind(16, (void**)&oReset, Reset);
kiero::bind(42, (void**)&oEndScene, Dx9Handler);
}
}
}

View File

@ -1,7 +1,7 @@
#pragma once
#include "pch.h"
typedef HRESULT(CALLBACK* f_Present9)(IDirect3DDevice9*, RECT*, RECT*, HWND, RGNDATA*);
typedef HRESULT(CALLBACK* f_EndScene)(IDirect3DDevice9*);
typedef HRESULT(CALLBACK* f_Present11)(IDXGISwapChain*, UINT, UINT);
typedef HRESULT(CALLBACK* f_Reset)(IDirect3DDevice9*, D3DPRESENT_PARAMETERS*);
@ -12,13 +12,13 @@ class Hook
private:
inline static WNDPROC oWndProc = NULL;
inline static f_Present11 oPresent11 = NULL;
inline static f_Present9 oPresent9 = NULL;
inline static f_Reset oReset9 = NULL;
inline static f_EndScene oEndScene = NULL;
inline static f_Reset oReset = NULL;
inline static bool mouse_visibility = false;
static void CALLBACK Present(void* ptr);
static HRESULT CALLBACK PresentDx9Handler(IDirect3DDevice9* pDevice, RECT* pSourceRect, RECT* pDestRect, HWND hDestWindowOverride, RGNDATA* pDirtyRegion);
static HRESULT CALLBACK PresentDx11Handler(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags);
static void CALLBACK RenderFrame(void* ptr);
static HRESULT CALLBACK Dx9Handler(IDirect3DDevice9* pDevice);
static HRESULT CALLBACK Dx11Handler(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags);
static HRESULT CALLBACK Reset(IDirect3DDevice9* pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters);
static LRESULT CALLBACK WndProc(const HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
static void ShowMouse(bool state);

View File

@ -2,5 +2,5 @@
#define MENU_NAME "Cheat Menu"
#define MENU_VERSION_NUMBER "2.7"
#define MENU_VERSION MENU_VERSION_NUMBER"-beta"
#define BUILD_NUMBER "20210413"
#define BUILD_NUMBER "20210423"
#define MENU_TITLE MENU_NAME " v" MENU_VERSION "(" BUILD_NUMBER ")"

View File

@ -173,7 +173,7 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>$(PLUGIN_SDK_DIR)\shared\game\;$(PLUGIN_SDK_DIR)\shared\;$(PLUGIN_SDK_DIR)\plugin_sa\game_sa\;$(PLUGIN_SDK_DIR)\plugin_sa\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>

View File

@ -1,25 +1,25 @@
c:\users\grinch_\source\repos\cheatmenu\depend\release\depend.pdb
c:\users\grinch_\source\repos\cheatmenu\depend\release\kiero.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\imgui_widgets.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\imgui_tables.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\imgui_impl_win32.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\imgui_impl_dx9.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\imgui_impl_dx11.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\imgui_draw.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\imgui_demo.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\imgui.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\main.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\library.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\idaccess.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\zip.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\trampoline.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\hook.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\hde32.obj
c:\users\grinch_\source\repos\cheatmenu\depend\release\buffer.obj
c:\users\grinch_\source\repos\cheatmenu\release\depend.lib
c:\users\grinch_\source\repos\cheatmenu\depend\release\depend.tlog\cl.command.1.tlog
c:\users\grinch_\source\repos\cheatmenu\depend\release\depend.tlog\cl.read.1.tlog
c:\users\grinch_\source\repos\cheatmenu\depend\release\depend.tlog\cl.write.1.tlog
c:\users\grinch_\source\repos\cheatmenu\depend\release\depend.tlog\lib-link.read.1.tlog
c:\users\grinch_\source\repos\cheatmenu\depend\release\depend.tlog\lib-link.write.1.tlog
c:\users\grinch_\source\repos\cheatmenu\depend\release\depend.tlog\lib.command.1.tlog
c:\work\cheat-menu\depend\release\depend.pdb
c:\work\cheat-menu\depend\release\kiero.obj
c:\work\cheat-menu\depend\release\imgui_widgets.obj
c:\work\cheat-menu\depend\release\imgui_tables.obj
c:\work\cheat-menu\depend\release\imgui_impl_win32.obj
c:\work\cheat-menu\depend\release\imgui_impl_dx9.obj
c:\work\cheat-menu\depend\release\imgui_impl_dx11.obj
c:\work\cheat-menu\depend\release\imgui_draw.obj
c:\work\cheat-menu\depend\release\imgui_demo.obj
c:\work\cheat-menu\depend\release\imgui.obj
c:\work\cheat-menu\depend\release\main.obj
c:\work\cheat-menu\depend\release\library.obj
c:\work\cheat-menu\depend\release\idaccess.obj
c:\work\cheat-menu\depend\release\zip.obj
c:\work\cheat-menu\depend\release\trampoline.obj
c:\work\cheat-menu\depend\release\hook.obj
c:\work\cheat-menu\depend\release\hde32.obj
c:\work\cheat-menu\depend\release\buffer.obj
c:\work\cheat-menu\release\depend.lib
c:\work\cheat-menu\depend\release\depend.tlog\cl.command.1.tlog
c:\work\cheat-menu\depend\release\depend.tlog\cl.read.1.tlog
c:\work\cheat-menu\depend\release\depend.tlog\cl.write.1.tlog
c:\work\cheat-menu\depend\release\depend.tlog\lib-link.read.1.tlog
c:\work\cheat-menu\depend\release\depend.tlog\lib-link.write.1.tlog
c:\work\cheat-menu\depend\release\depend.tlog\lib.command.1.tlog

View File

@ -15,16 +15,16 @@
hook.c
trampoline.c
zip.c
C:\Users\Grinch_\source\repos\CheatMenu\Depend\zip\miniz.h(6104,45): warning C4244: 'return': conversion from 'mz_uint64' to 'mz_uint', possible loss of data
C:\Users\Grinch_\source\repos\CheatMenu\Depend\zip\zip.c(1252,32): warning C4244: 'function': conversion from 'const mz_uint64' to 'size_t', possible loss of data
C:\Users\Grinch_\source\repos\CheatMenu\Depend\zip\zip.c(1260,33): warning C4244: 'function': conversion from 'const mz_uint64' to 'size_t', possible loss of data
C:\Users\Grinch_\source\repos\CheatMenu\Depend\zip\zip.c(1270,55): warning C4244: 'function': conversion from 'const mz_int64' to 'size_t', possible loss of data
C:\Users\Grinch_\source\repos\CheatMenu\Depend\zip\zip.c(1320,52): warning C4244: 'function': conversion from 'mz_uint64' to 'size_t', possible loss of data
C:\Users\Grinch_\source\repos\CheatMenu\Depend\zip\zip.c(1321,33): warning C4244: 'function': conversion from 'mz_uint64' to 'size_t', possible loss of data
C:\Users\Grinch_\source\repos\CheatMenu\Depend\zip\zip.c(1324,17): warning C4244: '-=': conversion from 'mz_uint64' to 'mz_uint32', possible loss of data
C:\Users\Grinch_\source\repos\CheatMenu\Depend\zip\zip.c(1329,34): warning C4244: 'function': conversion from 'mz_uint64' to 'size_t', possible loss of data
C:\Users\Grinch_\source\repos\CheatMenu\Depend\zip\zip.c(1332,17): warning C4244: '-=': conversion from 'mz_uint64' to 'mz_uint32', possible loss of data
C:\Users\Grinch_\source\repos\CheatMenu\Depend\zip\zip.c(1336,49): warning C4244: '=': conversion from 'mz_uint64' to 'size_t', possible loss of data
C:\Work\Cheat-Menu\Depend\zip\miniz.h(6104,45): warning C4244: 'return': conversion from 'mz_uint64' to 'mz_uint', possible loss of data
C:\Work\Cheat-Menu\Depend\zip\zip.c(1252,32): warning C4244: 'function': conversion from 'const mz_uint64' to 'size_t', possible loss of data
C:\Work\Cheat-Menu\Depend\zip\zip.c(1260,33): warning C4244: 'function': conversion from 'const mz_uint64' to 'size_t', possible loss of data
C:\Work\Cheat-Menu\Depend\zip\zip.c(1270,55): warning C4244: 'function': conversion from 'const mz_int64' to 'size_t', possible loss of data
C:\Work\Cheat-Menu\Depend\zip\zip.c(1320,52): warning C4244: 'function': conversion from 'mz_uint64' to 'size_t', possible loss of data
C:\Work\Cheat-Menu\Depend\zip\zip.c(1321,33): warning C4244: 'function': conversion from 'mz_uint64' to 'size_t', possible loss of data
C:\Work\Cheat-Menu\Depend\zip\zip.c(1324,17): warning C4244: '-=': conversion from 'mz_uint64' to 'mz_uint32', possible loss of data
C:\Work\Cheat-Menu\Depend\zip\zip.c(1329,34): warning C4244: 'function': conversion from 'mz_uint64' to 'size_t', possible loss of data
C:\Work\Cheat-Menu\Depend\zip\zip.c(1332,17): warning C4244: '-=': conversion from 'mz_uint64' to 'mz_uint32', possible loss of data
C:\Work\Cheat-Menu\Depend\zip\zip.c(1336,49): warning C4244: '=': conversion from 'mz_uint64' to 'size_t', possible loss of data
d3d11.lib(d3d11.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in d3d9.lib(d3d9.dll); second definition ignored
XInput9_1_0.lib(XINPUT9_1_0.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in d3d9.lib(d3d9.dll); second definition ignored
Depend.vcxproj -> C:\Users\Grinch_\source\repos\CheatMenu\Release\Depend.lib
Depend.vcxproj -> C:\Work\Cheat-Menu\Release\Depend.lib

Binary file not shown.

View File

@ -1,2 +1,2 @@
PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.28.29910:TargetPlatformVersion=10.0.19041.0:
Release|Win32|C:\Users\Grinch_\source\repos\CheatMenu\|
Release|Win32|C:\Work\Cheat-Menu\|

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,33 +1,6 @@
/* Modified version of https://github.com/Rebzzel/kiero
MIT License
Copyright(c) 2014 - 2020 Rebzzel
Copyright(c) 2021 Grinch_
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files(the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions :
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#include "kiero.h"
#include <Windows.h>
#include <assert.h>
#include "Renderware.h"
#if KIERO_INCLUDE_D3D9
# include <d3d9.h>
@ -54,11 +27,11 @@ SOFTWARE.
#endif
#if KIERO_INCLUDE_VULKAN
#include <vulkan/vulkan.h>
# include <vulkan/vulkan.h>
#endif
#if KIERO_USE_MINHOOK
#include "minhook/MinHook.h"
# include "minhook/MinHook.h"
#endif
#ifdef _UNICODE
@ -83,22 +56,94 @@ kiero::Status::Enum kiero::init(RenderType::Enum _renderType)
{
if (_renderType >= RenderType::D3D9 && _renderType <= RenderType::D3D12)
{
WNDCLASSEX windowClass;
windowClass.cbSize = sizeof(WNDCLASSEX);
windowClass.style = CS_HREDRAW | CS_VREDRAW;
windowClass.lpfnWndProc = DefWindowProc;
windowClass.cbClsExtra = 0;
windowClass.cbWndExtra = 0;
windowClass.hInstance = GetModuleHandle(NULL);
windowClass.hIcon = NULL;
windowClass.hCursor = NULL;
windowClass.hbrBackground = NULL;
windowClass.lpszMenuName = NULL;
windowClass.lpszClassName = KIERO_TEXT("Kiero");
windowClass.hIconSm = NULL;
::RegisterClassEx(&windowClass);
HWND window = ::CreateWindow(windowClass.lpszClassName, KIERO_TEXT("Kiero DirectX Window"), WS_OVERLAPPEDWINDOW, 0, 0, 100, 100, NULL, NULL, windowClass.hInstance, NULL);
if (_renderType == RenderType::D3D9)
{
#if KIERO_INCLUDE_D3D9
if (GetModuleHandle(KIERO_TEXT("d3d9.dll")) == NULL)
HMODULE libD3D9;
if ((libD3D9 = ::GetModuleHandle(KIERO_TEXT("d3d9.dll"))) == NULL)
{
::DestroyWindow(window);
::UnregisterClass(windowClass.lpszClassName, windowClass.hInstance);
return Status::ModuleNotFoundError;
}
void* Direct3DCreate9;
if ((Direct3DCreate9 = ::GetProcAddress(libD3D9, "Direct3DCreate9")) == NULL)
{
::DestroyWindow(window);
::UnregisterClass(windowClass.lpszClassName, windowClass.hInstance);
return Status::UnknownError;
}
LPDIRECT3D9 direct3D9;
if ((direct3D9 = ((LPDIRECT3D9(__stdcall*)(uint32_t))(Direct3DCreate9))(D3D_SDK_VERSION)) == NULL)
{
::DestroyWindow(window);
::UnregisterClass(windowClass.lpszClassName, windowClass.hInstance);
return Status::UnknownError;
}
D3DPRESENT_PARAMETERS params;
params.BackBufferWidth = 0;
params.BackBufferHeight = 0;
params.BackBufferFormat = D3DFMT_UNKNOWN;
params.BackBufferCount = 0;
params.MultiSampleType = D3DMULTISAMPLE_NONE;
params.MultiSampleQuality = NULL;
params.SwapEffect = D3DSWAPEFFECT_DISCARD;
params.hDeviceWindow = window;
params.Windowed = 1;
params.EnableAutoDepthStencil = 0;
params.AutoDepthStencilFormat = D3DFMT_UNKNOWN;
params.Flags = NULL;
params.FullScreen_RefreshRateInHz = 0;
params.PresentationInterval = 0;
LPDIRECT3DDEVICE9 device;
if (direct3D9->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_NULLREF, window, D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_DISABLE_DRIVER_MANAGEMENT, &params, &device) < 0)
{
direct3D9->Release();
::DestroyWindow(window);
::UnregisterClass(windowClass.lpszClassName, windowClass.hInstance);
return Status::UnknownError;
}
g_methodsTable = (uint150_t*)::calloc(119, sizeof(uint150_t));
::memcpy(g_methodsTable, *(uint150_t**)GetD3DDevice(), 119 * sizeof(uint150_t));
::memcpy(g_methodsTable, *(uint150_t**)device, 119 * sizeof(uint150_t));
#if KIERO_USE_MINHOOK
MH_Initialize();
#endif
device->Release();
device = NULL;
direct3D9->Release();
direct3D9 = NULL;
g_renderType = RenderType::D3D9;
::DestroyWindow(window);
::UnregisterClass(windowClass.lpszClassName, windowClass.hInstance);
return Status::Success;
#endif
}
@ -218,12 +263,16 @@ kiero::Status::Enum kiero::init(RenderType::Enum _renderType)
HMODULE libD3D11;
if ((libD3D11 = ::GetModuleHandle(KIERO_TEXT("d3d11.dll"))) == NULL)
{
::DestroyWindow(window);
::UnregisterClass(windowClass.lpszClassName, windowClass.hInstance);
return Status::ModuleNotFoundError;
}
void* D3D11CreateDeviceAndSwapChain;
if ((D3D11CreateDeviceAndSwapChain = ::GetProcAddress(libD3D11, "D3D11CreateDeviceAndSwapChain")) == NULL)
{
::DestroyWindow(window);
::UnregisterClass(windowClass.lpszClassName, windowClass.hInstance);
return Status::UnknownError;
}
@ -251,7 +300,7 @@ kiero::Status::Enum kiero::init(RenderType::Enum _renderType)
swapChainDesc.SampleDesc = sampleDesc;
swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
swapChainDesc.BufferCount = 1;
swapChainDesc.OutputWindow = RsGlobal.ps->window;
swapChainDesc.OutputWindow = window;
swapChainDesc.Windowed = 1;
swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
swapChainDesc.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH;
@ -274,6 +323,8 @@ kiero::Status::Enum kiero::init(RenderType::Enum _renderType)
D3D_FEATURE_LEVEL*,
ID3D11DeviceContext**))(D3D11CreateDeviceAndSwapChain))(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, featureLevels, 2, D3D11_SDK_VERSION, &swapChainDesc, &swapChain, &device, &featureLevel, &context) < 0)
{
::DestroyWindow(window);
::UnregisterClass(windowClass.lpszClassName, windowClass.hInstance);
return Status::UnknownError;
}
@ -295,6 +346,9 @@ kiero::Status::Enum kiero::init(RenderType::Enum _renderType)
context->Release();
context = NULL;
::DestroyWindow(window);
::UnregisterClass(windowClass.lpszClassName, windowClass.hInstance);
g_renderType = RenderType::D3D11;
return Status::Success;
@ -451,6 +505,9 @@ kiero::Status::Enum kiero::init(RenderType::Enum _renderType)
#endif
}
::DestroyWindow(window);
::UnregisterClass(windowClass.lpszClassName, windowClass.hInstance);
return Status::NotSupportedError;
}
else if (_renderType != RenderType::Auto)
@ -548,7 +605,7 @@ kiero::Status::Enum kiero::init(RenderType::Enum _renderType)
g_methodsTable = (uint150_t*)::calloc(size, sizeof(uint150_t));
for (unsigned int i = 0; i < size; i++)
for (int i = 0; i < size; i++)
{
g_methodsTable[i] = (uint150_t)::GetProcAddress(libVulkan, methodsNames[i]);
}

View File

@ -1,34 +1,9 @@
/* Modified version of https://github.com/Rebzzel/kiero
MIT License
Copyright(c) 2014 - 2020 Rebzzel
Copyright(c) 2021 Grinch_
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files(the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions :
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#ifndef __KIERO_H__
#define __KIERO_H__
#include <stdint.h>
#define KIERO_VERSION "1.2.10"
#define KIERO_VERSION "1.2.12"
#define KIERO_INCLUDE_D3D9 1 // 1 if you need D3D9 hook
#define KIERO_INCLUDE_D3D10 0 // 1 if you need D3D10 hook