Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
c889bab8
Commit
c889bab8
authored
Dec 17, 2008
by
Henri Verbeet
Committed by
Alexandre Julliard
Dec 18, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d3d9: Add a test for shader constant application through IDirect3DStateBlock9_Apply().
We already behave correctly here, the test just verifies it.
parent
42036ab6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
105 additions
and
0 deletions
+105
-0
stateblock.c
dlls/d3d9/tests/stateblock.c
+105
-0
No files found.
dlls/d3d9/tests/stateblock.c
View file @
c889bab8
...
...
@@ -1459,6 +1459,110 @@ static void test_state_management(
execute_test_chain_all
(
device
,
tests
,
tcount
);
}
static
void
test_shader_constant_apply
(
IDirect3DDevice9
*
device
)
{
static
const
float
initial
[]
=
{
0
.
0
f
,
0
.
0
f
,
0
.
0
f
,
0
.
0
f
};
static
const
float
vs_const
[]
=
{
1
.
0
f
,
2
.
0
f
,
3
.
0
f
,
4
.
0
f
};
static
const
float
ps_const
[]
=
{
5
.
0
f
,
6
.
0
f
,
7
.
0
f
,
8
.
0
f
};
IDirect3DStateBlock9
*
stateblock
;
float
ret
[
4
];
HRESULT
hr
;
hr
=
IDirect3DDevice9_SetVertexShaderConstantF
(
device
,
0
,
initial
,
1
);
ok
(
SUCCEEDED
(
hr
),
"SetVertexShaderConstantF returned %#x
\n
"
,
hr
);
hr
=
IDirect3DDevice9_SetVertexShaderConstantF
(
device
,
1
,
initial
,
1
);
ok
(
SUCCEEDED
(
hr
),
"SetVertexShaderConstantF returned %#x
\n
"
,
hr
);
hr
=
IDirect3DDevice9_SetPixelShaderConstantF
(
device
,
0
,
initial
,
1
);
ok
(
SUCCEEDED
(
hr
),
"SetPixelShaderConstantF returned %#x
\n
"
,
hr
);
hr
=
IDirect3DDevice9_SetPixelShaderConstantF
(
device
,
1
,
initial
,
1
);
ok
(
SUCCEEDED
(
hr
),
"SetPixelShaderConstantF returned %#x
\n
"
,
hr
);
hr
=
IDirect3DDevice9_GetVertexShaderConstantF
(
device
,
0
,
ret
,
1
);
ok
(
SUCCEEDED
(
hr
),
"GetVertexShaderConstantF returned %#x
\n
"
,
hr
);
ok
(
!
memcmp
(
ret
,
initial
,
sizeof
(
initial
)),
"GetVertexShaderConstantF got {%f, %f, %f, %f}, expected {%f, %f, %f, %f}
\n
"
,
ret
[
0
],
ret
[
1
],
ret
[
2
],
ret
[
3
],
initial
[
0
],
initial
[
1
],
initial
[
2
],
initial
[
3
]);
hr
=
IDirect3DDevice9_GetVertexShaderConstantF
(
device
,
1
,
ret
,
1
);
ok
(
SUCCEEDED
(
hr
),
"GetVertexShaderConstantF returned %#x
\n
"
,
hr
);
ok
(
!
memcmp
(
ret
,
initial
,
sizeof
(
initial
)),
"GetVertexShaderConstantF got {%f, %f, %f, %f}, expected {%f, %f, %f, %f}
\n
"
,
ret
[
0
],
ret
[
1
],
ret
[
2
],
ret
[
3
],
initial
[
0
],
initial
[
1
],
initial
[
2
],
initial
[
3
]);
hr
=
IDirect3DDevice9_GetPixelShaderConstantF
(
device
,
0
,
ret
,
1
);
ok
(
SUCCEEDED
(
hr
),
"GetPixelShaderConstantF returned %#x
\n
"
,
hr
);
ok
(
!
memcmp
(
ret
,
initial
,
sizeof
(
initial
)),
"GetpixelShaderConstantF got {%f, %f, %f, %f}, expected {%f, %f, %f, %f}
\n
"
,
ret
[
0
],
ret
[
1
],
ret
[
2
],
ret
[
3
],
initial
[
0
],
initial
[
1
],
initial
[
2
],
initial
[
3
]);
hr
=
IDirect3DDevice9_GetPixelShaderConstantF
(
device
,
1
,
ret
,
1
);
ok
(
SUCCEEDED
(
hr
),
"GetPixelShaderConstantF returned %#x
\n
"
,
hr
);
ok
(
!
memcmp
(
ret
,
initial
,
sizeof
(
initial
)),
"GetPixelShaderConstantF got {%f, %f, %f, %f}, expected {%f, %f, %f, %f}
\n
"
,
ret
[
0
],
ret
[
1
],
ret
[
2
],
ret
[
3
],
initial
[
0
],
initial
[
1
],
initial
[
2
],
initial
[
3
]);
hr
=
IDirect3DDevice9_SetVertexShaderConstantF
(
device
,
0
,
vs_const
,
1
);
ok
(
SUCCEEDED
(
hr
),
"SetVertexShaderConstantF returned %#x
\n
"
,
hr
);
hr
=
IDirect3DDevice9_SetPixelShaderConstantF
(
device
,
0
,
ps_const
,
1
);
ok
(
SUCCEEDED
(
hr
),
"SetPixelShaderConstantF returned %#x
\n
"
,
hr
);
hr
=
IDirect3DDevice9_BeginStateBlock
(
device
);
ok
(
SUCCEEDED
(
hr
),
"BeginStateBlock returned %#x
\n
"
,
hr
);
hr
=
IDirect3DDevice9_SetVertexShaderConstantF
(
device
,
1
,
vs_const
,
1
);
ok
(
SUCCEEDED
(
hr
),
"SetVertexShaderConstantF returned %#x
\n
"
,
hr
);
hr
=
IDirect3DDevice9_SetPixelShaderConstantF
(
device
,
1
,
ps_const
,
1
);
ok
(
SUCCEEDED
(
hr
),
"SetPixelShaderConstantF returned %#x
\n
"
,
hr
);
hr
=
IDirect3DDevice9_EndStateBlock
(
device
,
&
stateblock
);
ok
(
SUCCEEDED
(
hr
),
"EndStateBlock returned %#x
\n
"
,
hr
);
hr
=
IDirect3DDevice9_GetVertexShaderConstantF
(
device
,
0
,
ret
,
1
);
ok
(
SUCCEEDED
(
hr
),
"GetVertexShaderConstantF returned %#x
\n
"
,
hr
);
ok
(
!
memcmp
(
ret
,
vs_const
,
sizeof
(
vs_const
)),
"GetVertexShaderConstantF got {%f, %f, %f, %f}, expected {%f, %f, %f, %f}
\n
"
,
ret
[
0
],
ret
[
1
],
ret
[
2
],
ret
[
3
],
vs_const
[
0
],
vs_const
[
1
],
vs_const
[
2
],
vs_const
[
3
]);
hr
=
IDirect3DDevice9_GetVertexShaderConstantF
(
device
,
1
,
ret
,
1
);
ok
(
SUCCEEDED
(
hr
),
"GetVertexShaderConstantF returned %#x
\n
"
,
hr
);
ok
(
!
memcmp
(
ret
,
initial
,
sizeof
(
initial
)),
"GetVertexShaderConstantF got {%f, %f, %f, %f}, expected {%f, %f, %f, %f}
\n
"
,
ret
[
0
],
ret
[
1
],
ret
[
2
],
ret
[
3
],
initial
[
0
],
initial
[
1
],
initial
[
2
],
initial
[
3
]);
hr
=
IDirect3DDevice9_GetPixelShaderConstantF
(
device
,
0
,
ret
,
1
);
ok
(
SUCCEEDED
(
hr
),
"GetPixelShaderConstantF returned %#x
\n
"
,
hr
);
ok
(
!
memcmp
(
ret
,
ps_const
,
sizeof
(
ps_const
)),
"GetPixelShaderConstantF got {%f, %f, %f, %f}, expected {%f, %f, %f, %f}
\n
"
,
ret
[
0
],
ret
[
1
],
ret
[
2
],
ret
[
3
],
ps_const
[
0
],
ps_const
[
1
],
ps_const
[
2
],
ps_const
[
3
]);
hr
=
IDirect3DDevice9_GetPixelShaderConstantF
(
device
,
1
,
ret
,
1
);
ok
(
SUCCEEDED
(
hr
),
"GetPixelShaderConstantF returned %#x
\n
"
,
hr
);
ok
(
!
memcmp
(
ret
,
initial
,
sizeof
(
initial
)),
"GetPixelShaderConstantF got {%f, %f, %f, %f}, expected {%f, %f, %f, %f}
\n
"
,
ret
[
0
],
ret
[
1
],
ret
[
2
],
ret
[
3
],
initial
[
0
],
initial
[
1
],
initial
[
2
],
initial
[
3
]);
hr
=
IDirect3DStateBlock9_Apply
(
stateblock
);
ok
(
SUCCEEDED
(
hr
),
"Apply returned %#x
\n
"
,
hr
);
/* Apply doesn't overwrite constants that aren't explicitly set on the source stateblock. */
hr
=
IDirect3DDevice9_GetVertexShaderConstantF
(
device
,
0
,
ret
,
1
);
ok
(
SUCCEEDED
(
hr
),
"GetVertexShaderConstantF returned %#x
\n
"
,
hr
);
ok
(
!
memcmp
(
ret
,
vs_const
,
sizeof
(
vs_const
)),
"GetVertexShaderConstantF got {%f, %f, %f, %f}, expected {%f, %f, %f, %f}
\n
"
,
ret
[
0
],
ret
[
1
],
ret
[
2
],
ret
[
3
],
vs_const
[
0
],
vs_const
[
1
],
vs_const
[
2
],
vs_const
[
3
]);
hr
=
IDirect3DDevice9_GetVertexShaderConstantF
(
device
,
1
,
ret
,
1
);
ok
(
SUCCEEDED
(
hr
),
"GetVertexShaderConstantF returned %#x
\n
"
,
hr
);
ok
(
!
memcmp
(
ret
,
vs_const
,
sizeof
(
vs_const
)),
"GetVertexShaderConstantF got {%f, %f, %f, %f}, expected {%f, %f, %f, %f}
\n
"
,
ret
[
0
],
ret
[
1
],
ret
[
2
],
ret
[
3
],
vs_const
[
0
],
vs_const
[
1
],
vs_const
[
2
],
vs_const
[
3
]);
hr
=
IDirect3DDevice9_GetPixelShaderConstantF
(
device
,
0
,
ret
,
1
);
ok
(
SUCCEEDED
(
hr
),
"GetPixelShaderConstantF returned %#x
\n
"
,
hr
);
ok
(
!
memcmp
(
ret
,
ps_const
,
sizeof
(
ps_const
)),
"GetPixelShaderConstantF got {%f, %f, %f, %f}, expected {%f, %f, %f, %f}
\n
"
,
ret
[
0
],
ret
[
1
],
ret
[
2
],
ret
[
3
],
ps_const
[
0
],
ps_const
[
1
],
ps_const
[
2
],
ps_const
[
3
]);
hr
=
IDirect3DDevice9_GetPixelShaderConstantF
(
device
,
1
,
ret
,
1
);
ok
(
SUCCEEDED
(
hr
),
"GetPixelShaderConstantF returned %#x
\n
"
,
hr
);
ok
(
!
memcmp
(
ret
,
ps_const
,
sizeof
(
ps_const
)),
"GetPixelShaderConstantF got {%f, %f, %f, %f}, expected {%f, %f, %f, %f}
\n
"
,
ret
[
0
],
ret
[
1
],
ret
[
2
],
ret
[
3
],
ps_const
[
0
],
ps_const
[
1
],
ps_const
[
2
],
ps_const
[
3
]);
IDirect3DStateBlock9_Release
(
stateblock
);
}
START_TEST
(
stateblock
)
{
IDirect3DDevice9
*
device_ptr
=
NULL
;
...
...
@@ -1477,6 +1581,7 @@ START_TEST(stateblock)
test_begin_end_state_block
(
device_ptr
);
test_state_management
(
device_ptr
,
&
device_pparams
);
test_shader_constant_apply
(
device_ptr
);
if
(
device_ptr
)
IUnknown_Release
(
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