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
7448ecae
Commit
7448ecae
authored
Nov 30, 2022
by
Nikolay Sivov
Committed by
Alexandre Julliard
Dec 03, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d3d10/effect: Partially implement updates through value expressions.
Signed-off-by:
Nikolay Sivov
<
nsivov@codeweavers.com
>
parent
148f996c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
6 deletions
+29
-6
effect.c
dlls/d3d10/effect.c
+29
-0
effect.c
dlls/d3d10/tests/effect.c
+0
-6
No files found.
dlls/d3d10/effect.c
View file @
7448ecae
...
...
@@ -800,6 +800,7 @@ static void d3d10_effect_update_dependent_props(struct d3d10_effect_prop_depende
struct
d3d10_effect_prop_dependency
*
d
;
unsigned
int
i
,
j
,
count
,
variable_idx
;
struct
d3d10_effect_variable
*
v
;
struct
d3d10_reg_table
*
table
;
unsigned
int
*
dst_index
;
uint32_t
value
;
HRESULT
hr
;
...
...
@@ -864,6 +865,34 @@ static void d3d10_effect_update_dependent_props(struct d3d10_effect_prop_depende
}
break
;
case
D3D10_EOO_VALUE_EXPRESSION
:
if
((
property_info
->
container_type
!=
D3D10_C_PASS
)
||
((
property_info
->
type
!=
D3D10_SVT_UINT
)
&&
(
property_info
->
type
!=
D3D10_SVT_FLOAT
)))
{
FIXME
(
"Unimplemented for property %s.
\n
"
,
property_info
->
name
);
return
;
}
if
(
FAILED
(
hr
=
d3d10_effect_preshader_eval
(
&
d
->
value_expr
.
value
)))
{
WARN
(
"Failed to evaluate value expression, hr %#lx.
\n
"
,
hr
);
return
;
}
table
=
&
d
->
value_expr
.
value
.
reg_tables
[
D3D10_REG_TABLE_RESULT
];
if
(
property_info
->
size
!=
table
->
count
)
{
WARN
(
"Unexpected value expression output size %u, property size %u.
\n
"
,
table
->
count
,
property_info
->
size
);
return
;
}
memcpy
(
dst
,
table
->
f
,
property_info
->
size
*
sizeof
(
float
));
break
;
default:
FIXME
(
"Unsupported property update for %u.
\n
"
,
d
->
operation
);
}
...
...
dlls/d3d10/tests/effect.c
View file @
7448ecae
...
...
@@ -8314,13 +8314,10 @@ static void test_effect_value_expression(void)
ID3D10Device_OMGetBlendState
(
device
,
&
blend_state
,
blend_factor
,
&
sample_mask
);
ok
(
!
blend_state
,
"Unexpected blend state %p.
\n
"
,
blend_state
);
todo_wine
{
ok
(
blend_factor
[
0
]
==
1
.
0
f
,
"Got unexpected blend_factor[0] %.8e.
\n
"
,
blend_factor
[
0
]);
ok
(
blend_factor
[
1
]
==
1
.
0
f
,
"Got unexpected blend_factor[1] %.8e.
\n
"
,
blend_factor
[
1
]);
ok
(
blend_factor
[
2
]
==
0
.
1
f
,
"Got unexpected blend_factor[2] %.8e.
\n
"
,
blend_factor
[
2
]);
ok
(
blend_factor
[
3
]
==
-
3
.
0
f
,
"Got unexpected blend_factor[3] %.8e.
\n
"
,
blend_factor
[
3
]);
}
ok
(
!
sample_mask
,
"Got unexpected sample_mask %#x.
\n
"
,
sample_mask
);
pass
=
t
->
lpVtbl
->
GetPassByName
(
t
,
"p4"
);
...
...
@@ -8331,13 +8328,10 @@ static void test_effect_value_expression(void)
ID3D10Device_OMGetBlendState
(
device
,
&
blend_state
,
blend_factor
,
&
sample_mask
);
ok
(
!
blend_state
,
"Unexpected blend state %p.
\n
"
,
blend_state
);
todo_wine
{
ok
(
blend_factor
[
0
]
==
2
.
0
f
,
"Got unexpected blend_factor[0] %.8e.
\n
"
,
blend_factor
[
0
]);
ok
(
blend_factor
[
1
]
==
1
.
1
f
,
"Got unexpected blend_factor[1] %.8e.
\n
"
,
blend_factor
[
1
]);
ok
(
blend_factor
[
2
]
==
1
.
0
f
,
"Got unexpected blend_factor[2] %.8e.
\n
"
,
blend_factor
[
2
]);
ok
(
blend_factor
[
3
]
==
1
.
0
f
,
"Got unexpected blend_factor[3] %.8e.
\n
"
,
blend_factor
[
3
]);
}
ok
(
!
sample_mask
,
"Got unexpected sample_mask %#x.
\n
"
,
sample_mask
);
effect
->
lpVtbl
->
Release
(
effect
);
...
...
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