MSVC doesn't support "name...".
---
msvc also supports __VA_ARGS__ only if /Zc:preprocessor is set to make its preprocessor "standards conformant" instead of doing whatever msvc used to do since aeons.
From: Stefan Dösinger stefan@codeweavers.com
MSVC doesn't support "name...".
---
msvc also supports __VA_ARGS__ only if /Zc:preprocessor is set to make its preprocessor "standards conformant" instead of doing whatever msvc used to do since aeons. --- dlls/d3dx9_36/d3dx9_private.h | 6 +++--- dlls/d3dx9_36/tests/effect.c | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/dlls/d3dx9_36/d3dx9_private.h b/dlls/d3dx9_36/d3dx9_private.h index ce5abfcc735..34ce272de1a 100644 --- a/dlls/d3dx9_36/d3dx9_private.h +++ b/dlls/d3dx9_36/d3dx9_private.h @@ -401,9 +401,9 @@ void d3dx_parameters_store_cleanup(struct d3dx_parameters_store *store) DECLSPEC struct d3dx_parameter *get_parameter_by_name(struct d3dx_parameters_store *store, struct d3dx_parameter *parameter, const char *name) DECLSPEC_HIDDEN;
-#define SET_D3D_STATE_(manager, device, method, args...) (manager ? manager->lpVtbl->method(manager, args) \ - : device->lpVtbl->method(device, args)) -#define SET_D3D_STATE(base_effect, args...) SET_D3D_STATE_(base_effect->manager, base_effect->device, args) +#define SET_D3D_STATE_(manager, device, method, ...) (manager ? manager->lpVtbl->method(manager, __VA_ARGS__) \ + : device->lpVtbl->method(device, __VA_ARGS__)) +#define SET_D3D_STATE(base_effect, ...) SET_D3D_STATE_(base_effect->manager, base_effect->device, __VA_ARGS__)
HRESULT d3dx_create_param_eval(struct d3dx_parameters_store *parameters, void *byte_code, unsigned int byte_code_size, D3DXPARAMETER_TYPE type, diff --git a/dlls/d3dx9_36/tests/effect.c b/dlls/d3dx9_36/tests/effect.c index b5231d10795..0e0efb38aaa 100644 --- a/dlls/d3dx9_36/tests/effect.c +++ b/dlls/d3dx9_36/tests/effect.c @@ -5167,8 +5167,8 @@ static void test_isparameterused_children(unsigned int line, ID3DXEffect *effect } }
-#define test_isparameterused_param_with_children(args...) \ - test_isparameterused_param_with_children_(__LINE__, args) +#define test_isparameterused_param_with_children(...) \ + test_isparameterused_param_with_children_(__LINE__, __VA_ARGS__) static void test_isparameterused_param_with_children_(unsigned int line, ID3DXEffect *effect, ID3DXEffect *effect2, D3DXHANDLE tech, const char *name, BOOL expected_result) { @@ -6597,8 +6597,8 @@ static const DWORD test_effect_shared_parameters_blob[] = 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, };
-#define test_effect_shared_vs_arr_compare_helper(args...) \ - test_effect_shared_vs_arr_compare_helper_(__LINE__, args) +#define test_effect_shared_vs_arr_compare_helper(...) \ + test_effect_shared_vs_arr_compare_helper_(__LINE__, __VA_ARGS__) static void test_effect_shared_vs_arr_compare_helper_(unsigned int line, ID3DXEffect *effect, D3DXHANDLE param_child, struct IDirect3DVertexShader9 *vshader1, unsigned int element, BOOL todo) @@ -6618,8 +6618,8 @@ static void test_effect_shared_vs_arr_compare_helper_(unsigned int line, ID3DXEf IDirect3DVertexShader9_Release(vshader2); }
-#define test_effect_shared_parameters_compare_vconst(args...) \ - test_effect_shared_parameters_compare_vconst_(__LINE__, args) +#define test_effect_shared_parameters_compare_vconst(...) \ + test_effect_shared_parameters_compare_vconst_(__LINE__, __VA_ARGS__) static void test_effect_shared_parameters_compare_vconst_(unsigned int line, IDirect3DDevice9 *device, unsigned int index, const D3DXVECTOR4 *expected_fvect, BOOL todo) {
I have a couple of small requests, if you'd be so kind.
Can you please split the patch in two parts, one for the tests and one for the implementation?
Please use "d3dx9:" (and "d3dx9/tests:" if you proceed to split the patch) as the commit subject prefix.