Rebase against c21c8525f9e69cfd48906ecc33b909490bd82783.

This commit is contained in:
Zebediah Figura 2018-03-13 22:31:07 -05:00
parent cc1da8fb76
commit 9739f8ff47
18 changed files with 116 additions and 617 deletions

View File

@ -1,4 +1,4 @@
From 247c41da056d4a7da8506229e1cf7364297dd693 Mon Sep 17 00:00:00 2001
From 65dda249fcbd5c1685fc89ede60e946b910508e3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 17 Jan 2016 17:12:45 +0100
Subject: [PATCH] ext-ms-win-appmodel-usercontext-l1-1-0: Add dll and add stub
@ -15,17 +15,17 @@ Subject: [PATCH] ext-ms-win-appmodel-usercontext-l1-1-0: Add dll and add stub
create mode 100644 dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c
diff --git a/configure.ac b/configure.ac
index 4d7111a..6857372 100644
index 53ddeea..4061187 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3229,6 +3229,7 @@ WINE_CONFIG_MAKEFILE(dlls/evr)
@@ -3238,6 +3238,7 @@ WINE_CONFIG_MAKEFILE(dlls/evr)
WINE_CONFIG_MAKEFILE(dlls/evr/tests)
WINE_CONFIG_MAKEFILE(dlls/explorerframe)
WINE_CONFIG_MAKEFILE(dlls/explorerframe/tests)
+WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-appmodel-usercontext-l1-1-0)
WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-authz-context-l1-1-0)
WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-domainjoin-netjoin-l1-1-0)
WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-gdi-dc-create-l1-1-1)
WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-dwmapi-ext-l1-1-0)
diff --git a/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in
new file mode 100644
index 0000000..16eee75
@ -87,5 +87,5 @@ index 0000000..7a9e75f
+ return S_OK;
+}
--
1.9.1
2.7.4

View File

@ -2,4 +2,4 @@ Fixes: Implement BCrypt AES provider
# 40418 was originally here, but was apparently satisfied with less.
Fixes: [42553] Implement BCrypt ECB chaining mode
Fixes: [39582] Implement BCrypt RSA provider
Fixes: [44053] Implement BCryptImportKey and BCryptExportKey
Fixes: [43605] Implement elliptic curve (ECDSA) cryptography

View File

