mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-12-15 08:03:30 -08:00
vkd3d-shader: Implement shader model 1.0-1.3 texture projection.
This commit is contained in:
committed by
Henri Verbeet
parent
44c80c60b8
commit
c50210f230
Notes:
Henri Verbeet
2025-11-20 18:37:00 +01:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1814
@@ -765,8 +765,10 @@ static void parse_resource_directive(struct resource_params *resource, const cha
|
||||
|
||||
for (;;)
|
||||
{
|
||||
while (isspace(*line))
|
||||
++line;
|
||||
u.u = strtoul(line, &rest, 0);
|
||||
if (rest && *rest == '.')
|
||||
if (*line == '.' || (rest && *rest == '.'))
|
||||
u.f = strtof(line, &rest);
|
||||
|
||||
if (rest == line)
|
||||
@@ -1764,6 +1766,20 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
|
||||
else
|
||||
fatal_error("Invalid denorm mode '%s'.\n", line);
|
||||
}
|
||||
else if (match_string(line, "projected", &line))
|
||||
{
|
||||
unsigned int index;
|
||||
|
||||
index = strtoul(line, (char **)&rest, 10);
|
||||
if (rest == line || index >= 6)
|
||||
fatal_error("Malformed projection directive '%s'.\n", line);
|
||||
line = rest;
|
||||
|
||||
if (match_string(line, "enable", &line))
|
||||
runner->projected_texture_mask |= (1u << index);
|
||||
else
|
||||
runner->projected_texture_mask &= ~(1u << index);
|
||||
}
|
||||
else
|
||||
{
|
||||
fatal_error("Unknown test directive '%s'.\n", line);
|
||||
|
||||
Reference in New Issue
Block a user