88 static const char shader[] =
89 "#include \"incl.vsh\"\n" 91 static const char include[] =
"#define REGISTER r0\nvs.1.1\n";
92 static const char include2[] =
"#include \"incl3.vsh\"\n";
93 static const char include3[] =
"vs.1.1\n";
96 trace(
"parent_data %p: %s.\n", parent_data, parent_data ? (
char *)parent_data :
"(null)");
118 *
bytes =
sizeof(include2);
124 *
bytes =
sizeof(include3);
126 ok(parent_data !=
NULL && !
strncmp(include2, parent_data,
strlen(include2)),
"wrong parent_data value\n");
133 ok(!parent_data,
"wrong parent_data value\n");
137 ok(0,
"Unexpected #include for file %s.\n",
filename);
161 static const char test1[] =
164 static const char testincl[] =
165 "#define REGISTER r0\n" 167 static const char testshader[] =
168 "#include \"incl.vsh\"\n" 169 "mov REGISTER, v0\n";
170 static const char testshader2[] =
171 "#include \"incl2.vsh\"\n" 172 "mov REGISTER, v0\n";
173 static const char testshader3[] =
174 "#include \"include/incl3.vsh\"\n" 175 "mov REGISTER, v0\n";
176 static const char testincl3[] =
177 "#include \"incl4.vsh\"\n";
178 static const char testincl4_ok[] =
179 "#define REGISTER r0\n" 181 static const char testincl4_wrong[] =
182 "#error \"wrong include\"\n";
198 static const WCHAR shader_filename_w[] = {
's',
'h',
'a',
'd',
'e',
'r',
'.',
'v',
's',
'h',0};
206 ok(
hr ==
D3D_OK,
"pDefines test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
218 ok(
hr ==
D3D_OK,
"NULL messages test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
226 ok(
hr ==
D3D_OK,
"NULL shader test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
238 ok(
hr ==
D3D_OK,
"pInclude test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
263 ok(
hr ==
D3D_OK,
"D3DXAssembleShader test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
275 ok(
hr ==
D3D_OK,
"D3DXAssembleShader test failed with error 0x%x - %d\n",
hr,
hr & 0x0000ffff);
284 if (
create_file(
"shader.vsh", testshader,
sizeof(testshader) - 1, shader_vsh_path))
294 ok(
hr ==
D3D_OK,
"D3DXAssembleShaderFromFile test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
306 ok(
hr ==
D3D_OK,
"D3DXAssembleShaderFromFile + pInclude test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
313 create_file(
"shader3.vsh", testshader3,
sizeof(testshader3) - 1, shader3_vsh_path);
314 create_file(
"incl4.vsh", testincl4_wrong,
sizeof(testincl4_wrong) - 1,
NULL);
317 create_file(
"include\\incl3.vsh", testincl3,
sizeof(testincl3) - 1,
NULL);
318 create_file(
"include\\incl4.vsh", testincl4_ok,
sizeof(testincl4_ok) - 1,
NULL);
326 ok(
hr ==
D3D_OK,
"D3DXAssembleShaderFromFile path search test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
332 }
else skip(
"Couldn't create \"include\" directory\n");
347 ok(
hr ==
D3D_OK,
"D3DXAssembleShaderFromFile + pInclude main shader test failed with error 0x%x - %d\n",
348 hr,
hr & 0x0000ffff);
361 ok(
hr ==
D3D_OK,
"D3DXAssembleShaderFromFile + pInclude main shader test failed with error 0x%x - %d\n",
362 hr,
hr & 0x0000ffff);
370 }
else skip(
"Couldn't create \"shader.vsh\"\n");
391 "D3DXAssembleShaderFromFile nonexistent file test failed with error 0x%x - %d\n",
392 hr,
hr & 0x0000FFFF);
405 ok(
hr ==
D3D_OK,
"D3DXAssembleShaderFromResource test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
418 ok(
hr ==
D3DXERR_INVALIDDATA,
"D3DXAssembleShaderFromResource NULL shader test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
428 static const char testincl[] =
429 "#define REGISTER r0\n" 431 static const char testshader[] =
432 "#include \"incl.vsh\"\n" 433 "mov REGISTER, v0\n";
434 static const char testshader3[] =
435 "#include \"include/incl3.vsh\"\n" 436 "mov REGISTER, v0\n";
437 static const char testincl3[] =
438 "#include \"incl4.vsh\"\n";
439 static const char testincl4_ok[] =
440 "#define REGISTER r0\n" 442 static const char testincl4_wrong[] =
443 "#error \"wrong include\"\n";
448 static const WCHAR shader_filename_w[] = {
's',
'h',
'a',
'd',
'e',
'r',
'.',
'v',
's',
'h',0};
450 if (
create_file(
"shader.vsh", testshader,
sizeof(testshader) - 1, shader_vsh_path))
453 create_file(
"shader3.vsh", testshader3,
sizeof(testshader3) - 1, shader3_vsh_path);
454 create_file(
"incl4.vsh", testincl4_wrong,
sizeof(testincl4_wrong) - 1,
NULL);
457 create_file(
"include\\incl3.vsh", testincl3,
sizeof(testincl3) - 1,
NULL);
458 create_file(
"include\\incl4.vsh", testincl4_ok,
sizeof(testincl4_ok) - 1,
NULL);
465 ok(
hr ==
D3D_OK,
"D3DXPreprocessShaderFromFile path search test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
471 }
else skip(
"Couldn't create \"include\" directory\n");
479 ok(
hr ==
D3D_OK,
"D3DXPreprocessShaderFromFile test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
491 ok(
hr ==
D3D_OK,
"D3DXPreprocessShaderFromFile + pInclude test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
511 ok(
hr ==
D3D_OK,
"D3DXPreprocessShaderFromFile + pInclude main shader test failed with error 0x%x - %d\n",
512 hr,
hr & 0x0000ffff);
525 ok(
hr ==
D3D_OK,
"D3DXPreprocessShaderFromFile + pInclude main shader test failed with error 0x%x - %d\n",
526 hr,
hr & 0x0000ffff);
534 }
else skip(
"Couldn't create \"shader.vsh\"\n");
543 "D3DXPreprocessShaderFromFile nonexistent file test failed with error 0x%x - %d\n",
544 hr,
hr & 0x0000FFFF);
557 ok(
hr ==
D3D_OK,
"D3DXPreprocessShaderFromResource test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
570 ok(
hr ==
D3DXERR_INVALIDDATA,
"D3DXPreprocessShaderFromResource NULL shader test failed with error 0x%x - %d\n",
hr,
hr & 0x0000FFFF);
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
char * strcat(char *DstString, const char *SrcString)
ACPI_SIZE strlen(const char *String)
#define D3DERR_INVALIDCALL
static void assembleshader_test(void)
#define INVALID_HANDLE_VALUE
static void d3dxpreprocess_test(void)
#define MAKEINTRESOURCEA(i)
static HRESULT WINAPI testD3DXInclude_open(ID3DXInclude *iface, D3DXINCLUDE_TYPE include_type, const char *filename, const void *parent_data, const void **data, UINT *bytes)
static SIZE_T const char const D3D_SHADER_MACRO ID3DInclude UINT ID3DBlob ** shader
static BOOL create_file(const char *filename, const char *data, const unsigned int size, char *out_path)
static unsigned char bytes[4]
ID3DXInclude ID3DXInclude_iface
HRESULT WINAPI D3DXAssembleShaderFromFileW(const WCHAR *filename, const D3DXMACRO *defines, ID3DXInclude *include, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_messages)
BOOL WINAPI CreateDirectoryA(IN LPCSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
struct ID3DXBuffer ID3DXBuffer
#define D3DXSHADER_SKIPVALIDATION
HRESULT WINAPI D3DXPreprocessShaderFromResourceA(HMODULE module, const char *resource, const D3DXMACRO *defines, ID3DXInclude *include, ID3DXBuffer **shader, ID3DXBuffer **error_messages)
static const struct ID3DXIncludeVtbl D3DXInclude_Vtbl
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
static SIZE_T const char const D3D_SHADER_MACRO ID3DInclude * include
enum _D3DXINCLUDE_TYPE D3DXINCLUDE_TYPE
static BOOL create_directory(const char *name)
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
static void delete_file(const char *filename)
#define FILE_ATTRIBUTE_NORMAL
#define memcpy(s1, s2, n)
static char temp_path[MAX_PATH]
DWORD WINAPI GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
#define ID3DXBuffer_Release(p)
HRESULT WINAPI D3DXPreprocessShaderFromFileW(const WCHAR *filename, const D3DXMACRO *defines, ID3DXInclude *include, ID3DXBuffer **shader, ID3DXBuffer **error_messages)
HRESULT WINAPI D3DXAssembleShaderFromFileA(const char *filename, const D3DXMACRO *defines, ID3DXInclude *include, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_messages)
BOOL WINAPI RemoveDirectoryA(IN LPCSTR lpPathName)
static SIZE_T const char const D3D_SHADER_MACRO * defines
static void delete_directory(const char *name)
char * strcpy(char *DstString, const char *SrcString)
int strcmp(const char *String1, const char *String2)
HRESULT WINAPI D3DXAssembleShader(const char *data, UINT data_len, const D3DXMACRO *defines, ID3DXInclude *include, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_messages)
#define CreateFileA(a, b, c, d, e, f, g)
static HRESULT WINAPI testD3DXInclude_close(ID3DXInclude *iface, const void *data)
HRESULT WINAPI D3DXAssembleShaderFromResourceA(HMODULE module, const char *resource, const D3DXMACRO *defines, ID3DXInclude *include, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_messages)
HRESULT WINAPI D3DXPreprocessShaderFromFileA(const char *filename, const D3DXMACRO *defines, ID3DXInclude *include, ID3DXBuffer **shader, ID3DXBuffer **error_messages)
#define HeapFree(x, y, z)
#define ID3DXBuffer_GetBufferPointer(p)