@ -1,315 +0,0 @@
From 56f22f460659c3b01e50bdb5b10a61c560bce724 Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Wed, 31 Dec 2014 18:45:24 +0100
Subject: d3dx9_36: Add stub for D3DXComputeNormalMap.
---
dlls/d3dx9_24/d3dx9_24.spec | 2 +-
dlls/d3dx9_25/d3dx9_25.spec | 2 +-
dlls/d3dx9_26/d3dx9_26.spec | 2 +-
dlls/d3dx9_27/d3dx9_27.spec | 2 +-
dlls/d3dx9_28/d3dx9_28.spec | 2 +-
dlls/d3dx9_29/d3dx9_29.spec | 2 +-
dlls/d3dx9_30/d3dx9_30.spec | 2 +-
dlls/d3dx9_31/d3dx9_31.spec | 2 +-
dlls/d3dx9_32/d3dx9_32.spec | 2 +-
dlls/d3dx9_33/d3dx9_33.spec | 2 +-
dlls/d3dx9_34/d3dx9_34.spec | 2 +-
dlls/d3dx9_35/d3dx9_35.spec | 2 +-
dlls/d3dx9_36/d3dx9_36.spec | 2 +-
dlls/d3dx9_36/mesh.c | 12 ++++++++++++
dlls/d3dx9_37/d3dx9_37.spec | 2 +-
dlls/d3dx9_38/d3dx9_38.spec | 2 +-
dlls/d3dx9_39/d3dx9_39.spec | 2 +-
dlls/d3dx9_40/d3dx9_40.spec | 2 +-
dlls/d3dx9_41/d3dx9_41.spec | 2 +-
dlls/d3dx9_42/d3dx9_42.spec | 2 +-
dlls/d3dx9_43/d3dx9_43.spec | 2 +-
21 files changed, 32 insertions(+), 20 deletions(-)
diff --git a/dlls/d3dx9_24/d3dx9_24.spec b/dlls/d3dx9_24/d3dx9_24.spec
index f182d7e..f07ef54 100644
--- a/dlls/d3dx9_24/d3dx9_24.spec
+++ b/dlls/d3dx9_24/d3dx9_24.spec
@@ -18,7 +18,7 @@
@ stdcall D3DXCompileShaderFromResourceW(ptr wstr ptr ptr str str long ptr ptr ptr)
@ stdcall D3DXComputeBoundingBox(ptr long long ptr ptr)
@ stdcall D3DXComputeBoundingSphere(ptr long long ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_25/d3dx9_25.spec b/dlls/d3dx9_25/d3dx9_25.spec
index 300dc1d..691f921 100644
--- a/dlls/d3dx9_25/d3dx9_25.spec
+++ b/dlls/d3dx9_25/d3dx9_25.spec
@@ -18,7 +18,7 @@
@ stdcall D3DXCompileShaderFromResourceW(ptr wstr ptr ptr str str long ptr ptr ptr)
@ stdcall D3DXComputeBoundingBox(ptr long long ptr ptr)
@ stdcall D3DXComputeBoundingSphere(ptr long long ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_26/d3dx9_26.spec b/dlls/d3dx9_26/d3dx9_26.spec
index 79e0a0c..151e6f8 100644
--- a/dlls/d3dx9_26/d3dx9_26.spec
+++ b/dlls/d3dx9_26/d3dx9_26.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_27/d3dx9_27.spec b/dlls/d3dx9_27/d3dx9_27.spec
index 79e0a0c..151e6f8 100644
--- a/dlls/d3dx9_27/d3dx9_27.spec
+++ b/dlls/d3dx9_27/d3dx9_27.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_28/d3dx9_28.spec b/dlls/d3dx9_28/d3dx9_28.spec
index abbfa94..10f7620 100644
--- a/dlls/d3dx9_28/d3dx9_28.spec
+++ b/dlls/d3dx9_28/d3dx9_28.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_29/d3dx9_29.spec b/dlls/d3dx9_29/d3dx9_29.spec
index abbfa94..10f7620 100644
--- a/dlls/d3dx9_29/d3dx9_29.spec
+++ b/dlls/d3dx9_29/d3dx9_29.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_30/d3dx9_30.spec b/dlls/d3dx9_30/d3dx9_30.spec
index 0269caa..65aaeb5 100644
--- a/dlls/d3dx9_30/d3dx9_30.spec
+++ b/dlls/d3dx9_30/d3dx9_30.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_31/d3dx9_31.spec b/dlls/d3dx9_31/d3dx9_31.spec
index be37e8f..30d84a8 100644
--- a/dlls/d3dx9_31/d3dx9_31.spec
+++ b/dlls/d3dx9_31/d3dx9_31.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_32/d3dx9_32.spec b/dlls/d3dx9_32/d3dx9_32.spec
index 6d9e244..1ff0f41 100644
--- a/dlls/d3dx9_32/d3dx9_32.spec
+++ b/dlls/d3dx9_32/d3dx9_32.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_33/d3dx9_33.spec b/dlls/d3dx9_33/d3dx9_33.spec
index 6d9e244..1ff0f41 100644
--- a/dlls/d3dx9_33/d3dx9_33.spec
+++ b/dlls/d3dx9_33/d3dx9_33.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_34/d3dx9_34.spec b/dlls/d3dx9_34/d3dx9_34.spec
index 6d9e244..1ff0f41 100644
--- a/dlls/d3dx9_34/d3dx9_34.spec
+++ b/dlls/d3dx9_34/d3dx9_34.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_35/d3dx9_35.spec b/dlls/d3dx9_35/d3dx9_35.spec
index 6d9e244..1ff0f41 100644
--- a/dlls/d3dx9_35/d3dx9_35.spec
+++ b/dlls/d3dx9_35/d3dx9_35.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
index 2db0152..20571b1 100644
--- a/dlls/d3dx9_36/d3dx9_36.spec
+++ b/dlls/d3dx9_36/d3dx9_36.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c
index 3204ea7..b0b9846 100644
--- a/dlls/d3dx9_36/mesh.c
+++ b/dlls/d3dx9_36/mesh.c
@@ -7528,6 +7528,18 @@ HRESULT WINAPI D3DXComputeNormals(struct ID3DXBaseMesh *mesh, const DWORD *adjac
}
/*************************************************************************
+ * D3DXComputeNormalMap (D3DX9_36.@)
+ */
+HRESULT WINAPI D3DXComputeNormalMap(IDirect3DTexture9 *texture, IDirect3DTexture9 *src_texture,
+ const PALETTEENTRY *src_palette, DWORD flags, DWORD channel, FLOAT amplitude)
+{
+ FIXME("texture %p, src_texture %p, src_palette %p, flags %#x, channel %u, amplitude %f stub.\n",
+ texture, src_texture, src_palette, flags, channel, amplitude);
+
+ return D3D_OK;
+}
+
+/*************************************************************************
* D3DXIntersect (D3DX9_36.@)
*/
HRESULT WINAPI D3DXIntersect(ID3DXBaseMesh *mesh, const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir,
diff --git a/dlls/d3dx9_37/d3dx9_37.spec b/dlls/d3dx9_37/d3dx9_37.spec
index 2db0152..20571b1 100644
--- a/dlls/d3dx9_37/d3dx9_37.spec
+++ b/dlls/d3dx9_37/d3dx9_37.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_38/d3dx9_38.spec b/dlls/d3dx9_38/d3dx9_38.spec
index 2db0152..20571b1 100644
--- a/dlls/d3dx9_38/d3dx9_38.spec
+++ b/dlls/d3dx9_38/d3dx9_38.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_39/d3dx9_39.spec b/dlls/d3dx9_39/d3dx9_39.spec
index 2db0152..20571b1 100644
--- a/dlls/d3dx9_39/d3dx9_39.spec
+++ b/dlls/d3dx9_39/d3dx9_39.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_40/d3dx9_40.spec b/dlls/d3dx9_40/d3dx9_40.spec
index 2db0152..20571b1 100644
--- a/dlls/d3dx9_40/d3dx9_40.spec
+++ b/dlls/d3dx9_40/d3dx9_40.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_41/d3dx9_41.spec b/dlls/d3dx9_41/d3dx9_41.spec
index 2db0152..20571b1 100644
--- a/dlls/d3dx9_41/d3dx9_41.spec
+++ b/dlls/d3dx9_41/d3dx9_41.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_42/d3dx9_42.spec b/dlls/d3dx9_42/d3dx9_42.spec
index 9a69e76..0e888d7 100644
--- a/dlls/d3dx9_42/d3dx9_42.spec
+++ b/dlls/d3dx9_42/d3dx9_42.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
diff --git a/dlls/d3dx9_43/d3dx9_43.spec b/dlls/d3dx9_43/d3dx9_43.spec
index 9a69e76..0e888d7 100644
--- a/dlls/d3dx9_43/d3dx9_43.spec
+++ b/dlls/d3dx9_43/d3dx9_43.spec
@@ -22,7 +22,7 @@
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
+@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float)
@ stdcall D3DXComputeNormals(ptr ptr)
@ stub D3DXComputeTangent(ptr long long long long ptr)
@ stub D3DXComputeTangentFrame(ptr long)
--
2.9.0

View File

@ -1,2 +1 @@
Fixes: [38352] Add stub for D3DXComputeNormalMap
Fixes: [41697] Add stub for D3DXComputeTangent

View File

@ -1,4 +1,4 @@
From a34d16145d16d83aa3edc0d8cbf59dfd40268738 Mon Sep 17 00:00:00 2001
From c16727fda95fe208bfa5730d6a36e82c6d8d52a2 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dtimoshkov@codeweavers.com>
Date: Mon, 28 Jul 2003 07:39:25 -0500
Subject: libs: Fix most problems with CompareString.
@ -9,10 +9,10 @@ Subject: libs: Fix most problems with CompareString.
2 files changed, 34 insertions(+), 35 deletions(-)
diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
index 07d6f8c..97ed611 100644
index efb4231..cdb935e 100644
--- a/dlls/kernel32/tests/locale.c
+++ b/dlls/kernel32/tests/locale.c
@@ -1956,13 +1956,13 @@ static void test_CompareStringA(void)
@@ -1959,13 +1959,13 @@ static void test_CompareStringA(void)
todo_wine ok(ret != CSTR_EQUAL, "\\2 vs \\1 expected unequal\n");
ret = CompareStringA(lcid, NORM_IGNORECASE | LOCALE_USE_CP_ACP, "#", -1, ".", -1);
@ -29,10 +29,10 @@ index 07d6f8c..97ed611 100644
lcid = MAKELCID(MAKELANGID(LANG_POLISH, SUBLANG_DEFAULT), SORT_DEFAULT);
@@ -5302,6 +5302,5 @@ START_TEST(locale)
test_GetSystemPreferredUILanguages();
@@ -5490,6 +5490,5 @@ START_TEST(locale)
test_GetThreadPreferredUILanguages();
test_GetUserPreferredUILanguages();
test_FindNLSStringEx();
- /* this requires collation table patch to make it MS compatible */
- if (0) test_sorting();
+ test_sorting();
@ -168,5 +168,5 @@ index 465d740..f354a75 100644
0x0a130121, 0x0a140121, 0x02370121, 0x02350121, 0x03a30121, 0x03a40121, 0x03a50121, 0x024e0121,
0x02a10121, 0x0a150161, 0x0a290151, 0x0a3d0161, 0x0a490161, 0x0a650161, 0x0a910161, 0x0a990161,
--
2.9.0
2.7.4

View File

@ -1,42 +0,0 @@
From 9c89b126ffe944150dd643009b24b0140758fab3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 11 Sep 2017 03:07:45 +0200
Subject: ntdll: Translate icebp instruction to EXCEPTION_SINGLE_STEP on x64.
---
dlls/ntdll/signal_x86_64.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index f434775df00..2e1eac2d671 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -2815,6 +2815,12 @@ static void segv_handler( int signal, siginfo_t *siginfo, void *sigcontext )
}
}
+static inline DWORD is_icebp_instr( CONTEXT *context )
+{
+ const BYTE *instr = (BYTE *)context->Rip - 1;
+ return (*instr == 0xf1) ? EXCEPTION_SINGLE_STEP : 0;
+}
+
/**********************************************************************
* trap_handler
*
@@ -2831,8 +2837,12 @@ static void trap_handler( int signal, siginfo_t *siginfo, void *sigcontext )
rec->ExceptionCode = EXCEPTION_SINGLE_STEP;
break;
case TRAP_BRKPT: /* Breakpoint exception */
+ {
+ CONTEXT *win_context = get_exception_context( rec );
+ if ((rec->ExceptionCode = is_icebp_instr( win_context ))) break;
rec->ExceptionAddress = (char *)rec->ExceptionAddress - 1; /* back up over the int3 instruction */
/* fall through */
+ }
default:
rec->ExceptionCode = EXCEPTION_BREAKPOINT;
rec->NumberParameters = 1;
--
2.14.1

