Apply clang-format code style to all source files
This commit is contained in:
+300
-189
@@ -1,158 +1,232 @@
|
||||
#define LOG_MODULE "hook-d3d9"
|
||||
|
||||
#include "hook/com-proxy.h"
|
||||
#include "hook/d3d9.h"
|
||||
#include "hook/com-proxy.h"
|
||||
#include "hook/table.h"
|
||||
|
||||
#include "util/log.h"
|
||||
|
||||
/* ------------------------------------------------------------------------------------------------------------------ */
|
||||
/* ------------------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static IDirect3D9* (STDCALL* real_Direct3DCreate9)(UINT sdk_ver);
|
||||
static IDirect3D9 *(STDCALL *real_Direct3DCreate9)(UINT sdk_ver);
|
||||
|
||||
static BOOL (STDCALL *real_EnumDisplayDevicesA)(
|
||||
const char *dev_name, DWORD dev_num, DISPLAY_DEVICEA *info,
|
||||
DWORD flags);
|
||||
static BOOL(STDCALL *real_EnumDisplayDevicesA)(
|
||||
const char *dev_name, DWORD dev_num, DISPLAY_DEVICEA *info, DWORD flags);
|
||||
|
||||
static HWND (STDCALL *real_CreateWindowExA)(
|
||||
DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle,
|
||||
int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu,
|
||||
HINSTANCE hInstance, LPVOID lpParam);
|
||||
static HWND(STDCALL *real_CreateWindowExA)(
|
||||
DWORD dwExStyle,
|
||||
LPCSTR lpClassName,
|
||||
LPCSTR lpWindowName,
|
||||
DWORD dwStyle,
|
||||
int X,
|
||||
int Y,
|
||||
int nWidth,
|
||||
int nHeight,
|
||||
HWND hWndParent,
|
||||
HMENU hMenu,
|
||||
HINSTANCE hInstance,
|
||||
LPVOID lpParam);
|
||||
|
||||
static BOOL (STDCALL* real_GetClientRect)(HWND hWnd, LPRECT lpRect);
|
||||
static BOOL(STDCALL *real_GetClientRect)(HWND hWnd, LPRECT lpRect);
|
||||
|
||||
static HRESULT (STDCALL* real_CreateDevice)(IDirect3D9 *self, UINT adapter, D3DDEVTYPE type, HWND hwnd, DWORD flags,
|
||||
D3DPRESENT_PARAMETERS *pp, IDirect3DDevice9 **pdev);
|
||||
static HRESULT(STDCALL *real_CreateDevice)(
|
||||
IDirect3D9 *self,
|
||||
UINT adapter,
|
||||
D3DDEVTYPE type,
|
||||
HWND hwnd,
|
||||
DWORD flags,
|
||||
D3DPRESENT_PARAMETERS *pp,
|
||||
IDirect3DDevice9 **pdev);
|
||||
|
||||
static HRESULT (STDCALL* real_CreateTexture)(IDirect3DDevice9* self, UINT width, UINT height, UINT levels, DWORD usage,
|
||||
D3DFORMAT format, D3DPOOL pool, IDirect3DTexture9** texture, HANDLE* shared_handle);
|
||||
static HRESULT(STDCALL *real_CreateTexture)(
|
||||
IDirect3DDevice9 *self,
|
||||
UINT width,
|
||||
UINT height,
|
||||
UINT levels,
|
||||
DWORD usage,
|
||||
D3DFORMAT format,
|
||||
D3DPOOL pool,
|
||||
IDirect3DTexture9 **texture,
|
||||
HANDLE *shared_handle);
|
||||
|
||||
static HRESULT (STDCALL* real_BeginScene)(IDirect3DDevice9* self);
|
||||
static HRESULT(STDCALL *real_BeginScene)(IDirect3DDevice9 *self);
|
||||
|
||||
static HRESULT (STDCALL* real_EndScene)(IDirect3DDevice9* self);
|
||||
static HRESULT(STDCALL *real_EndScene)(IDirect3DDevice9 *self);
|
||||
|
||||
static HRESULT (STDCALL* real_Present)(IDirect3DDevice9* self,
|
||||
CONST RECT *pSourceRect, CONST RECT *pDestRect,
|
||||
HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion);
|
||||
static HRESULT(STDCALL *real_Present)(
|
||||
IDirect3DDevice9 *self,
|
||||
CONST RECT *pSourceRect,
|
||||
CONST RECT *pDestRect,
|
||||
HWND hDestWindowOverride,
|
||||
CONST RGNDATA *pDirtyRegion);
|
||||
|
||||
static HRESULT (STDCALL* real_SetRenderState)(IDirect3DDevice9* self,
|
||||
D3DRENDERSTATETYPE State, DWORD Value);
|
||||
static HRESULT(STDCALL *real_SetRenderState)(
|
||||
IDirect3DDevice9 *self, D3DRENDERSTATETYPE State, DWORD Value);
|
||||
|
||||
static HRESULT (STDCALL *real_DrawPrimitiveUP)(
|
||||
IDirect3DDevice9* self, D3DPRIMITIVETYPE primitive_type,
|
||||
UINT primitive_count, const void *data, UINT stride);
|
||||
static HRESULT(STDCALL *real_DrawPrimitiveUP)(
|
||||
IDirect3DDevice9 *self,
|
||||
D3DPRIMITIVETYPE primitive_type,
|
||||
UINT primitive_count,
|
||||
const void *data,
|
||||
UINT stride);
|
||||
|
||||
/* ------------------------------------------------------------------------------------------------------------------ */
|
||||
/* ------------------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static IDirect3D9* STDCALL my_Direct3DCreate9(UINT sdk_ver);
|
||||
static IDirect3D9 *STDCALL my_Direct3DCreate9(UINT sdk_ver);
|
||||
|
||||
static BOOL STDCALL my_EnumDisplayDevicesA(const char *dev_name, DWORD dev_num, DISPLAY_DEVICEA *info, DWORD flags);
|
||||
static BOOL STDCALL my_EnumDisplayDevicesA(
|
||||
const char *dev_name, DWORD dev_num, DISPLAY_DEVICEA *info, DWORD flags);
|
||||
|
||||
static HWND STDCALL my_CreateWindowExA(
|
||||
DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle,
|
||||
int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu,
|
||||
HINSTANCE hInstance, LPVOID lpParam);
|
||||
DWORD dwExStyle,
|
||||
LPCSTR lpClassName,
|
||||
LPCSTR lpWindowName,
|
||||
DWORD dwStyle,
|
||||
int X,
|
||||
int Y,
|
||||
int nWidth,
|
||||
int nHeight,
|
||||
HWND hWndParent,
|
||||
HMENU hMenu,
|
||||
HINSTANCE hInstance,
|
||||
LPVOID lpParam);
|
||||
|
||||
static BOOL STDCALL my_GetClientRect(HWND hWnd, LPRECT lpRect);
|
||||
|
||||
static HRESULT STDCALL my_CreateDevice(IDirect3D9 *self, UINT adapter, D3DDEVTYPE type, HWND hwnd, DWORD flags,
|
||||
D3DPRESENT_PARAMETERS *pp, IDirect3DDevice9 **pdev);
|
||||
static HRESULT STDCALL my_CreateDevice(
|
||||
IDirect3D9 *self,
|
||||
UINT adapter,
|
||||
D3DDEVTYPE type,
|
||||
HWND hwnd,
|
||||
DWORD flags,
|
||||
D3DPRESENT_PARAMETERS *pp,
|
||||
IDirect3DDevice9 **pdev);
|
||||
|
||||
static HRESULT STDCALL my_CreateTexture(IDirect3DDevice9* self, UINT width, UINT height, UINT levels, DWORD usage,
|
||||
D3DFORMAT format, D3DPOOL pool, IDirect3DTexture9** texture, HANDLE* shared_handle);
|
||||
static HRESULT STDCALL my_CreateTexture(
|
||||
IDirect3DDevice9 *self,
|
||||
UINT width,
|
||||
UINT height,
|
||||
UINT levels,
|
||||
DWORD usage,
|
||||
D3DFORMAT format,
|
||||
D3DPOOL pool,
|
||||
IDirect3DTexture9 **texture,
|
||||
HANDLE *shared_handle);
|
||||
|
||||
static HRESULT STDCALL my_BeginScene(IDirect3DDevice9* self);
|
||||
static HRESULT STDCALL my_BeginScene(IDirect3DDevice9 *self);
|
||||
|
||||
static HRESULT STDCALL my_EndScene(IDirect3DDevice9* self);
|
||||
static HRESULT STDCALL my_EndScene(IDirect3DDevice9 *self);
|
||||
|
||||
static HRESULT STDCALL my_Present(IDirect3DDevice9* self,
|
||||
CONST RECT *pSourceRect, CONST RECT *pDestRect,
|
||||
HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion);
|
||||
static HRESULT STDCALL my_Present(
|
||||
IDirect3DDevice9 *self,
|
||||
CONST RECT *pSourceRect,
|
||||
CONST RECT *pDestRect,
|
||||
HWND hDestWindowOverride,
|
||||
CONST RGNDATA *pDirtyRegion);
|
||||
|
||||
static HRESULT STDCALL my_SetRenderState(IDirect3DDevice9* self,
|
||||
D3DRENDERSTATETYPE State, DWORD Value);
|
||||
static HRESULT STDCALL my_SetRenderState(
|
||||
IDirect3DDevice9 *self, D3DRENDERSTATETYPE State, DWORD Value);
|
||||
|
||||
static HRESULT STDCALL my_DrawPrimitiveUP(
|
||||
IDirect3DDevice9* self, D3DPRIMITIVETYPE primitive_type,
|
||||
UINT primitive_count, const void *data, UINT stride);
|
||||
IDirect3DDevice9 *self,
|
||||
D3DPRIMITIVETYPE primitive_type,
|
||||
UINT primitive_count,
|
||||
const void *data,
|
||||
UINT stride);
|
||||
|
||||
/* ------------------------------------------------------------------------------------------------------------------ */
|
||||
/* ------------------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static const struct hook_symbol hook_d3d9_hook_syms[] = {
|
||||
{
|
||||
.name = "Direct3DCreate9",
|
||||
.patch = my_Direct3DCreate9,
|
||||
.link = (void **) &real_Direct3DCreate9
|
||||
},
|
||||
{.name = "Direct3DCreate9",
|
||||
.patch = my_Direct3DCreate9,
|
||||
.link = (void **) &real_Direct3DCreate9},
|
||||
};
|
||||
|
||||
static const struct hook_symbol hook_d3d9_hook_user32_syms[] = {
|
||||
{
|
||||
.name = "EnumDisplayDevicesA",
|
||||
.patch = my_EnumDisplayDevicesA,
|
||||
.link = (void **) &real_EnumDisplayDevicesA
|
||||
},
|
||||
{
|
||||
.name = "CreateWindowExA",
|
||||
.patch = my_CreateWindowExA,
|
||||
.link = (void **) &real_CreateWindowExA
|
||||
},
|
||||
{
|
||||
.name = "GetClientRect",
|
||||
.patch = my_GetClientRect,
|
||||
.link = (void **) &real_GetClientRect
|
||||
},
|
||||
{.name = "EnumDisplayDevicesA",
|
||||
.patch = my_EnumDisplayDevicesA,
|
||||
.link = (void **) &real_EnumDisplayDevicesA},
|
||||
{.name = "CreateWindowExA",
|
||||
.patch = my_CreateWindowExA,
|
||||
.link = (void **) &real_CreateWindowExA},
|
||||
{.name = "GetClientRect",
|
||||
.patch = my_GetClientRect,
|
||||
.link = (void **) &real_GetClientRect},
|
||||
};
|
||||
|
||||
/* ------------------------------------------------------------------------------------------------------------------ */
|
||||
/* ------------------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_invalid(struct hook_d3d9_irp* irp);
|
||||
static HRESULT hook_d3d9_irp_handler_real_invalid(struct hook_d3d9_irp *irp);
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_ctx_create(struct hook_d3d9_irp* irp);
|
||||
static HRESULT hook_d3d9_irp_handler_real_ctx_create(struct hook_d3d9_irp *irp);
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_enum_display_devices(struct hook_d3d9_irp* irp);
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_enum_display_devices(struct hook_d3d9_irp *irp);
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_create_window_ex(struct hook_d3d9_irp* irp);
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_create_window_ex(struct hook_d3d9_irp *irp);
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_get_client_rect(struct hook_d3d9_irp* irp);
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_get_client_rect(struct hook_d3d9_irp *irp);
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_create_device(struct hook_d3d9_irp* irp);
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_dev_create_device(struct hook_d3d9_irp *irp);
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_create_texture(struct hook_d3d9_irp* irp);
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_dev_create_texture(struct hook_d3d9_irp *irp);
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_begin_scene(struct hook_d3d9_irp* irp);
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_dev_begin_scene(struct hook_d3d9_irp *irp);
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_end_scene(struct hook_d3d9_irp* irp);
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_dev_end_scene(struct hook_d3d9_irp *irp);
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_present(struct hook_d3d9_irp* irp);
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_dev_present(struct hook_d3d9_irp *irp);
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_set_render_state(struct hook_d3d9_irp* irp);
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_dev_set_render_state(struct hook_d3d9_irp *irp);
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_draw_primitive_up(struct hook_d3d9_irp* irp);
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_dev_draw_primitive_up(struct hook_d3d9_irp *irp);
|
||||
|
||||
/* ------------------------------------------------------------------------------------------------------------------ */
|
||||
/* ------------------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static const hook_d3d9_irp_handler_t hook_d3d9_irp_real_handlers[] = {
|
||||
[HOOK_D3D9_IRP_OP_INVALID] = hook_d3d9_irp_handler_real_invalid,
|
||||
[HOOK_D3D9_IRP_OP_CTX_CREATE] = hook_d3d9_irp_handler_real_ctx_create,
|
||||
[HOOK_D3D9_IRP_OP_ENUM_DISPLAY_DEVICES] = hook_d3d9_irp_handler_real_enum_display_devices,
|
||||
[HOOK_D3D9_IRP_OP_CREATE_WINDOW_EX] = hook_d3d9_irp_handler_real_create_window_ex,
|
||||
[HOOK_D3D9_IRP_OP_GET_CLIENT_RECT] = hook_d3d9_irp_handler_real_get_client_rect,
|
||||
[HOOK_D3D9_IRP_OP_CTX_CREATE_DEVICE] = hook_d3d9_irp_handler_real_dev_create_device,
|
||||
[HOOK_D3D9_IRP_OP_DEV_CREATE_TEXTURE] = hook_d3d9_irp_handler_real_dev_create_texture,
|
||||
[HOOK_D3D9_IRP_OP_DEV_BEGIN_SCENE] = hook_d3d9_irp_handler_real_dev_begin_scene,
|
||||
[HOOK_D3D9_IRP_OP_ENUM_DISPLAY_DEVICES] =
|
||||
hook_d3d9_irp_handler_real_enum_display_devices,
|
||||
[HOOK_D3D9_IRP_OP_CREATE_WINDOW_EX] =
|
||||
hook_d3d9_irp_handler_real_create_window_ex,
|
||||
[HOOK_D3D9_IRP_OP_GET_CLIENT_RECT] =
|
||||
hook_d3d9_irp_handler_real_get_client_rect,
|
||||
[HOOK_D3D9_IRP_OP_CTX_CREATE_DEVICE] =
|
||||
hook_d3d9_irp_handler_real_dev_create_device,
|
||||
[HOOK_D3D9_IRP_OP_DEV_CREATE_TEXTURE] =
|
||||
hook_d3d9_irp_handler_real_dev_create_texture,
|
||||
[HOOK_D3D9_IRP_OP_DEV_BEGIN_SCENE] =
|
||||
hook_d3d9_irp_handler_real_dev_begin_scene,
|
||||
[HOOK_D3D9_IRP_OP_DEV_END_SCENE] = hook_d3d9_irp_handler_real_dev_end_scene,
|
||||
[HOOK_D3D9_IRP_OP_DEV_PRESENT] = hook_d3d9_irp_handler_real_dev_present,
|
||||
[HOOK_D3D9_IRP_OP_DEV_SET_RENDER_STATE] = hook_d3d9_irp_handler_real_dev_set_render_state,
|
||||
[HOOK_D3D9_IRP_OP_DEV_DRAW_PRIMITIVE_UP] = hook_d3d9_irp_handler_real_dev_draw_primitive_up,
|
||||
[HOOK_D3D9_IRP_OP_DEV_SET_RENDER_STATE] =
|
||||
hook_d3d9_irp_handler_real_dev_set_render_state,
|
||||
[HOOK_D3D9_IRP_OP_DEV_DRAW_PRIMITIVE_UP] =
|
||||
hook_d3d9_irp_handler_real_dev_draw_primitive_up,
|
||||
};
|
||||
|
||||
static const hook_d3d9_irp_handler_t* hook_d3d9_handlers;
|
||||
static const hook_d3d9_irp_handler_t *hook_d3d9_handlers;
|
||||
static size_t hook_d3d9_nhandlers;
|
||||
|
||||
/* ------------------------------------------------------------------------------------------------------------------ */
|
||||
/* ------------------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static IDirect3D9* STDCALL my_Direct3DCreate9(UINT sdk_ver)
|
||||
static IDirect3D9 *STDCALL my_Direct3DCreate9(UINT sdk_ver)
|
||||
{
|
||||
struct hook_d3d9_irp irp;
|
||||
HRESULT hr;
|
||||
@@ -172,7 +246,8 @@ static IDirect3D9* STDCALL my_Direct3DCreate9(UINT sdk_ver)
|
||||
}
|
||||
}
|
||||
|
||||
static BOOL STDCALL my_EnumDisplayDevicesA(const char *dev_name, DWORD dev_num, DISPLAY_DEVICEA *info, DWORD flags)
|
||||
static BOOL STDCALL my_EnumDisplayDevicesA(
|
||||
const char *dev_name, DWORD dev_num, DISPLAY_DEVICEA *info, DWORD flags)
|
||||
{
|
||||
struct hook_d3d9_irp irp;
|
||||
HRESULT hr;
|
||||
@@ -195,9 +270,18 @@ static BOOL STDCALL my_EnumDisplayDevicesA(const char *dev_name, DWORD dev_num,
|
||||
}
|
||||
|
||||
static HWND STDCALL my_CreateWindowExA(
|
||||
DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle,
|
||||
int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu,
|
||||
HINSTANCE hInstance, LPVOID lpParam)
|
||||
DWORD dwExStyle,
|
||||
LPCSTR lpClassName,
|
||||
LPCSTR lpWindowName,
|
||||
DWORD dwStyle,
|
||||
int X,
|
||||
int Y,
|
||||
int nWidth,
|
||||
int nHeight,
|
||||
HWND hWndParent,
|
||||
HMENU hMenu,
|
||||
HINSTANCE hInstance,
|
||||
LPVOID lpParam)
|
||||
{
|
||||
struct hook_d3d9_irp irp;
|
||||
HRESULT hr;
|
||||
@@ -225,7 +309,7 @@ static HWND STDCALL my_CreateWindowExA(
|
||||
return irp.args.create_window_ex.result;
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static BOOL STDCALL my_GetClientRect(HWND hWnd, LPRECT lpRect)
|
||||
@@ -249,8 +333,13 @@ static BOOL STDCALL my_GetClientRect(HWND hWnd, LPRECT lpRect)
|
||||
}
|
||||
|
||||
static HRESULT STDCALL my_CreateDevice(
|
||||
IDirect3D9 *self, UINT adapter, D3DDEVTYPE type, HWND hwnd, DWORD flags,
|
||||
D3DPRESENT_PARAMETERS *pp, IDirect3DDevice9 **pdev)
|
||||
IDirect3D9 *self,
|
||||
UINT adapter,
|
||||
D3DDEVTYPE type,
|
||||
HWND hwnd,
|
||||
DWORD flags,
|
||||
D3DPRESENT_PARAMETERS *pp,
|
||||
IDirect3DDevice9 **pdev)
|
||||
{
|
||||
struct hook_d3d9_irp irp;
|
||||
HRESULT hr;
|
||||
@@ -271,8 +360,16 @@ static HRESULT STDCALL my_CreateDevice(
|
||||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT STDCALL my_CreateTexture(IDirect3DDevice9* self, UINT width, UINT height, UINT levels, DWORD usage,
|
||||
D3DFORMAT format, D3DPOOL pool, IDirect3DTexture9** texture, HANDLE* shared_handle)
|
||||
static HRESULT STDCALL my_CreateTexture(
|
||||
IDirect3DDevice9 *self,
|
||||
UINT width,
|
||||
UINT height,
|
||||
UINT levels,
|
||||
DWORD usage,
|
||||
D3DFORMAT format,
|
||||
D3DPOOL pool,
|
||||
IDirect3DTexture9 **texture,
|
||||
HANDLE *shared_handle)
|
||||
{
|
||||
struct hook_d3d9_irp irp;
|
||||
HRESULT hr;
|
||||
@@ -295,7 +392,7 @@ static HRESULT STDCALL my_CreateTexture(IDirect3DDevice9* self, UINT width, UINT
|
||||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT STDCALL my_BeginScene(IDirect3DDevice9* self)
|
||||
static HRESULT STDCALL my_BeginScene(IDirect3DDevice9 *self)
|
||||
{
|
||||
struct hook_d3d9_irp irp;
|
||||
HRESULT hr;
|
||||
@@ -310,7 +407,7 @@ static HRESULT STDCALL my_BeginScene(IDirect3DDevice9* self)
|
||||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT STDCALL my_EndScene(IDirect3DDevice9* self)
|
||||
static HRESULT STDCALL my_EndScene(IDirect3DDevice9 *self)
|
||||
{
|
||||
struct hook_d3d9_irp irp;
|
||||
HRESULT hr;
|
||||
@@ -325,9 +422,12 @@ static HRESULT STDCALL my_EndScene(IDirect3DDevice9* self)
|
||||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT STDCALL my_Present(IDirect3DDevice9* self,
|
||||
CONST RECT *pSourceRect, CONST RECT *pDestRect,
|
||||
HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion)
|
||||
static HRESULT STDCALL my_Present(
|
||||
IDirect3DDevice9 *self,
|
||||
CONST RECT *pSourceRect,
|
||||
CONST RECT *pDestRect,
|
||||
HWND hDestWindowOverride,
|
||||
CONST RGNDATA *pDirtyRegion)
|
||||
{
|
||||
struct hook_d3d9_irp irp;
|
||||
HRESULT hr;
|
||||
@@ -346,8 +446,8 @@ static HRESULT STDCALL my_Present(IDirect3DDevice9* self,
|
||||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT STDCALL my_SetRenderState(IDirect3DDevice9* self,
|
||||
D3DRENDERSTATETYPE State, DWORD Value)
|
||||
static HRESULT STDCALL
|
||||
my_SetRenderState(IDirect3DDevice9 *self, D3DRENDERSTATETYPE State, DWORD Value)
|
||||
{
|
||||
struct hook_d3d9_irp irp;
|
||||
HRESULT hr;
|
||||
@@ -361,12 +461,15 @@ static HRESULT STDCALL my_SetRenderState(IDirect3DDevice9* self,
|
||||
|
||||
hr = hook_d3d9_irp_invoke_next(&irp);
|
||||
|
||||
return hr;
|
||||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT STDCALL my_DrawPrimitiveUP(
|
||||
IDirect3DDevice9* self, D3DPRIMITIVETYPE primitive_type,
|
||||
UINT primitive_count, const void *data, UINT stride)
|
||||
IDirect3DDevice9 *self,
|
||||
D3DPRIMITIVETYPE primitive_type,
|
||||
UINT primitive_count,
|
||||
const void *data,
|
||||
UINT stride)
|
||||
{
|
||||
struct hook_d3d9_irp irp;
|
||||
HRESULT hr;
|
||||
@@ -382,12 +485,13 @@ static HRESULT STDCALL my_DrawPrimitiveUP(
|
||||
|
||||
hr = hook_d3d9_irp_invoke_next(&irp);
|
||||
|
||||
return hr;
|
||||
return hr;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------------------------------------------------ */
|
||||
/* ------------------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_invoke_real(struct hook_d3d9_irp* irp)
|
||||
static HRESULT hook_d3d9_irp_handler_invoke_real(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
hook_d3d9_irp_handler_t handler;
|
||||
|
||||
@@ -401,18 +505,18 @@ static HRESULT hook_d3d9_irp_handler_invoke_real(struct hook_d3d9_irp* irp)
|
||||
return handler(irp);
|
||||
}
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_invalid(struct hook_d3d9_irp* irp)
|
||||
static HRESULT hook_d3d9_irp_handler_real_invalid(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
log_fatal("Called invalid handler");
|
||||
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_ctx_create(struct hook_d3d9_irp* irp)
|
||||
static HRESULT hook_d3d9_irp_handler_real_ctx_create(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
IDirect3D9* api;
|
||||
IDirect3D9Vtbl* api_vtbl;
|
||||
struct com_proxy* api_proxy;
|
||||
IDirect3D9 *api;
|
||||
IDirect3D9Vtbl *api_vtbl;
|
||||
struct com_proxy *api_proxy;
|
||||
|
||||
log_assert(irp);
|
||||
|
||||
@@ -428,22 +532,23 @@ static HRESULT hook_d3d9_irp_handler_real_ctx_create(struct hook_d3d9_irp* irp)
|
||||
real_CreateDevice = api_vtbl->CreateDevice;
|
||||
api_vtbl->CreateDevice = my_CreateDevice;
|
||||
|
||||
irp->args.ctx_create.ctx = (IDirect3D9*) api_proxy;
|
||||
irp->args.ctx_create.ctx = (IDirect3D9 *) api_proxy;
|
||||
|
||||
return S_OK;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_enum_display_devices(struct hook_d3d9_irp* irp)
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_enum_display_devices(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
BOOL res;
|
||||
|
||||
log_assert(irp);
|
||||
|
||||
res = real_EnumDisplayDevicesA(
|
||||
irp->args.enum_display_devices.dev_name,
|
||||
irp->args.enum_display_devices.dev_num,
|
||||
irp->args.enum_display_devices.info,
|
||||
irp->args.enum_display_devices.flags);
|
||||
irp->args.enum_display_devices.dev_name,
|
||||
irp->args.enum_display_devices.dev_num,
|
||||
irp->args.enum_display_devices.info,
|
||||
irp->args.enum_display_devices.flags);
|
||||
|
||||
if (res == TRUE) {
|
||||
return S_OK;
|
||||
@@ -452,23 +557,24 @@ static HRESULT hook_d3d9_irp_handler_real_enum_display_devices(struct hook_d3d9_
|
||||
}
|
||||
}
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_create_window_ex(struct hook_d3d9_irp* irp)
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_create_window_ex(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
log_assert(irp);
|
||||
|
||||
irp->args.create_window_ex.result = real_CreateWindowExA(
|
||||
irp->args.create_window_ex.ex_style,
|
||||
irp->args.create_window_ex.class_name,
|
||||
irp->args.create_window_ex.window_name,
|
||||
irp->args.create_window_ex.style,
|
||||
irp->args.create_window_ex.x,
|
||||
irp->args.create_window_ex.y,
|
||||
irp->args.create_window_ex.width,
|
||||
irp->args.create_window_ex.height,
|
||||
irp->args.create_window_ex.wnd_parent,
|
||||
irp->args.create_window_ex.menu,
|
||||
irp->args.create_window_ex.instance,
|
||||
irp->args.create_window_ex.param);
|
||||
irp->args.create_window_ex.ex_style,
|
||||
irp->args.create_window_ex.class_name,
|
||||
irp->args.create_window_ex.window_name,
|
||||
irp->args.create_window_ex.style,
|
||||
irp->args.create_window_ex.x,
|
||||
irp->args.create_window_ex.y,
|
||||
irp->args.create_window_ex.width,
|
||||
irp->args.create_window_ex.height,
|
||||
irp->args.create_window_ex.wnd_parent,
|
||||
irp->args.create_window_ex.menu,
|
||||
irp->args.create_window_ex.instance,
|
||||
irp->args.create_window_ex.param);
|
||||
|
||||
if (irp->args.create_window_ex.result) {
|
||||
return S_OK;
|
||||
@@ -477,15 +583,15 @@ static HRESULT hook_d3d9_irp_handler_real_create_window_ex(struct hook_d3d9_irp*
|
||||
}
|
||||
}
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_get_client_rect(struct hook_d3d9_irp* irp)
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_get_client_rect(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
BOOL res;
|
||||
|
||||
log_assert(irp);
|
||||
|
||||
res = real_GetClientRect(
|
||||
irp->args.get_client_rect.wnd,
|
||||
irp->args.get_client_rect.rect);
|
||||
irp->args.get_client_rect.wnd, irp->args.get_client_rect.rect);
|
||||
|
||||
if (res == TRUE) {
|
||||
return S_OK;
|
||||
@@ -494,23 +600,24 @@ static HRESULT hook_d3d9_irp_handler_real_get_client_rect(struct hook_d3d9_irp*
|
||||
}
|
||||
}
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_create_device(struct hook_d3d9_irp* irp)
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_dev_create_device(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
HRESULT hr;
|
||||
IDirect3DDevice9* api;
|
||||
IDirect3DDevice9Vtbl* api_vtbl;
|
||||
IDirect3DDevice9 *api;
|
||||
IDirect3DDevice9Vtbl *api_vtbl;
|
||||
struct com_proxy *api_proxy;
|
||||
|
||||
log_assert(irp);
|
||||
|
||||
hr = real_CreateDevice(
|
||||
irp->args.ctx_create_device.self,
|
||||
irp->args.ctx_create_device.adapter,
|
||||
irp->args.ctx_create_device.type,
|
||||
irp->args.ctx_create_device.hwnd,
|
||||
irp->args.ctx_create_device.flags,
|
||||
irp->args.ctx_create_device.pp,
|
||||
irp->args.ctx_create_device.pdev);
|
||||
irp->args.ctx_create_device.self,
|
||||
irp->args.ctx_create_device.adapter,
|
||||
irp->args.ctx_create_device.type,
|
||||
irp->args.ctx_create_device.hwnd,
|
||||
irp->args.ctx_create_device.flags,
|
||||
irp->args.ctx_create_device.pp,
|
||||
irp->args.ctx_create_device.pdev);
|
||||
|
||||
if (hr != S_OK) {
|
||||
return hr;
|
||||
@@ -538,76 +645,82 @@ static HRESULT hook_d3d9_irp_handler_real_dev_create_device(struct hook_d3d9_irp
|
||||
real_DrawPrimitiveUP = api_vtbl->DrawPrimitiveUP;
|
||||
api_vtbl->DrawPrimitiveUP = my_DrawPrimitiveUP;
|
||||
|
||||
*irp->args.ctx_create_device.pdev = (IDirect3DDevice9*) api_proxy;
|
||||
*irp->args.ctx_create_device.pdev = (IDirect3DDevice9 *) api_proxy;
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_create_texture(struct hook_d3d9_irp* irp)
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_dev_create_texture(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
log_assert(irp);
|
||||
|
||||
return real_CreateTexture(
|
||||
irp->args.dev_create_texture.self,
|
||||
irp->args.dev_create_texture.width,
|
||||
irp->args.dev_create_texture.height,
|
||||
irp->args.dev_create_texture.levels,
|
||||
irp->args.dev_create_texture.usage,
|
||||
irp->args.dev_create_texture.format,
|
||||
irp->args.dev_create_texture.pool,
|
||||
irp->args.dev_create_texture.texture,
|
||||
irp->args.dev_create_texture.shared_handle);
|
||||
irp->args.dev_create_texture.self,
|
||||
irp->args.dev_create_texture.width,
|
||||
irp->args.dev_create_texture.height,
|
||||
irp->args.dev_create_texture.levels,
|
||||
irp->args.dev_create_texture.usage,
|
||||
irp->args.dev_create_texture.format,
|
||||
irp->args.dev_create_texture.pool,
|
||||
irp->args.dev_create_texture.texture,
|
||||
irp->args.dev_create_texture.shared_handle);
|
||||
}
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_begin_scene(struct hook_d3d9_irp* irp)
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_dev_begin_scene(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
log_assert(irp);
|
||||
|
||||
return real_BeginScene(irp->args.dev_begin_scene.self);
|
||||
}
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_end_scene(struct hook_d3d9_irp* irp)
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_dev_end_scene(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
log_assert(irp);
|
||||
|
||||
return real_EndScene(irp->args.dev_end_scene.self);
|
||||
}
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_present(struct hook_d3d9_irp* irp)
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_present(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
log_assert(irp);
|
||||
|
||||
return real_Present(
|
||||
irp->args.dev_present.self,
|
||||
irp->args.dev_present.source_rect,
|
||||
irp->args.dev_present.dest_rect,
|
||||
irp->args.dev_present.dest_window_override,
|
||||
irp->args.dev_present.dirty_region);
|
||||
irp->args.dev_present.self,
|
||||
irp->args.dev_present.source_rect,
|
||||
irp->args.dev_present.dest_rect,
|
||||
irp->args.dev_present.dest_window_override,
|
||||
irp->args.dev_present.dirty_region);
|
||||
}
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_set_render_state(struct hook_d3d9_irp* irp)
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_dev_set_render_state(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
log_assert(irp);
|
||||
|
||||
return real_SetRenderState(
|
||||
irp->args.dev_set_render_state.self,
|
||||
irp->args.dev_set_render_state.state,
|
||||
irp->args.dev_set_render_state.value);
|
||||
irp->args.dev_set_render_state.self,
|
||||
irp->args.dev_set_render_state.state,
|
||||
irp->args.dev_set_render_state.value);
|
||||
}
|
||||
|
||||
static HRESULT hook_d3d9_irp_handler_real_dev_draw_primitive_up(struct hook_d3d9_irp* irp)
|
||||
static HRESULT
|
||||
hook_d3d9_irp_handler_real_dev_draw_primitive_up(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
log_assert(irp);
|
||||
|
||||
return real_DrawPrimitiveUP(
|
||||
irp->args.dev_draw_primitive_up.self,
|
||||
irp->args.dev_draw_primitive_up.primitive_type,
|
||||
irp->args.dev_draw_primitive_up.primitive_count,
|
||||
irp->args.dev_draw_primitive_up.data,
|
||||
irp->args.dev_draw_primitive_up.stride);
|
||||
irp->args.dev_draw_primitive_up.self,
|
||||
irp->args.dev_draw_primitive_up.primitive_type,
|
||||
irp->args.dev_draw_primitive_up.primitive_count,
|
||||
irp->args.dev_draw_primitive_up.data,
|
||||
irp->args.dev_draw_primitive_up.stride);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------------------------------------------------ */
|
||||
/* ------------------------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void hook_d3d9_init(const hook_d3d9_irp_handler_t *handlers, size_t nhandlers)
|
||||
{
|
||||
@@ -618,19 +731,17 @@ void hook_d3d9_init(const hook_d3d9_irp_handler_t *handlers, size_t nhandlers)
|
||||
hook_d3d9_nhandlers = nhandlers;
|
||||
|
||||
hook_table_apply(
|
||||
NULL,
|
||||
"d3d9.dll",
|
||||
hook_d3d9_hook_syms,
|
||||
lengthof(hook_d3d9_hook_syms));
|
||||
NULL, "d3d9.dll", hook_d3d9_hook_syms, lengthof(hook_d3d9_hook_syms));
|
||||
|
||||
hook_table_apply(
|
||||
NULL,
|
||||
"user32.dll",
|
||||
hook_d3d9_hook_user32_syms,
|
||||
lengthof(hook_d3d9_hook_user32_syms));
|
||||
NULL,
|
||||
"user32.dll",
|
||||
hook_d3d9_hook_user32_syms,
|
||||
lengthof(hook_d3d9_hook_user32_syms));
|
||||
}
|
||||
|
||||
HRESULT hook_d3d9_irp_invoke_next(struct hook_d3d9_irp* irp)
|
||||
HRESULT
|
||||
hook_d3d9_irp_invoke_next(struct hook_d3d9_irp *irp)
|
||||
{
|
||||
hook_d3d9_irp_handler_t handler;
|
||||
HRESULT hr;
|
||||
|
||||
Reference in New Issue
Block a user