Matteo Bruni (@Mystral) commented about dlls/d3dx9_36/tests/effect.c:
- { D3DXPT_FLOAT, sizeof( FLOAT ) * 16, sizeof( FLOAT ), sizeof( FLOAT ), S_OK, &SET_RAWDATA_FLOAT44_BBA, "f44", &SET_RAWDATA_FLOAT44_A },
- /* Strings. Test 0x28 */
- { D3DXPT_STRING, sizeof( "\0" ), sizeof( "test" ), 0, S_OK, "\0", "s", "test" },
- { D3DXPT_STRING, sizeof( "\0" ), sizeof( "test" ), 0, D3DERR_INVALIDCALL, "\0", "s", NULL },
- { D3DXPT_STRING, sizeof( "\0" ), 0, 0, D3DERR_INVALIDCALL, "\0", "s", "test_longer_string" },
- { D3DXPT_STRING, sizeof( "\0" ), sizeof( "test_longer_string" ), 0, D3DERR_INVALIDCALL, "\0", "s", "test_longer_string" },
- { D3DXPT_STRING, sizeof( "\0" ), sizeof( "test_longer_string" ), sizeof( "test" ), D3DERR_INVALIDCALL, "\0", "s", "test_longer_string" },
- /* String vector. Test 0x2E */
- { D3DXPT_STRING, sizeof( "\0" ), sizeof( "test" ), 0, S_OK, "\0", "s_2", "test" },
- { D3DXPT_STRING, sizeof( "\0" ), 0, 0, S_OK, "\0", "s_2", "test_longer_string" },
- { D3DXPT_STRING, sizeof( "\0" ), sizeof( "test_longer_string" ), 0, S_OK, "\0", "s_2", "test_longer_string" },
- /* Textures. Test 0x31 */
- { D3DXPT_TEXTURE, sizeof( "\0" ), sizeof( "DEAFCAFE" ), 0, S_OK, "\0", "tex", "DEAFCAFE" },
Assigning a string to a D3DXPT_TEXTURE parameter is not great. I guess it's interesting in its own way that it apparently doesn't crash on Windows, but I'd avoid this kind of weirdness in the test by creating and passing a proper texture object (or NULL).
Same comment for the shader objects below.