View File

@ -1,113 +0,0 @@
From 597a7781f843f3f23b91c17ce895150ff2c0aa81 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 4 Oct 2017 01:22:19 +0200
Subject: ntdll: Correctly handle privileged instructions on x86_64.
---
dlls/ntdll/signal_x86_64.c | 82 +++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 81 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index d35c3e6663c..996e5728e7e 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -2718,6 +2718,86 @@ static void raise_generic_exception( EXCEPTION_RECORD *rec, CONTEXT *context )
}
+/***********************************************************************
+ * is_privileged_instr
+ *
+ * Check if the fault location is a privileged instruction.
+ */
+static inline DWORD is_privileged_instr( CONTEXT *context )
+{
+ const BYTE *instr = (BYTE *)context->Rip;
+ unsigned int prefix_count = 0;
+
+ for (;;) switch(*instr)
+ {
+ /* instruction prefixes */
+ case 0x2e: /* %cs: */
+ case 0x36: /* %ss: */
+ case 0x3e: /* %ds: */
+ case 0x26: /* %es: */
+ case 0x40: /* rex */
+ case 0x41: /* rex */
+ case 0x42: /* rex */
+ case 0x43: /* rex */
+ case 0x44: /* rex */
+ case 0x45: /* rex */
+ case 0x46: /* rex */
+ case 0x47: /* rex */
+ case 0x48: /* rex */
+ case 0x49: /* rex */
+ case 0x4a: /* rex */
+ case 0x4b: /* rex */
+ case 0x4c: /* rex */
+ case 0x4d: /* rex */
+ case 0x4e: /* rex */
+ case 0x4f: /* rex */
+ case 0x64: /* %fs: */
+ case 0x65: /* %gs: */
+ case 0x66: /* opcode size */
+ case 0x67: /* addr size */
+ case 0xf0: /* lock */
+ case 0xf2: /* repne */
+ case 0xf3: /* repe */
+ if (++prefix_count >= 15) return EXCEPTION_ILLEGAL_INSTRUCTION;
+ instr++;
+ continue;
+
+ case 0x0f: /* extended instruction */
+ switch(instr[1])
+ {
+ case 0x06: /* clts */
+ case 0x08: /* invd */
+ case 0x09: /* wbinvd */
+ case 0x20: /* mov crX, reg */
+ case 0x21: /* mov drX, reg */
+ case 0x22: /* mov reg, crX */
+ case 0x23: /* mov reg drX */
+ return EXCEPTION_PRIV_INSTRUCTION;
+ }
+ return 0;
+ case 0x6c: /* insb (%dx) */
+ case 0x6d: /* insl (%dx) */
+ case 0x6e: /* outsb (%dx) */
+ case 0x6f: /* outsl (%dx) */
+ case 0xcd: /* int $xx */
+ case 0xe4: /* inb al,XX */
+ case 0xe5: /* in (e)ax,XX */
+ case 0xe6: /* outb XX,al */
+ case 0xe7: /* out XX,(e)ax */
+ case 0xec: /* inb (%dx),%al */
+ case 0xed: /* inl (%dx),%eax */
+ case 0xee: /* outb %al,(%dx) */
+ case 0xef: /* outl %eax,(%dx) */
+ case 0xf4: /* hlt */
+ case 0xfa: /* cli */
+ case 0xfb: /* sti */
+ return EXCEPTION_PRIV_INSTRUCTION;
+ default:
+ return 0;
+ }
+}
+
+
/***********************************************************************
* handle_interrupt
*
@@ -2791,8 +2871,8 @@ static void segv_handler( int signal, siginfo_t *siginfo, void *sigcontext )
{
CONTEXT *win_context = get_exception_context( rec );
WORD err = ERROR_sig(ucontext);
+ if (!err && (rec->ExceptionCode = is_privileged_instr( win_context ))) break;
if ((err & 7) == 2 && handle_interrupt( err >> 3, rec, win_context )) break;
- rec->ExceptionCode = err ? EXCEPTION_ACCESS_VIOLATION : EXCEPTION_PRIV_INSTRUCTION;
rec->ExceptionCode = EXCEPTION_ACCESS_VIOLATION;
}
break;
--
2.14.1

View File

@ -1,26 +0,0 @@
From 89fb55baee8ee0ae595f940fdcf7e69a339b0b54 Mon Sep 17 00:00:00 2001
From: Andrew Wesie <awesie@gmail.com>
Date: Wed, 4 Oct 2017 01:51:09 +0200
Subject: ntdll: Handle interrupt 0x2c on x86_64.
---
dlls/ntdll/signal_x86_64.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index 28f6d926a43..34d748582ef 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -2804,6 +2804,9 @@ static inline BOOL handle_interrupt( unsigned int interrupt, EXCEPTION_RECORD *r
{
switch(interrupt)
{
+ case 0x2c:
+ rec->ExceptionCode = STATUS_ASSERTION_FAILURE;
+ return TRUE;
case 0x2d:
context->Rip += 3;
rec->ExceptionCode = EXCEPTION_BREAKPOINT;
--
2.14.1

View File

@ -1 +1 @@
Fixes: Translate icebp instruction to EXCEPTION_SINGLE_STEP on x86_64
# Originally separated from ntdll-Builtin_Prot, for unclear reasons.

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "dfae798d98bf7a8b45954e6d788928d067d0772e"
echo "c21c8525f9e69cfd48906ecc33b909490bd82783"
}
# Show version information
@ -3048,7 +3048,7 @@ fi
# | This patchset fixes the following Wine bugs:
# | * [#42553] Implement BCrypt ECB chaining mode
# | * [#39582] Implement BCrypt RSA provider
# | * [#44053] Implement BCryptImportKey and BCryptExportKey
# | * [#43605] Implement elliptic curve (ECDSA) cryptography
# |
# | Modified files:
# | * dlls/bcrypt/bcrypt.spec, dlls/bcrypt/bcrypt_main.c, dlls/bcrypt/tests/bcrypt.c, dlls/ncrypt/ncrypt.spec,
@ -3672,7 +3672,6 @@ fi
# Patchset d3dx9_36-D3DXStubs
# |
# | This patchset fixes the following Wine bugs:
# | * [#38352] Add stub for D3DXComputeNormalMap
# | * [#41697] Add stub for D3DXComputeTangent
# |
# | Modified files:
@ -3684,10 +3683,8 @@ fi
# | dlls/d3dx9_43/d3dx9_43.spec
# |
if test "$enable_d3dx9_36_D3DXStubs" -eq 1; then
patch_apply d3dx9_36-D3DXStubs/0001-d3dx9_36-Add-stub-for-D3DXComputeNormalMap.patch
patch_apply d3dx9_36-D3DXStubs/0003-d3dx9-Implement-D3DXComputeTangent.patch
(
printf '%s\n' '+ { "Christian Costa", "d3dx9_36: Add stub for D3DXComputeNormalMap.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "d3dx9: Implement D3DXComputeTangent.", 1 },';
) >> "$patchlist"
fi
@ -5386,14 +5383,8 @@ fi
# |
if test "$enable_ntdll_x86_64_ExceptionInformation" -eq 1; then
patch_apply ntdll-x86_64_ExceptionInformation/0001-ntdll-Set-proper-ExceptionInformation-0-for-x86_64-e.patch
patch_apply ntdll-x86_64_ExceptionInformation/0003-ntdll-Translate-icebp-instruction-to-EXCEPTION_SINGL.patch
patch_apply ntdll-x86_64_ExceptionInformation/0004-ntdll-Correctly-handle-privileged-instructions-on-x8.patch
patch_apply ntdll-x86_64_ExceptionInformation/0005-ntdll-Handle-interrupt-0x2c-on-x86_64.patch
(
printf '%s\n' '+ { "Sebastian Lackner", "ntdll: Set proper ExceptionInformation[0] for x86_64 exceptions.", 1 },';
printf '%s\n' '+ { "Michael Müller", "ntdll: Translate icebp instruction to EXCEPTION_SINGLE_STEP on x64.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "ntdll: Correctly handle privileged instructions on x86_64.", 1 },';
printf '%s\n' '+ { "Andrew Wesie", "ntdll: Handle interrupt 0x2c on x86_64.", 1 },';
) >> "$patchlist"
fi
@ -8127,9 +8118,6 @@ fi
# Patchset windowscodecs-JPEG_Decoder
# |
# | This patchset fixes the following Wine bugs:
# | * [#43520] Fix JPEG decoder and implement support for CMYK to BGR conversion
# |
# | Modified files:
# | * dlls/windowscodecs/converter.c, dlls/windowscodecs/jpegformat.c
# |

View File

@ -1 +1 @@
Fixes: [43520] Fix JPEG decoder and implement support for CMYK to BGR conversion
Fixes: Implement support for CMYK to BGR conversion in JPEG decoder

View File

@ -1,12 +1,12 @@
From 18a3c7cf10114b82a8bc90b86a60633d49c7b3f2 Mon Sep 17 00:00:00 2001
From e9f05f59ca4858a809dc21dee963ca8835515a4d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 25 Aug 2016 19:24:47 +0200
Subject: [PATCH] wined3d: Create dummy 1d textures and surfaces.
---
dlls/wined3d/resource.c | 1 +
dlls/wined3d/texture.c | 165 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 166 insertions(+)
dlls/wined3d/texture.c | 163 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 164 insertions(+)
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index 97f7aec..f340217 100644
@ -21,10 +21,10 @@ index 97f7aec..f340217 100644
{WINED3D_RTYPE_TEXTURE_2D, 0, WINED3D_GL_RES_TYPE_TEX_RECT},
{WINED3D_RTYPE_TEXTURE_2D, 0, WINED3D_GL_RES_TYPE_RB},
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 37a6b06..768b7fd 100644
index c520995..e901c32 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1764,6 +1764,45 @@ void wined3d_texture_upload_data(struct wined3d_texture *texture, unsigned int s
@@ -1776,6 +1776,45 @@ void wined3d_texture_upload_data(struct wined3d_texture *texture, unsigned int s
context, box, data, row_pitch, slice_pitch);
}
@ -70,7 +70,7 @@ index 37a6b06..768b7fd 100644
static void texture2d_upload_data(struct wined3d_texture *texture, unsigned int sub_resource_idx,
const struct wined3d_context *context, const struct wined3d_box *box,
const struct wined3d_const_bo_address *data, unsigned int row_pitch, unsigned int slice_pitch)
@@ -2166,6 +2205,128 @@ static const struct wined3d_resource_ops texture_resource_ops =
@@ -2182,6 +2221,126 @@ static const struct wined3d_resource_ops texture_resource_ops =
texture_resource_sub_resource_unmap,
};
@ -171,8 +171,6 @@ index 37a6b06..768b7fd 100644
+
+ surface = &surfaces[idx];
+ surface->container = texture;
+ surface->texture_level = i;
+ surface->texture_layer = j;
+
+ sub_resource = &texture->sub_resources[idx];
+ sub_resource->locations = WINED3D_LOCATION_DISCARDED;
@ -199,7 +197,7 @@ index 37a6b06..768b7fd 100644
static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3d_resource_desc *desc,
unsigned int layer_count, unsigned int level_count, DWORD flags, struct wined3d_device *device,
void *parent, const struct wined3d_parent_ops *parent_ops)
@@ -3074,6 +3235,10 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct
@@ -3090,6 +3249,10 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct
switch (desc->resource_type)
{

View File

@ -1,17 +1,17 @@
From 451b07b05e97bbd1f198ee0dadbf6860e82bce59 Mon Sep 17 00:00:00 2001
From 678e1311567041e679e9cd56e22eb2345cca62b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Aug 2016 22:22:26 +0200
Subject: [PATCH] wined3d: Implement preparation for 1d textures.
---
dlls/wined3d/texture.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 56 insertions(+), 1 deletion(-)
dlls/wined3d/texture.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 57 insertions(+), 1 deletion(-)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index ead97c8..9e9ab32 100644
index e901c32..5472aea 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1660,7 +1660,62 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
@@ -1800,7 +1800,63 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
static void texture1d_prepare_texture(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb)
{
@ -54,19 +54,20 @@ index ead97c8..9e9ab32 100644
+ for (i = 0; i < sub_count; ++i)
+ {
+ GLenum target;
+ struct wined3d_surface *surface = texture->sub_resources[i].u.surface;
+ width = wined3d_texture_get_level_width(texture, surface->texture_level);
+ unsigned int level = i % texture->level_count;
+
+ width = wined3d_texture_get_level_width(texture, level);
+ target = wined3d_texture_get_sub_resource_target(texture, i);
+
+ if (texture->target == GL_TEXTURE_1D_ARRAY)
+ {
+ gl_info->gl_ops.gl.p_glTexImage2D(target, surface->texture_level,
+ gl_info->gl_ops.gl.p_glTexImage2D(target, level,
+ internal, width, texture->layer_count, 0, format->glFormat, format->glType, NULL);
+ checkGLcall("glTexImage2D");
+ }
+ else
+ {
+ gl_info->gl_ops.gl.p_glTexImage1D(target, surface->texture_level,
+ gl_info->gl_ops.gl.p_glTexImage1D(target, level,
+ internal, width, 0, format->glFormat, format->glType, NULL);
+ checkGLcall("glTexImage1D");
+ }
@ -76,5 +77,5 @@ index ead97c8..9e9ab32 100644
static void texture1d_cleanup_sub_resources(struct wined3d_texture *texture)
--
1.9.1
2.7.4

View File

@ -1,4 +1,4 @@
From a8eaed59c46311213da87a7bdf955be7516e3a1a Mon Sep 17 00:00:00 2001
From 4675a6d20ed96591a5f0bcbf3c6e5330aa057102 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Aug 2016 22:25:20 +0200
Subject: [PATCH] wined3d: Implement uploading for 1d textures.
@ -9,10 +9,10 @@ Subject: [PATCH] wined3d: Implement uploading for 1d textures.
2 files changed, 71 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 1662604..352d2e7 100644
index 2962aa1..0177488 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -4268,7 +4268,8 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
@@ -4263,7 +4263,8 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
height = 1;
depth = 1;
}
@ -23,17 +23,17 @@ index 1662604..352d2e7 100644
struct wined3d_texture *texture = texture_from_resource(resource);
unsigned int level;
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 9e9ab32..63658a8 100644
index 5472aea..4ccf3d6 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1644,8 +1644,76 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
@@ -1784,8 +1784,76 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
const struct wined3d_context *context, const struct wined3d_box *box, const struct wined3d_const_bo_address *data,
unsigned int row_pitch, unsigned int slice_pitch)
{
- FIXME("texture %p, sub_resource_idx %u, context %p, box %p, data {%#x:%p}, row_pitch %#x, slice_pitch %#x: stub.\n",
+ struct wined3d_surface *surface = texture->sub_resources[sub_resource_idx].u.surface;
+ const struct wined3d_format *format = texture->resource.format;
+ unsigned int level = sub_resource_idx % texture->level_count;
+ unsigned int layer = sub_resource_idx / texture->level_count;
+ const struct wined3d_gl_info *gl_info = context->gl_info;
+ const void *mem = data->addr;
+ void *converted_mem = NULL;
@ -83,7 +83,7 @@ index 9e9ab32..63658a8 100644
+ {
+ gl_info->gl_ops.gl.p_glPixelStorei(GL_UNPACK_ROW_LENGTH, row_pitch / format->byte_count);
+
+ gl_info->gl_ops.gl.p_glTexSubImage2D(target, level, x, surface->texture_layer, update_w, 1, format->glFormat, format->glType, mem);
+ gl_info->gl_ops.gl.p_glTexSubImage2D(target, level, x, layer, update_w, 1, format->glFormat, format->glType, mem);
+ checkGLcall("glTexSubImage2D");
+
+ gl_info->gl_ops.gl.p_glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
@ -105,5 +105,5 @@ index 9e9ab32..63658a8 100644
/* Context activation is done by the caller. */
--
1.9.1
2.7.4

