Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
413ce31e
Commit
413ce31e
authored
Jul 08, 2008
by
Tobias Jakobi
Committed by
Alexandre Julliard
Jul 08, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d3d8: Add testcase for IDirect3DDevice8::CreateImageSurface.
parent
64acbb55
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
0 deletions
+37
-0
surface.c
dlls/d3d8/tests/surface.c
+37
-0
No files found.
dlls/d3d8/tests/surface.c
View file @
413ce31e
...
...
@@ -66,6 +66,42 @@ static IDirect3DDevice8 *init_d3d8(HMODULE d3d8_handle)
return
device_ptr
;
}
/* Test the behaviour of the IDirect3DDevice8::CreateImageSurface method.
Expected behaviour (and also documented in the original DX8 docs) is that the
call returns a surface with the SYSTEMMEM pool type. Games like Max Payne 1
and 2 which use Direct3D8 calls depend on this behaviour.
A short remark in the DX9 docs however states that the pool of the
returned surface object is of type SCRATCH. This is misinformation and results
in screenshots not appearing in the savegame loading menu of both games
mentioned above (engine tries to display a texture from the scratch pool).
This test verifies that the behaviour described in the original D3D8 docs is
the correct one. For more information about this issue, see the MSDN:
D3D9 docs: "Converting to Direct3D 9"
D3D9 reference: "IDirect3DDevice9::CreateOffscreenPlainSurface"
D3D8 reference: "IDirect3DDevice8::CreateImageSurface"
*/
static
void
test_image_surface_pool
(
IDirect3DDevice8
*
device
)
{
IDirect3DSurface8
*
surface
=
0
;
D3DSURFACE_DESC
surf_desc
;
HRESULT
hr
;
hr
=
IDirect3DDevice8_CreateImageSurface
(
device
,
128
,
128
,
D3DFMT_A8R8G8B8
,
&
surface
);
ok
(
SUCCEEDED
(
hr
),
"CreateImageSurface failed (0x%08x)
\n
"
,
hr
);
hr
=
IDirect3DSurface8_GetDesc
(
surface
,
&
surf_desc
);
ok
(
SUCCEEDED
(
hr
),
"GetDesc failed (0x%08x)
\n
"
,
hr
);
todo_wine
ok
((
surf_desc
.
Pool
==
D3DPOOL_SYSTEMMEM
),
"CreateImageSurface returns surface with unexpected pool type %u (should be SYSTEMMEM = 2)
\n
"
,
surf_desc
.
Pool
);
IDirect3DSurface8_Release
(
surface
);
}
static
void
test_surface_get_container
(
IDirect3DDevice8
*
device_ptr
)
{
IDirect3DTexture8
*
texture_ptr
=
0
;
...
...
@@ -296,6 +332,7 @@ START_TEST(surface)
device_ptr
=
init_d3d8
(
d3d8_handle
);
if
(
!
device_ptr
)
return
;
test_image_surface_pool
(
device_ptr
);
test_surface_get_container
(
device_ptr
);
test_lockrect_invalid
(
device_ptr
);
test_private_data
(
device_ptr
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment