-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
rebase, remove upstreamed stuff, streamline lib32-ffmpeg things, random small changes
- Loading branch information
Showing
59 changed files
with
2,169 additions
and
897 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
...xecutables-to-find-unix-files/0001-shell32-Allow-FindExecutables-to-find-unix-files.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
From 2b4faa78340a546e709e881a2b291997a2b0df83 Mon Sep 17 00:00:00 2001 | ||
From: Alistair Leslie-Hughes <[email protected]> | ||
Date: Thu, 15 Aug 2024 10:33:02 +1000 | ||
Subject: [PATCH] shell32: Allow FindExecutables to find unix files. | ||
|
||
--- | ||
dlls/shell32/shlexec.c | 12 +++++++++++- | ||
1 file changed, 11 insertions(+), 1 deletion(-) | ||
|
||
diff --git a/dlls/shell32/shlexec.c b/dlls/shell32/shlexec.c | ||
index 828c7168a34..607aca3a450 100644 | ||
--- a/dlls/shell32/shlexec.c | ||
+++ b/dlls/shell32/shlexec.c | ||
@@ -677,7 +677,15 @@ static UINT SHELL_FindExecutable(LPCWSTR lpPath, LPCWSTR lpFile, LPCWSTR lpVerb, | ||
/* The file was found in lpPath or one of the directories in the system-wide search path */ | ||
} | ||
else | ||
- xlpFile[0] = '\0'; | ||
+ { | ||
+ /* Checking for an unix application */ | ||
+ if( (xlpFile[0] == '/') || PathFindOnPathW(xlpFile, search_paths)) | ||
+ { | ||
+ lstrcpyW(lpResult, xlpFile); | ||
+ } | ||
+ else | ||
+ xlpFile[0] = '\0'; | ||
+ } | ||
} | ||
|
||
attribs = GetFileAttributesW(lpFile); | ||
@@ -1939,6 +1947,8 @@ static BOOL SHELL_execute( LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc ) | ||
|
||
end: | ||
TRACE("retval %Iu\n", retval); | ||
+ if (retval == SE_ERR_NOASSOC) | ||
+ SetLastError(ERROR_FILE_NOT_FOUND); | ||
|
||
free(wszApplicationName); | ||
if (wszParameters != parametersBuffer) | ||
-- | ||
GitLab | ||
|
49 changes: 49 additions & 0 deletions
49
...ders-part-3-3/0001-wined3d-Feed-WINED3D-RS-POINTSIZE-through-a-push-constant-buffer.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
From 759db416c81301833740a8f43ec3ffb738f1ce4c Mon Sep 17 00:00:00 2001 | ||
From: Elizabeth Figura <[email protected]> | ||
Date: Sun, 9 Jun 2024 12:50:30 -0500 | ||
Subject: [PATCH] wined3d: Feed WINED3D_RS_POINTSIZE through a push constant | ||
buffer. | ||
|
||
Not yet used by the GLSL backend, but will be needed by the HLSL backend. | ||
--- | ||
dlls/wined3d/stateblock.c | 3 +++ | ||
dlls/wined3d/wined3d_private.h | 2 +- | ||
2 files changed, 4 insertions(+), 1 deletion(-) | ||
|
||
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c | ||
index 80c1a6ea5b7..c064d950ba5 100644 | ||
--- a/dlls/wined3d/stateblock.c | ||
+++ b/dlls/wined3d/stateblock.c | ||
@@ -1616,6 +1616,7 @@ void CDECL wined3d_stateblock_set_render_state(struct wined3d_stateblock *stateb | ||
stateblock->changed.alpha_to_coverage = 1; | ||
stateblock->stateblock_state.alpha_to_coverage = (value == WINED3D_ALPHA_TO_COVERAGE_ENABLE); | ||
} | ||
+ stateblock->changed.point_scale = 1; | ||
break; | ||
|
||
case WINED3D_RS_TEXTUREFACTOR: | ||
@@ -3810,6 +3811,8 @@ void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device, | ||
{ | ||
struct wined3d_ffp_point_constants constants; | ||
|
||
+ constants.size = int_to_float(state->rs[WINED3D_RS_POINTSIZE]); | ||
+ | ||
if (state->rs[WINED3D_RS_POINTSCALEENABLE]) | ||
{ | ||
float scale_factor = state->viewport.height * state->viewport.height; | ||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h | ||
index 39a4aa5da9c..3e797b47795 100644 | ||
--- a/dlls/wined3d/wined3d_private.h | ||
+++ b/dlls/wined3d/wined3d_private.h | ||
@@ -2784,7 +2784,7 @@ struct wined3d_ffp_vs_constants | ||
struct wined3d_ffp_point_constants | ||
{ | ||
float scale_const, scale_linear, scale_quad; | ||
- float padding; /* For the HLSL backend. */ | ||
+ float size; | ||
} point; | ||
struct wined3d_material material; | ||
float padding[3]; /* For the HLSL backend. */ | ||
-- | ||
GitLab | ||
|
46 changes: 46 additions & 0 deletions
46
...FP-HLSL-shaders-part-3-3/0002-wined3d-Implement-point-size-in-the-HLSL-FFP-pipeline.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
From b197989561e8f086b0e028d255d168d48e5d2ddf Mon Sep 17 00:00:00 2001 | ||
From: Elizabeth Figura <[email protected]> | ||
Date: Sun, 9 Jun 2024 12:50:30 -0500 | ||
Subject: [PATCH] wined3d: Implement point size in the HLSL FFP pipeline. | ||
|
||
--- | ||
dlls/wined3d/ffp_hlsl.c | 9 ++++++--- | ||
1 file changed, 6 insertions(+), 3 deletions(-) | ||
|
||
diff --git a/dlls/wined3d/ffp_hlsl.c b/dlls/wined3d/ffp_hlsl.c | ||
index b662f1756c8..51a621aad6d 100644 | ||
--- a/dlls/wined3d/ffp_hlsl.c | ||
+++ b/dlls/wined3d/ffp_hlsl.c | ||
@@ -201,9 +201,6 @@ static bool ffp_hlsl_generate_vertex_shader(const struct wined3d_ffp_vs_settings | ||
{ | ||
struct wined3d_string_buffer texcoord; | ||
|
||
- if (settings->point_size) | ||
- FIXME("Ignoring point size.\n"); | ||
- | ||
if (settings->vertexblends) | ||
FIXME("Ignoring vertex blend.\n"); | ||
|
||
@@ -256,6 +253,7 @@ static bool ffp_hlsl_generate_vertex_shader(const struct wined3d_ffp_vs_settings | ||
} | ||
if (settings->fog_mode == WINED3D_FFP_VS_FOG_DEPTH || settings->fog_mode == WINED3D_FFP_VS_FOG_RANGE) | ||
shader_addline(buffer, " float fogcoord : FOG;\n"); | ||
+ shader_addline(buffer, " float point_size : PSIZE;\n"); | ||
shader_addline(buffer, "};\n\n"); | ||
|
||
shader_addline(buffer, "float3 ffp_normalize(float3 n)\n{\n"); | ||
@@ -350,6 +348,11 @@ static bool ffp_hlsl_generate_vertex_shader(const struct wined3d_ffp_vs_settings | ||
break; | ||
} | ||
|
||
+ shader_addline(buffer, " o.point_size = %s / sqrt(c.point_params.x" | ||
+ " + c.point_params.y * length(ec_pos.xyz)" | ||
+ " + c.point_params.z * dot(ec_pos.xyz, ec_pos.xyz));\n", | ||
+ settings->per_vertex_point_size ? "i.point_size" : "c.point_params.w"); | ||
+ | ||
shader_addline(buffer, "}\n"); | ||
|
||
return true; | ||
-- | ||
GitLab | ||
|
78 changes: 78 additions & 0 deletions
78
...SL-shaders-part-3-3/0003-wined3d-Implement-vertex-blending-in-the-HLSL-FFP-pipeline.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
From 7e52ea5b11b14c66aecb1aee99aedb963328fd81 Mon Sep 17 00:00:00 2001 | ||
From: Elizabeth Figura <[email protected]> | ||
Date: Sun, 9 Jun 2024 12:50:30 -0500 | ||
Subject: [PATCH] wined3d: Implement vertex blending in the HLSL FFP pipeline. | ||
|
||
--- | ||
dlls/wined3d/ffp_hlsl.c | 32 ++++++++++++++++++++++++-------- | ||
1 file changed, 24 insertions(+), 8 deletions(-) | ||
|
||
diff --git a/dlls/wined3d/ffp_hlsl.c b/dlls/wined3d/ffp_hlsl.c | ||
index 51a621aad6d..d846a6bda26 100644 | ||
--- a/dlls/wined3d/ffp_hlsl.c | ||
+++ b/dlls/wined3d/ffp_hlsl.c | ||
@@ -201,9 +201,6 @@ static bool ffp_hlsl_generate_vertex_shader(const struct wined3d_ffp_vs_settings | ||
{ | ||
struct wined3d_string_buffer texcoord; | ||
|
||
- if (settings->vertexblends) | ||
- FIXME("Ignoring vertex blend.\n"); | ||
- | ||
/* This must be kept in sync with struct wined3d_ffp_vs_constants. */ | ||
shader_addline(buffer, "uniform struct\n"); | ||
shader_addline(buffer, "{\n"); | ||
@@ -264,6 +261,8 @@ static bool ffp_hlsl_generate_vertex_shader(const struct wined3d_ffp_vs_settings | ||
shader_addline(buffer, "void main(in struct input i, out struct output o)\n"); | ||
shader_addline(buffer, "{\n"); | ||
|
||
+ shader_addline(buffer, " i.blend_weight[%u] = 1.0;\n", settings->vertexblends); | ||
+ | ||
if (settings->transformed) | ||
{ | ||
shader_addline(buffer, " float4 ec_pos = float4(i.pos.xyz, 1.0);\n"); | ||
@@ -277,9 +276,12 @@ static bool ffp_hlsl_generate_vertex_shader(const struct wined3d_ffp_vs_settings | ||
} | ||
else | ||
{ | ||
- shader_addline(buffer, " float4 ec_pos = 0.0;\n\n"); | ||
+ for (unsigned int i = 0; i < settings->vertexblends; ++i) | ||
+ shader_addline(buffer, " i.blend_weight[%u] -= i.blend_weight[%u];\n", settings->vertexblends, i); | ||
|
||
- shader_addline(buffer, " ec_pos += mul(c.modelview_matrices[0], float4(i.pos.xyz, 1.0));\n\n"); | ||
+ shader_addline(buffer, " float4 ec_pos = 0.0;\n\n"); | ||
+ for (unsigned int i = 0; i < settings->vertexblends + 1; ++i) | ||
+ shader_addline(buffer, " ec_pos += i.blend_weight[%u] * mul(c.modelview_matrices[%u], float4(i.pos.xyz, 1.0));\n", i, i); | ||
|
||
shader_addline(buffer, " o.pos = mul(c.projection_matrix, ec_pos);\n"); | ||
shader_addline(buffer, " ec_pos /= ec_pos.w;\n\n"); | ||
@@ -288,10 +290,24 @@ static bool ffp_hlsl_generate_vertex_shader(const struct wined3d_ffp_vs_settings | ||
shader_addline(buffer, " float3 normal = 0.0;\n"); | ||
if (settings->normal) | ||
{ | ||
- if (settings->transformed) | ||
- shader_addline(buffer, " normal = i.normal;\n"); | ||
+ if (!settings->vertexblends) | ||
+ { | ||
+ if (settings->transformed) | ||
+ shader_addline(buffer, " normal = i.normal;\n"); | ||
+ else | ||
+ shader_addline(buffer, " normal = mul((float3x3)c.modelview_matrices[1], i.normal);\n"); | ||
+ } | ||
else | ||
- shader_addline(buffer, " normal = mul((float3x3)c.modelview_matrices[1], i.normal);\n"); | ||
+ { | ||
+ for (unsigned int i = 0; i < settings->vertexblends + 1; ++i) | ||
+ { | ||
+ if (settings->transformed) | ||
+ shader_addline(buffer, " normal += i.blend_weight[%u] * i.normal;\n", i); | ||
+ else | ||
+ shader_addline(buffer, " normal += i.blend_weight[%u]" | ||
+ " * mul((float3x3)c.modelview_matrices[%u], i.normal);\n", i, i); | ||
+ } | ||
+ } | ||
|
||
if (settings->normalize) | ||
shader_addline(buffer, " normal = ffp_normalize(normal);\n"); | ||
-- | ||
GitLab | ||
|
Oops, something went wrong.