You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
59 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
8c43c80df2 | ||
|
99ddea76c5 | ||
|
6eb4b11c22 | ||
|
5eb1d3c69b | ||
|
70a46a2305 | ||
|
bd04bf9ac0 | ||
|
749dc37048 | ||
|
a15b448623 | ||
|
e460e59354 | ||
|
71bb1a35f5 | ||
|
83d43970e8 | ||
|
0f1aef64bf | ||
|
a40017a010 | ||
|
94419b1dad | ||
|
5d32e6fc71 | ||
|
f10c1d3c42 | ||
|
9aefba7af5 | ||
|
16e6b1c3e3 | ||
|
8a2c526e13 | ||
|
334b3cb393 | ||
|
54ed708c91 | ||
|
1294cf8ca9 | ||
|
5c40d98a8f | ||
|
cc62b92f5e | ||
|
a89e9696d4 | ||
|
5f37cb2071 | ||
|
b4c93af2cb | ||
|
c2b1a0350d | ||
|
70c4687b47 | ||
|
9907ab34d3 | ||
|
cd9936654a | ||
|
87b3c56914 | ||
|
65a09eaaa0 | ||
|
35e6091943 | ||
|
2dff0d6075 | ||
|
fd89a1b64c | ||
|
352d7723f5 | ||
|
4564b0148b | ||
|
56c4a42468 | ||
|
49f61371b2 | ||
|
fa0e389d75 | ||
|
44b04d6d36 | ||
|
64714a825f | ||
|
71b8ace1aa | ||
|
d661521305 | ||
|
6f424b1e0f | ||
|
131c688ab3 | ||
|
27ba45e053 | ||
|
1acbf46fcf | ||
|
dc4a52734f | ||
|
b1d1f3475b | ||
|
00902fdb2f | ||
|
ee7d9bd76b | ||
|
e38a9d7073 | ||
|
cd9e01c9ed | ||
|
ece39ae33d | ||
|
cecff04cad | ||
|
96068c4fe2 | ||
|
8e5acbdae3 |
@@ -1,88 +0,0 @@
|
||||
From 4d0e6bbc00bd49b8dcfce494bd7380c49f58f92b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 28 Jul 2015 18:21:20 +0200
|
||||
Subject: amstream: Implement IAMMediaStream::GetMultiMediaStream.
|
||||
|
||||
---
|
||||
dlls/amstream/mediastream.c | 40 ++++++++++++++++++++++++++++++++--------
|
||||
1 file changed, 32 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/amstream/mediastream.c b/dlls/amstream/mediastream.c
|
||||
index 947be1e..e4e15d7 100644
|
||||
--- a/dlls/amstream/mediastream.c
|
||||
+++ b/dlls/amstream/mediastream.c
|
||||
@@ -110,9 +110,15 @@ static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetMultiMediaStre
|
||||
{
|
||||
DirectDrawMediaStreamImpl *This = impl_from_DirectDrawMediaStream_IAMMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream);
|
||||
+ TRACE("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!multi_media_stream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *multi_media_stream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface,
|
||||
@@ -271,9 +277,15 @@ static HRESULT WINAPI DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetMultiM
|
||||
{
|
||||
DirectDrawMediaStreamImpl *This = impl_from_IDirectDrawMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", This, iface, ppMultiMediaStream);
|
||||
+ TRACE("(%p/%p)->(%p) stub!\n", This, iface, ppMultiMediaStream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!ppMultiMediaStream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *ppMultiMediaStream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetInformation(IDirectDrawMediaStream *iface,
|
||||
@@ -511,9 +523,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetMultiMediaStream(IA
|
||||
{
|
||||
AudioMediaStreamImpl *This = impl_from_AudioMediaStream_IAMMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream);
|
||||
+ TRACE("(%p/%p)->(%p)\n", This, iface, multi_media_stream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!multi_media_stream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *multi_media_stream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface,
|
||||
@@ -672,9 +690,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetMultiMediaStream
|
||||
{
|
||||
AudioMediaStreamImpl *This = impl_from_IAudioMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", iface, This, multimedia_stream);
|
||||
+ TRACE("(%p/%p)->(%p)\n", iface, This, multimedia_stream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!multimedia_stream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *multimedia_stream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetInformation(IAudioMediaStream *iface,
|
||||
--
|
||||
2.4.5
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [37090] Implement AMStream GetMultiMediaStream functions
|
@@ -0,0 +1,28 @@
|
||||
From 21f4e393d9843841f2038b09f88d6bcb96d9f539 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Jelinski <djelinski1@gmail.com>
|
||||
Date: Sat, 12 Jul 2014 23:58:19 +0200
|
||||
Subject: comctl32: Preserve custom colors between subitems.
|
||||
|
||||
---
|
||||
dlls/comctl32/listview.c | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
|
||||
index 38c376c..f83254a 100644
|
||||
--- a/dlls/comctl32/listview.c
|
||||
+++ b/dlls/comctl32/listview.c
|
||||
@@ -4794,11 +4794,6 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, ITERAT
|
||||
|
||||
if (cdsubitemmode & CDRF_NOTIFYSUBITEMDRAW)
|
||||
subitemstage = notify_customdraw(infoPtr, CDDS_SUBITEM | CDDS_ITEMPREPAINT, &nmlvcd);
|
||||
- else
|
||||
- {
|
||||
- nmlvcd.clrTextBk = infoPtr->clrTextBk;
|
||||
- nmlvcd.clrText = infoPtr->clrText;
|
||||
- }
|
||||
|
||||
if (subitems->nItem == 0 || (cdmode & CDRF_NOTIFYITEMDRAW))
|
||||
prepaint_setup(infoPtr, hdc, &nmlvcd, FALSE);
|
||||
--
|
||||
2.8.0
|
||||
|
1
patches/comctl32-Listview_DrawItem/definition
Normal file
1
patches/comctl32-Listview_DrawItem/definition
Normal file
@@ -0,0 +1 @@
|
||||
Fixes: [38941] Preserve custom colors between subitems for listview control
|
@@ -0,0 +1,24 @@
|
||||
From 46a3f35c38aa4dcb9ca3101fc346fe44fa0d240d Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 15 May 2016 17:30:35 +0200
|
||||
Subject: d2d1/tests: Avoid test failure on specific Nvidia graphic cards.
|
||||
|
||||
---
|
||||
dlls/d2d1/tests/d2d1.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c
|
||||
index 7f9632f..0961373 100644
|
||||
--- a/dlls/d2d1/tests/d2d1.c
|
||||
+++ b/dlls/d2d1/tests/d2d1.c
|
||||
@@ -1103,6 +1103,7 @@ static void test_bitmap_brush(void)
|
||||
hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL);
|
||||
ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr);
|
||||
match = compare_surface(surface, "393636185359a550d459e1e5f0e25411814f724c");
|
||||
+ todo_wine_if (compare_surface(surface, "f428a7d2f886e33a8be006a831fb38d88b235884"))
|
||||
ok(match, "Surface does not match.\n");
|
||||
|
||||
ID2D1RenderTarget_BeginDraw(rt);
|
||||
--
|
||||
2.8.0
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 4d175fa573da8103e76f59f93b528dc9d37c146d Mon Sep 17 00:00:00 2001
|
||||
From 26a7497a9fb1184080a1622f6a834bed50d2a239 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Wed, 3 Jun 2015 22:57:21 +0200
|
||||
Subject: winex11.drv: Allow changing the opengl pixel format on the desktop
|
||||
@@ -11,15 +11,73 @@ window will fail because of this limitation. Unless someone comes up with
|
||||
a more correct solution or finds an application that breaks because of this,
|
||||
it seems to be a suitable workaround as it fixes multiple applications.
|
||||
---
|
||||
dlls/d3d9/tests/device.c | 16 ++++++++++++++++
|
||||
dlls/winex11.drv/opengl.c | 5 ++++-
|
||||
2 files changed, 20 insertions(+), 1 deletion(-)
|
||||
dlls/d3d10_1/tests/d3d10_1.c | 14 ++++++++++++--
|
||||
dlls/d3d11/tests/d3d11.c | 20 ++++++++++++++++----
|
||||
dlls/d3d9/tests/device.c | 16 ++++++++++++++++
|
||||
dlls/winex11.drv/opengl.c | 5 ++++-
|
||||
4 files changed, 48 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d10_1/tests/d3d10_1.c b/dlls/d3d10_1/tests/d3d10_1.c
|
||||
index f5b1454..ac21f68 100644
|
||||
--- a/dlls/d3d10_1/tests/d3d10_1.c
|
||||
+++ b/dlls/d3d10_1/tests/d3d10_1.c
|
||||
@@ -226,8 +226,18 @@ static void test_create_device(void)
|
||||
hr = D3D10CreateDeviceAndSwapChain1(NULL, D3D10_DRIVER_TYPE_HARDWARE, NULL, 0,
|
||||
supported_feature_level, D3D10_1_SDK_VERSION, &swapchain_desc, &swapchain, &device);
|
||||
todo_wine ok(hr == DXGI_ERROR_INVALID_CALL, "D3D10CreateDeviceAndSwapChain1 returned %#x.\n", hr);
|
||||
- ok(!swapchain, "Got unexpected swapchain pointer %p.\n", swapchain);
|
||||
- ok(!device, "Got unexpected device pointer %p.\n", device);
|
||||
+ if (SUCCEEDED(hr))
|
||||
+ {
|
||||
+ refcount = IDXGISwapChain_Release(swapchain);
|
||||
+ ok(!refcount, "Swapchain has %u references left.\n", refcount);
|
||||
+ refcount = ID3D10Device1_Release(device);
|
||||
+ ok(!refcount, "Device has %u references left.\n", refcount);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ ok(!swapchain, "Got unexpected swapchain pointer %p.\n", swapchain);
|
||||
+ ok(!device, "Got unexpected device pointer %p.\n", device);
|
||||
+ }
|
||||
|
||||
swapchain = (IDXGISwapChain *)0xdeadbeef;
|
||||
device = (ID3D10Device1 *)0xdeadbeef;
|
||||
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
|
||||
index 04a369c..ee506f5 100644
|
||||
--- a/dlls/d3d11/tests/d3d11.c
|
||||
+++ b/dlls/d3d11/tests/d3d11.c
|
||||
@@ -805,10 +805,22 @@ static void test_create_device(void)
|
||||
hr = D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, NULL, 0, D3D11_SDK_VERSION,
|
||||
&swapchain_desc, &swapchain, &device, &feature_level, &immediate_context);
|
||||
todo_wine ok(hr == DXGI_ERROR_INVALID_CALL, "D3D11CreateDeviceAndSwapChain returned %#x.\n", hr);
|
||||
- ok(!swapchain, "Got unexpected swapchain pointer %p.\n", swapchain);
|
||||
- ok(!device, "Got unexpected device pointer %p.\n", device);
|
||||
- ok(!feature_level, "Got unexpected feature level %#x.\n", feature_level);
|
||||
- ok(!immediate_context, "Got unexpected immediate context pointer %p.\n", immediate_context);
|
||||
+ if (SUCCEEDED(hr))
|
||||
+ {
|
||||
+ refcount = IDXGISwapChain_Release(swapchain);
|
||||
+ ok(!refcount, "Swapchain has %u references left.\n", refcount);
|
||||
+ refcount = ID3D11DeviceContext_Release(immediate_context);
|
||||
+ ok(!refcount, "Immediate context has %u references left.\n", refcount);
|
||||
+ refcount = ID3D11Device_Release(device);
|
||||
+ ok(!refcount, "Device has %u references left.\n", refcount);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ ok(!swapchain, "Got unexpected swapchain pointer %p.\n", swapchain);
|
||||
+ ok(!device, "Got unexpected device pointer %p.\n", device);
|
||||
+ ok(!feature_level, "Got unexpected feature level %#x.\n", feature_level);
|
||||
+ ok(!immediate_context, "Got unexpected immediate context pointer %p.\n", immediate_context);
|
||||
+ }
|
||||
|
||||
swapchain = (IDXGISwapChain *)0xdeadbeef;
|
||||
device = (ID3D11Device *)0xdeadbeef;
|
||||
diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c
|
||||
index e6edb00..5a75f3a 100644
|
||||
index 4302f76..342f8d2 100644
|
||||
--- a/dlls/d3d9/tests/device.c
|
||||
+++ b/dlls/d3d9/tests/device.c
|
||||
@@ -11049,6 +11049,21 @@ done:
|
||||
@@ -11171,6 +11171,21 @@ static void test_get_render_target_data(void)
|
||||
DestroyWindow(window);
|
||||
}
|
||||
|
||||
@@ -41,19 +99,19 @@ index e6edb00..5a75f3a 100644
|
||||
START_TEST(device)
|
||||
{
|
||||
WNDCLASSA wc = {0};
|
||||
@@ -11164,6 +11179,7 @@ START_TEST(device)
|
||||
test_swapchain_parameters();
|
||||
@@ -11287,6 +11302,7 @@ START_TEST(device)
|
||||
test_check_device_format();
|
||||
test_miptree_layout();
|
||||
test_get_render_target_data();
|
||||
+ test_desktop_window();
|
||||
|
||||
UnregisterClassA("d3d9_test_wc", GetModuleHandleA(NULL));
|
||||
}
|
||||
diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c
|
||||
index ab29ce4..ce87d14 100644
|
||||
index 0f7534e..613d1df 100644
|
||||
--- a/dlls/winex11.drv/opengl.c
|
||||
+++ b/dlls/winex11.drv/opengl.c
|
||||
@@ -1454,12 +1454,15 @@ static BOOL set_pixel_format(HDC hdc, int format, BOOL allow_change)
|
||||
@@ -1457,12 +1457,15 @@ static BOOL set_pixel_format(HDC hdc, int format, BOOL allow_change)
|
||||
|
||||
TRACE("(%p,%d)\n", hdc, format);
|
||||
|
||||
@@ -71,5 +129,5 @@ index ab29ce4..ce87d14 100644
|
||||
if (!fmt)
|
||||
{
|
||||
--
|
||||
2.7.1
|
||||
2.8.0
|
||||
|
||||
|
@@ -1 +0,0 @@
|
||||
Category: stable
|
@@ -0,0 +1,61 @@
|
||||
From a568780e076f43ab5a7f07c4eb963e7777f84255 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 15 May 2016 17:05:15 +0200
|
||||
Subject: d3d9/tests: Avoid test failures on specific Nvidia graphic cards.
|
||||
|
||||
---
|
||||
dlls/d3d9/tests/visual.c | 24 +++++++++++++-----------
|
||||
1 file changed, 13 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
|
||||
index a308311..c3de15e 100644
|
||||
--- a/dlls/d3d9/tests/visual.c
|
||||
+++ b/dlls/d3d9/tests/visual.c
|
||||
@@ -14923,6 +14923,7 @@ static void fp_special_test(void)
|
||||
D3DCOLOR nv40;
|
||||
D3DCOLOR nv50;
|
||||
D3DCOLOR warp;
|
||||
+ D3DCOLOR todo;
|
||||
}
|
||||
vs_body[] =
|
||||
{
|
||||
@@ -14939,17 +14940,17 @@ static void fp_special_test(void)
|
||||
* There are considerable differences between graphics cards in how
|
||||
* these are handled, but pow and nrm never generate INF or NAN on
|
||||
* real hardware. */
|
||||
- {"log", vs_log, sizeof(vs_log), 0x00000000, 0x00000000, 0x00ff0000, 0x00ff7f00, 0x00ff8000},
|
||||
- {"pow", vs_pow, sizeof(vs_pow), 0x000000ff, 0x000000ff, 0x0000ff00, 0x000000ff, 0x00008000},
|
||||
- {"nrm", vs_nrm, sizeof(vs_nrm), 0x00ff0000, 0x00ff0000, 0x0000ff00, 0x00ff0000, 0x00008000},
|
||||
- {"rcp1", vs_rcp1, sizeof(vs_rcp1), 0x000000ff, 0x000000ff, 0x00ff00ff, 0x00ff7f00, 0x00ff8000},
|
||||
- {"rcp2", vs_rcp2, sizeof(vs_rcp2), 0x000000ff, 0x00000000, 0x00ff0000, 0x00ff7f00, 0x00ff8000},
|
||||
- {"rsq1", vs_rsq1, sizeof(vs_rsq1), 0x000000ff, 0x000000ff, 0x00ff00ff, 0x00ff7f00, 0x00ff8000},
|
||||
- {"rsq2", vs_rsq2, sizeof(vs_rsq2), 0x000000ff, 0x000000ff, 0x00ff00ff, 0x00ff7f00, 0x00ff8000},
|
||||
- {"lit", vs_lit, sizeof(vs_lit), 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000},
|
||||
- {"def1", vs_def1, sizeof(vs_def1), 0x000000ff, 0x00007f00, 0x0000ff00, 0x00007f00, 0x00008000},
|
||||
- {"def2", vs_def2, sizeof(vs_def2), 0x00ff0000, 0x00ff7f00, 0x00ff0000, 0x00ff7f00, 0x00ff8000},
|
||||
- {"def3", vs_def3, sizeof(vs_def3), 0x00ff00ff, 0x00ff7f00, 0x00ff00ff, 0x00ff7f00, 0x00ff8000},
|
||||
+ {"log", vs_log, sizeof(vs_log), 0x00000000, 0x00000000, 0x00ff0000, 0x00ff7f00, 0x00ff8000, ~0U},
|
||||
+ {"pow", vs_pow, sizeof(vs_pow), 0x000000ff, 0x000000ff, 0x0000ff00, 0x000000ff, 0x00008000, ~0U},
|
||||
+ {"nrm", vs_nrm, sizeof(vs_nrm), 0x00ff0000, 0x00ff0000, 0x0000ff00, 0x00ff0000, 0x00008000, ~0U},
|
||||
+ {"rcp1", vs_rcp1, sizeof(vs_rcp1), 0x000000ff, 0x000000ff, 0x00ff00ff, 0x00ff7f00, 0x00ff8000, 0x00ff0000},
|
||||
+ {"rcp2", vs_rcp2, sizeof(vs_rcp2), 0x000000ff, 0x00000000, 0x00ff0000, 0x00ff7f00, 0x00ff8000, ~0U},
|
||||
+ {"rsq1", vs_rsq1, sizeof(vs_rsq1), 0x000000ff, 0x000000ff, 0x00ff00ff, 0x00ff7f00, 0x00ff8000, 0x00ff0000},
|
||||
+ {"rsq2", vs_rsq2, sizeof(vs_rsq2), 0x000000ff, 0x000000ff, 0x00ff00ff, 0x00ff7f00, 0x00ff8000, 0x00ff0000},
|
||||
+ {"lit", vs_lit, sizeof(vs_lit), 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, 0x00ff0000, ~0U},
|
||||
+ {"def1", vs_def1, sizeof(vs_def1), 0x000000ff, 0x00007f00, 0x0000ff00, 0x00007f00, 0x00008000, 0x00000000},
|
||||
+ {"def2", vs_def2, sizeof(vs_def2), 0x00ff0000, 0x00ff7f00, 0x00ff0000, 0x00ff7f00, 0x00ff8000, ~0U},
|
||||
+ {"def3", vs_def3, sizeof(vs_def3), 0x00ff00ff, 0x00ff7f00, 0x00ff00ff, 0x00ff7f00, 0x00ff8000, 0x00ff0000},
|
||||
};
|
||||
|
||||
static const DWORD ps_code[] =
|
||||
@@ -15068,6 +15069,7 @@ static void fp_special_test(void)
|
||||
ok(SUCCEEDED(hr), "EndScene failed, hr %#x.\n", hr);
|
||||
|
||||
color = getPixelColor(device, 320, 240);
|
||||
+ todo_wine_if(vs_body[i].todo != ~0U && color_match(color, vs_body[i].todo, 1))
|
||||
ok(color_match(color, vs_body[i].r500, 1)
|
||||
|| color_match(color, vs_body[i].r600, 1)
|
||||
|| color_match(color, vs_body[i].nv40, 1)
|
||||
--
|
||||
2.8.0
|
||||
|
@@ -0,0 +1,51 @@
|
||||
From 5bd7e977e0145a8e222ab66676bed7c0ff4d5b44 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Mon, 16 May 2016 13:19:06 +0200
|
||||
Subject: d3dx9_36: Recognize bump luminance X8L8V8U8 when loading dds file.
|
||||
|
||||
---
|
||||
dlls/d3dx9_36/surface.c | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c
|
||||
index 1bfe75a..f670860 100644
|
||||
--- a/dlls/d3dx9_36/surface.c
|
||||
+++ b/dlls/d3dx9_36/surface.c
|
||||
@@ -110,6 +110,7 @@ static const GUID *d3dformat_to_wic_guid(D3DFORMAT format)
|
||||
#define DDS_PF_RGB 0x40
|
||||
#define DDS_PF_YUV 0x200
|
||||
#define DDS_PF_LUMINANCE 0x20000
|
||||
+#define DDS_PF_BUMPLUMINANCE 0x40000
|
||||
#define DDS_PF_BUMPDUDV 0x80000
|
||||
|
||||
struct dds_pixel_format
|
||||
@@ -265,6 +266,17 @@ static D3DFORMAT dds_bump_to_d3dformat(const struct dds_pixel_format *pixel_form
|
||||
return D3DFMT_UNKNOWN;
|
||||
}
|
||||
|
||||
+static D3DFORMAT dds_bump_luminance_to_d3dformat(const struct dds_pixel_format *pixel_format)
|
||||
+{
|
||||
+ if (pixel_format->bpp == 32 && pixel_format->rmask == 0x000000ff && pixel_format->gmask == 0x0000ff00
|
||||
+ && pixel_format->bmask == 0x00ff0000)
|
||||
+ return D3DFMT_X8L8V8U8;
|
||||
+
|
||||
+ WARN("Unknown bump pixel format (%u, %#x, %#x, %#x, %#x)\n", pixel_format->bpp,
|
||||
+ pixel_format->rmask, pixel_format->gmask, pixel_format->bmask, pixel_format->amask);
|
||||
+ return D3DFMT_UNKNOWN;
|
||||
+}
|
||||
+
|
||||
static D3DFORMAT dds_pixel_format_to_d3dformat(const struct dds_pixel_format *pixel_format)
|
||||
{
|
||||
TRACE("pixel_format: size %u, flags %#x, fourcc %#x, bpp %u.\n", pixel_format->size,
|
||||
@@ -282,6 +294,8 @@ static D3DFORMAT dds_pixel_format_to_d3dformat(const struct dds_pixel_format *pi
|
||||
return dds_alpha_to_d3dformat(pixel_format);
|
||||
if (pixel_format->flags & DDS_PF_BUMPDUDV)
|
||||
return dds_bump_to_d3dformat(pixel_format);
|
||||
+ if (pixel_format->flags & DDS_PF_BUMPLUMINANCE)
|
||||
+ return dds_bump_luminance_to_d3dformat(pixel_format);
|
||||
|
||||
WARN("Unknown pixel format (flags %#x, fourcc %#x, bpp %u, r %#x, g %#x, b %#x, a %#x)\n",
|
||||
pixel_format->flags, pixel_format->fourcc, pixel_format->bpp,
|
||||
--
|
||||
2.8.0
|
||||
|
@@ -0,0 +1,24 @@
|
||||
From 170a6d9df910f617585791df31aa72b79622ed0b Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Mon, 16 May 2016 13:20:39 +0200
|
||||
Subject: d3dx9_36: Add format description for X8L8V8U8 for format conversions.
|
||||
|
||||
---
|
||||
dlls/d3dx9_36/util.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/dlls/d3dx9_36/util.c b/dlls/d3dx9_36/util.c
|
||||
index d8cd43a..12b9c2c 100644
|
||||
--- a/dlls/d3dx9_36/util.c
|
||||
+++ b/dlls/d3dx9_36/util.c
|
||||
@@ -90,6 +90,7 @@ static const struct pixel_format_desc formats[] =
|
||||
{D3DFMT_G32R32F, { 0, 32, 32, 0}, { 0, 0, 32, 0}, 8, 1, 1, 8, FORMAT_ARGBF, NULL, NULL },
|
||||
{D3DFMT_A32B32G32R32F, {32, 32, 32, 32}, {96, 0, 32, 64}, 16, 1, 1, 16, FORMAT_ARGBF, NULL, NULL },
|
||||
{D3DFMT_P8, { 8, 8, 8, 8}, { 0, 0, 0, 0}, 1, 1, 1, 1, FORMAT_INDEX, NULL, index_to_rgba},
|
||||
+ {D3DFMT_X8L8V8U8, { 0, 8, 8, 8}, { 0, 0, 8, 16}, 4, 1, 1, 4, FORMAT_ARGB, NULL, NULL },
|
||||
/* marks last element */
|
||||
{D3DFMT_UNKNOWN, { 0, 0, 0, 0}, { 0, 0, 0, 0}, 0, 1, 1, 0, FORMAT_UNKNOWN, NULL, NULL },
|
||||
};
|
||||
--
|
||||
2.8.0
|
||||
|
1
patches/d3dx9_36-BumpLuminance/definition
Normal file
1
patches/d3dx9_36-BumpLuminance/definition
Normal file
@@ -0,0 +1 @@
|
||||
Fixes: Recognize bump luminance X8L8V8U8 when loading dds file
|
@@ -1,4 +1,4 @@
|
||||
From 66ea1296b0b3493271a7611bfa56b0d74b34b16c Mon Sep 17 00:00:00 2001
|
||||
From 4283d60c4b362e518c7028484b44d9df2ecd27cc Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Fri, 19 Dec 2014 22:31:46 +0100
|
||||
Subject: d3dx9_36: Implement ID3DXEffect_FindNextValidTechnique + add tests.
|
||||
@@ -9,10 +9,10 @@ Subject: d3dx9_36: Implement ID3DXEffect_FindNextValidTechnique + add tests.
|
||||
2 files changed, 91 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
|
||||
index a210bb3..2fbc1cb 100644
|
||||
index da7de54..809f11e 100644
|
||||
--- a/dlls/d3dx9_36/effect.c
|
||||
+++ b/dlls/d3dx9_36/effect.c
|
||||
@@ -3483,13 +3483,41 @@ static HRESULT WINAPI ID3DXEffectImpl_ValidateTechnique(ID3DXEffect* iface, D3DX
|
||||
@@ -3542,13 +3542,41 @@ static HRESULT WINAPI ID3DXEffectImpl_ValidateTechnique(ID3DXEffect* iface, D3DX
|
||||
return D3D_OK;
|
||||
}
|
||||
|
||||
@@ -58,11 +58,11 @@ index a210bb3..2fbc1cb 100644
|
||||
|
||||
static BOOL WINAPI ID3DXEffectImpl_IsParameterUsed(ID3DXEffect* iface, D3DXHANDLE parameter, D3DXHANDLE technique)
|
||||
diff --git a/dlls/d3dx9_36/tests/effect.c b/dlls/d3dx9_36/tests/effect.c
|
||||
index c388e7d..8653e0e 100644
|
||||
index 4ef4d4c..59cd6cc 100644
|
||||
--- a/dlls/d3dx9_36/tests/effect.c
|
||||
+++ b/dlls/d3dx9_36/tests/effect.c
|
||||
@@ -3886,6 +3886,65 @@ static void test_effect_preshader(IDirect3DDevice9 *device)
|
||||
effect->lpVtbl->Release(effect);
|
||||
@@ -3983,6 +3983,65 @@ static void test_effect_preshader_ops(IDirect3DDevice9 *device)
|
||||
&op_tests[i]);
|
||||
}
|
||||
|
||||
+/*
|
||||
@@ -127,14 +127,14 @@ index c388e7d..8653e0e 100644
|
||||
START_TEST(effect)
|
||||
{
|
||||
HWND wnd;
|
||||
@@ -3927,6 +3986,7 @@ START_TEST(effect)
|
||||
test_effect_compilation_errors(device);
|
||||
@@ -4025,6 +4084,7 @@ START_TEST(effect)
|
||||
test_effect_states(device);
|
||||
test_effect_preshader(device);
|
||||
test_effect_preshader_ops(device);
|
||||
+ test_effect_technique_validation(device);
|
||||
|
||||
count = IDirect3DDevice9_Release(device);
|
||||
ok(count == 0, "The device was not properly freed: refcount %u\n", count);
|
||||
--
|
||||
2.7.1
|
||||
2.8.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From dd8497b40ae145da74ca9aeb8aab274572328bbd Mon Sep 17 00:00:00 2001
|
||||
From ed0264f5193ecf9d7724be5de6c9bda17919105f Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 28 Mar 2015 08:18:10 +0100
|
||||
Subject: dsound: Apply filters before sound is multiplied to speakers.
|
||||
@@ -11,34 +11,34 @@ Based on a patch by Mark Harmstone.
|
||||
3 files changed, 77 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/dlls/dsound/dsound.c b/dlls/dsound/dsound.c
|
||||
index 065c377..ed0bbba 100644
|
||||
index 64bfbd3..d73610e 100644
|
||||
--- a/dlls/dsound/dsound.c
|
||||
+++ b/dlls/dsound/dsound.c
|
||||
@@ -238,6 +238,7 @@ static ULONG DirectSoundDevice_Release(DirectSoundDevice * device)
|
||||
@@ -233,6 +233,7 @@ static ULONG DirectSoundDevice_Release(DirectSoundDevice * device)
|
||||
if(device->volume)
|
||||
IAudioStreamVolume_Release(device->volume);
|
||||
|
||||
+ HeapFree(GetProcessHeap(), 0, device->dsp_buffer);
|
||||
HeapFree(GetProcessHeap(), 0, device->tmp_buffer);
|
||||
HeapFree(GetProcessHeap(), 0, device->mix_buffer);
|
||||
HeapFree(GetProcessHeap(), 0, device->cp_buffer);
|
||||
HeapFree(GetProcessHeap(), 0, device->buffer);
|
||||
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
|
||||
index 726452c..ed645db 100644
|
||||
index 34bab65..f580915 100644
|
||||
--- a/dlls/dsound/dsound_private.h
|
||||
+++ b/dlls/dsound/dsound_private.h
|
||||
@@ -91,8 +91,8 @@ struct DirectSoundDevice
|
||||
@@ -88,8 +88,8 @@ struct DirectSoundDevice
|
||||
int speaker_num[DS_MAX_CHANNELS];
|
||||
int num_speakers;
|
||||
int lfe_channel;
|
||||
- float *mix_buffer, *tmp_buffer;
|
||||
- DWORD tmp_buffer_len, mix_buffer_len;
|
||||
+ float *mix_buffer, *tmp_buffer, *dsp_buffer;
|
||||
+ DWORD mix_buffer_len, tmp_buffer_len, dsp_buffer_len;
|
||||
- float *tmp_buffer, *cp_buffer;
|
||||
- DWORD tmp_buffer_len, cp_buffer_len;
|
||||
+ float *tmp_buffer, *cp_buffer, *dsp_buffer;
|
||||
+ DWORD tmp_buffer_len, cp_buffer_len, dsp_buffer_len;
|
||||
|
||||
DSVOLUMEPAN volpan;
|
||||
|
||||
diff --git a/dlls/dsound/mixer.c b/dlls/dsound/mixer.c
|
||||
index 4f22f85..ff92cc1 100644
|
||||
index a2fd768..db4235d 100644
|
||||
--- a/dlls/dsound/mixer.c
|
||||
+++ b/dlls/dsound/mixer.c
|
||||
@@ -266,23 +266,22 @@ static inline float get_current_sample(const IDirectSoundBufferImpl *dsb,
|
||||
@@ -93,7 +93,7 @@ index 4f22f85..ff92cc1 100644
|
||||
|
||||
LONG64 freqAcc_start = *freqAccNum;
|
||||
LONG64 freqAcc_end = freqAcc_start + count * dsb->freqAdjustNum;
|
||||
@@ -372,7 +371,7 @@ static UINT cp_fields_resample_hq(IDirectSoundBufferImpl *dsb, UINT count, LONG6
|
||||
@@ -383,7 +382,7 @@ static UINT cp_fields_resample_hq(IDirectSoundBufferImpl *dsb, UINT count, LONG6
|
||||
float* cache = &intermediate[channel * required_input + ipos];
|
||||
for (j = 0; j < fir_used; j++)
|
||||
sum += fir_copy[j] * cache[j];
|
||||
@@ -102,7 +102,7 @@ index 4f22f85..ff92cc1 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -384,16 +383,17 @@ static UINT cp_fields_resample_hq(IDirectSoundBufferImpl *dsb, UINT count, LONG6
|
||||
@@ -392,16 +391,17 @@ static UINT cp_fields_resample_hq(IDirectSoundBufferImpl *dsb, UINT count, LONG6
|
||||
return max_ipos;
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ index 4f22f85..ff92cc1 100644
|
||||
|
||||
ipos = dsb->sec_mixpos + adv * dsb->pwfx->nBlockAlign;
|
||||
if (ipos >= dsb->buflen) {
|
||||
@@ -423,6 +423,21 @@ static inline DWORD DSOUND_BufPtrDiff(DWORD buflen, DWORD ptr1, DWORD ptr2)
|
||||
@@ -431,6 +431,21 @@ static inline DWORD DSOUND_BufPtrDiff(DWORD buflen, DWORD ptr1, DWORD ptr2)
|
||||
return buflen + ptr1 - ptr2;
|
||||
}
|
||||
}
|
||||
@@ -146,7 +146,7 @@ index 4f22f85..ff92cc1 100644
|
||||
/**
|
||||
* Mix at most the given amount of data into the allocated temporary buffer
|
||||
* of the given secondary buffer, starting from the dsb's first currently
|
||||
@@ -438,32 +453,61 @@ static inline DWORD DSOUND_BufPtrDiff(DWORD buflen, DWORD ptr1, DWORD ptr2)
|
||||
@@ -446,32 +461,61 @@ static inline DWORD DSOUND_BufPtrDiff(DWORD buflen, DWORD ptr1, DWORD ptr2)
|
||||
*/
|
||||
static void DSOUND_MixToTemporary(IDirectSoundBufferImpl *dsb, DWORD frames)
|
||||
{
|
||||
@@ -225,5 +225,5 @@ index 4f22f85..ff92cc1 100644
|
||||
|
||||
static void DSOUND_MixerVol(const IDirectSoundBufferImpl *dsb, INT frames)
|
||||
--
|
||||
2.3.3
|
||||
2.8.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From b69c6b88a3628dcaf0f5520f2a33a47013c50aef Mon Sep 17 00:00:00 2001
|
||||
From cdfc54a6363804cc8ee9146c3adbd51e431bcbf2 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 5 Apr 2015 19:13:18 +0200
|
||||
Subject: dsound: Allow disabling of EAX support in the registry.
|
||||
@@ -6,13 +6,13 @@ Subject: dsound: Allow disabling of EAX support in the registry.
|
||||
Based on a patch by Mark Harmstone.
|
||||
---
|
||||
dlls/dsound/buffer.c | 16 ++++++----------
|
||||
dlls/dsound/dsound_main.c | 10 ++++++++--
|
||||
dlls/dsound/dsound_main.c | 9 ++++++++-
|
||||
dlls/dsound/dsound_private.h | 2 ++
|
||||
dlls/dsound/eax.c | 28 ++++++++++++++++++++++++++++
|
||||
4 files changed, 44 insertions(+), 12 deletions(-)
|
||||
4 files changed, 44 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
|
||||
index 3641e32..ca6a5b5 100644
|
||||
index b763514..ca93972 100644
|
||||
--- a/dlls/dsound/buffer.c
|
||||
+++ b/dlls/dsound/buffer.c
|
||||
@@ -35,6 +35,7 @@
|
||||
@@ -23,7 +23,7 @@ index 3641e32..ca6a5b5 100644
|
||||
|
||||
/*******************************************************************************
|
||||
* IDirectSoundNotify
|
||||
@@ -1331,16 +1332,11 @@ static HRESULT WINAPI IKsPropertySetImpl_QuerySupport(IKsPropertySet *iface, REF
|
||||
@@ -1329,16 +1330,11 @@ static HRESULT WINAPI IKsPropertySetImpl_QuerySupport(IKsPropertySet *iface, REF
|
||||
|
||||
TRACE("(%p,%s,%d,%p)\n",This,debugstr_guid(guidPropSet),dwPropID,pTypeSupport);
|
||||
|
||||
@@ -46,12 +46,12 @@ index 3641e32..ca6a5b5 100644
|
||||
|
||||
return E_PROP_ID_UNSUPPORTED;
|
||||
diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c
|
||||
index 1f512a4..4b7e7b0 100644
|
||||
index b349eb4..db2ca50 100644
|
||||
--- a/dlls/dsound/dsound_main.c
|
||||
+++ b/dlls/dsound/dsound_main.c
|
||||
@@ -95,8 +95,12 @@ WCHAR wine_vxd_drv[] = { 'w','i','n','e','m','m','.','v','x','d', 0 };
|
||||
@@ -94,8 +94,12 @@ WCHAR wine_vxd_drv[] = { 'w','i','n','e','m','m','.','v','x','d', 0 };
|
||||
/* All default settings, you most likely don't want to touch these, see wiki on UsefulRegistryKeys */
|
||||
int ds_hel_buflen = 32768 * 2;
|
||||
int ds_snd_queue_max = 10;
|
||||
int ds_hq_buffers_max = 4;
|
||||
+BOOL ds_eax_enabled = FALSE;
|
||||
static HINSTANCE instance;
|
||||
@@ -62,7 +62,7 @@ index 1f512a4..4b7e7b0 100644
|
||||
/*
|
||||
* Get a config key from either the app-specific or the default config
|
||||
*/
|
||||
@@ -109,7 +113,6 @@ static inline DWORD get_config_key( HKEY defkey, HKEY appkey, const char *name,
|
||||
@@ -108,7 +112,6 @@ static inline DWORD get_config_key( HKEY defkey, HKEY appkey, const char *name,
|
||||
return ERROR_FILE_NOT_FOUND;
|
||||
}
|
||||
|
||||
@@ -70,11 +70,7 @@ index 1f512a4..4b7e7b0 100644
|
||||
/*
|
||||
* Setup the dsound options.
|
||||
*/
|
||||
@@ -150,16 +153,19 @@ void setup_dsound_options(void)
|
||||
if (!get_config_key( hkey, appkey, "SndQueueMax", buffer, MAX_PATH ))
|
||||
ds_snd_queue_max = atoi(buffer);
|
||||
|
||||
-
|
||||
@@ -149,11 +152,15 @@ void setup_dsound_options(void)
|
||||
if (!get_config_key( hkey, appkey, "HQBuffersMax", buffer, MAX_PATH ))
|
||||
ds_hq_buffers_max = atoi(buffer);
|
||||
|
||||
@@ -85,25 +81,24 @@ index 1f512a4..4b7e7b0 100644
|
||||
if (hkey) RegCloseKey( hkey );
|
||||
|
||||
TRACE("ds_hel_buflen = %d\n", ds_hel_buflen);
|
||||
TRACE("ds_snd_queue_max = %d\n", ds_snd_queue_max);
|
||||
TRACE("ds_hq_buffers_max = %d\n", ds_hq_buffers_max);
|
||||
+ TRACE("ds_eax_enabled = %u\n", ds_eax_enabled);
|
||||
}
|
||||
|
||||
static const char * get_device_id(LPCGUID pGuid)
|
||||
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
|
||||
index a9987d0..5c21d1f 100644
|
||||
index 5a986ba..4e928a4 100644
|
||||
--- a/dlls/dsound/dsound_private.h
|
||||
+++ b/dlls/dsound/dsound_private.h
|
||||
@@ -38,6 +38,7 @@
|
||||
@@ -37,6 +37,7 @@
|
||||
|
||||
extern int ds_hel_buflen DECLSPEC_HIDDEN;
|
||||
extern int ds_snd_queue_max DECLSPEC_HIDDEN;
|
||||
extern int ds_hq_buffers_max DECLSPEC_HIDDEN;
|
||||
+extern BOOL ds_eax_enabled DECLSPEC_HIDDEN;
|
||||
|
||||
/*****************************************************************************
|
||||
* Predeclare the interface implementation structures
|
||||
@@ -234,6 +235,7 @@ LONG capped_refcount_dec(LONG *ref) DECLSPEC_HIDDEN;
|
||||
@@ -230,6 +231,7 @@ LONG capped_refcount_dec(LONG *ref) DECLSPEC_HIDDEN;
|
||||
HRESULT DSOUND_FullDuplexCreate(REFIID riid, void **ppv) DECLSPEC_HIDDEN;
|
||||
|
||||
/* eax.c */
|
||||
@@ -112,7 +107,7 @@ index a9987d0..5c21d1f 100644
|
||||
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
|
||||
ULONG cbPropData, ULONG *pcbReturned) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
|
||||
index 4e98812..c9d5b6c 100644
|
||||
index e10156e..857f924 100644
|
||||
--- a/dlls/dsound/eax.c
|
||||
+++ b/dlls/dsound/eax.c
|
||||
@@ -809,6 +809,28 @@ void free_eax_buffer(IDirectSoundBufferImpl *dsb)
|
||||
@@ -165,5 +160,5 @@ index 4e98812..c9d5b6c 100644
|
||||
buf->device->eax.using_eax = TRUE;
|
||||
|
||||
--
|
||||
2.3.5
|
||||
2.8.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 208155a225fef8613f9ef033ba0c895a4e71f409 Mon Sep 17 00:00:00 2001
|
||||
From fe24cfe8b8e99c4e41fc9d147d7815bce37d2fa0 Mon Sep 17 00:00:00 2001
|
||||
From: "Alexander E. Patrakov" <patrakov at gmail.com>
|
||||
Date: Thu, 7 Aug 2014 17:15:00 -0600
|
||||
Subject: dsound: Add a linear resampler for use with a large number of mixing
|
||||
@@ -11,20 +11,20 @@ Subject: dsound: Add a linear resampler for use with a large number of mixing
|
||||
3 files changed, 51 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c
|
||||
index cb46301..1f512a4 100644
|
||||
index 112ce78..b349eb4 100644
|
||||
--- a/dlls/dsound/dsound_main.c
|
||||
+++ b/dlls/dsound/dsound_main.c
|
||||
@@ -94,6 +94,7 @@ WCHAR wine_vxd_drv[] = { 'w','i','n','e','m','m','.','v','x','d', 0 };
|
||||
@@ -93,6 +93,7 @@ WCHAR wine_vxd_drv[] = { 'w','i','n','e','m','m','.','v','x','d', 0 };
|
||||
|
||||
/* All default settings, you most likely don't want to touch these, see wiki on UsefulRegistryKeys */
|
||||
int ds_hel_buflen = 32768 * 2;
|
||||
int ds_snd_queue_max = 10;
|
||||
+int ds_hq_buffers_max = 4;
|
||||
static HINSTANCE instance;
|
||||
|
||||
/*
|
||||
@@ -150,11 +151,15 @@ void setup_dsound_options(void)
|
||||
ds_snd_queue_max = atoi(buffer);
|
||||
|
||||
@@ -145,10 +146,14 @@ void setup_dsound_options(void)
|
||||
if (!get_config_key( hkey, appkey, "HelBuflen", buffer, MAX_PATH ))
|
||||
ds_hel_buflen = atoi(buffer);
|
||||
|
||||
+ if (!get_config_key( hkey, appkey, "HQBuffersMax", buffer, MAX_PATH ))
|
||||
+ ds_hq_buffers_max = atoi(buffer);
|
||||
@@ -33,25 +33,24 @@ index cb46301..1f512a4 100644
|
||||
if (hkey) RegCloseKey( hkey );
|
||||
|
||||
TRACE("ds_hel_buflen = %d\n", ds_hel_buflen);
|
||||
TRACE("ds_snd_queue_max = %d\n", ds_snd_queue_max);
|
||||
+ TRACE("ds_hq_buffers_max = %d\n", ds_hq_buffers_max);
|
||||
}
|
||||
|
||||
static const char * get_device_id(LPCGUID pGuid)
|
||||
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
|
||||
index 9c001ed..726452c 100644
|
||||
index b980453..b6bce1d 100644
|
||||
--- a/dlls/dsound/dsound_private.h
|
||||
+++ b/dlls/dsound/dsound_private.h
|
||||
@@ -36,6 +36,7 @@
|
||||
@@ -35,6 +35,7 @@
|
||||
#define DS_MAX_CHANNELS 6
|
||||
|
||||
extern int ds_hel_buflen DECLSPEC_HIDDEN;
|
||||
extern int ds_snd_queue_max DECLSPEC_HIDDEN;
|
||||
+extern int ds_hq_buffers_max DECLSPEC_HIDDEN;
|
||||
|
||||
/*****************************************************************************
|
||||
* Predeclare the interface implementation structures
|
||||
diff --git a/dlls/dsound/mixer.c b/dlls/dsound/mixer.c
|
||||
index 85ab14a..4f22f85 100644
|
||||
index dec8ffd..c358385 100644
|
||||
--- a/dlls/dsound/mixer.c
|
||||
+++ b/dlls/dsound/mixer.c
|
||||
@@ -278,7 +278,47 @@ static UINT cp_fields_noresample(IDirectSoundBufferImpl *dsb, UINT count)
|
||||
@@ -118,5 +117,5 @@ index 85ab14a..4f22f85 100644
|
||||
ipos = dsb->sec_mixpos + adv * dsb->pwfx->nBlockAlign;
|
||||
if (ipos >= dsb->buflen) {
|
||||
--
|
||||
2.3.3
|
||||
2.8.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 462599cf79d964c6add1a7250f654d2e3110c4d2 Mon Sep 17 00:00:00 2001
|
||||
From 49a87ca03766da11e80ec5f0677d1cd7d46b17ca Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Wed, 23 Dec 2015 00:58:57 +0100
|
||||
Subject: Revert "dsound: Use a better name for
|
||||
@@ -12,7 +12,7 @@ This reverts commit bb72548f3870b1df03ad9fe7ad2e543a69d5d574.
|
||||
3 files changed, 24 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
|
||||
index 2a80c3f..d7717fd 100644
|
||||
index e85a5d1..c59090a 100644
|
||||
--- a/dlls/dsound/buffer.c
|
||||
+++ b/dlls/dsound/buffer.c
|
||||
@@ -983,15 +983,19 @@ static const IDirectSoundBuffer8Vtbl dsbvt =
|
||||
@@ -60,10 +60,10 @@ index 2a80c3f..d7717fd 100644
|
||||
return err;
|
||||
}
|
||||
diff --git a/dlls/dsound/dsound.c b/dlls/dsound/dsound.c
|
||||
index ccefd1f..e50ef58 100644
|
||||
index fb9fd66..64bfbd3 100644
|
||||
--- a/dlls/dsound/dsound.c
|
||||
+++ b/dlls/dsound/dsound.c
|
||||
@@ -469,6 +469,8 @@ static HRESULT DirectSoundDevice_CreateSoundBuffer(
|
||||
@@ -461,6 +461,8 @@ static HRESULT DirectSoundDevice_CreateSoundBuffer(
|
||||
WARN("primarybuffer_create() failed\n");
|
||||
}
|
||||
} else {
|
||||
@@ -72,7 +72,7 @@ index ccefd1f..e50ef58 100644
|
||||
if (dsbd->lpwfxFormat == NULL) {
|
||||
WARN("invalid parameter: dsbd->lpwfxFormat can't be NULL for "
|
||||
"secondary buffer\n");
|
||||
@@ -545,8 +547,9 @@ static HRESULT DirectSoundDevice_CreateSoundBuffer(
|
||||
@@ -537,8 +539,9 @@ static HRESULT DirectSoundDevice_CreateSoundBuffer(
|
||||
return DSERR_INVALIDPARAM;
|
||||
}
|
||||
|
||||
@@ -85,12 +85,12 @@ index ccefd1f..e50ef58 100644
|
||||
device->drvcaps.dwFreeHwMixingAllBuffers--;
|
||||
} else
|
||||
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
|
||||
index 07bda48..9c001ed 100644
|
||||
index 63d1226..303ce0e 100644
|
||||
--- a/dlls/dsound/dsound_private.h
|
||||
+++ b/dlls/dsound/dsound_private.h
|
||||
@@ -182,8 +182,10 @@ void put_stereo2quad(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD channel
|
||||
void put_mono2surround51(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD channel, float value) DECLSPEC_HIDDEN;
|
||||
void put_stereo2surround51(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD channel, float value) DECLSPEC_HIDDEN;
|
||||
@@ -181,8 +181,10 @@ void put_stereo2surround51(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD c
|
||||
void put_surround512stereo(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD channel, float value) DECLSPEC_HIDDEN;
|
||||
void put_quad2stereo(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD channel, float value) DECLSPEC_HIDDEN;
|
||||
|
||||
-HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *dsbd,
|
||||
- IDirectSoundBuffer **buffer) DECLSPEC_HIDDEN;
|
||||
@@ -102,5 +102,5 @@ index 07bda48..9c001ed 100644
|
||||
DirectSoundDevice *device,
|
||||
IDirectSoundBufferImpl **ppdsb,
|
||||
--
|
||||
2.6.4
|
||||
2.8.0
|
||||
|
||||
|
@@ -1,25 +0,0 @@
|
||||
From 12fa52d23ad77d08100444fd04b9deaf06b5ac63 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 18 Mar 2016 04:25:59 +0100
|
||||
Subject: dwmapi: Return S_OK from DwmSetWindowAttribute function.
|
||||
|
||||
---
|
||||
dlls/dwmapi/dwmapi_main.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/dwmapi/dwmapi_main.c b/dlls/dwmapi/dwmapi_main.c
|
||||
index a776cfe..7ae2dcf 100644
|
||||
--- a/dlls/dwmapi/dwmapi_main.c
|
||||
+++ b/dlls/dwmapi/dwmapi_main.c
|
||||
@@ -126,7 +126,7 @@ HRESULT WINAPI DwmSetWindowAttribute(HWND hwnd, DWORD attributenum, LPCVOID attr
|
||||
|
||||
if (!once++) FIXME("(%p, %x, %p, %x) stub\n", hwnd, attributenum, attribute, size);
|
||||
|
||||
- return E_NOTIMPL;
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
--
|
||||
2.7.1
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: Fake success in dwmapi.DwmSetWindowAttribute function
|
@@ -0,0 +1,102 @@
|
||||
From 38a7a77a067d4610666ca453f4ca68a69117e80e Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Tue, 10 May 2016 12:44:49 +0800
|
||||
Subject: gdiplus: Implement GdipGetMetafileHeaderFromMetafile.
|
||||
|
||||
For bug #27415.
|
||||
|
||||
These patches depend on
|
||||
"gdiplus: Reimplement metafile loading using gdi32 instead of IPicture. (v2)"
|
||||
---
|
||||
dlls/gdiplus/metafile.c | 15 +++++++++++----
|
||||
dlls/gdiplus/tests/image.c | 24 ++++++++++++------------
|
||||
2 files changed, 23 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/dlls/gdiplus/metafile.c b/dlls/gdiplus/metafile.c
|
||||
index 7af6c8c..30b2122 100644
|
||||
--- a/dlls/gdiplus/metafile.c
|
||||
+++ b/dlls/gdiplus/metafile.c
|
||||
@@ -957,17 +957,24 @@ GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointI(GpGraphics *graphics,
|
||||
GpStatus WINGDIPAPI GdipGetMetafileHeaderFromMetafile(GpMetafile * metafile,
|
||||
MetafileHeader * header)
|
||||
{
|
||||
- static int calls;
|
||||
+ GpStatus status;
|
||||
|
||||
TRACE("(%p, %p)\n", metafile, header);
|
||||
|
||||
if(!metafile || !header)
|
||||
return InvalidParameter;
|
||||
|
||||
- if(!(calls++))
|
||||
- FIXME("not implemented\n");
|
||||
+ if (!metafile->hemf)
|
||||
+ return InvalidParameter;
|
||||
|
||||
- memset(header, 0, sizeof(MetafileHeader));
|
||||
+ status = GdipGetMetafileHeaderFromEmf(metafile->hemf, header);
|
||||
+ if (status != Ok) return status;
|
||||
+
|
||||
+ header->Type = metafile->metafile_type;
|
||||
+ header->DpiX = metafile->image.xres;
|
||||
+ header->DpiY = metafile->image.yres;
|
||||
+ header->Width = metafile->bounds.Width;
|
||||
+ header->Height = metafile->bounds.Height;
|
||||
|
||||
return Ok;
|
||||
}
|
||||
diff --git a/dlls/gdiplus/tests/image.c b/dlls/gdiplus/tests/image.c
|
||||
index e6de9db..a28ddb4 100644
|
||||
--- a/dlls/gdiplus/tests/image.c
|
||||
+++ b/dlls/gdiplus/tests/image.c
|
||||
@@ -1465,17 +1465,17 @@ static void test_loadwmf(void)
|
||||
expect(Ok, stat);
|
||||
if (stat == Ok)
|
||||
{
|
||||
- todo_wine expect(MetafileTypeWmfPlaceable, header.Type);
|
||||
+ expect(MetafileTypeWmfPlaceable, header.Type);
|
||||
todo_wine expect(sizeof(wmfimage)-sizeof(WmfPlaceableFileHeader), header.Size);
|
||||
todo_wine expect(0x300, header.Version);
|
||||
expect(0, header.EmfPlusFlags);
|
||||
- todo_wine expectf(1440.0, header.DpiX);
|
||||
- todo_wine expectf(1440.0, header.DpiY);
|
||||
+ expectf(1440.0, header.DpiX);
|
||||
+ expectf(1440.0, header.DpiY);
|
||||
expect(0, header.X);
|
||||
expect(0, header.Y);
|
||||
- todo_wine expect(320, header.Width);
|
||||
- todo_wine expect(320, header.Height);
|
||||
- todo_wine expect(1, U(header).WmfHeader.mtType);
|
||||
+ expect(320, header.Width);
|
||||
+ expect(320, header.Height);
|
||||
+ expect(1, U(header).WmfHeader.mtType);
|
||||
expect(0, header.EmfPlusHeaderSize);
|
||||
expect(0, header.LogicalDpiX);
|
||||
expect(0, header.LogicalDpiY);
|
||||
@@ -1523,17 +1523,17 @@ static void test_createfromwmf(void)
|
||||
expect(Ok, stat);
|
||||
if (stat == Ok)
|
||||
{
|
||||
- todo_wine expect(MetafileTypeWmfPlaceable, header.Type);
|
||||
+ expect(MetafileTypeWmfPlaceable, header.Type);
|
||||
todo_wine expect(sizeof(wmfimage)-sizeof(WmfPlaceableFileHeader), header.Size);
|
||||
todo_wine expect(0x300, header.Version);
|
||||
expect(0, header.EmfPlusFlags);
|
||||
- todo_wine expectf(1440.0, header.DpiX);
|
||||
- todo_wine expectf(1440.0, header.DpiY);
|
||||
+ expectf(1440.0, header.DpiX);
|
||||
+ expectf(1440.0, header.DpiY);
|
||||
expect(0, header.X);
|
||||
expect(0, header.Y);
|
||||
- todo_wine expect(320, header.Width);
|
||||
- todo_wine expect(320, header.Height);
|
||||
- todo_wine expect(1, U(header).WmfHeader.mtType);
|
||||
+ expect(320, header.Width);
|
||||
+ expect(320, header.Height);
|
||||
+ expect(1, U(header).WmfHeader.mtType);
|
||||
expect(0, header.EmfPlusHeaderSize);
|
||||
expect(0, header.LogicalDpiX);
|
||||
expect(0, header.LogicalDpiY);
|
||||
--
|
||||
2.8.0
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user