View File

@ -1,4 +1,4 @@
From b4b46e405c719c895276f10c68ddab7deeab6606 Mon Sep 17 00:00:00 2001
From 7413752707a47be44e0aa11c670b5f7993ac8b91 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Aug 2016 22:41:05 +0200
Subject: [PATCH] wined3d: Implement downloading from (s)rgb 1d textures to
@ -9,18 +9,18 @@ Subject: [PATCH] wined3d: Implement downloading from (s)rgb 1d textures to
1 file changed, 114 insertions(+)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 82ba0d4..da0e7d3a 100644
index af97b38..7018343 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -1717,6 +1717,78 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
@@ -1857,6 +1857,78 @@ static void texture1d_upload_data(struct wined3d_texture *texture, unsigned int
}
/* Context activation is done by the caller. */
+static void texture1d_download_data(struct wined3d_texture *texture, unsigned int sub_resource_idx,
+ const struct wined3d_context *context, const struct wined3d_bo_address *data)
+{
+ struct wined3d_surface *surface = texture->sub_resources[sub_resource_idx].u.surface;
+ const struct wined3d_format *format = texture->resource.format;
+ unsigned int layer = sub_resource_idx / texture->level_count;
+ const struct wined3d_gl_info *gl_info = context->gl_info;
+ struct wined3d_texture_sub_resource *sub_resource;
+ BYTE *temporary_mem = NULL;
@ -64,7 +64,7 @@ index 82ba0d4..da0e7d3a 100644
+
+ if (temporary_mem)
+ {
+ void *src_data = temporary_mem + surface->texture_layer * sub_resource->size;
+ void *src_data = temporary_mem + layer * sub_resource->size;
+ if (data->buffer_object)
+ {
+ GL_EXTCALL(glBindBuffer(GL_PIXEL_PACK_BUFFER, data->buffer_object));
@ -91,7 +91,7 @@ index 82ba0d4..da0e7d3a 100644
static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned int sub_resource_idx,
struct wined3d_context *context, DWORD location)
{
@@ -1779,6 +1851,48 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
@@ -1919,6 +1991,48 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
}
break;
@ -141,5 +141,5 @@ index 82ba0d4..da0e7d3a 100644
FIXME("Implement %s loading from %s.\n", wined3d_debug_location(location),
wined3d_debug_location(sub_resource->locations));
--
1.9.1
2.7.4

View File

@ -19,7 +19,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
};
struct wined3d_cs_add_dirty_texture_region
@@ -2256,6 +2259,53 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
@@ -2249,6 +2252,53 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
unsigned int slice_pitch)
{
struct wined3d_cs_update_sub_resource *op;
@ -73,7 +73,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
op = cs->ops->require_space(cs, sizeof(*op), WINED3D_CS_QUEUE_MAP);
op->opcode = WINED3D_CS_OP_UPDATE_SUB_RESOURCE;
@@ -2269,8 +2319,10 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
@@ -2262,8 +2312,10 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r
wined3d_resource_acquire(resource);
cs->ops->submit(cs, WINED3D_CS_QUEUE_MAP);
@ -84,7 +84,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
cs->ops->finish(cs, WINED3D_CS_QUEUE_MAP);
}
@@ -2453,6 +2505,13 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
@@ -2446,6 +2498,13 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
/* WINED3D_CS_OP_GENERATE_MIPMAPS */ wined3d_cs_exec_generate_mipmaps,
};
@ -98,7 +98,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id)
{
if (size > (cs->data_size - cs->end))
@@ -2506,6 +2565,9 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id
@@ -2499,6 +2558,9 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id
static const struct wined3d_cs_ops wined3d_cs_st_ops =
{
@ -108,7 +108,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
wined3d_cs_st_require_space,
wined3d_cs_st_submit,
wined3d_cs_st_finish,
@@ -2539,6 +2601,21 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs, enum wined3d_cs_queue_id
@@ -2532,6 +2594,21 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs, enum wined3d_cs_queue_id
wined3d_cs_queue_submit(&cs->queue[queue_id], cs);
}
@ -130,7 +130,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size_t size, struct wined3d_cs *cs)
{
size_t queue_size = ARRAY_SIZE(queue->data);
@@ -2600,6 +2677,16 @@ static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size
@@ -2593,6 +2670,16 @@ static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size
return packet->data;
}
@ -147,7 +147,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id)
{
if (cs->thread_id == GetCurrentThreadId())
@@ -2619,6 +2706,9 @@ static void wined3d_cs_mt_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id
@@ -2612,6 +2699,9 @@ static void wined3d_cs_mt_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id
static const struct wined3d_cs_ops wined3d_cs_mt_ops =
{
@ -271,7 +271,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -2406,7 +2406,11 @@ BOOL texture2d_load_texture(struct wined3d_texture *texture, unsigned int sub_re
@@ -2393,7 +2393,11 @@ BOOL texture2d_load_texture(struct wined3d_texture *texture, unsigned int sub_re
/* Don't use PBOs for converted surfaces. During PBO conversion we look at
* WINED3D_TEXTURE_CONVERTED but it isn't set (yet) in all cases it is
* getting called. */
@ -286,7 +286,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
--- a/dlls/wined3d/swapchain.c
+++ b/dlls/wined3d/swapchain.c
@@ -476,7 +476,11 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
@@ -475,7 +475,11 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
if (swapchain->render_to_fbo)
swapchain_blit(swapchain, context, src_rect, dst_rect);
@ -395,7 +395,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
}
if (!context && !list_empty(&texture->renderbuffers))
@@ -1583,11 +1621,16 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
@@ -1595,11 +1633,16 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
/* Context activation is done by the caller. */
static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *texture,
@ -412,7 +412,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
if (sub_resource->buffer_object)
return;
@@ -1599,6 +1642,16 @@ static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *textur
@@ -1611,6 +1654,16 @@ static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *textur
TRACE("Created buffer object %u for texture %p, sub-resource %u.\n",
sub_resource->buffer_object, texture, sub_resource_idx);
@ -429,7 +429,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
}
static void wined3d_texture_force_reload(struct wined3d_texture *texture)
@@ -1697,7 +1750,11 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned
@@ -1709,7 +1762,11 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned
return TRUE;
case WINED3D_LOCATION_BUFFER:
@ -441,7 +441,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
return TRUE;
case WINED3D_LOCATION_TEXTURE_RGB:
@@ -1996,7 +2053,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
@@ -2008,7 +2065,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
}
else if (sub_resource->locations & WINED3D_LOCATION_BUFFER)
{
@ -453,7 +453,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
wined3d_texture_bind_and_dirtify(texture, context, location == WINED3D_LOCATION_TEXTURE_SRGB);
wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch);
texture1d_upload_data(texture, sub_resource_idx, context, NULL, &data, row_pitch, slice_pitch);
@@ -2041,7 +2102,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
@@ -2053,7 +2114,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
case WINED3D_LOCATION_BUFFER:
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
{
@ -465,7 +465,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB)
wined3d_texture_bind_and_dirtify(texture, context, FALSE);
@@ -2339,8 +2404,13 @@ static void wined3d_texture_unload(struct wined3d_resource *resource)
@@ -2356,8 +2421,13 @@ static void wined3d_texture_unload(struct wined3d_resource *resource)
wined3d_texture_invalidate_location(texture, i, ~WINED3D_LOCATION_DISCARDED);
}
@ -479,7 +479,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
}
LIST_FOR_EACH_ENTRY_SAFE(entry, entry2, &texture->renderbuffers, struct wined3d_renderbuffer_entry, entry)
@@ -3095,7 +3165,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
@@ -3110,7 +3180,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
}
else if (sub_resource->locations & WINED3D_LOCATION_BUFFER)
{
@ -491,7 +491,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
wined3d_texture_bind_and_dirtify(texture, context,
location == WINED3D_LOCATION_TEXTURE_SRGB);
wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch);
@@ -3141,7 +3215,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
@@ -3156,7 +3230,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
case WINED3D_LOCATION_BUFFER:
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
{
@ -503,7 +503,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB)
wined3d_texture_bind_and_dirtify(texture, context, FALSE);
@@ -3344,8 +3422,19 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned
@@ -3359,8 +3437,19 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned
if (dst_texture->sub_resources[dst_sub_resource_idx].map_count
|| src_texture->sub_resources[src_sub_resource_idx].map_count)
{
@ -571,7 +571,7 @@ diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2898,6 +2898,16 @@ struct wined3d_dummy_textures
@@ -2906,6 +2906,16 @@ struct wined3d_dummy_textures
GLuint tex_2d_ms_array;
};
@ -588,7 +588,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
#define WINED3D_UNMAPPED_STAGE ~0u
/* Multithreaded flag. Removed from the public header to signal that
@@ -2998,6 +3008,12 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
@@ -3006,6 +3016,12 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN;
@ -601,7 +601,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
{
@@ -3200,7 +3216,11 @@ struct wined3d_texture
@@ -3208,7 +3224,11 @@ struct wined3d_texture
unsigned int map_count;
DWORD locations;
@ -613,7 +613,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
} sub_resources[1];
};
@@ -3531,6 +3551,9 @@ struct wined3d_cs_queue
@@ -3527,6 +3547,9 @@ struct wined3d_cs_queue
struct wined3d_cs_ops
{

View File

@ -1,4 +1,4 @@
From 6a156acdcf5ef4f39472d736878f860fe9fa8aa0 Mon Sep 17 00:00:00 2001
From 248a96ea17ba5998b1b2f759fec5736f43cf86ba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 18 Aug 2017 23:51:59 +0200
Subject: [PATCH] wined3d: Implement dual source blending.
@ -14,10 +14,10 @@ Subject: [PATCH] wined3d: Implement dual source blending.
7 files changed, 92 insertions(+), 16 deletions(-)
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
index 1a9053e50d..77dbdb5f80 100644
index 3732fbf..15c8abd 100644
--- a/dlls/d3d11/tests/d3d11.c
+++ b/dlls/d3d11/tests/d3d11.c
@@ -26215,7 +26215,7 @@ static void test_dual_blending(void)
@@ -25560,7 +25560,7 @@ static void test_dual_blending(void)
ID3D11DeviceContext_ClearRenderTargetView(context, rtv[1], white);
ID3D11DeviceContext_Draw(context, 3, 0);
@ -27,10 +27,10 @@ index 1a9053e50d..77dbdb5f80 100644
ID3D11BlendState_Release(blend_state);
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index f51ad59c92..f72ac415cb 100644
index 73327bd..384266b 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -3154,10 +3154,19 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const
@@ -3131,10 +3131,19 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const
else if (!context->render_offscreen)
return context_generate_rt_mask_from_resource(rts[0]->resource);
@ -52,10 +52,10 @@ index f51ad59c92..f72ac415cb 100644
{
i = wined3d_bit_scan(&mask);
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index a75be3039c..bd2bc5b410 100644
index 7c3a07c..cc45ed7 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -3541,6 +3541,12 @@ static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info)
@@ -3545,6 +3545,12 @@ static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info)
gl_info->limits.buffers = min(MAX_RENDER_TARGET_VIEWS, gl_max);
TRACE("Max draw buffers: %u.\n", gl_max);
}
@ -68,7 +68,7 @@ index a75be3039c..bd2bc5b410 100644
if (gl_info->supported[ARB_MULTITEXTURE])
{
if (gl_info->supported[WINED3D_GL_LEGACY_CONTEXT])
@@ -4323,6 +4329,10 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
@@ -4340,6 +4346,10 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
for (i = 0; i < gl_info->limits.buffers; ++i)
adapter->d3d_info.valid_rt_mask |= (1u << i);
@ -80,7 +80,7 @@ index a75be3039c..bd2bc5b410 100644
{
/* We do not want to deal with re-creating immutable texture storage for color keying emulation. */
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index a571405816..670a50e992 100644
index 7edec82..7f7ad3f 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -3008,6 +3008,7 @@ static void shader_glsl_get_register_name(const struct wined3d_shader_register *
@ -152,7 +152,7 @@ index a571405816..670a50e992 100644
}
}
diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
index 66e1bbf882..0513c9e205 100644
index 66e1bbf..0513c9e 100644
--- a/dlls/wined3d/shader.c
+++ b/dlls/wined3d/shader.c
@@ -4011,6 +4011,8 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3
@ -165,7 +165,7 @@ index 66e1bbf882..0513c9e205 100644
static HRESULT pixel_shader_init(struct wined3d_shader *shader, struct wined3d_device *device,
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index ace6f3e566..2ce8c6fd7e 100644
index 486d22a..4ecd336 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -534,12 +534,14 @@ static void state_blend(struct wined3d_context *context, const struct wined3d_st
@ -208,7 +208,7 @@ index ace6f3e566..2ce8c6fd7e 100644
state->render_states[WINED3D_RS_SRCBLEND],
state->render_states[WINED3D_RS_DESTBLEND], rt_format);
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 5c413549aa..cb76e0faf5 100644
index c008124..098be97 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -194,6 +194,7 @@ struct wined3d_d3d_info
@ -229,17 +229,17 @@ index 5c413549aa..cb76e0faf5 100644
};
enum fog_src_type
@@ -1911,7 +1913,8 @@ struct wined3d_context
DWORD transform_feedback_paused : 1;
@@ -1912,7 +1914,8 @@ struct wined3d_context
DWORD shader_update_mask : 6; /* WINED3D_SHADER_TYPE_COUNT, 6 */
DWORD clip_distance_mask : 8; /* MAX_CLIP_DISTANCES, 8 */
- DWORD padding : 9;
DWORD last_was_ffp_blit : 1;
- DWORD padding : 8;
+ DWORD last_was_dual_blend : 1;
+ DWORD padding : 8;
+ DWORD padding : 7;
DWORD constant_update_mask;
DWORD numbered_array_mask;
GLenum tracking_parm; /* Which source is tracking current colour */
@@ -2512,6 +2515,7 @@ struct wined3d_fbo_ops
@@ -2521,6 +2524,7 @@ struct wined3d_fbo_ops
struct wined3d_gl_limits
{
UINT buffers;
@ -247,7 +247,7 @@ index 5c413549aa..cb76e0faf5 100644
UINT lights;
UINT textures;
UINT texture_coords;
@@ -2855,6 +2859,22 @@ struct wined3d_state
@@ -2867,6 +2871,22 @@ struct wined3d_state
struct wined3d_rasterizer_state *rasterizer_state;
};
@ -271,5 +271,5 @@ index 5c413549aa..cb76e0faf5 100644
{
GLuint tex_2d;
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 2ed127d65bdd85581d8d7fb50bde99a8c1354268 Mon Sep 17 00:00:00 2001
From 40043e895e7e66e43589ac25efc7dade42690656 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 20 Jul 2017 13:50:07 +0200
Subject: [PATCH] wined3d: Implement all 8 d3d11 color write masks.
@ -6,7 +6,7 @@ Subject: [PATCH] wined3d: Implement all 8 d3d11 color write masks.
---
dlls/d3d11/device.c | 29 ++++++++++-----------
dlls/d3d11/state.c | 4 ---
dlls/wined3d/context.c | 8 +++---
dlls/wined3d/context.c | 10 +++-----
dlls/wined3d/device.c | 6 ++---
dlls/wined3d/state.c | 57 +++++++++++++++++++-----------------------
dlls/wined3d/stateblock.c | 10 +++++---
@ -14,7 +14,7 @@ Subject: [PATCH] wined3d: Implement all 8 d3d11 color write masks.
dlls/wined3d/utils.c | 6 ++++-
dlls/wined3d/wined3d_private.h | 1 +
include/wine/wined3d.h | 14 ++++++++++-
10 files changed, 72 insertions(+), 70 deletions(-)
10 files changed, 73 insertions(+), 71 deletions(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 835ea8b..2ef9b46 100644
@ -86,23 +86,32 @@ index a14c9d3..2bec92e 100644
/* glEnableIndexedEXT(GL_BLEND, ...) */
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 60bf52b..15981ea 100644
index 6530b6f..15eb449 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -2587,10 +2587,8 @@ static void SetupForBlit(const struct wined3d_device *device, struct wined3d_con
@@ -2733,7 +2733,7 @@ void context_apply_blit_state(struct wined3d_context *context, const struct wine
const struct wined3d_gl_info *gl_info = context->gl_info;
struct wined3d_texture *rt = context->current_rt.texture;
DWORD rt_mask, *cur_mask;
- unsigned int sampler;
+ unsigned int i, sampler;
SIZE rt_size;
TRACE("Setting up context %p for blitting.\n", context);
@@ -2832,10 +2832,8 @@ void context_apply_blit_state(struct wined3d_context *context, const struct wine
context_invalidate_state(context, STATE_RENDER(WINED3D_RS_POINTSPRITEENABLE));
}
gl_info->gl_ops.gl.p_glColorMask(GL_TRUE, GL_TRUE,GL_TRUE,GL_TRUE);
checkGLcall("glColorMask");
gl_info->gl_ops.gl.p_glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
- context_invalidate_state(context, STATE_RENDER(WINED3D_RS_COLORWRITEENABLE));
- context_invalidate_state(context, STATE_RENDER(WINED3D_RS_COLORWRITEENABLE1));
- context_invalidate_state(context, STATE_RENDER(WINED3D_RS_COLORWRITEENABLE2));
- context_invalidate_state(context, STATE_RENDER(WINED3D_RS_COLORWRITEENABLE3));
+ for (i = 0; i < MAX_RENDER_TARGETS; ++i)
+ context_invalidate_state(context, STATE_RENDER(WINED3D_RS_COLORWRITE(i)));
if (gl_info->supported[EXT_SECONDARY_COLOR])
{
gl_info->gl_ops.gl.p_glDisable(GL_COLOR_SUM_EXT);
@@ -4829,7 +4827,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s
context->last_was_rhw = TRUE;
context_invalidate_state(context, STATE_VDECL); /* because of last_was_rhw = TRUE */
@@ -4812,7 +4810,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s
if (!(rtv = fb->render_targets[i]) || rtv->format->id == WINED3DFMT_NULL)
continue;
@ -269,10 +278,10 @@ index b9efcec..c9b3527 100644
/* Texture Stage States - Put directly into state block, we will call function below */
for (i = 0; i < MAX_TEXTURES; ++i)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index fa25b03..c46b9b1 100644
index b0ccfb8..47275e5 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -378,6 +378,7 @@ static void texture2d_blt_fbo(const struct wined3d_device *device, struct wined3
@@ -365,6 +365,7 @@ static void texture2d_blt_fbo(const struct wined3d_device *device, struct wined3
GLenum gl_filter;
GLenum buffer;
RECT s, d;
@ -280,7 +289,7 @@ index fa25b03..c46b9b1 100644
TRACE("device %p, context %p, filter %s, src_texture %p, src_sub_resource_idx %u, src_location %s, "
"src_rect %s, dst_texture %p, dst_sub_resource_idx %u, dst_location %s, dst_rect %s.\n",
@@ -490,10 +491,8 @@ static void texture2d_blt_fbo(const struct wined3d_device *device, struct wined3
@@ -477,10 +478,8 @@ static void texture2d_blt_fbo(const struct wined3d_device *device, struct wined3
context_invalidate_state(context, STATE_FRAMEBUFFER);
gl_info->gl_ops.gl.p_glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
@ -321,7 +330,7 @@ index 304214f..7cb2007 100644
D3DSTATE_TO_STR(WINED3D_RS_SRGBWRITEENABLE);
D3DSTATE_TO_STR(WINED3D_RS_DEPTHBIAS);
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index e3d669a..45a7903 100644
index 4f02ae4..628da26 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -276,6 +276,7 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup
@ -333,7 +342,7 @@ index e3d669a..45a7903 100644
struct min_lookup
{
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 8864965..58da08c 100644
index 23fffdf..e47eeb6 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -388,8 +388,20 @@ enum wined3d_render_state