@@ -13,6 +13,14 @@ static void* wrap_pass_vtable[METHOD_WRAP_COUNT+1] = {
1313
1414#define WRAPPED_METH_PREFIX (b ) wrap_pass_obj_##b, __SPECIAL_IGNORANCE
1515#include " com_wrapper_obj_methods.inc"
16+ #undef WRAPPED_METH_PREFIX
17+
18+ #define WRAPPED_METH_PREFIX (b ) wrap_pass_dev11_##b, __SPECIAL_IGNORANCE
19+ #include " com_wrapper_dev11_methods.inc"
20+ #undef WRAPPED_METH_PREFIX
21+
22+ #define WRAPPED_METH_PREFIX (b ) wrap_pass_swc_##b, __SPECIAL_IGNORANCE
23+ #include " com_wrapper_swc_methods.inc"
1624#undef WRAPPED_METH_PREFIX
1725
1826 0
@@ -26,6 +34,14 @@ static void* wrap_pre_vtable[METHOD_WRAP_COUNT+1] = {
2634
2735#define WRAPPED_METH_PREFIX (b ) wrap_pre_obj_##b, __SPECIAL_IGNORANCE
2836#include " com_wrapper_obj_methods.inc"
37+ #undef WRAPPED_METH_PREFIX
38+
39+ #define WRAPPED_METH_PREFIX (b ) wrap_pre_dev11_##b, __SPECIAL_IGNORANCE
40+ #include " com_wrapper_dev11_methods.inc"
41+ #undef WRAPPED_METH_PREFIX
42+
43+ #define WRAPPED_METH_PREFIX (b ) wrap_pre_swc_##b, __SPECIAL_IGNORANCE
44+ #include " com_wrapper_swc_methods.inc"
2945#undef WRAPPED_METH_PREFIX
3046
3147 0
@@ -40,6 +56,15 @@ static void* wrap_post_vtable[METHOD_WRAP_COUNT+1] = {
4056#define WRAPPED_METH_PREFIX (b ) wrap_post_obj_##b, __SPECIAL_IGNORANCE
4157#include " com_wrapper_obj_methods.inc"
4258#undef WRAPPED_METH_PREFIX
59+
60+ #define WRAPPED_METH_PREFIX (b ) wrap_post_dev11_##b, __SPECIAL_IGNORANCE
61+ #include " com_wrapper_dev11_methods.inc"
62+ #undef WRAPPED_METH_PREFIX
63+
64+ #define WRAPPED_METH_PREFIX (b ) wrap_post_swc_##b, __SPECIAL_IGNORANCE
65+ #include " com_wrapper_swc_methods.inc"
66+ #undef WRAPPED_METH_PREFIX
67+
4368 0
4469};
4570
@@ -51,6 +76,14 @@ static void* wrap_prepost_vtable[METHOD_WRAP_COUNT+1] = {
5176
5277#define WRAPPED_METH_PREFIX (b ) wrap_prepost_obj_##b, __SPECIAL_IGNORANCE
5378#include " com_wrapper_obj_methods.inc"
79+ #undef WRAPPED_METH_PREFIX
80+
81+ #define WRAPPED_METH_PREFIX (b ) wrap_prepost_dev11_##b, __SPECIAL_IGNORANCE
82+ #include " com_wrapper_dev11_methods.inc"
83+ #undef WRAPPED_METH_PREFIX
84+
85+ #define WRAPPED_METH_PREFIX (b ) wrap_prepost_swc_##b, __SPECIAL_IGNORANCE
86+ #include " com_wrapper_swc_methods.inc"
5487#undef WRAPPED_METH_PREFIX
5588
5689 0
@@ -90,6 +123,26 @@ IDirect3D9 * wrap_CreateObj(IDirect3D9 * origObj)
90123 return (IDirect3D9*)ret;
91124}
92125
126+ ID3D11Device* wrap_CreateDevice11 (ID3D11Device* origDev)
127+ {
128+ wrapped_com_obj * ret = (wrapped_com_obj*)malloc (sizeof (wrapped_com_obj));
129+
130+ ret->vtable = (com_vtable*)&g_main_vtable[METH_DEV11_QueryInterface];
131+ ret->orig_dev11 = origDev;
132+
133+ return (ID3D11Device*)ret;
134+ }
135+
136+ IDXGISwapChain* wrap_CreateSwapchain (IDXGISwapChain* origSwc)
137+ {
138+ wrapped_com_obj* ret = (wrapped_com_obj*)malloc (sizeof (wrapped_com_obj));
139+
140+ ret->vtable = (com_vtable*)&g_main_vtable[METH_SWC_QueryInterface];
141+ ret->orig_swc = origSwc;
142+
143+ return (IDXGISwapChain*)ret;
144+ }
145+
93146void wrap_SwitchMethod (d3d9_vtable_method method, vtable_wrap_mode mode)
94147{
95148 g_main_vtable[method] = wrap_vtable_arr[mode][method];
@@ -135,5 +188,20 @@ void wrap_InitEvents()
135188 #include " com_wrapper_obj_methods.inc"
136189 #undef WRAPPED_METH_PREFIX
137190
191+ #define WRAPPED_METH_PREFIX (b ) \
192+ preCallEvents[METH_DEV11_##b] = gAPI ->query_event (gAPI ->hash_name ((wchar_t *)EVENT_NAME_STR (DEV11_##b, PRE_))); \
193+ postCallEvents[METH_DEV11_##b] = gAPI ->query_event (gAPI ->hash_name ((wchar_t *)EVENT_NAME_STR (DEV11_##b, POST_))); \
194+ g_main_vtable[METH_DEV11_##b] = wrap_pass_vtable[METH_DEV11_##b]; \
195+ __SPECIAL_IGNORANCE
196+ #include " com_wrapper_dev11_methods.inc"
197+ #undef WRAPPED_METH_PREFIX
198+
199+ #define WRAPPED_METH_PREFIX (b ) \
200+ preCallEvents[METH_SWC_##b] = gAPI ->query_event (gAPI ->hash_name ((wchar_t *)EVENT_NAME_STR (SWC_##b, PRE_))); \
201+ postCallEvents[METH_SWC_##b] = gAPI ->query_event (gAPI ->hash_name ((wchar_t *)EVENT_NAME_STR (SWC_##b, POST_))); \
202+ g_main_vtable[METH_SWC_##b] = wrap_pass_vtable[METH_SWC_##b]; \
203+ __SPECIAL_IGNORANCE
204+ #include " com_wrapper_swc_methods.inc"
205+ #undef WRAPPED_METH_PREFIX
138206
139207}
0 commit comments