mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against 0b49495b8ed9e725b47b7ca791312a2a3c3e3c97.
This commit is contained in:
parent
43c1f6218c
commit
89e2d01a1d
@ -1,41 +0,0 @@
|
||||
From 337b1e60966bf902e79d69981c1bf49bf8be6192 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 31 Jul 2016 00:01:24 +0200
|
||||
Subject: xaudio2_7: Only declare debug channel when needed.
|
||||
|
||||
---
|
||||
dlls/xaudio2_7/compat.c | 2 ++
|
||||
dlls/xaudio2_7/x3daudio.c | 2 ++
|
||||
2 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/dlls/xaudio2_7/compat.c b/dlls/xaudio2_7/compat.c
|
||||
index 516d6c2..b9e720f 100644
|
||||
--- a/dlls/xaudio2_7/compat.c
|
||||
+++ b/dlls/xaudio2_7/compat.c
|
||||
@@ -101,7 +101,9 @@
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
+#if XAUDIO2_VER <= 7
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(xaudio2);
|
||||
+#endif
|
||||
|
||||
/* BEGIN IXAudio2SourceVoice */
|
||||
#if XAUDIO2_VER == 0
|
||||
diff --git a/dlls/xaudio2_7/x3daudio.c b/dlls/xaudio2_7/x3daudio.c
|
||||
index a182852..58f7062 100644
|
||||
--- a/dlls/xaudio2_7/x3daudio.c
|
||||
+++ b/dlls/xaudio2_7/x3daudio.c
|
||||
@@ -23,7 +23,9 @@
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
+#if XAUDIO2_VER >= 8 || defined X3DAUDIO1_VER
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(xaudio2);
|
||||
+#endif
|
||||
|
||||
#ifdef X3DAUDIO1_VER
|
||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD reason, void *pReserved)
|
||||
--
|
||||
2.9.0
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 8113f7a7b3c214b5c9d07a4b6f5b0d97d6f576f1 Mon Sep 17 00:00:00 2001
|
||||
From ddc5f6fd9dde7a5cdde0be59d4a9db9e086400a9 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 12 Jul 2014 23:58:19 +0200
|
||||
Subject: comctl32: Preserve custom colors between subitems. (v2)
|
||||
|
||||
---
|
||||
dlls/comctl32/listview.c | 20 +++++++++-----------
|
||||
dlls/comctl32/tests/listview.c | 27 ++++++++++++++++++++++-----
|
||||
2 files changed, 31 insertions(+), 16 deletions(-)
|
||||
dlls/comctl32/tests/listview.c | 23 ++++++++++++++++++++---
|
||||
2 files changed, 29 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
|
||||
index 784ca7b..2c4051d 100644
|
||||
index 56e2563..a35f5f2 100644
|
||||
--- a/dlls/comctl32/listview.c
|
||||
+++ b/dlls/comctl32/listview.c
|
||||
@@ -1054,7 +1054,7 @@ static void prepaint_setup (const LISTVIEW_INFO *infoPtr, HDC hdc, NMLVCUSTOMDRA
|
||||
@@ -1072,7 +1072,7 @@ static void prepaint_setup (const LISTVIEW_INFO *infoPtr, HDC hdc, NMLVCUSTOMDRA
|
||||
COLORREF backcolor, textcolor;
|
||||
|
||||
/* apparently, for selected items, we have to override the returned values */
|
||||
@ -21,7 +21,7 @@ index 784ca7b..2c4051d 100644
|
||||
{
|
||||
if (lpnmlvcd->nmcd.uItemState & CDIS_SELECTED)
|
||||
{
|
||||
@@ -4767,6 +4767,7 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, ITERAT
|
||||
@@ -4784,6 +4784,7 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, ITERAT
|
||||
while (iterator_next(subitems))
|
||||
{
|
||||
DWORD subitemstage = CDRF_DODEFAULT;
|
||||
@ -29,7 +29,7 @@ index 784ca7b..2c4051d 100644
|
||||
|
||||
/* We need to query for each subitem, item's data (subitem == 0) is already here at this point */
|
||||
if (subitems->nItem)
|
||||
@@ -4793,19 +4794,16 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, ITERAT
|
||||
@@ -4810,19 +4811,16 @@ 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);
|
||||
@ -57,22 +57,18 @@ index 784ca7b..2c4051d 100644
|
||||
if (subitemstage & CDRF_NOTIFYPOSTPAINT)
|
||||
subitemstage = notify_customdraw(infoPtr, CDDS_SUBITEM | CDDS_ITEMPOSTPAINT, &nmlvcd);
|
||||
diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c
|
||||
index ed5d9f9..64cc214 100644
|
||||
index ec87e3b..eb4db0e 100644
|
||||
--- a/dlls/comctl32/tests/listview.c
|
||||
+++ b/dlls/comctl32/tests/listview.c
|
||||
@@ -1823,14 +1823,18 @@ static LRESULT WINAPI cd_wndproc(HWND hwnd, UINT message, WPARAM wParam, LPARAM
|
||||
@@ -1830,12 +1830,16 @@ static LRESULT WINAPI cd_wndproc(HWND hwnd, UINT message, WPARAM wParam, LPARAM
|
||||
clr = GetBkColor(nmlvcd->nmcd.hdc);
|
||||
ok(nmlvcd->clrTextBk == CLR_DEFAULT, "got 0x%x\n", nmlvcd->clrTextBk);
|
||||
ok(nmlvcd->clrText == RGB(0, 255, 0), "got 0x%x\n", nmlvcd->clrText);
|
||||
- if (nmlvcd->iSubItem)
|
||||
- todo_wine ok(clr == c0ffee, "clr=%.8x\n", clr);
|
||||
- else
|
||||
- todo_wine_if(nmlvcd->iSubItem)
|
||||
- ok(clr == c0ffee, "clr=%.8x\n", clr);
|
||||
+ if (!(GetWindowLongW(nmhdr->hwndFrom, GWL_STYLE) & LVS_SHOWSELALWAYS))
|
||||
+ {
|
||||
+ if (nmlvcd->iSubItem)
|
||||
+ todo_wine ok(clr == c0ffee, "clr=%.8x\n", clr);
|
||||
+ else
|
||||
+ todo_wine_if(nmlvcd->iSubItem)
|
||||
+ ok(clr == c0ffee, "clr=%.8x\n", clr);
|
||||
+ }
|
||||
return CDRF_NOTIFYPOSTPAINT;
|
||||
@ -84,7 +80,7 @@ index ed5d9f9..64cc214 100644
|
||||
ok(nmlvcd->clrTextBk == CLR_DEFAULT, "got 0x%x\n", nmlvcd->clrTextBk);
|
||||
ok(nmlvcd->clrText == RGB(0, 255, 0), "got 0x%x\n", nmlvcd->clrText);
|
||||
return CDRF_DODEFAULT;
|
||||
@@ -1846,6 +1850,7 @@ static void test_customdraw(void)
|
||||
@@ -1851,6 +1855,7 @@ static void test_customdraw(void)
|
||||
{
|
||||
HWND hwnd;
|
||||
WNDPROC oldwndproc;
|
||||
@ -92,7 +88,7 @@ index ed5d9f9..64cc214 100644
|
||||
|
||||
hwnd = create_listview_control(LVS_REPORT);
|
||||
|
||||
@@ -1865,6 +1870,18 @@ static void test_customdraw(void)
|
||||
@@ -1870,6 +1875,18 @@ static void test_customdraw(void)
|
||||
UpdateWindow(hwnd);
|
||||
ok_sequence(sequences, PARENT_CD_SEQ_INDEX, parent_report_cd_seq, "parent customdraw, LVS_REPORT", FALSE);
|
||||
|
||||
@ -112,5 +108,5 @@ index ed5d9f9..64cc214 100644
|
||||
|
||||
hwnd = create_listview_control(LVS_LIST);
|
||||
--
|
||||
2.8.0
|
||||
2.9.0
|
||||
|
||||
|
@ -51,7 +51,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "a65718a3e7b95443a82dafd5d2c9cded961404a6"
|
||||
echo "0b49495b8ed9e725b47b7ca791312a2a3c3e3c97"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -2335,9 +2335,8 @@ fi
|
||||
# | dlls/rpcrt4/tests/ndr_marshall.c, dlls/scrrun/tests/dictionary.c, dlls/shell32/tests/appbar.c,
|
||||
# | dlls/shell32/tests/shelldispatch.c, dlls/shell32/tests/shellole.c, dlls/shlwapi/tests/ordinal.c,
|
||||
# | dlls/user32/tests/input.c, dlls/user32/tests/menu.c, dlls/vbscript/vbdisp.c, dlls/winealsa.drv/mmdevdrv.c,
|
||||
# | dlls/wined3d/glsl_shader.c, dlls/winhttp/tests/winhttp.c, dlls/wshom.ocx/tests/wshom.c, dlls/xaudio2_7/compat.c,
|
||||
# | dlls/xaudio2_7/x3daudio.c, include/d3dtypes.h, include/wine/list.h, include/wine/rbtree.h, include/winnt.h,
|
||||
# | server/request.c, server/sock.c, tools/makedep.c
|
||||
# | dlls/wined3d/glsl_shader.c, dlls/winhttp/tests/winhttp.c, dlls/wshom.ocx/tests/wshom.c, include/d3dtypes.h,
|
||||
# | include/wine/list.h, include/wine/rbtree.h, include/winnt.h, server/request.c, server/sock.c, tools/makedep.c
|
||||
# |
|
||||
if test "$enable_Compiler_Warnings" -eq 1; then
|
||||
patch_apply Compiler_Warnings/0001-comctl32-Avoid-misleading-indentation-warnings.patch
|
||||
@ -2352,7 +2351,6 @@ if test "$enable_Compiler_Warnings" -eq 1; then
|
||||
patch_apply Compiler_Warnings/0011-user32-tests-Avoid-misleading-indentation-warnings.patch
|
||||
patch_apply Compiler_Warnings/0012-winhttp-tests-Avoid-misleading-indentation-warnings.patch
|
||||
patch_apply Compiler_Warnings/0013-wshom.ocx-tests-Avoid-misleading-indentation-warning.patch
|
||||
patch_apply Compiler_Warnings/0014-xaudio2_7-Only-declare-debug-channel-when-needed.patch
|
||||
patch_apply Compiler_Warnings/0015-include-Avoid-shift-overflow-warning.patch
|
||||
patch_apply Compiler_Warnings/0017-server-Workaround-duplicate-condition-warning-of-GCC.patch
|
||||
patch_apply Compiler_Warnings/0018-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch
|
||||
@ -2382,7 +2380,6 @@ if test "$enable_Compiler_Warnings" -eq 1; then
|
||||
echo '+ { "Sebastian Lackner", "user32/tests: Avoid misleading indentation warnings.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "winhttp/tests: Avoid misleading indentation warnings.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "wshom.ocx/tests: Avoid misleading indentation warnings.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "xaudio2_7: Only declare debug channel when needed.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "include: Avoid shift overflow warning.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "server: Workaround duplicate condition warning of GCC 6.", 1 },';
|
||||
echo '+ { "Erich E. Hoover", "Appease the blessed version of gcc (4.5) when -Werror is enabled.", 1 },';
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 39a2802a5a07da378f07e6e56b9ba89e297390fb Mon Sep 17 00:00:00 2001
|
||||
From c96b9ddd5a522622943774e1df2d58084e483e7d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 29 Oct 2015 17:33:23 +0100
|
||||
Subject: wined3d: Start to move surface/volume_load_location into the texture.
|
||||
@ -9,41 +9,9 @@ FIXME 2: This breaks some rtv->resource != buffer checks.
|
||||
wined3d_surface_prepare will be moved into the texture a lot later, after
|
||||
moving allocation of all locations (including sysmem) there.
|
||||
---
|
||||
dlls/wined3d/swapchain.c | 7 ++++---
|
||||
dlls/wined3d/texture.c | 1 +
|
||||
2 files changed, 5 insertions(+), 3 deletions(-)
|
||||
dlls/wined3d/texture.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
index 8f93095..306c499 100644
|
||||
--- a/dlls/wined3d/swapchain.c
|
||||
+++ b/dlls/wined3d/swapchain.c
|
||||
@@ -327,7 +327,7 @@ static void swapchain_blit(const struct wined3d_swapchain *swapchain,
|
||||
if (texture->resource.multisample_type)
|
||||
{
|
||||
location = WINED3D_LOCATION_RB_RESOLVED;
|
||||
- surface_load_location(back_buffer, context, location);
|
||||
+ wined3d_texture_load_location(texture, 0, context, location);
|
||||
}
|
||||
|
||||
context_apply_fbo_state_blit(context, GL_READ_FRAMEBUFFER, back_buffer, NULL, location);
|
||||
@@ -556,14 +556,15 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
*/
|
||||
if (!swapchain->render_to_fbo && render_to_fbo && wined3d_settings.offscreen_rendering_mode == ORM_FBO)
|
||||
{
|
||||
- surface_load_location(back_buffer, context, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
+ wined3d_texture_load_location(back_buffer->container, 0, context, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
wined3d_texture_invalidate_location(back_buffer->container, 0, WINED3D_LOCATION_DRAWABLE);
|
||||
swapchain->render_to_fbo = TRUE;
|
||||
swapchain_update_draw_bindings(swapchain);
|
||||
}
|
||||
else
|
||||
{
|
||||
- surface_load_location(back_buffer, context, back_buffer->container->resource.draw_binding);
|
||||
+ wined3d_texture_load_location(swapchain->back_buffers[0], 0, context,
|
||||
+ swapchain->back_buffers[0]->resource.draw_binding);
|
||||
}
|
||||
|
||||
if (swapchain->render_to_fbo)
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index 873d72b..0acc74f 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
|
@ -1,14 +1,13 @@
|
||||
From 0de3c15670f2fa6a665f75a77ae522456372ed9b Mon Sep 17 00:00:00 2001
|
||||
From 6930278bb1ba99c7cfcbd1cfaef73c8034cc48a7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Tue, 17 Nov 2015 23:13:29 -0800
|
||||
Subject: wined3d: Call texture_load_location instead of surface_load_location.
|
||||
|
||||
---
|
||||
dlls/wined3d/device.c | 9 ++++++---
|
||||
dlls/wined3d/surface.c | 8 +++++---
|
||||
dlls/wined3d/swapchain.c | 8 ++++----
|
||||
dlls/wined3d/texture.c | 2 +-
|
||||
4 files changed, 16 insertions(+), 11 deletions(-)
|
||||
dlls/wined3d/device.c | 9 ++++++---
|
||||
dlls/wined3d/surface.c | 5 +++--
|
||||
dlls/wined3d/texture.c | 2 +-
|
||||
3 files changed, 10 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index e052557..604be94 100644
|
||||
@ -42,7 +41,7 @@ index e052557..604be94 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 859f481..6d5b22b 100644
|
||||
index 2796590..5dfdcfd 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -2447,7 +2447,7 @@ static void surface_blt_to_drawable(const struct wined3d_device *device,
|
||||
@ -64,45 +63,6 @@ index 859f481..6d5b22b 100644
|
||||
}
|
||||
|
||||
if (texture->resource.usage & WINED3DUSAGE_DEPTHSTENCIL)
|
||||
@@ -4380,7 +4381,8 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
if (!wined3d_resource_is_offscreen(&dst_texture->resource))
|
||||
{
|
||||
struct wined3d_context *context = context_acquire(device, dst_surface);
|
||||
- surface_load_location(dst_surface, context, dst_texture->resource.draw_binding);
|
||||
+ wined3d_texture_load_location(dst_texture, surface_get_sub_resource_idx(dst_surface),
|
||||
+ context, dst_texture->resource.draw_binding);
|
||||
context_release(context);
|
||||
}
|
||||
return WINED3D_OK;
|
||||
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
index 4d7f60a..6f3b4d8 100644
|
||||
--- a/dlls/wined3d/swapchain.c
|
||||
+++ b/dlls/wined3d/swapchain.c
|
||||
@@ -464,7 +464,7 @@ static void wined3d_swapchain_rotate(struct wined3d_swapchain *swapchain, struct
|
||||
sub_resource = &texture->sub_resources[0];
|
||||
|
||||
if (!(sub_resource->locations & supported_locations))
|
||||
- surface_load_location(sub_resource->u.surface, context, texture->resource.draw_binding);
|
||||
+ wined3d_texture_load_location(texture, 0, context, texture->resource.draw_binding);
|
||||
|
||||
texture_prev->texture_rgb = texture->texture_rgb;
|
||||
texture_prev->rb_multisample = texture->rb_multisample;
|
||||
@@ -644,12 +644,12 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
|
||||
static void swapchain_gl_frontbuffer_updated(struct wined3d_swapchain *swapchain)
|
||||
{
|
||||
- struct wined3d_surface *surface;
|
||||
+ struct wined3d_texture *texture = swapchain->front_buffer;
|
||||
+ struct wined3d_surface *surface = texture->sub_resources[0].u.surface;
|
||||
struct wined3d_context *context;
|
||||
|
||||
- surface = swapchain->front_buffer->sub_resources[0].u.surface;
|
||||
context = context_acquire(swapchain->device, surface);
|
||||
- surface_load_location(surface, context, surface->container->resource.draw_binding);
|
||||
+ wined3d_texture_load_location(texture, 0, context, texture->resource.draw_binding);
|
||||
context_release(context);
|
||||
SetRectEmpty(&swapchain->front_buffer_update);
|
||||
}
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index 0acc74f..2d155cb 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
|
@ -1,4 +1,4 @@
|
||||
From c1c29e14d5b9efe39db225334885e4b4703ff72d Mon Sep 17 00:00:00 2001
|
||||
From 8f5ab38fe34d5b7da764d021d8389661f6815956 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 20 Dec 2012 13:09:17 +0100
|
||||
Subject: wined3d: Move the framebuffer into wined3d_state
|
||||
@ -20,7 +20,7 @@ Subject: wined3d: Move the framebuffer into wined3d_state
|
||||
13 files changed, 192 insertions(+), 133 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
|
||||
index 3f551b6..05ce745 100644
|
||||
index f877149..1ffe498 100644
|
||||
--- a/dlls/wined3d/arb_program_shader.c
|
||||
+++ b/dlls/wined3d/arb_program_shader.c
|
||||
@@ -704,7 +704,7 @@ static void shader_arb_load_constants_internal(struct shader_arb_priv *priv,
|
||||
@ -42,7 +42,7 @@ index 3f551b6..05ce745 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
index 8b12a39..8946676 100644
|
||||
index f5311af..d276ee8 100644
|
||||
--- a/dlls/wined3d/context.c
|
||||
+++ b/dlls/wined3d/context.c
|
||||
@@ -1699,6 +1699,11 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain,
|
||||
@ -73,7 +73,7 @@ index 8b12a39..8946676 100644
|
||||
HeapFree(GetProcessHeap(), 0, context->draw_buffers);
|
||||
HeapFree(GetProcessHeap(), 0, context->blit_targets);
|
||||
device_context_remove(device, context);
|
||||
@@ -2576,7 +2583,7 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win
|
||||
@@ -2577,7 +2584,7 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win
|
||||
DWORD rt_mask = 0, *cur_mask;
|
||||
UINT i;
|
||||
|
||||
@ -82,7 +82,7 @@ index 8b12a39..8946676 100644
|
||||
|| rt_count != gl_info->limits.buffers)
|
||||
{
|
||||
if (!context_validate_rt_config(rt_count, rts, dsv))
|
||||
@@ -2621,6 +2628,8 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win
|
||||
@@ -2622,6 +2629,8 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win
|
||||
rt_mask = context_generate_rt_mask_no_fbo(context,
|
||||
rt_count ? wined3d_rendertarget_view_get_surface(rts[0])->container : NULL);
|
||||
}
|
||||
@ -91,7 +91,7 @@ index 8b12a39..8946676 100644
|
||||
}
|
||||
else if (wined3d_settings.offscreen_rendering_mode == ORM_FBO
|
||||
&& (!rt_count || wined3d_resource_is_offscreen(rts[0]->resource)))
|
||||
@@ -2678,7 +2687,7 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win
|
||||
@@ -2679,7 +2688,7 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win
|
||||
|
||||
static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const struct wined3d_state *state)
|
||||
{
|
||||
@ -100,7 +100,7 @@ index 8b12a39..8946676 100644
|
||||
struct wined3d_shader *ps = state->shader[WINED3D_SHADER_TYPE_PIXEL];
|
||||
DWORD rt_mask, rt_mask_bits;
|
||||
unsigned int i;
|
||||
@@ -2708,7 +2717,7 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const
|
||||
@@ -2709,7 +2718,7 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const
|
||||
void context_state_fb(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
|
||||
{
|
||||
DWORD rt_mask = find_draw_buffers_mask(context, state);
|
||||
@ -109,7 +109,7 @@ index 8b12a39..8946676 100644
|
||||
DWORD *cur_mask;
|
||||
|
||||
if (wined3d_settings.offscreen_rendering_mode == ORM_FBO)
|
||||
@@ -2739,6 +2748,8 @@ void context_state_fb(struct wined3d_context *context, const struct wined3d_stat
|
||||
@@ -2740,6 +2749,8 @@ void context_state_fb(struct wined3d_context *context, const struct wined3d_stat
|
||||
context_apply_draw_buffers(context, rt_mask);
|
||||
*cur_mask = rt_mask;
|
||||
}
|
||||
@ -118,7 +118,7 @@ index 8b12a39..8946676 100644
|
||||
}
|
||||
|
||||
static void context_map_stage(struct wined3d_context *context, DWORD stage, DWORD unit)
|
||||
@@ -3370,7 +3381,7 @@ BOOL context_apply_draw_state(struct wined3d_context *context,
|
||||
@@ -3371,7 +3382,7 @@ BOOL context_apply_draw_state(struct wined3d_context *context,
|
||||
const struct wined3d_device *device, const struct wined3d_state *state)
|
||||
{
|
||||
const struct StateEntry *state_table = context->state_table;
|
||||
@ -128,7 +128,7 @@ index 8b12a39..8946676 100644
|
||||
WORD map;
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 6569b97..0553d4a 100644
|
||||
index c9c9b9c..446c642 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -328,19 +328,19 @@ static void wined3d_cs_exec_clear(struct wined3d_cs *cs, const void *data)
|
||||
@ -281,10 +281,10 @@ index 6569b97..0553d4a 100644
|
||||
HeapFree(GetProcessHeap(), 0, cs);
|
||||
}
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 98a934c..6e118dc 100644
|
||||
index 604be94..e7f0a67 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -987,7 +987,7 @@ static void device_init_swapchain_state(struct wined3d_device *device, struct wi
|
||||
@@ -995,7 +995,7 @@ static void device_init_swapchain_state(struct wined3d_device *device, struct wi
|
||||
BOOL ds_enable = !!swapchain->desc.enable_auto_depth_stencil;
|
||||
unsigned int i;
|
||||
|
||||
@ -293,7 +293,7 @@ index 98a934c..6e118dc 100644
|
||||
{
|
||||
for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i)
|
||||
{
|
||||
@@ -1005,7 +1005,6 @@ HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device,
|
||||
@@ -1013,7 +1013,6 @@ HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device,
|
||||
struct wined3d_swapchain_desc *swapchain_desc)
|
||||
{
|
||||
static const struct wined3d_color black = {0.0f, 0.0f, 0.0f, 0.0f};
|
||||
@ -301,7 +301,7 @@ index 98a934c..6e118dc 100644
|
||||
struct wined3d_swapchain *swapchain = NULL;
|
||||
struct wined3d_context *context;
|
||||
DWORD clear_flags = 0;
|
||||
@@ -1018,9 +1017,6 @@ HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device,
|
||||
@@ -1026,9 +1025,6 @@ HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device,
|
||||
if (device->wined3d->flags & WINED3D_NO3D)
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
|
||||
@ -311,7 +311,7 @@ index 98a934c..6e118dc 100644
|
||||
if (FAILED(hr = device->shader_backend->shader_alloc_private(device,
|
||||
device->adapter->vertex_pipe, device->adapter->fragment_pipe)))
|
||||
{
|
||||
@@ -1095,7 +1091,6 @@ HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device,
|
||||
@@ -1103,7 +1099,6 @@ HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device,
|
||||
return WINED3D_OK;
|
||||
|
||||
err_out:
|
||||
@ -319,7 +319,7 @@ index 98a934c..6e118dc 100644
|
||||
HeapFree(GetProcessHeap(), 0, device->swapchains);
|
||||
device->swapchain_count = 0;
|
||||
if (device->back_buffer_view)
|
||||
@@ -1173,8 +1168,25 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
|
||||
@@ -1181,8 +1176,25 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
|
||||
if (device->cursor_texture)
|
||||
wined3d_texture_decref(device->cursor_texture);
|
||||
|
||||
@ -345,7 +345,7 @@ index 98a934c..6e118dc 100644
|
||||
/* Unload resources */
|
||||
LIST_FOR_EACH_ENTRY_SAFE(resource, cursor, &device->resources, struct wined3d_resource, resource_list_entry)
|
||||
{
|
||||
@@ -1205,37 +1217,6 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
|
||||
@@ -1213,37 +1225,6 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
|
||||
* destroy the context. */
|
||||
context_release(context);
|
||||
|
||||
@ -383,7 +383,7 @@ index 98a934c..6e118dc 100644
|
||||
if (device->back_buffer_view)
|
||||
{
|
||||
wined3d_rendertarget_view_decref(device->back_buffer_view);
|
||||
@@ -1253,9 +1234,6 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
|
||||
@@ -1261,9 +1242,6 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
|
||||
device->swapchains = NULL;
|
||||
device->swapchain_count = 0;
|
||||
|
||||
@ -393,7 +393,7 @@ index 98a934c..6e118dc 100644
|
||||
device->d3d_initialized = FALSE;
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -2072,7 +2050,7 @@ static void resolve_depth_buffer(struct wined3d_state *state)
|
||||
@@ -2080,7 +2058,7 @@ static void resolve_depth_buffer(struct wined3d_state *state)
|
||||
|| !(dst_texture->resource.format_flags & WINED3DFMT_FLAG_DEPTH))
|
||||
return;
|
||||
|
||||
@ -402,7 +402,7 @@ index 98a934c..6e118dc 100644
|
||||
return;
|
||||
if (src_view->resource->type == WINED3D_RTYPE_BUFFER)
|
||||
{
|
||||
@@ -3467,6 +3445,8 @@ HRESULT CDECL wined3d_device_end_scene(struct wined3d_device *device)
|
||||
@@ -3475,6 +3453,8 @@ HRESULT CDECL wined3d_device_end_scene(struct wined3d_device *device)
|
||||
HRESULT CDECL wined3d_device_clear(struct wined3d_device *device, DWORD rect_count,
|
||||
const RECT *rects, DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil)
|
||||
{
|
||||
@ -411,7 +411,7 @@ index 98a934c..6e118dc 100644
|
||||
TRACE("device %p, rect_count %u, rects %p, flags %#x, color %s, depth %.8e, stencil %u.\n",
|
||||
device, rect_count, rects, flags, debug_color(color), depth, stencil);
|
||||
|
||||
@@ -3478,7 +3458,7 @@ HRESULT CDECL wined3d_device_clear(struct wined3d_device *device, DWORD rect_cou
|
||||
@@ -3486,7 +3466,7 @@ HRESULT CDECL wined3d_device_clear(struct wined3d_device *device, DWORD rect_cou
|
||||
|
||||
if (flags & (WINED3DCLEAR_ZBUFFER | WINED3DCLEAR_STENCIL))
|
||||
{
|
||||
@ -420,7 +420,7 @@ index 98a934c..6e118dc 100644
|
||||
if (!ds)
|
||||
{
|
||||
WARN("Clearing depth and/or stencil without a depth stencil buffer attached, returning WINED3DERR_INVALIDCALL\n");
|
||||
@@ -3487,8 +3467,8 @@ HRESULT CDECL wined3d_device_clear(struct wined3d_device *device, DWORD rect_cou
|
||||
@@ -3495,8 +3475,8 @@ HRESULT CDECL wined3d_device_clear(struct wined3d_device *device, DWORD rect_cou
|
||||
}
|
||||
else if (flags & WINED3DCLEAR_TARGET)
|
||||
{
|
||||
@ -431,7 +431,7 @@ index 98a934c..6e118dc 100644
|
||||
{
|
||||
WARN("Silently ignoring depth and target clear with mismatching sizes\n");
|
||||
return WINED3D_OK;
|
||||
@@ -3804,8 +3784,8 @@ HRESULT CDECL wined3d_device_validate_device(const struct wined3d_device *device
|
||||
@@ -3812,8 +3792,8 @@ HRESULT CDECL wined3d_device_validate_device(const struct wined3d_device *device
|
||||
if (state->render_states[WINED3D_RS_ZENABLE] || state->render_states[WINED3D_RS_ZWRITEENABLE]
|
||||
|| state->render_states[WINED3D_RS_STENCILENABLE])
|
||||
{
|
||||
@ -442,7 +442,7 @@ index 98a934c..6e118dc 100644
|
||||
|
||||
if (ds && rt && (ds->width < rt->width || ds->height < rt->height))
|
||||
{
|
||||
@@ -4263,20 +4243,21 @@ struct wined3d_rendertarget_view * CDECL wined3d_device_get_rendertarget_view(co
|
||||
@@ -4271,20 +4251,21 @@ struct wined3d_rendertarget_view * CDECL wined3d_device_get_rendertarget_view(co
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -466,7 +466,7 @@ index 98a934c..6e118dc 100644
|
||||
|
||||
TRACE("device %p, view_idx %u, view %p, set_viewport %#x.\n",
|
||||
device, view_idx, view, set_viewport);
|
||||
@@ -4313,13 +4294,13 @@ HRESULT CDECL wined3d_device_set_rendertarget_view(struct wined3d_device *device
|
||||
@@ -4321,13 +4302,13 @@ HRESULT CDECL wined3d_device_set_rendertarget_view(struct wined3d_device *device
|
||||
}
|
||||
|
||||
|
||||
@ -482,7 +482,7 @@ index 98a934c..6e118dc 100644
|
||||
wined3d_cs_emit_set_rendertarget_view(device->cs, view_idx, view);
|
||||
/* Release after the assignment, to prevent device_resource_released()
|
||||
* from seeing the surface as still in use. */
|
||||
@@ -4331,18 +4312,19 @@ HRESULT CDECL wined3d_device_set_rendertarget_view(struct wined3d_device *device
|
||||
@@ -4339,18 +4320,19 @@ HRESULT CDECL wined3d_device_set_rendertarget_view(struct wined3d_device *device
|
||||
|
||||
void CDECL wined3d_device_set_depth_stencil_view(struct wined3d_device *device, struct wined3d_rendertarget_view *view)
|
||||
{
|
||||
@ -504,7 +504,7 @@ index 98a934c..6e118dc 100644
|
||||
wined3d_rendertarget_view_incref(view);
|
||||
wined3d_cs_emit_set_depth_stencil_view(device->cs, view);
|
||||
if (prev)
|
||||
@@ -4705,10 +4687,9 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
@@ -4710,10 +4692,9 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
wined3d_texture_decref(device->cursor_texture);
|
||||
device->cursor_texture = NULL;
|
||||
}
|
||||
@ -516,7 +516,7 @@ index 98a934c..6e118dc 100644
|
||||
{
|
||||
for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i)
|
||||
{
|
||||
@@ -4717,6 +4698,11 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
@@ -4722,6 +4703,11 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
}
|
||||
wined3d_device_set_depth_stencil_view(device, NULL);
|
||||
|
||||
@ -528,7 +528,7 @@ index 98a934c..6e118dc 100644
|
||||
if (device->onscreen_depth_stencil)
|
||||
{
|
||||
wined3d_texture_decref(device->onscreen_depth_stencil->container);
|
||||
@@ -4942,27 +4928,28 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
@@ -4888,27 +4874,28 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
|
||||
if (device->d3d_initialized)
|
||||
delete_opengl_contexts(device, swapchain);
|
||||
|
||||
@ -564,7 +564,7 @@ index 98a934c..6e118dc 100644
|
||||
wined3d_cs_emit_set_scissor_rect(device->cs, &state->scissor_rect);
|
||||
}
|
||||
|
||||
@@ -5052,11 +5039,11 @@ void device_resource_released(struct wined3d_device *device, struct wined3d_reso
|
||||
@@ -4998,11 +4985,11 @@ void device_resource_released(struct wined3d_device *device, struct wined3d_reso
|
||||
|
||||
for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i)
|
||||
{
|
||||
@ -578,7 +578,7 @@ index 98a934c..6e118dc 100644
|
||||
ERR("Resource %p is still in use as depth/stencil buffer.\n", resource);
|
||||
|
||||
switch (type)
|
||||
@@ -5192,8 +5179,12 @@ HRESULT device_init(struct wined3d_device *device, struct wined3d *wined3d,
|
||||
@@ -5138,8 +5125,12 @@ HRESULT device_init(struct wined3d_device *device, struct wined3d *wined3d,
|
||||
|
||||
device->blitter = adapter->blitter;
|
||||
|
||||
@ -594,7 +594,7 @@ index 98a934c..6e118dc 100644
|
||||
|
||||
if (!(device->cs = wined3d_cs_create(device)))
|
||||
diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
|
||||
index dd82654..dd0f1d9 100644
|
||||
index e5b30db..1188009 100644
|
||||
--- a/dlls/wined3d/drawprim.c
|
||||
+++ b/dlls/wined3d/drawprim.c
|
||||
@@ -412,7 +412,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s
|
||||
@ -829,10 +829,10 @@ index 2fbfa2c..bb3c0cc 100644
|
||||
if (type == WINED3D_SBT_RECORDED)
|
||||
return WINED3D_OK;
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index af7a92a..1b32ad0 100644
|
||||
index 3673fe9..5695a53 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -2568,7 +2568,7 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
|
||||
@@ -2566,7 +2566,7 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
|
||||
{
|
||||
struct wined3d_texture *dst_texture = dst_surface->container;
|
||||
struct wined3d_device *device = dst_texture->resource.device;
|
||||
@ -842,13 +842,13 @@ index af7a92a..1b32ad0 100644
|
||||
struct wined3d_texture *src_texture;
|
||||
|
||||
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
index cf3cb95..783a174 100644
|
||||
index 041e289..c2db0e4 100644
|
||||
--- a/dlls/wined3d/swapchain.c
|
||||
+++ b/dlls/wined3d/swapchain.c
|
||||
@@ -481,7 +481,7 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
@@ -488,7 +488,7 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
const RECT *src_rect, const RECT *dst_rect, DWORD flags)
|
||||
{
|
||||
struct wined3d_surface *back_buffer = swapchain->back_buffers[0]->sub_resources[0].u.surface;
|
||||
struct wined3d_texture *back_buffer = swapchain->back_buffers[0];
|
||||
- const struct wined3d_fb_state *fb = &swapchain->device->fb;
|
||||
+ const struct wined3d_fb_state *fb = &swapchain->device->state.fb;
|
||||
const struct wined3d_gl_info *gl_info;
|
||||
@ -877,7 +877,7 @@ index 93b610d..288c82e 100644
|
||||
|| !state->render_states[WINED3D_RS_CLIPPLANEENABLE])
|
||||
{
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 63534ce..5e6cbda 100644
|
||||
index 4b4aecc..032d236 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -1450,6 +1450,36 @@ struct wined3d_timestamp_query
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 2b155ebd27175664ee670e0213dff7295c3fbdff Mon Sep 17 00:00:00 2001
|
||||
From 896c9a5cbbf43da7bafda1c00169cb6b67c1a32a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 4 Apr 2013 14:52:24 +0200
|
||||
Subject: wined3d: Pass the depth stencil to swapchain->present
|
||||
@ -26,7 +26,7 @@ index 095fa0e..cacafec 100644
|
||||
wined3d_resource_release(&swapchain->front_buffer->resource);
|
||||
for (i = 0; i < swapchain->desc.backbuffer_count; ++i)
|
||||
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
index c920919..33908dc 100644
|
||||
index 7a3cdd2..dd0f17d 100644
|
||||
--- a/dlls/wined3d/swapchain.c
|
||||
+++ b/dlls/wined3d/swapchain.c
|
||||
@@ -485,10 +485,10 @@ static void wined3d_swapchain_rotate(struct wined3d_swapchain *swapchain, struct
|
||||
@ -37,12 +37,12 @@ index c920919..33908dc 100644
|
||||
+ const RECT *src_rect, const RECT *dst_rect, DWORD flags,
|
||||
+ struct wined3d_rendertarget_view *depth_stencil)
|
||||
{
|
||||
struct wined3d_surface *back_buffer = swapchain->back_buffers[0]->sub_resources[0].u.surface;
|
||||
struct wined3d_texture *back_buffer = swapchain->back_buffers[0];
|
||||
- const struct wined3d_fb_state *fb = &swapchain->device->state.fb;
|
||||
const struct wined3d_gl_info *gl_info;
|
||||
struct wined3d_texture *logo_texture;
|
||||
struct wined3d_context *context;
|
||||
@@ -624,15 +624,15 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
@@ -621,15 +621,15 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
wined3d_texture_validate_location(swapchain->back_buffers[swapchain->desc.backbuffer_count - 1],
|
||||
0, WINED3D_LOCATION_DISCARDED);
|
||||
|
||||
@ -61,7 +61,7 @@ index c920919..33908dc 100644
|
||||
if (ds == swapchain->device->onscreen_depth_stencil)
|
||||
{
|
||||
wined3d_texture_decref(swapchain->device->onscreen_depth_stencil->container);
|
||||
@@ -705,7 +705,8 @@ static void swapchain_gdi_frontbuffer_updated(struct wined3d_swapchain *swapchai
|
||||
@@ -701,7 +701,8 @@ static void swapchain_gdi_frontbuffer_updated(struct wined3d_swapchain *swapchai
|
||||
}
|
||||
|
||||
static void swapchain_gdi_present(struct wined3d_swapchain *swapchain,
|
||||
|
@ -1,4 +1,4 @@
|
||||
From aa7fbb82f5ce2b7bac9fd6cb74fcbaa85f5ac777 Mon Sep 17 00:00:00 2001
|
||||
From c41a1ed5fc68a6083416dd263e23fbd72544dfc5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefandoesinger@gmx.at>
|
||||
Date: Sat, 7 May 2016 13:58:17 +0100
|
||||
Subject: wined3d: Use surface_blt_ugly in swapchain_gl_present.
|
||||
@ -8,30 +8,30 @@ Subject: wined3d: Use surface_blt_ugly in swapchain_gl_present.
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
index a622844..87fae35 100644
|
||||
index b885fc7..16dd4c5 100644
|
||||
--- a/dlls/wined3d/swapchain.c
|
||||
+++ b/dlls/wined3d/swapchain.c
|
||||
@@ -503,7 +503,8 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
@@ -514,7 +514,8 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
RECT rect = {0, 0, logo_texture->resource.width, logo_texture->resource.height};
|
||||
|
||||
/* Blit the logo into the upper left corner of the drawable. */
|
||||
- wined3d_texture_blt(swapchain->back_buffers[0], 0, &rect, logo_texture, 0, &rect,
|
||||
+ surface_blt_ugly(swapchain->back_buffers[0]->sub_resources[0].u.surface, &rect,
|
||||
- wined3d_texture_blt(back_buffer, 0, &rect, logo_texture, 0, &rect,
|
||||
+ surface_blt_ugly(back_buffer->sub_resources[0].u.surface, &rect,
|
||||
+ logo_texture->sub_resources[0].u.surface, &rect,
|
||||
WINED3D_BLT_ALPHA_TEST, NULL, WINED3D_TEXF_POINT);
|
||||
}
|
||||
|
||||
@@ -532,8 +533,8 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
@@ -541,8 +542,8 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
if (swapchain->desc.windowed)
|
||||
MapWindowPoints(NULL, swapchain->win_handle, (POINT *)&dst_rect, 2);
|
||||
if (wined3d_clip_blit(&clip_rect, &dst_rect, &src_rect))
|
||||
- wined3d_texture_blt(swapchain->back_buffers[0], 0, &dst_rect,
|
||||
- wined3d_texture_blt(back_buffer, 0, &dst_rect,
|
||||
- swapchain->device->cursor_texture, 0, &src_rect,
|
||||
+ surface_blt_ugly(swapchain->back_buffers[0]->sub_resources[0].u.surface, &dst_rect,
|
||||
+ surface_blt_ugly(back_buffer->sub_resources[0].u.surface, &dst_rect,
|
||||
+ swapchain->device->cursor_texture->sub_resources[0].u.surface, &src_rect,
|
||||
WINED3D_BLT_ALPHA_TEST, NULL, WINED3D_TEXF_POINT);
|
||||
}
|
||||
|
||||
--
|
||||
2.8.0
|
||||
2.9.0
|
||||
|
||||
|
@ -6463,26 +6463,19 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -4380,10 +4732,18 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
if (!wined3d_resource_is_offscreen(&dst_texture->resource))
|
||||
{
|
||||
struct wined3d_context *context = context_acquire(device, dst_surface);
|
||||
+#if !defined(STAGING_CSMT)
|
||||
surface_load_location(dst_surface, context, dst_texture->resource.draw_binding);
|
||||
@@ -4384,7 +4736,11 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
context, dst_texture->resource.draw_binding);
|
||||
context_release(context);
|
||||
}
|
||||
+#if !defined(STAGING_CSMT)
|
||||
return WINED3D_OK;
|
||||
+#else /* STAGING_CSMT */
|
||||
+ wined3d_texture_load_location(dst_texture, surface_get_sub_resource_idx(dst_surface),
|
||||
+ context, dst_texture->resource.draw_binding);
|
||||
+ context_release(context);
|
||||
+ }
|
||||
+ return;
|
||||
+#endif /* STAGING_CSMT */
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4407,7 +4767,11 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
@@ -4408,7 +4764,11 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
wined3d_swapchain_present(dst_swapchain, NULL, NULL, dst_swapchain->win_handle, 0);
|
||||
dst_swapchain->desc.swap_effect = swap_effect;
|
||||
|
||||
@ -6494,7 +6487,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
if (fbo_blit_supported(&device->adapter->gl_info, blit_op,
|
||||
@@ -4428,7 +4792,11 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
@@ -4429,7 +4789,11 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
wined3d_texture_invalidate_location(dst_texture, dst_sub_resource_idx,
|
||||
~dst_texture->resource.draw_binding);
|
||||
|
||||
@ -6506,7 +6499,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
blitter = wined3d_select_blitter(&device->adapter->gl_info, &device->adapter->d3d_info, blit_op,
|
||||
@@ -4438,7 +4806,11 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
@@ -4439,7 +4803,11 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
{
|
||||
blitter->blit_surface(device, blit_op, filter, src_surface,
|
||||
src_rect, dst_surface, dst_rect, color_key);
|
||||
@ -6518,7 +6511,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4446,9 +4818,156 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
@@ -4447,9 +4815,156 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
|
||||
fallback:
|
||||
/* Special cases for render targets. */
|
||||
if (SUCCEEDED(surface_blt_special(dst_surface, dst_rect, src_surface, src_rect, flags, fx, filter)))
|
||||
@ -6692,100 +6685,52 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
swapchain_cleanup(swapchain);
|
||||
swapchain->parent_ops->wined3d_object_destroyed(swapchain->parent);
|
||||
HeapFree(GetProcessHeap(), 0, swapchain);
|
||||
@@ -334,7 +341,11 @@ static void swapchain_blit(const struct wined3d_swapchain *swapchain,
|
||||
if (texture->resource.multisample_type)
|
||||
{
|
||||
location = WINED3D_LOCATION_RB_RESOLVED;
|
||||
+#if !defined(STAGING_CSMT)
|
||||
surface_load_location(back_buffer, context, location);
|
||||
+#else /* STAGING_CSMT */
|
||||
+ wined3d_texture_load_location(texture, 0, context, location);
|
||||
+#endif /* STAGING_CSMT */
|
||||
}
|
||||
|
||||
context_apply_fbo_state_blit(context, GL_READ_FRAMEBUFFER, back_buffer, NULL, location);
|
||||
@@ -464,7 +475,11 @@ static void wined3d_swapchain_rotate(struct wined3d_swapchain *swapchain, struct
|
||||
sub_resource = &texture->sub_resources[0];
|
||||
|
||||
if (!(sub_resource->locations & supported_locations))
|
||||
+#if !defined(STAGING_CSMT)
|
||||
surface_load_location(sub_resource->u.surface, context, texture->resource.draw_binding);
|
||||
+#else /* STAGING_CSMT */
|
||||
+ wined3d_texture_load_location(texture, 0, context, texture->resource.draw_binding);
|
||||
+#endif /* STAGING_CSMT */
|
||||
|
||||
texture_prev->texture_rgb = texture->texture_rgb;
|
||||
texture_prev->rb_multisample = texture->rb_multisample;
|
||||
@@ -485,10 +500,17 @@ static void wined3d_swapchain_rotate(struct wined3d_swapchain *swapchain, struct
|
||||
@@ -485,10 +492,17 @@ static void wined3d_swapchain_rotate(struct wined3d_swapchain *swapchain, struct
|
||||
}
|
||||
|
||||
static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
+#if !defined(STAGING_CSMT)
|
||||
const RECT *src_rect, const RECT *dst_rect, DWORD flags)
|
||||
{
|
||||
struct wined3d_surface *back_buffer = swapchain->back_buffers[0]->sub_resources[0].u.surface;
|
||||
struct wined3d_texture *back_buffer = swapchain->back_buffers[0];
|
||||
const struct wined3d_fb_state *fb = &swapchain->device->fb;
|
||||
+#else /* STAGING_CSMT */
|
||||
+ const RECT *src_rect, const RECT *dst_rect, DWORD flags,
|
||||
+ struct wined3d_rendertarget_view *depth_stencil)
|
||||
+{
|
||||
+ struct wined3d_surface *back_buffer = swapchain->back_buffers[0]->sub_resources[0].u.surface;
|
||||
+ struct wined3d_texture *back_buffer = swapchain->back_buffers[0];
|
||||
+#endif /* STAGING_CSMT */
|
||||
const struct wined3d_gl_info *gl_info;
|
||||
struct wined3d_texture *logo_texture;
|
||||
struct wined3d_context *context;
|
||||
@@ -509,7 +531,12 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
@@ -509,7 +523,12 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
RECT rect = {0, 0, logo_texture->resource.width, logo_texture->resource.height};
|
||||
|
||||
/* Blit the logo into the upper left corner of the drawable. */
|
||||
+#if !defined(STAGING_CSMT)
|
||||
wined3d_texture_blt(swapchain->back_buffers[0], 0, &rect, logo_texture, 0, &rect,
|
||||
wined3d_texture_blt(back_buffer, 0, &rect, logo_texture, 0, &rect,
|
||||
+#else /* STAGING_CSMT */
|
||||
+ surface_blt_ugly(swapchain->back_buffers[0]->sub_resources[0].u.surface, &rect,
|
||||
+ surface_blt_ugly(back_buffer->sub_resources[0].u.surface, &rect,
|
||||
+ logo_texture->sub_resources[0].u.surface, &rect,
|
||||
+#endif /* STAGING_CSMT */
|
||||
WINED3D_BLT_ALPHA_TEST, NULL, WINED3D_TEXF_POINT);
|
||||
}
|
||||
|
||||
@@ -538,8 +565,13 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
@@ -536,8 +555,13 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
if (swapchain->desc.windowed)
|
||||
MapWindowPoints(NULL, swapchain->win_handle, (POINT *)&dst_rect, 2);
|
||||
if (wined3d_clip_blit(&clip_rect, &dst_rect, &src_rect))
|
||||
+#if !defined(STAGING_CSMT)
|
||||
wined3d_texture_blt(swapchain->back_buffers[0], 0, &dst_rect,
|
||||
wined3d_texture_blt(back_buffer, 0, &dst_rect,
|
||||
swapchain->device->cursor_texture, 0, &src_rect,
|
||||
+#else /* STAGING_CSMT */
|
||||
+ surface_blt_ugly(swapchain->back_buffers[0]->sub_resources[0].u.surface, &dst_rect,
|
||||
+ surface_blt_ugly(back_buffer->sub_resources[0].u.surface, &dst_rect,
|
||||
+ swapchain->device->cursor_texture->sub_resources[0].u.surface, &src_rect,
|
||||
+#endif /* STAGING_CSMT */
|
||||
WINED3D_BLT_ALPHA_TEST, NULL, WINED3D_TEXF_POINT);
|
||||
}
|
||||
|
||||
@@ -563,14 +595,23 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
*/
|
||||
if (!swapchain->render_to_fbo && render_to_fbo && wined3d_settings.offscreen_rendering_mode == ORM_FBO)
|
||||
{
|
||||
+#if !defined(STAGING_CSMT)
|
||||
surface_load_location(back_buffer, context, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
+#else /* STAGING_CSMT */
|
||||
+ wined3d_texture_load_location(back_buffer->container, 0, context, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
+#endif /* STAGING_CSMT */
|
||||
wined3d_texture_invalidate_location(back_buffer->container, 0, WINED3D_LOCATION_DRAWABLE);
|
||||
swapchain->render_to_fbo = TRUE;
|
||||
swapchain_update_draw_bindings(swapchain);
|
||||
}
|
||||
else
|
||||
{
|
||||
+#if !defined(STAGING_CSMT)
|
||||
surface_load_location(back_buffer, context, back_buffer->container->resource.draw_binding);
|
||||
+#else /* STAGING_CSMT */
|
||||
+ wined3d_texture_load_location(swapchain->back_buffers[0], 0, context,
|
||||
+ swapchain->back_buffers[0]->resource.draw_binding);
|
||||
+#endif /* STAGING_CSMT */
|
||||
}
|
||||
|
||||
if (swapchain->render_to_fbo)
|
||||
@@ -583,8 +624,13 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
@@ -581,8 +605,13 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
swapchain_blit(swapchain, context, src_rect, dst_rect);
|
||||
}
|
||||
|
||||
@ -6799,7 +6744,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
|
||||
/* call wglSwapBuffers through the gl table to avoid confusing the Steam overlay */
|
||||
gl_info->gl_ops.wgl.p_wglSwapBuffers(context->hdc);
|
||||
@@ -621,19 +667,33 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
@@ -619,19 +648,33 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
wined3d_texture_validate_location(swapchain->back_buffers[swapchain->desc.backbuffer_count - 1],
|
||||
0, WINED3D_LOCATION_DISCARDED);
|
||||
|
||||
@ -6833,29 +6778,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -643,12 +703,21 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
|
||||
static void swapchain_gl_frontbuffer_updated(struct wined3d_swapchain *swapchain)
|
||||
{
|
||||
+#if !defined(STAGING_CSMT)
|
||||
struct wined3d_surface *surface;
|
||||
struct wined3d_context *context;
|
||||
|
||||
surface = swapchain->front_buffer->sub_resources[0].u.surface;
|
||||
context = context_acquire(swapchain->device, surface);
|
||||
surface_load_location(surface, context, surface->container->resource.draw_binding);
|
||||
+#else /* STAGING_CSMT */
|
||||
+ struct wined3d_texture *texture = swapchain->front_buffer;
|
||||
+ struct wined3d_surface *surface = texture->sub_resources[0].u.surface;
|
||||
+ struct wined3d_context *context;
|
||||
+
|
||||
+ context = context_acquire(swapchain->device, surface);
|
||||
+ wined3d_texture_load_location(texture, 0, context, texture->resource.draw_binding);
|
||||
+#endif /* STAGING_CSMT */
|
||||
context_release(context);
|
||||
SetRectEmpty(&swapchain->front_buffer_update);
|
||||
}
|
||||
@@ -702,7 +771,12 @@ static void swapchain_gdi_frontbuffer_updated(struct wined3d_swapchain *swapchai
|
||||
@@ -699,7 +742,12 @@ static void swapchain_gdi_frontbuffer_updated(struct wined3d_swapchain *swapchai
|
||||
}
|
||||
|
||||
static void swapchain_gdi_present(struct wined3d_swapchain *swapchain,
|
||||
@ -6868,7 +6791,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
{
|
||||
struct wined3d_surface *front, *back;
|
||||
HBITMAP bitmap;
|
||||
@@ -813,6 +887,71 @@ static void wined3d_swapchain_apply_sample_count_override(const struct wined3d_s
|
||||
@@ -810,6 +858,71 @@ static void wined3d_swapchain_apply_sample_count_override(const struct wined3d_s
|
||||
*quality = 0;
|
||||
}
|
||||
|
||||
@ -6940,7 +6863,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3d_device *device,
|
||||
struct wined3d_swapchain_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops)
|
||||
{
|
||||
@@ -935,6 +1074,7 @@ static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3
|
||||
@@ -932,6 +1045,7 @@ static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3
|
||||
|
||||
if (!(device->wined3d->flags & WINED3D_NO3D))
|
||||
{
|
||||
@ -6948,7 +6871,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
static const enum wined3d_format_id formats[] =
|
||||
{
|
||||
WINED3DFMT_D24_UNORM_S8_UINT,
|
||||
@@ -990,6 +1130,11 @@ static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3
|
||||
@@ -987,6 +1101,11 @@ static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3
|
||||
}
|
||||
context_release(swapchain->context[0]);
|
||||
swapchain_update_swap_interval(swapchain);
|
||||
@ -6960,7 +6883,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
}
|
||||
|
||||
if (swapchain->desc.backbuffer_count > 0)
|
||||
@@ -1315,6 +1460,9 @@ HRESULT CDECL wined3d_swapchain_resize_buffers(struct wined3d_swapchain *swapcha
|
||||
@@ -1312,6 +1431,9 @@ HRESULT CDECL wined3d_swapchain_resize_buffers(struct wined3d_swapchain *swapcha
|
||||
enum wined3d_multisample_type multisample_type, unsigned int multisample_quality)
|
||||
{
|
||||
BOOL update_desc = FALSE;
|
||||
@ -6970,7 +6893,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
|
||||
TRACE("swapchain %p, buffer_count %u, width %u, height %u, format %s, "
|
||||
"multisample_type %#x, multisample_quality %#x.\n",
|
||||
@@ -1326,6 +1474,11 @@ HRESULT CDECL wined3d_swapchain_resize_buffers(struct wined3d_swapchain *swapcha
|
||||
@@ -1323,6 +1445,11 @@ HRESULT CDECL wined3d_swapchain_resize_buffers(struct wined3d_swapchain *swapcha
|
||||
if (buffer_count && buffer_count != swapchain->desc.backbuffer_count)
|
||||
FIXME("Cannot change the back buffer count yet.\n");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user