29 return IUnknown_Release(
obj);
32#define check_ref(obj, exp) _check_ref(__LINE__, obj, exp)
39#define check_release(obj, exp) _check_release(__LINE__, obj, exp)
42 int ref = IUnknown_Release(
obj);
46#define admitted_error 0.0001f
55 ok(
equal,
"Got matrix\n\t(%f,%f,%f,%f\n\t %f,%f,%f,%f\n\t %f,%f,%f,%f\n\t %f,%f,%f,%f)\n"
56 "Expected matrix=\n\t(%f,%f,%f,%f\n\t %f,%f,%f,%f\n\t %f,%f,%f,%f\n\t %f,%f,%f,%f)\n",
57 U(got).
m[0][0],
U(got).
m[0][1],
U(got).
m[0][2],
U(got).
m[0][3],
58 U(got).
m[1][0],
U(got).
m[1][1],
U(got).
m[1][2],
U(got).
m[1][3],
59 U(got).
m[2][0],
U(got).
m[2][1],
U(got).
m[2][2],
U(got).
m[2][3],
60 U(got).
m[3][0],
U(got).
m[3][1],
U(got).
m[3][2],
U(got).
m[3][3],
67#define check_rect(rect, left, top, right, bottom) _check_rect(__LINE__, rect, left, top, right, bottom)
90 ok(!
size,
"GetBufferSize failed, got %u, expected %u\n",
size, 0);
93 ok(!
count,
"ID3DXBuffer has %u references left\n",
count);
99 ok(
size == 3,
"GetBufferSize failed, got %u, expected %u\n",
size, 3);
102 ok(!
count,
"ID3DXBuffer has %u references left\n",
count);
109 IDirect3DDevice9 *cmpdev;
110 IDirect3DTexture9 *tex1, *tex2;
120 ok (
hr ==
D3D_OK,
"D3DFMT_A8R8G8B8 not supported\n");
124 ok (
hr ==
D3D_OK,
"Failed to create first texture (error code: %#x)\n",
hr);
128 ok (
hr ==
D3D_OK,
"Failed to create second texture (error code: %#x)\n",
hr);
172 U(
mat).m[0][0]=2.1f;
U(
mat).m[0][1]=6.5f;
U(
mat).m[0][2]=-9.6f;
U(
mat).m[0][3]=1.7f;
173 U(
mat).m[1][0]=4.2f;
U(
mat).m[1][1]=-2.5f;
U(
mat).m[1][2]=2.1f;
U(
mat).m[1][3]=5.5f;
174 U(
mat).m[2][0]=-2.6f;
U(
mat).m[2][1]=0.3f;
U(
mat).m[2][2]=8.6f;
U(
mat).m[2][3]=8.4f;
175 U(
mat).m[3][0]=6.7f;
U(
mat).m[3][1]=-5.1f;
U(
mat).m[3][2]=6.1f;
U(
mat).m[3][3]=2.2f;
185 else skip(
"GetTransform returned %#x\n",
hr);
215 D3DXMatrixIdentity(&cmpmat);
242 if(
FAILED(
hr))
skip(
"Couldn't ID3DXSprite_Begin, can't test ID3DXSprite_Draw\n");
244 int texref1, texref2;
247 pos.x = 2.2f;
pos.y = 4.5f;
pos.z = 5.1f;
248 center.
x = 11.3f; center.
y = 3.4f; center.
z = 1.2f;
332 static const char long_text[] =
"Example text to test clipping and other related things";
333 static const WCHAR long_textW[] =
L"Example text to test clipping and other related things";
334 static const MAT2 mat = { {0,1}, {0,0}, {0,0}, {0,1} };
338 unsigned int expected_size;
339 unsigned int expected_levels;
356 IDirect3DDevice9 *bufdev;
374 hr =
D3DXCreateFontA(
device, 12, 0,
FW_DONTCARE, 0,
FALSE,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH,
"Tahoma", &
font);
380 hr =
D3DXCreateFontA(
device, 0, 0,
FW_DONTCARE, 0,
FALSE,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH,
"Tahoma", &
font);
384 hr =
D3DXCreateFontA(
device, 12, 0,
FW_DONTCARE, 0,
FALSE,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH,
NULL, &
font);
388 hr =
D3DXCreateFontA(
device, 12, 0,
FW_DONTCARE, 0,
FALSE,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH,
"", &
font);
392 hr =
D3DXCreateFontA(
NULL, 12, 0,
FW_DONTCARE, 0,
FALSE,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH,
"Tahoma", &
font);
395 hr =
D3DXCreateFontA(
device, 12, 0,
FW_DONTCARE, 0,
FALSE,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH,
"Tahoma",
NULL);
398 hr =
D3DXCreateFontA(
NULL, 12, 0,
FW_DONTCARE, 0,
FALSE,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH,
"Tahoma",
NULL);
454 ok(
desc.Height == 12,
"Got unexpected height %d.\n",
desc.Height);
455 ok(
desc.Width == 8,
"Got unexpected width %u.\n",
desc.Width);
457 ok(
desc.MipLevels == 2,
"Got unexpected miplevels %u.\n",
desc.MipLevels);
458 ok(
desc.Italic ==
TRUE,
"Got unexpected italic %#x.\n",
desc.Italic);
474 ok(!!
hdc,
"Got unexpected hdc %p.\n",
hdc);
477 ok(
ret,
"Got unexpected ret %#x.\n",
ret);
479 ok(
ret,
"Got unexpected ret %#x.\n",
ret);
481 ok(
metrics.tmHeight == expmetrics.
tmHeight,
"Got unexpected height %d, expected %d.\n",
483 ok(
metrics.tmAscent == expmetrics.
tmAscent,
"Got unexpected ascent %d, expected %d.\n",
485 ok(
metrics.tmDescent == expmetrics.
tmDescent,
"Got unexpected descent %d, expected %d.\n",
491 ok(
metrics.tmAveCharWidth == expmetrics.
tmAveCharWidth,
"Got unexpected average char width %d, expected %d.\n",
493 ok(
metrics.tmMaxCharWidth == expmetrics.
tmMaxCharWidth,
"Got unexpected maximum char width %d, expected %d.\n",
495 ok(
metrics.tmWeight == expmetrics.
tmWeight,
"Got unexpected weight %d, expected %d.\n",
497 ok(
metrics.tmOverhang == expmetrics.
tmOverhang,
"Got unexpected overhang %d, expected %d.\n",
503 ok(
metrics.tmFirstChar == expmetrics.
tmFirstChar,
"Got unexpected first char %u, expected %u.\n",
505 ok(
metrics.tmLastChar == expmetrics.
tmLastChar,
"Got unexpected last char %u, expected %u.\n",
509 ok(
metrics.tmBreakChar == expmetrics.
tmBreakChar,
"Got unexpected break char %u, expected %u.\n",
511 ok(
metrics.tmItalic == expmetrics.
tmItalic,
"Got unexpected italic %u, expected %u.\n",
515 ok(
metrics.tmStruckOut == expmetrics.
tmStruckOut,
"Got unexpected struck out %u, expected %u.\n",
519 ok(
metrics.tmCharSet == expmetrics.
tmCharSet,
"Got unexpected charset %u, expected %u.\n",
565 ok(!!
hdc,
"Got unexpected hdc %p.\n",
hdc);
584 for (
c =
'b';
c <=
'z'; ++
c)
595 ok(
hr ==
D3D_OK,
"Character %c: got unexpected hr %#x.\n",
c,
hr);
597 ok(surf_desc.
Usage == 0,
"Character %c: got unexpected usage %#x.\n",
c, surf_desc.
Usage);
598 ok(surf_desc.
Width == 256,
"Character %c: got unexpected width %u.\n",
c, surf_desc.
Width);
599 ok(surf_desc.
Height == 256,
"Character %c: got unexpected height %u.\n",
c, surf_desc.
Height);
606 ok(
ret,
"Got unexpected ret %#x.\n",
ret);
612 ok(cellinc.
x == glyph_metrics.
gmptGlyphOrigin.
x - 1,
"Character %c: got %d, expected %d.\n",
614 ok(cellinc.
y ==
tm.tmAscent - glyph_metrics.
gmptGlyphOrigin.
y - 1,
"Character %c: got %d, expected %d.\n",
628 for (glyph = 1; glyph < 4; ++glyph)
630 texture = (IDirect3DTexture9 *)0xdeadbeef;
643 ok(
hr ==
D3D_OK,
"Test %u: got unexpected hr %#x.\n",
i,
hr);
646 ok(!!
hdc,
"Test %u: got unexpected hdc %p.\n",
i,
hdc);
652 ok(
hr ==
D3D_OK,
"Test %u: got unexpected hr %#x.\n",
i,
hr);
661 ok(surf_desc.
Usage == 0,
"Test %u: got unexpected usage %#x.\n",
i, surf_desc.
Usage);
662 ok(surf_desc.
Width ==
tests[
i].expected_size,
"Test %u: got unexpected width %u.\n",
i, surf_desc.
Width);
663 ok(surf_desc.
Height ==
tests[
i].expected_size,
"Test %u: got unexpected height %u.\n",
i, surf_desc.
Height);
676 ok (
hr ==
D3D_OK,
"Test %d: got unexpected hr %#x.\n",
i,
hr);
691 ok(!
rect.left,
"Test %d: got unexpected rect left %d.\n",
i,
rect.left);
692 ok(!
rect.top,
"Test %d: got unexpected rect top %d.\n",
i,
rect.top);
693 ok(
rect.right,
"Test %d: got unexpected rect right %d.\n",
i,
rect.right);
694 ok(
rect.bottom ==
tests[
i].font_height,
"Test %d: got unexpected rect bottom %d.\n",
i,
rect.bottom);
697 ok (
hr ==
D3D_OK,
"Test %d: got unexpected hr %#x.\n",
i,
hr);
1193 ID3DXRenderToSurface *
render = (
void *)0xdeadbeef;
1201 { -1, -1,
MAKEFOURCC(
'B',
'A',
'D',
'F'),
TRUE,
MAKEFOURCC(
'B',
'A',
'D',
'F') }
1206 ok(
render == (
void *)0xdeadbeef,
"Got %p, expected %p\n",
render, (
void *)0xdeadbeef);
1215 ok(
hr ==
D3D_OK,
"%d: D3DXCreateRenderToSurface returned %#x, expected %#x\n",
i,
hr,
D3D_OK);
1225 ok(
desc.DepthStencil ==
tests[
i].DepthStencil,
"%d: Got depth stencil %d, expected %d\n",
1227 ok(
desc.DepthStencilFormat ==
tests[
i].DepthStencilFormat,
"%d: Got depth stencil format %#x, expected %#x\n",
1228 i,
desc.DepthStencilFormat,
tests[
i].DepthStencilFormat);
1248 IDirect3DSurface9 *surface;
1249 ID3DXRenderToSurface *
render;
1255 skip(
"Failed to create ID3DXRenderToSurface\n");
1265 skip(
"Failed to create surface\n");
1272 ok(
hr ==
D3D_OK,
"ID3DXRenderToSurface::BeginScene returned %#x, expected %#x\n",
hr,
D3D_OK);
1297 ok(
hr == expected_value,
"ID3DXRenderToSurface::BeginScene returned %#x, expected %#x\n",
hr, expected_value);
1303 ok(
hr == expected_value,
"ID3DXRenderToSurface::BeginScene returned %#x, expected %#x\n",
hr, expected_value);
1312 skip(
"Failed to create surface\n");
1323 skip(
"Failed to create surface\n");
1345 skip(
"Failed to create surface\n");
1416 const char *
message =
equal ?
"differs" :
"is the same";
1426 ok(
equal ?
cmp : !
cmp,
"Viewport %s (%u, %u, %u, %u), (%u, %u, %u, %u)\n",
message,
1434 IDirect3DSurface9 *surface =
NULL;
1438 IDirect3DSurface9 *depth_stencil_surface;
1445 depth_stencil_surface =
NULL;
1456 skip(
"Failed to create depth stencil surface\n");
1464 skip(
"Failed to create render target\n");
1472 ok(
hr ==
D3D_OK,
"D3DXCreateRenderToSurface returned %#x, expected %#x\n",
hr,
D3D_OK);
1476 ok(
hr ==
D3D_OK,
"ID3DXRenderToSurface::BeginScene returned %#x, expected %#x\n",
hr,
D3D_OK);
1484 ok(
hr ==
D3D_OK,
"ID3DXRenderToSurface::EndScene returned %#x, expected %#x\n",
hr,
D3D_OK);
1498 ok(
hr ==
D3D_OK,
"ID3DXRenderToSurface::BeginScene returned %#x, expected %#x\n",
hr,
D3D_OK);
1506 ok(
hr ==
D3D_OK,
"ID3DXRenderToSurface::EndScene returned %#x, expected %#x\n",
hr,
D3D_OK);
1514 ok(
hr ==
D3D_OK,
"ID3DXRenderToSurface::BeginScene returned %#x, expected %#x\n",
hr,
D3D_OK);
1530 ok(
SUCCEEDED(
hr),
"Failed to restore previous device state\n");
1538 if (depth_stencil_surface)
1552 IDirect3DDevice9 *out_device;
1553 ID3DXRenderToSurface *
render;
1554 IDirect3DSurface9 *surface;
1565 ok(
hr ==
D3D_OK,
"D3DXCreateRenderToSurface returned %#x, expected %#x\n",
hr,
D3D_OK);
1571 ID3DXRenderToSurface *render_surface;
1579 ok(
hr ==
D3D_OK,
"ID3DXRenderToSurface::GetDevice returned %#x, expected %#x\n",
hr,
D3D_OK);
1591 ok(
hr ==
D3D_OK,
"ID3DXRenderToSurface::BeginScene returned %#x, expected %#x\n",
hr,
D3D_OK);
1600 ok(
hr ==
D3D_OK,
"ID3DXRenderToSurface::EndScene returned %#x, expected %#x\n",
hr,
D3D_OK);
1607 ok(
hr ==
D3D_OK,
"D3DXCreateRenderToSurface returned %#x, expected %#x\n",
hr,
D3D_OK);
1614 else skip(
"Failed to create surface\n");
1633 ID3DXRenderToEnvMap *
render;
1634 static const struct {
1638 { { 0, 0,
D3DFMT_A8R8G8B8,
FALSE,
D3DFMT_UNKNOWN }, { 1, 1,
D3DFMT_A8R8G8B8,
FALSE,
D3DFMT_UNKNOWN } },
1639 { { 256, 0,
D3DFMT_A8R8G8B8,
FALSE,
D3DFMT_UNKNOWN }, { 256, 9,
D3DFMT_A8R8G8B8,
FALSE,
D3DFMT_UNKNOWN } },
1640 { { 256, 4,
D3DFMT_A8R8G8B8,
FALSE,
D3DFMT_D24S8 }, { 256, 4,
D3DFMT_A8R8G8B8,
FALSE,
D3DFMT_D24S8 } },
1641 { { 256, 256,
D3DFMT_UNKNOWN,
FALSE,
D3DFMT_R8G8B8 }, { 256, 9,
D3DFMT_A8R8G8B8,
FALSE,
D3DFMT_R8G8B8 } },
1642 { { -1, -1,
D3DFMT_A8R8G8B8,
TRUE,
D3DFMT_DXT1 }, { 256, 9,
D3DFMT_A8R8G8B8,
TRUE,
D3DFMT_DXT1 } },
1652 ok(
hr ==
D3D_OK,
"%d: D3DXCreateRenderToEnvMap returned %#x, expected %#x\n",
i,
hr,
D3D_OK);
1662 ok(
desc.DepthStencil ==
expected->DepthStencil,
"%d: Got depth stencil %d, expected %d\n",
1664 ok(
desc.DepthStencilFormat ==
expected->DepthStencilFormat,
"%d: Got depth stencil format %#x, expected %#x\n",
1681 IDirect3DCubeTexture9 *cube_texture =
NULL;
1687 &cube_texture,
NULL);
1690 skip(
"Failed to create cube texture\n");
1698 ok(
hr ==
D3D_OK,
"D3DCreateRenderToEnvMap returned %#x, expected %#x\n",
hr,
D3D_OK);
1707 ok(
hr ==
D3D_OK,
"ID3DXRenderToEnvMap::BeginCube returned %#x, expected %#x\n",
hr,
D3D_OK);
1717 ok(
hr ==
D3D_OK,
"ID3DXRenderToEnvMap::Face returned %#x, expected %#x\n",
hr,
D3D_OK);
1726 ok(
hr ==
D3D_OK,
"ID3DXRenderToEnvMap::End returned %#x, expected %#x\n",
hr,
D3D_OK);
1744 ID3DXRenderToEnvMap *
render;
1745 IDirect3DSurface9 *depth_stencil_surface;
1751 IDirect3DDevice9 *out_device;
1761 ok(
hr ==
D3D_OK,
"ID3DXRenderToEnvMap::GetDevice returned %#x, expected %#x\n",
hr,
D3D_OK);
1762 ok(out_device ==
device,
"ID3DXRenderToEnvMap::GetDevice returned different device\n");
1781 }
else skip(
"Failed to create ID3DXRenderToEnvMap\n");
1788 depth_stencil_surface =
NULL;
1799 skip(
"Failed to create depth stencil surface\n");
1805 if (depth_stencil_surface)
1816 IDirect3DDevice9 *
device;
1823 skip(
"Couldn't create application window\n");
1828 skip(
"Couldn't create IDirect3D9 object\n");
1838 skip(
"Failed to create IDirect3DDevice9 object %#x\n",
hr);
int strcmp(const char *String1, const char *String2)
char * strcpy(char *DstString, const char *SrcString)
@ D3DCUBEMAP_FACE_POSITIVE_X
@ D3DCUBEMAP_FACE_NEGATIVE_Z
#define D3DUSAGE_RENDERTARGET
enum _D3DFORMAT D3DFORMAT
#define D3DCOLOR_XRGB(r, g, b)
IDirect3D9 *WINAPI Direct3DCreate9(UINT SDKVersion)
#define IDirect3DTexture9_GetLevelDesc(p, a, b)
#define IDirect3DDevice9_EndScene(p)
#define IDirect3DDevice9_BeginScene(p)
#define IDirect3DDevice9_GetDirect3D(p, a)
#define IDirect3D9_CreateDevice(p, a, b, c, d, e, f)
#define IDirect3DTexture9_GetLevelCount(p)
#define IDirect3DDevice9_SetViewport(p, a)
#define IDirect3DDevice9_CreateTexture(p, a, b, c, d, e, f, g, h)
#define IDirect3DDevice9_SetRenderTarget(p, a, b)
#define IDirect3DDevice9_SetDepthStencilSurface(p, a)
#define IDirect3DDevice9_CreateDepthStencilSurface(p, a, b, c, d, e, f, g, h)
#define IDirect3DDevice9_GetViewport(p, a)
#define IDirect3DDevice9_CreateCubeTexture(p, a, b, c, d, e, f, g)
#define IDirect3D9_Release(p)
#define IDirect3DDevice9_Release(p)
#define IDirect3DDevice9_Clear(p, a, b, c, d, e, f)
#define IDirect3D9_CheckDeviceFormat(p, a, b, c, d, e, f)
#define IDirect3DDevice9_GetDepthStencilSurface(p, a)
#define IDirect3DDevice9_GetTransform(p, a, b)
#define IDirect3DSurface9_Release(p)
#define IDirect3DTexture9_Release(p)
#define IDirect3DDevice9_CreateRenderTarget(p, a, b, c, d, e, f, g, h)
#define IDirect3DDevice9_CreateOffscreenPlainSurface(p, a, b, c, d, e, f)
#define IDirect3DDevice9_GetRenderTarget(p, a, b)
#define D3DERR_INVALIDCALL
struct ID3DXBuffer ID3DXBuffer
struct ID3DXFont ID3DXFont
#define ID3DXSprite_Release(p)
#define ID3DXRenderToEnvMap_BeginCube(p, a)
#define ID3DXSprite_SetTransform(p, a)
#define ID3DXRenderToSurface_GetDevice(p, a)
#define ID3DXBuffer_GetBufferSize(p)
#define ID3DXFont_PreloadCharacters(p, a, b)
#define ID3DXFont_PreloadTextW(p, a, b)
#define D3DXSPRITE_ALPHABLEND
#define ID3DXSprite_OnLostDevice(p)
#define ID3DXSprite_Begin(p, a)
#define ID3DXRenderToEnvMap_GetDesc(p, a)
#define ID3DXFont_GetDescA(p, a)
#define ID3DXSprite_Draw(p, a, b, c, d, e)
#define ID3DXRenderToEnvMap_GetDevice(p, a)
#define ID3DXFont_GetTextMetricsW(p, a)
#define ID3DXSprite_SetWorldViewLH(p, a, b)
#define ID3DXFont_GetDC(p)
#define ID3DXSprite_GetTransform(p, a)
#define ID3DXRenderToEnvMap_End(p, a)
#define ID3DXFont_Release(p)
#define ID3DXSprite_GetDevice(p, a)
#define ID3DXFont_GetGlyphData(p, a, b, c, d)
#define ID3DXFont_GetTextMetricsA(p, a)
#define ID3DXSprite_SetWorldViewRH(p, a, b)
#define ID3DXRenderToEnvMap_BeginHemisphere(p, a, b)
#define ID3DXSprite_OnResetDevice(p)
#define ID3DXRenderToSurface_GetDesc(p, a)
#define ID3DXRenderToEnvMap_Release(p)
#define ID3DXBuffer_Release(p)
#define ID3DXFont_PreloadGlyphs(p, a, b)
#define ID3DXSprite_Flush(p)
#define ID3DXRenderToEnvMap_BeginParabolic(p, a, b)
#define ID3DXFont_DrawTextA(p, a, b, c, d, e, f)
#define ID3DXFont_GetDevice(p, a)
#define ID3DXRenderToEnvMap_Face(p, a, b)
#define ID3DXRenderToSurface_EndScene(p, a)
#define ID3DXFont_PreloadTextA(p, a, b)
#define D3DXSPRITE_DO_NOT_ADDREF_TEXTURE
#define ID3DXRenderToEnvMap_BeginSphere(p, a)
#define ID3DXFont_DrawTextW(p, a, b, c, d, e, f)
#define ID3DXSprite_End(p)
#define ID3DXRenderToSurface_BeginScene(p, a, b)
#define ID3DXRenderToSurface_Release(p)
#define D3DX_FILTER_POINT
HRESULT WINAPI D3DXCreateBuffer(DWORD size, ID3DXBuffer **buffer)
HRESULT WINAPI D3DXCreateFontA(struct IDirect3DDevice9 *device, INT height, UINT width, UINT weight, UINT miplevels, BOOL italic, DWORD charset, DWORD precision, DWORD quality, DWORD pitchandfamily, const char *facename, struct ID3DXFont **font)
HRESULT WINAPI D3DXCreateFontIndirectA(IDirect3DDevice9 *device, const D3DXFONT_DESCA *desc, ID3DXFont **font)
D3DXMATRIX *WINAPI D3DXMatrixOrthoOffCenterLH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf)
HRESULT WINAPI D3DXCreateRenderToEnvMap(IDirect3DDevice9 *device, UINT size, UINT mip_levels, D3DFORMAT format, BOOL depth_stencil, D3DFORMAT depth_stencil_format, ID3DXRenderToEnvMap **out)
HRESULT WINAPI D3DXCreateRenderToSurface(IDirect3DDevice9 *device, UINT width, UINT height, D3DFORMAT format, BOOL depth_stencil, D3DFORMAT depth_stencil_format, ID3DXRenderToSurface **out)
static void cleanup(void)
#define MAKEFOURCC(ch0, ch1, ch2, ch3)
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLdouble GLdouble GLdouble GLdouble top
GLenum GLuint GLint GLenum face
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double x)
static const WCHAR testW[]
static struct test_info tests[]
static const WCHAR desc[]
static void test_ID3DXRenderToSurface(IDirect3DDevice9 *device)
static void compare_device_state(struct device_state *state1, struct device_state *state2, BOOL equal)
static void check_mat(D3DXMATRIX got, D3DXMATRIX exp)
static void test_ID3DXRenderToSurface_device_state(IDirect3DDevice9 *device)
#define check_rect(rect, left, top, right, bottom)
#define check_ref(obj, exp)
static void test_ID3DXSprite(IDirect3DDevice9 *device)
static void check_ID3DXRenderToSurface(IDirect3DDevice9 *device, UINT width, UINT height, D3DFORMAT format, BOOL depth_stencil, D3DFORMAT depth_stencil_format, BOOL render_target)
static void _check_ref(unsigned int line, IUnknown *obj, int exp)
static void test_ID3DXBuffer(void)
static HRESULT apply_device_state(IDirect3DDevice9 *device, struct device_state *state)
static int get_ref(IUnknown *obj)
static void _check_rect(unsigned int line, const RECT *rect, int left, int top, int right, int bottom)
static void test_ID3DXFont(IDirect3DDevice9 *device)
static HRESULT retrieve_device_state(IDirect3DDevice9 *device, struct device_state *state)
static void test_D3DXCreateRenderToSurface(IDirect3DDevice9 *device)
static void _check_release(unsigned int line, IUnknown *obj, int exp)
static void test_ID3DXRenderToEnvMap_cube_map(IDirect3DDevice9 *device)
static void test_D3DXCreateRenderToEnvMap(IDirect3DDevice9 *device)
static void test_ID3DXRenderToEnvMap(IDirect3DDevice9 *device)
static void release_device_state(struct device_state *state)
#define check_release(obj, exp)
const char * expected_result
#define todo_wine_if(is_todo)
#define cmp(status, error)
static int font_height(HFONT hFont)
#define WS_OVERLAPPEDWINDOW
#define D3DADAPTER_DEFAULT
#define D3DCREATE_SOFTWARE_VERTEXPROCESSING
HRESULT WINAPI D3DXCreateSprite(struct IDirect3DDevice9 *device, struct ID3DXSprite **sprite)
D3DFORMAT DepthStencilFormat
IDirect3DSurface9 * render_target
IDirect3DSurface9 * depth_stencil
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
#define ANTIALIASED_QUALITY
#define OUT_RASTER_PRECIS
#define OUT_DEFAULT_PRECIS
DWORD WINAPI GetGlyphIndicesA(_In_ HDC hdc, _In_reads_(c) LPCSTR lpstr, _In_ int c, _Out_writes_(c) LPWORD pgi, _In_ DWORD fl)
BOOL WINAPI GetTextMetricsA(_In_ HDC, _Out_ LPTEXTMETRICA)
DWORD WINAPI GetGlyphOutlineW(_In_ HDC hdc, _In_ UINT uChar, _In_ UINT fuFormat, _Out_ LPGLYPHMETRICS lpgm, _In_ DWORD cjBuffer, _Out_writes_bytes_opt_(cjBuffer) LPVOID pvBuffer, _In_ CONST MAT2 *lpmat2)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI SetRectEmpty(_Out_ LPRECT)
BOOL WINAPI DestroyWindow(_In_ HWND)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)