diff --git a/patches/olepro32-Typelib/0002-olepro32-Add-typelib-resource.patch b/patches/olepro32-Typelib/0002-olepro32-Add-typelib-resource.patch deleted file mode 100644 index 79785014..00000000 --- a/patches/olepro32-Typelib/0002-olepro32-Add-typelib-resource.patch +++ /dev/null @@ -1,291 +0,0 @@ -From 389f6141334056d3d91f004ea6b3e02f25cbea29 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Fri, 22 Jan 2016 18:20:29 +0800 -Subject: olepro32: Add typelib resource. - -Based on a patch by Alistair Leslie-Hughes. ---- - dlls/olepro32/Makefile.in | 2 + - dlls/olepro32/olepro.idl | 259 ++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 261 insertions(+) - create mode 100644 dlls/olepro32/olepro.idl - -diff --git a/dlls/olepro32/Makefile.in b/dlls/olepro32/Makefile.in -index a6163d1..032fdbd 100644 ---- a/dlls/olepro32/Makefile.in -+++ b/dlls/olepro32/Makefile.in -@@ -4,4 +4,6 @@ IMPORTS = oleaut32 - - C_SRCS = olepro32stubs.c - -+IDL_SRCS = olepro.idl -+ - RC_SRCS = version.rc -diff --git a/dlls/olepro32/olepro.idl b/dlls/olepro32/olepro.idl -new file mode 100644 -index 0000000..5b2fb3e ---- /dev/null -+++ b/dlls/olepro32/olepro.idl -@@ -0,0 +1,259 @@ -+/* -+ * Copyright (C) 2003 Robert Shearman -+ * 2005 Huw Davies -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#pragma makedep regtypelib -+ -+import "oaidl.idl"; -+ -+#include -+ -+[ -+ uuid(bef6e001-a874-101a-8bba-00aa00300cab), -+ version(2.0), -+ helpstring("Standard OLE Types") -+] -+library StdType -+{ -+#if 0 /* FIXME */ -+ importlib("stdole32.tlb"); -+#endif -+ -+ /* typedefs aren't stored in the type library. -+ These type names are known by the type compiler so it -+ doesn't really matter what we define them as. */ -+ typedef short VARIANT_BOOL; -+ typedef long BSTR; -+ typedef double CURRENCY; -+ typedef unsigned long HRESULT; -+ typedef void *VARIANT; -+ typedef unsigned long SCODE; -+ -+ typedef [uuid(66504301-BE0F-101A-8BBB-00AA00300CAB), public] -+ unsigned long OLE_COLOR; -+ -+ typedef [uuid(66504302-BE0F-101A-8BBB-00AA00300CAB), public] -+ long OLE_XPOS_PIXELS; -+ -+ typedef [uuid(66504303-BE0F-101A-8BBB-00AA00300CAB), public] -+ long OLE_YPOS_PIXELS; -+ -+ typedef [uuid(66504304-BE0F-101A-8BBB-00AA00300CAB), public] -+ long OLE_XSIZE_PIXELS; -+ -+ typedef [uuid(66504305-BE0F-101A-8BBB-00AA00300CAB), public] -+ long OLE_YSIZE_PIXELS; -+ -+ typedef [uuid(66504306-BE0F-101A-8BBB-00AA00300CAB), public] -+ long OLE_XPOS_HIMETRIC; -+ -+ typedef [uuid(66504307-BE0F-101A-8BBB-00AA00300CAB), public] -+ long OLE_YPOS_HIMETRIC; -+ -+ typedef [uuid(66504308-BE0F-101A-8BBB-00AA00300CAB), public] -+ long OLE_XSIZE_HIMETRIC; -+ -+ typedef [uuid(66504309-BE0F-101A-8BBB-00AA00300CAB), public] -+ long OLE_YSIZE_HIMETRIC; -+ -+ typedef [uuid(BF030640-9069-101B-AE2D-08002B2EC713), public] -+ float OLE_XPOS_CONTAINER; -+ -+ typedef [uuid(BF030641-9069-101B-AE2D-08002B2EC713), public] -+ float OLE_YPOS_CONTAINER; -+ -+ typedef [uuid(BF030642-9069-101B-AE2D-08002B2EC713), public] -+ float OLE_XSIZE_CONTAINER; -+ -+ typedef [uuid(BF030643-9069-101B-AE2D-08002B2EC713), public] -+ float OLE_YSIZE_CONTAINER; -+ -+ typedef [uuid(66504313-BE0F-101A-8BBB-00AA00300CAB), public] -+ int OLE_HANDLE; -+ -+ typedef [uuid(6650430B-BE0F-101A-8BBB-00AA00300CAB), public] -+ VARIANT_BOOL OLE_OPTEXCLUSIVE; -+ -+ typedef [uuid(BF030644-9069-101B-AE2D-08002B2EC713), public] -+ VARIANT_BOOL OLE_CANCELBOOL; -+ -+ typedef [uuid(BF030645-9069-101B-AE2D-08002B2EC713), public] -+ VARIANT_BOOL OLE_ENABLEDEFAULTBOOL; -+ -+ [uuid(6650430A-BE0F-101A-8BBB-00AA00300CAB)] -+ enum OLE_TRISTATE -+ { -+ Unchecked = 0, -+ Checked = 1, -+ Gray = 2 -+ }; -+ -+ typedef [uuid(6650430D-BE0F-101A-8BBB-00AA00300CAB), public] -+ BSTR FONTNAME; -+ -+ typedef [uuid(6650430E-BE0F-101A-8BBB-00AA00300CAB), public] -+ CURRENCY FONTSIZE; -+ -+ typedef [uuid(6650430F-BE0F-101A-8BBB-00AA00300CAB), public] -+ VARIANT_BOOL FONTBOLD; -+ -+ typedef [uuid(66504310-BE0F-101A-8BBB-00AA00300CAB), public] -+ VARIANT_BOOL FONTITALIC; -+ -+ typedef [uuid(66504311-BE0F-101A-8BBB-00AA00300CAB), public] -+ VARIANT_BOOL FONTUNDERSCORE; -+ -+ typedef [uuid(66504312-BE0F-101A-8BBB-00AA00300CAB), public] -+ VARIANT_BOOL FONTSTRIKETHROUGH; -+ -+ [ -+ odl, -+ uuid(BEF6E002-A874-101A-8BBA-00AA00300CAB), -+ helpstring("Font Object"), -+ hidden -+ ] -+ interface IFont : IUnknown -+ { -+ [propget] HRESULT Name([out, retval] BSTR *pname); -+ [propput] HRESULT Name([in] BSTR pname); -+ [propget] HRESULT Size([out, retval] CURRENCY *psize); -+ [propput] HRESULT Size([in] CURRENCY psize); -+ [propget] HRESULT Bold([out, retval] VARIANT_BOOL *pbold); -+ [propput] HRESULT Bold([in] VARIANT_BOOL pbold); -+ [propget] HRESULT Italic([out, retval] VARIANT_BOOL *pitalic); -+ [propput] HRESULT Italic([in] VARIANT_BOOL pitalic); -+ [propget] HRESULT Underline([out, retval] VARIANT_BOOL *punderline); -+ [propput] HRESULT Underline([in] VARIANT_BOOL punderline); -+ [propget] HRESULT Strikethrough([out, retval] VARIANT_BOOL *pstrikethrough); -+ [propput] HRESULT Strikethrough([in] VARIANT_BOOL pstrikethrough); -+ [propget] HRESULT Weight([out, retval] short *pweight); -+ [propput] HRESULT Weight([in] short pweight); -+ [propget] HRESULT Charset([out, retval] short *pcharset); -+ [propput] HRESULT Charset([in] short pcharset); -+ [propget] HRESULT hFont([out, retval] OLE_HANDLE *phfont); -+ HRESULT Clone([out] IFont **ppfont); -+ HRESULT IsEqual([in] IFont *pfontOther); -+ HRESULT SetRatio([in] long cyLogical, [in] long cyHimetric); -+ HRESULT AddRefHfont([in] OLE_HANDLE hFont); -+ HRESULT ReleaseHfont([in] OLE_HANDLE hFont); -+ }; -+ -+ [ -+ odl, -+ uuid(BEF6E003-A874-101A-8BBA-00AA00300CAB) -+ ] -+ dispinterface Font -+ { -+ properties: -+ [id(DISPID_FONT_NAME)] BSTR Name; -+ [id(DISPID_FONT_SIZE)] CURRENCY Size; -+ [id(DISPID_FONT_BOLD)] VARIANT_BOOL Bold; -+ [id(DISPID_FONT_ITALIC)] VARIANT_BOOL Italic; -+ [id(DISPID_FONT_UNDER)] VARIANT_BOOL Underline; -+ [id(DISPID_FONT_STRIKE)] VARIANT_BOOL Strikethrough; -+ [id(DISPID_FONT_WEIGHT)] short Weight; -+ [id(DISPID_FONT_CHARSET)] short Charset; -+ methods: -+ } -+ -+ typedef [public] Font IFontDisp; -+ -+ [ -+ uuid(0BE35203-8F91-11CE-9DE3-00AA004BB851) -+ ] -+ coclass StdFont -+ { -+ [default] dispinterface Font; -+ interface IFont; -+ }; -+ -+ [ -+ odl, -+ uuid(7BF80980-BF32-101A-8BBB-00AA00300CAB), -+ helpstring("Picture Object"), -+ hidden -+ ] -+ interface IPicture : IUnknown -+ { -+ [propget] HRESULT Handle([out, retval] OLE_HANDLE *phandle); -+ [propget] HRESULT hPal([out, retval] OLE_HANDLE *phpal); -+ [propget] HRESULT Type([out, retval] short *ptype); -+ [propget] HRESULT Width([out, retval] OLE_XSIZE_HIMETRIC *pwidth); -+ [propget] HRESULT Height([out, retval] OLE_YSIZE_HIMETRIC *pheight); -+ HRESULT Render([in] int hdc, -+ [in] long x, -+ [in] long y, -+ [in] long cx, -+ [in] long cy, -+ [in] OLE_XPOS_HIMETRIC xSrc, -+ [in] OLE_YPOS_HIMETRIC ySrc, -+ [in] OLE_XSIZE_HIMETRIC cxSrc, -+ [in] OLE_YSIZE_HIMETRIC cySrc, -+ [in] void *prcWBounds); -+ -+ [propput] HRESULT hPal([in] OLE_HANDLE phpal); -+ [propget] HRESULT CurDC([out, retval] int *phdcOut); -+ HRESULT SelectPicture([in] int hdcIn, -+ [out] int *phdcOut, -+ [out] OLE_HANDLE *phbmpOut); -+ [propget] HRESULT KeepOriginalFormat([out, retval] VARIANT_BOOL *pfkeep); -+ [propput] HRESULT KeepOriginalFormat([in] VARIANT_BOOL pfkeep); -+ HRESULT PictureChanged(); -+ HRESULT SaveAsFile([in] void *pstm, -+ [in] VARIANT_BOOL fSaveMemCopy, -+ [out] long *pcbSize); -+ [propget] HRESULT Attributes([out, retval] long *pdwAttr); -+ HRESULT SetHdc([in] OLE_HANDLE hdc); -+ }; -+ -+ [ -+ uuid(7BF80981-BF32-101A-8BBB-00AA00300CAB) -+ ] -+ dispinterface Picture -+ { -+ properties: -+ [id(DISPID_PICT_HANDLE), readonly] OLE_HANDLE Handle; -+ [id(DISPID_PICT_HPAL)] OLE_HANDLE hPal; -+ [id(DISPID_PICT_TYPE), readonly] short Type; -+ [id(DISPID_PICT_WIDTH), readonly] OLE_XSIZE_HIMETRIC Width; -+ [id(DISPID_PICT_HEIGHT), readonly] OLE_YSIZE_HIMETRIC Height; -+ methods: -+ [id(DISPID_PICT_RENDER)] -+ void Render(int hdc, -+ long x, -+ long y, -+ long cx, -+ long cy, -+ OLE_XPOS_HIMETRIC xSrc, -+ OLE_YPOS_HIMETRIC ySrc, -+ OLE_XSIZE_HIMETRIC cxSrc, -+ OLE_YSIZE_HIMETRIC cySrc, -+ void *prcWBounds); -+ }; -+ -+ typedef [public] Picture IPictureDisp; -+ -+ [ -+ uuid(0BE35204-8F91-11CE-9DE3-00AA004BB851) -+ ] -+ coclass StdPicture -+ { -+ [default] dispinterface Picture; -+ interface IPicture; -+ }; -+} --- -2.6.4 - diff --git a/patches/olepro32-Typelib/definition b/patches/olepro32-Typelib/definition deleted file mode 100644 index ea202498..00000000 --- a/patches/olepro32-Typelib/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [14617] Add Standard OLE Types typelib to olepro32.dll diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 0a48a146..b880b6a9 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "d178301b723b0a05d8dc0c04b185e39f3ac8ba14" + echo "bb29a9bf5b42a9848faae749b6d0bd79576f665a" } # Show version information @@ -242,7 +242,6 @@ patch_enable_all () enable_ole32_CoGetApartmentType="$1" enable_oleaut32_TKIND_COCLASS="$1" enable_oleaut32_x86_64_Marshaller="$1" - enable_olepro32_Typelib="$1" enable_openal32_EFX_Extension="$1" enable_opengl32_Revert_Disable_Ext="$1" enable_quartz_MediaSeeking_Positions="$1" @@ -296,6 +295,7 @@ patch_enable_all () enable_shlwapi_AssocGetPerceivedType="$1" enable_shlwapi_SHMapHandle="$1" enable_shlwapi_UrlCombine="$1" + enable_stdole32_idl_Typelib="$1" enable_stdole32_tlb_SLTG_Typelib="$1" enable_ucrtbase_Functions="$1" enable_user32_DeferWindowPos="$1" @@ -866,9 +866,6 @@ patch_enable () oleaut32-x86_64_Marshaller) enable_oleaut32_x86_64_Marshaller="$2" ;; - olepro32-Typelib) - enable_olepro32_Typelib="$2" - ;; openal32-EFX_Extension) enable_openal32_EFX_Extension="$2" ;; @@ -1028,6 +1025,9 @@ patch_enable () shlwapi-UrlCombine) enable_shlwapi_UrlCombine="$2" ;; + stdole32.idl-Typelib) + enable_stdole32_idl_Typelib="$2" + ;; stdole32.tlb-SLTG_Typelib) enable_stdole32_tlb_SLTG_Typelib="$2" ;; @@ -5242,24 +5242,6 @@ if test "$enable_oleaut32_x86_64_Marshaller" -eq 1; then ) >> "$patchlist" fi -# Patchset olepro32-Typelib -# | -# | This patchset fixes the following Wine bugs: -# | * [#14617] Add Standard OLE Types typelib to olepro32.dll -# | -# | Modified files: -# | * dlls/olepro32/Makefile.in, dlls/olepro32/olepro.idl, dlls/stdole32.tlb/std_ole_v1.idl, include/Makefile.in, -# | include/stdole32.idl -# | -if test "$enable_olepro32_Typelib" -eq 1; then - patch_apply olepro32-Typelib/0001-include-Make-stdole32.idl-a-public-component.patch - patch_apply olepro32-Typelib/0002-olepro32-Add-typelib-resource.patch - ( - echo '+ { "Dmitry Timoshkov", "include: Make stdole32.idl a public component.", 1 },'; - echo '+ { "Dmitry Timoshkov", "olepro32: Add typelib resource.", 1 },'; - ) >> "$patchlist" -fi - # Patchset openal32-EFX_Extension # | # | This patchset fixes the following Wine bugs: @@ -6013,6 +5995,18 @@ if test "$enable_shlwapi_UrlCombine" -eq 1; then ) >> "$patchlist" fi +# Patchset stdole32.idl-Typelib +# | +# | Modified files: +# | * dlls/stdole32.tlb/std_ole_v1.idl, include/Makefile.in, include/stdole32.idl +# | +if test "$enable_stdole32_idl_Typelib" -eq 1; then + patch_apply stdole32.idl-Typelib/0001-include-Make-stdole32.idl-a-public-component.patch + ( + echo '+ { "Dmitry Timoshkov", "include: Make stdole32.idl a public component.", 1 },'; + ) >> "$patchlist" +fi + # Patchset widl-SLTG_Typelib_Support # | # | Modified files: diff --git a/patches/olepro32-Typelib/0001-include-Make-stdole32.idl-a-public-component.patch b/patches/stdole32.idl-Typelib/0001-include-Make-stdole32.idl-a-public-component.patch similarity index 100% rename from patches/olepro32-Typelib/0001-include-Make-stdole32.idl-a-public-component.patch rename to patches/stdole32.idl-Typelib/0001-include-Make-stdole32.idl-a-public-component.patch diff --git a/patches/wined3d-CSMT_Main/0036-wined3d-Move-the-framebuffer-into-wined3d_state.patch b/patches/wined3d-CSMT_Main/0036-wined3d-Move-the-framebuffer-into-wined3d_state.patch index 687779ed..f04ecc3a 100644 --- a/patches/wined3d-CSMT_Main/0036-wined3d-Move-the-framebuffer-into-wined3d_state.patch +++ b/patches/wined3d-CSMT_Main/0036-wined3d-Move-the-framebuffer-into-wined3d_state.patch @@ -1,4 +1,4 @@ -From f096c2b76bb908a0107daf187adcad6d6ab4723d Mon Sep 17 00:00:00 2001 +From 0846dc3670f5f7520a544570627283a4b4e9ced9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= 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, 172 insertions(+), 127 deletions(-) diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c -index 6ecb6fa..cecc75e 100644 +index b2ddf55..31f005a 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -684,7 +684,7 @@ static void shader_arb_load_constants_internal(struct shader_arb_priv *priv, @@ -42,7 +42,7 @@ index 6ecb6fa..cecc75e 100644 } diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c -index 26f56ab..b4fefee 100644 +index 0d9de90..cb40148 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -1511,6 +1511,12 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, @@ -58,15 +58,15 @@ index 26f56ab..b4fefee 100644 /* Initialize the texture unit mapping to a 1:1 mapping */ for (s = 0; s < MAX_COMBINED_SAMPLERS; ++s) { -@@ -1839,6 +1845,7 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, - out: +@@ -1840,6 +1846,7 @@ out: + if (hdc) wined3d_release_dc(swapchain->win_handle, hdc); device->shader_backend->shader_free_context_data(ret); device->adapter->fragment_pipe->free_context_data(ret); + HeapFree(GetProcessHeap(), 0, ret->current_fb.render_targets); HeapFree(GetProcessHeap(), 0, ret->free_event_queries); HeapFree(GetProcessHeap(), 0, ret->free_occlusion_queries); HeapFree(GetProcessHeap(), 0, ret->free_timestamp_queries); -@@ -1873,6 +1880,7 @@ void context_destroy(struct wined3d_device *device, struct wined3d_context *cont +@@ -1874,6 +1881,7 @@ void context_destroy(struct wined3d_device *device, struct wined3d_context *cont device->shader_backend->shader_free_context_data(context); device->adapter->fragment_pipe->free_context_data(context); @@ -74,7 +74,7 @@ index 26f56ab..b4fefee 100644 HeapFree(GetProcessHeap(), 0, context->draw_buffers); HeapFree(GetProcessHeap(), 0, context->blit_targets); device_context_remove(device, context); -@@ -2384,7 +2392,7 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win +@@ -2385,7 +2393,7 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win DWORD rt_mask = 0, *cur_mask; UINT i; @@ -83,7 +83,7 @@ index 26f56ab..b4fefee 100644 || rt_count != context->gl_info->limits.buffers) { if (!context_validate_rt_config(rt_count, rts, dsv)) -@@ -2429,6 +2437,8 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win +@@ -2430,6 +2438,8 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win rt_mask = context_generate_rt_mask_no_fbo(device, rt_count ? wined3d_rendertarget_view_get_surface(rts[0]) : NULL); } @@ -92,7 +92,7 @@ index 26f56ab..b4fefee 100644 } else if (wined3d_settings.offscreen_rendering_mode == ORM_FBO && (!rt_count || wined3d_resource_is_offscreen(rts[0]->resource))) -@@ -2487,7 +2497,7 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win +@@ -2488,7 +2498,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_device *device) { const struct wined3d_state *state = &device->state; @@ -101,7 +101,7 @@ index 26f56ab..b4fefee 100644 struct wined3d_shader *ps = state->shader[WINED3D_SHADER_TYPE_PIXEL]; DWORD rt_mask, rt_mask_bits; unsigned int i; -@@ -2517,7 +2527,7 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const +@@ -2518,7 +2528,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) { const struct wined3d_device *device = context->swapchain->device; @@ -110,7 +110,7 @@ index 26f56ab..b4fefee 100644 DWORD rt_mask = find_draw_buffers_mask(context, device); DWORD *cur_mask; -@@ -2549,6 +2559,8 @@ void context_state_fb(struct wined3d_context *context, const struct wined3d_stat +@@ -2550,6 +2560,8 @@ void context_state_fb(struct wined3d_context *context, const struct wined3d_stat context_apply_draw_buffers(context, rt_mask); *cur_mask = rt_mask; } @@ -119,7 +119,7 @@ index 26f56ab..b4fefee 100644 } static void context_map_stage(struct wined3d_context *context, DWORD stage, DWORD unit) -@@ -3192,7 +3204,7 @@ BOOL context_apply_draw_state(struct wined3d_context *context, struct wined3d_de +@@ -3193,7 +3205,7 @@ BOOL context_apply_draw_state(struct wined3d_context *context, struct wined3d_de { const struct wined3d_state *state = &device->state; const struct StateEntry *state_table = context->state_table; @@ -575,7 +575,7 @@ index 0afeff9..4e66f01 100644 surface_modify_ds_location(ds, location, ds->ds_current_size.cx, ds->ds_current_size.cy); diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index 6234699..5d7c78a 100644 +index 1eb7e6d..56e4bb9 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -1627,7 +1627,7 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont @@ -588,10 +588,10 @@ index 6234699..5d7c78a 100644 const struct wined3d_shader_lconst *lconst; const char *prefix; diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c -index f2c3e74..f20797b 100644 +index 140665e..cc18f88 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c -@@ -2450,7 +2450,7 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3 +@@ -2451,7 +2451,7 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3 memset(args, 0, sizeof(*args)); /* FIXME: Make sure all bits are set. */ if (!gl_info->supported[ARB_FRAMEBUFFER_SRGB] && state->render_states[WINED3D_RS_SRGBWRITEENABLE]) { @@ -788,7 +788,7 @@ index cb3d494..6b348b8 100644 if (FAILED(hr = stateblock_allocate_shader_constants(stateblock))) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index 96f5b9f..7784396 100644 +index 817ef6f..35bf399 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -3265,8 +3265,8 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE @@ -815,7 +815,7 @@ index dbf2c8b..73730cd 100644 struct wined3d_context *context; struct wined3d_surface *front; diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c -index 5eb1696..86a83c8 100644 +index 28a3216..d28994e 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c @@ -3776,7 +3776,7 @@ void get_projection_matrix(const struct wined3d_context *context, const struct w @@ -827,7 +827,7 @@ index 5eb1696..86a83c8 100644 state->render_states[WINED3D_RS_ZENABLE] : WINED3D_ZB_FALSE; float z_scale = zenable ? 2.0f : 0.0f; float z_offset = zenable ? -1.0f : 0.0f; -@@ -4368,7 +4368,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d +@@ -4357,7 +4357,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d unsigned int i; DWORD ttff; DWORD cop, aop, carg0, carg1, carg2, aarg0, aarg1, aarg2; @@ -837,10 +837,10 @@ index 5eb1696..86a83c8 100644 const struct wined3d_d3d_info *d3d_info = context->d3d_info; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index ccc9a93..2ea88c7 100644 +index 6ae6072..df9d5fa 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -1164,6 +1164,36 @@ struct wined3d_timestamp_query +@@ -1176,6 +1176,36 @@ struct wined3d_timestamp_query void context_alloc_timestamp_query(struct wined3d_context *context, struct wined3d_timestamp_query *query) DECLSPEC_HIDDEN; void context_free_timestamp_query(struct wined3d_timestamp_query *query) DECLSPEC_HIDDEN; @@ -877,7 +877,7 @@ index ccc9a93..2ea88c7 100644 struct wined3d_context { const struct wined3d_gl_info *gl_info; -@@ -1178,6 +1208,7 @@ struct wined3d_context +@@ -1190,6 +1220,7 @@ struct wined3d_context DWORD dirtyArray[STATE_HIGHEST + 1]; /* Won't get bigger than that, a state is never marked dirty 2 times */ DWORD numDirtyEntries; DWORD isStateDirty[STATE_HIGHEST / (sizeof(DWORD) * CHAR_BIT) + 1]; /* Bitmap to find out quickly if a state is dirty */ @@ -885,7 +885,7 @@ index ccc9a93..2ea88c7 100644 struct wined3d_swapchain *swapchain; struct wined3d_surface *current_rt; -@@ -1280,12 +1311,6 @@ struct wined3d_context +@@ -1292,12 +1323,6 @@ struct wined3d_context GLuint dummy_arbfp_prog; }; @@ -898,7 +898,7 @@ index ccc9a93..2ea88c7 100644 typedef void (*APPLYSTATEFUNC)(struct wined3d_context *ctx, const struct wined3d_state *state, DWORD state_id); struct StateEntry -@@ -2008,7 +2033,7 @@ struct wined3d_stream_state +@@ -2020,7 +2045,7 @@ struct wined3d_stream_state struct wined3d_state { DWORD flags; @@ -907,7 +907,7 @@ index ccc9a93..2ea88c7 100644 struct wined3d_vertex_declaration *vertex_declaration; struct wined3d_stream_output stream_output[MAX_STREAM_OUT]; -@@ -2114,7 +2139,6 @@ struct wined3d_device +@@ -2126,7 +2151,6 @@ struct wined3d_device struct wine_rb_tree samplers; /* Render Target Support */ @@ -915,7 +915,7 @@ index ccc9a93..2ea88c7 100644 struct wined3d_surface *onscreen_depth_stencil; struct wined3d_rendertarget_view *auto_depth_stencil_view; -@@ -2626,9 +2650,8 @@ struct wined3d_stateblock +@@ -2638,9 +2662,8 @@ struct wined3d_stateblock void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN; void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN; @@ -927,7 +927,7 @@ index ccc9a93..2ea88c7 100644 void state_unbind_resources(struct wined3d_state *state) DECLSPEC_HIDDEN; struct wined3d_cs_ops -@@ -2641,7 +2664,6 @@ struct wined3d_cs +@@ -2653,7 +2676,6 @@ struct wined3d_cs { const struct wined3d_cs_ops *ops; struct wined3d_device *device; diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index 78615520..ed5cc058 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -70,7 +70,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader shader_arb_ps_local_constants(compiled, context, state, rt_height); } -@@ -7856,7 +7864,11 @@ +@@ -7857,7 +7865,11 @@ /* Now load the surface */ if (wined3d_settings.offscreen_rendering_mode != ORM_FBO @@ -82,7 +82,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader == WINED3D_LOCATION_DRAWABLE && !wined3d_resource_is_offscreen(&src_surface->container->resource)) { -@@ -7894,6 +7906,7 @@ +@@ -7895,6 +7907,7 @@ /* Leave the opengl state valid for blitting */ arbfp_blit_unset(context->gl_info); @@ -90,7 +90,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader if (wined3d_settings.cs_multithreaded) context->gl_info->gl_ops.gl.p_glFinish(); else if (wined3d_settings.strict_draw_ordering -@@ -7905,6 +7918,17 @@ +@@ -7906,6 +7919,17 @@ wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding); wined3d_resource_invalidate_location(&dst_surface->resource, ~dst_surface->container->resource.draw_binding); @@ -646,8 +646,8 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c /* Initialize the texture unit mapping to a 1:1 mapping */ for (s = 0; s < MAX_COMBINED_SAMPLERS; ++s) { -@@ -1784,7 +1786,9 @@ - out: +@@ -1785,7 +1787,9 @@ + if (hdc) wined3d_release_dc(swapchain->win_handle, hdc); device->shader_backend->shader_free_context_data(ret); device->adapter->fragment_pipe->free_context_data(ret); +#if defined(STAGING_CSMT) @@ -656,7 +656,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c HeapFree(GetProcessHeap(), 0, ret->free_event_queries); HeapFree(GetProcessHeap(), 0, ret->free_occlusion_queries); HeapFree(GetProcessHeap(), 0, ret->free_timestamp_queries); -@@ -1819,7 +1823,9 @@ +@@ -1820,7 +1824,9 @@ device->shader_backend->shader_free_context_data(context); device->adapter->fragment_pipe->free_context_data(context); @@ -666,7 +666,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c HeapFree(GetProcessHeap(), 0, context->draw_buffers); HeapFree(GetProcessHeap(), 0, context->blit_targets); device_context_remove(device, context); -@@ -2239,6 +2245,7 @@ +@@ -2240,6 +2246,7 @@ WARN("Depth stencil format is not supported by WGL, rendering the backbuffer in an FBO\n"); /* The currently active context is the necessary context to access the swapchain's onscreen buffers */ @@ -674,7 +674,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c wined3d_resource_load_location(&context->current_rt->resource, context, WINED3D_LOCATION_TEXTURE_RGB); swapchain->render_to_fbo = TRUE; swapchain_update_draw_bindings(swapchain); -@@ -2253,6 +2260,22 @@ +@@ -2254,6 +2261,22 @@ return context_generate_rt_mask_from_surface(rt); else return context_generate_rt_mask(context->offscreenBuffer); @@ -697,7 +697,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c } /* Context activation is done by the caller. */ -@@ -2284,7 +2307,11 @@ +@@ -2285,7 +2308,11 @@ } else { @@ -709,7 +709,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c } cur_mask = context->current_fbo ? &context->current_fbo->rt_mask : &context->draw_buffers_mask; -@@ -2331,7 +2358,11 @@ +@@ -2332,7 +2359,11 @@ DWORD rt_mask = 0, *cur_mask; UINT i; @@ -721,7 +721,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c || rt_count != context->gl_info->limits.buffers) { if (!context_validate_rt_config(rt_count, rts, dsv)) -@@ -2373,11 +2404,17 @@ +@@ -2374,11 +2405,17 @@ } else { @@ -739,7 +739,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c } else if (wined3d_settings.offscreen_rendering_mode == ORM_FBO && (!rt_count || wined3d_resource_is_offscreen(rts[0]->resource))) -@@ -2390,7 +2427,11 @@ +@@ -2391,7 +2428,11 @@ } else { @@ -751,7 +751,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c rt_count ? wined3d_rendertarget_view_get_surface(rts[0]) : NULL); } -@@ -2433,6 +2474,7 @@ +@@ -2434,6 +2475,7 @@ return TRUE; } @@ -759,7 +759,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const struct wined3d_state *state) { struct wined3d_rendertarget_view **rts = state->fb.render_targets; -@@ -2442,6 +2484,18 @@ +@@ -2443,6 +2485,18 @@ if (wined3d_settings.offscreen_rendering_mode != ORM_FBO) return context_generate_rt_mask_no_fbo(context, wined3d_rendertarget_view_get_surface(rts[0])); @@ -778,7 +778,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c else if (!context->render_offscreen) return context_generate_rt_mask_from_surface(wined3d_rendertarget_view_get_surface(rts[0])); -@@ -2464,8 +2518,14 @@ +@@ -2465,8 +2519,14 @@ /* Context activation is done by the caller. */ void context_state_fb(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) { @@ -793,7 +793,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c DWORD *cur_mask; if (wined3d_settings.offscreen_rendering_mode == ORM_FBO) -@@ -2496,8 +2556,10 @@ +@@ -2497,8 +2557,10 @@ context_apply_draw_buffers(context, rt_mask); *cur_mask = rt_mask; } @@ -804,7 +804,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c } static void context_map_stage(struct wined3d_context *context, DWORD stage, DWORD unit) -@@ -2744,12 +2806,22 @@ +@@ -2745,12 +2807,22 @@ /* Context activation is done by the caller. */ void context_state_drawbuf(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) { @@ -827,7 +827,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c if (rt_mask != *cur_mask) { context_apply_draw_buffers(context, rt_mask); -@@ -2951,7 +3023,11 @@ +@@ -2952,7 +3024,11 @@ { if (state->vertex_declaration->half_float_conv_needed && !stream_info->all_vbo) { @@ -839,7 +839,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c context->use_immediate_mode_draw = TRUE; } else -@@ -3136,11 +3212,19 @@ +@@ -3137,11 +3213,19 @@ } /* Context activation is done by the caller. */ @@ -859,7 +859,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c unsigned int i; WORD map; -@@ -3173,12 +3257,17 @@ +@@ -3174,12 +3258,17 @@ for (i = 0, map = context->stream_info.use_map; map; map >>= 1, ++i) { if (map & 1) @@ -877,7 +877,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c } if (state->index_buffer) { -@@ -3273,7 +3362,11 @@ +@@ -3274,7 +3363,11 @@ if (texture->texture_srgb.name) wined3d_texture_load(texture, context, TRUE); wined3d_texture_load(texture, context, FALSE); @@ -3717,7 +3717,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c -@@ -5544,9 +5544,15 @@ +@@ -5546,9 +5546,15 @@ DebugBreak(); } @@ -4671,7 +4671,7 @@ diff --git a/dlls/wined3d/sampler.c b/dlls/wined3d/sampler.c diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c -@@ -1906,7 +1906,11 @@ +@@ -1907,7 +1907,11 @@ } } @@ -4683,7 +4683,7 @@ diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c { HeapFree(GetProcessHeap(), 0, shader->output_signature.elements); HeapFree(GetProcessHeap(), 0, shader->input_signature.elements); -@@ -2165,10 +2169,16 @@ +@@ -2166,10 +2170,16 @@ if (!refcount) { @@ -4700,7 +4700,7 @@ diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c } return refcount; -@@ -2451,7 +2461,11 @@ +@@ -2452,7 +2462,11 @@ memset(args, 0, sizeof(*args)); /* FIXME: Make sure all bits are set. */ if (!gl_info->supported[ARB_FRAMEBUFFER_SRGB] && state->render_states[WINED3D_RS_SRGBWRITEENABLE]) { @@ -8381,7 +8381,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c default: mat._14 = mat._24 = mat._34 = 0.0f; mat._44 = 1.0f; } -@@ -4368,7 +4387,11 @@ +@@ -4357,7 +4376,11 @@ unsigned int i; DWORD ttff; DWORD cop, aop, carg0, carg1, carg2, aarg0, aarg1, aarg2; @@ -9206,7 +9206,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h #include #include #include -@@ -283,8 +311,10 @@ +@@ -294,8 +322,10 @@ unsigned int max_sm_gs; unsigned int max_sm_ps; BOOL no_3d; @@ -9217,7 +9217,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; extern struct wined3d_settings wined3d_settings DECLSPEC_HIDDEN; -@@ -1038,9 +1068,14 @@ +@@ -1050,9 +1080,14 @@ WORD use_map; /* MAX_ATTRIBS, 16 */ }; @@ -9232,7 +9232,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h DWORD get_flexible_vertex_size(DWORD d3dvtVertexType) DECLSPEC_HIDDEN; #define eps 1e-8f -@@ -1128,8 +1163,10 @@ +@@ -1140,8 +1175,10 @@ struct list entry; GLuint id; struct wined3d_context *context; @@ -9243,7 +9243,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; union wined3d_gl_query_object -@@ -1165,6 +1202,7 @@ +@@ -1177,6 +1214,7 @@ struct list entry; GLuint id; struct wined3d_context *context; @@ -9251,7 +9251,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h UINT64 timestamp; }; -@@ -1200,6 +1238,12 @@ +@@ -1212,6 +1250,12 @@ for (i = 0; i < min(dst->rt_size, src->rt_size); i++) dst->render_targets[i] = src->render_targets[i]; } @@ -9264,7 +9264,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_context { -@@ -1215,7 +1259,9 @@ +@@ -1227,7 +1271,9 @@ DWORD dirtyArray[STATE_HIGHEST + 1]; /* Won't get bigger than that, a state is never marked dirty 2 times */ DWORD numDirtyEntries; DWORD isStateDirty[STATE_HIGHEST / (sizeof(DWORD) * CHAR_BIT) + 1]; /* Bitmap to find out quickly if a state is dirty */ @@ -9274,7 +9274,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_swapchain *swapchain; struct wined3d_surface *current_rt; -@@ -1313,8 +1359,17 @@ +@@ -1325,8 +1371,17 @@ GLfloat fog_coord_value; GLfloat color[4], fogstart, fogend, fogcolor[4]; GLuint dummy_arbfp_prog; @@ -9292,7 +9292,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; typedef void (*APPLYSTATEFUNC)(struct wined3d_context *ctx, const struct wined3d_state *state, DWORD state_id); -@@ -1457,8 +1512,12 @@ +@@ -1469,8 +1524,12 @@ void context_apply_blit_state(struct wined3d_context *context, const struct wined3d_device *device) DECLSPEC_HIDDEN; BOOL context_apply_clear_state(struct wined3d_context *context, const struct wined3d_device *device, UINT rt_count, const struct wined3d_fb_state *fb) DECLSPEC_HIDDEN; @@ -9305,7 +9305,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void context_apply_fbo_state_blit(struct wined3d_context *context, GLenum target, struct wined3d_surface *render_target, struct wined3d_surface *depth_stencil, DWORD location) DECLSPEC_HIDDEN; void context_active_texture(struct wined3d_context *context, const struct wined3d_gl_info *gl_info, -@@ -2041,7 +2100,11 @@ +@@ -2053,7 +2112,11 @@ struct wined3d_state { DWORD flags; @@ -9317,7 +9317,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_vertex_declaration *vertex_declaration; struct wined3d_stream_output stream_output[MAX_STREAM_OUT]; -@@ -2086,6 +2149,7 @@ +@@ -2098,6 +2161,7 @@ DWORD render_states[WINEHIGHEST_RENDER_STATE + 1]; }; @@ -9325,7 +9325,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_gl_bo { GLuint name; -@@ -2094,6 +2158,7 @@ +@@ -2106,6 +2170,7 @@ UINT size; }; @@ -9333,7 +9333,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h #define WINED3D_UNMAPPED_STAGE ~0U /* Multithreaded flag. Removed from the public header to signal that -@@ -2149,11 +2214,23 @@ +@@ -2161,11 +2226,23 @@ struct wined3d_rendertarget_view *back_buffer_view; struct wined3d_swapchain **swapchains; UINT swapchain_count; @@ -9357,7 +9357,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* For rendering to a texture using glCopyTexImage */ GLuint depth_blt_texture; -@@ -2164,6 +2241,9 @@ +@@ -2176,6 +2253,9 @@ UINT xScreenSpace; UINT yScreenSpace; UINT cursorWidth, cursorHeight; @@ -9367,7 +9367,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HCURSOR hardwareCursor; /* The Wine logo texture */ -@@ -2198,6 +2278,7 @@ +@@ -2210,6 +2290,7 @@ UINT message, WPARAM wparam, LPARAM lparam, WNDPROC proc) DECLSPEC_HIDDEN; void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN; void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN; @@ -9375,7 +9375,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN; void device_invalidate_shader_constants(const struct wined3d_device *device, DWORD mask) DECLSPEC_HIDDEN; void device_exec_update_texture(struct wined3d_context *context, struct wined3d_texture *src_texture, -@@ -2210,6 +2291,11 @@ +@@ -2222,6 +2303,11 @@ void device_create_default_sampler(struct wined3d_device *device); void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; @@ -9387,7 +9387,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state) { -@@ -2229,9 +2315,11 @@ +@@ -2241,9 +2327,11 @@ HRESULT (*resource_sub_resource_map)(struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags); HRESULT (*resource_sub_resource_unmap)(struct wined3d_resource *resource, unsigned int sub_resource_idx); @@ -9399,7 +9399,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_resource -@@ -2256,6 +2344,7 @@ +@@ -2268,6 +2356,7 @@ UINT depth; UINT size; DWORD priority; @@ -9407,7 +9407,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *heap_memory, *map_heap_memory, *user_memory, *bitmap_data; UINT custom_row_pitch, custom_slice_pitch; struct wined3d_gl_bo *buffer, *map_buffer; -@@ -2263,6 +2352,10 @@ +@@ -2275,6 +2364,10 @@ DWORD locations; LONG access_fence; BOOL unmap_dirtify; @@ -9418,7 +9418,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *parent; const struct wined3d_parent_ops *parent_ops; -@@ -2287,6 +2380,7 @@ +@@ -2299,6 +2392,7 @@ void *parent, const struct wined3d_parent_ops *parent_ops, const struct wined3d_resource_ops *resource_ops) DECLSPEC_HIDDEN; void resource_unload(struct wined3d_resource *resource) DECLSPEC_HIDDEN; @@ -9426,7 +9426,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h DWORD wined3d_resource_access_from_location(DWORD location) DECLSPEC_HIDDEN; BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN; void wined3d_resource_changed(struct wined3d_resource *resource, -@@ -2335,6 +2429,15 @@ +@@ -2347,6 +2441,15 @@ { while(InterlockedCompareExchange(&resource->access_fence, 0, 0)); } @@ -9442,7 +9442,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* Tests show that the start address of resources is 32 byte aligned */ #define RESOURCE_ALIGNMENT 16 -@@ -2419,7 +2522,9 @@ +@@ -2431,7 +2534,9 @@ void wined3d_texture_apply_sampler_desc(struct wined3d_texture *texture, const struct wined3d_sampler_desc *sampler_desc, const struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN; @@ -9452,7 +9452,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_texture_bind(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN; void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture, -@@ -2451,8 +2556,15 @@ +@@ -2463,8 +2568,15 @@ struct wined3d_resource resource; struct wined3d_texture *container; @@ -9468,7 +9468,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; static inline struct wined3d_volume *volume_from_resource(struct wined3d_resource *resource) -@@ -2460,6 +2572,7 @@ +@@ -2472,6 +2584,7 @@ return CONTAINING_RECORD(resource, struct wined3d_volume, resource); } @@ -9476,7 +9476,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT wined3d_volume_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc, unsigned int level, struct wined3d_volume **volume) DECLSPEC_HIDDEN; void wined3d_volume_destroy(struct wined3d_volume *volume) DECLSPEC_HIDDEN; -@@ -2475,6 +2588,27 @@ +@@ -2487,6 +2600,27 @@ struct wined3d_surface_dib { HBITMAP DIBsection; @@ -9504,7 +9504,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h UINT bitmap_size; }; -@@ -2500,7 +2634,11 @@ +@@ -2512,7 +2646,11 @@ struct wined3d_surface_ops { HRESULT (*surface_private_setup)(struct wined3d_surface *surface); @@ -9516,7 +9516,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_surface -@@ -2508,12 +2646,26 @@ +@@ -2520,12 +2658,26 @@ struct wined3d_resource resource; const struct wined3d_surface_ops *surface_ops; struct wined3d_texture *container; @@ -9543,7 +9543,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h GLuint rb_multisample; GLuint rb_resolved; GLenum texture_target; -@@ -2557,11 +2709,22 @@ +@@ -2569,11 +2721,22 @@ GLenum surface_get_gl_buffer(const struct wined3d_surface *surface) DECLSPEC_HIDDEN; void surface_get_drawable_size(const struct wined3d_surface *surface, const struct wined3d_context *context, unsigned int *width, unsigned int *height) DECLSPEC_HIDDEN; @@ -9566,7 +9566,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void surface_modify_ds_location(struct wined3d_surface *surface, DWORD location, UINT w, UINT h) DECLSPEC_HIDDEN; void wined3d_surface_prepare(struct wined3d_surface *surface, struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN; -@@ -2573,6 +2736,7 @@ +@@ -2585,6 +2748,7 @@ const struct wined3d_gl_info *gl_info, void *mem, unsigned int pitch) DECLSPEC_HIDDEN; HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const POINT *dst_point, struct wined3d_surface *src_surface, const RECT *src_rect) DECLSPEC_HIDDEN; @@ -9574,7 +9574,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT wined3d_surface_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc, GLenum target, unsigned int level, unsigned int layer, DWORD flags, struct wined3d_surface **surface) DECLSPEC_HIDDEN; -@@ -2587,6 +2751,17 @@ +@@ -2599,6 +2763,17 @@ void wined3d_surface_cleanup_cs(struct wined3d_surface *surface) DECLSPEC_HIDDEN; void wined3d_surface_getdc_cs(struct wined3d_surface *surface) DECLSPEC_HIDDEN; void wined3d_surface_releasedc_cs(struct wined3d_surface *surface) DECLSPEC_HIDDEN; @@ -9592,7 +9592,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void draw_textured_quad(const struct wined3d_surface *src_surface, struct wined3d_context *context, const RECT *src_rect, const RECT *dst_rect, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN; -@@ -2607,8 +2782,10 @@ +@@ -2619,8 +2794,10 @@ GLuint name; }; @@ -9603,7 +9603,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_vertex_declaration_element { const struct wined3d_format *format; -@@ -2637,8 +2814,10 @@ +@@ -2649,8 +2826,10 @@ BOOL half_float_conv_needed; }; @@ -9614,7 +9614,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_saved_states { DWORD transform[(HIGHEST_TRANSFORMSTATE >> 5) + 1]; -@@ -2706,6 +2885,7 @@ +@@ -2718,6 +2897,7 @@ void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN; void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN; @@ -9622,7 +9622,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT state_init(struct wined3d_state *state, const struct wined3d_gl_info *gl_info, const struct wined3d_d3d_info *d3d_info, DWORD flags) DECLSPEC_HIDDEN; void state_unbind_resources(struct wined3d_state *state) DECLSPEC_HIDDEN; -@@ -2756,6 +2936,32 @@ +@@ -2768,6 +2948,32 @@ void wined3d_cs_destroy(struct wined3d_cs *cs) DECLSPEC_HIDDEN; void wined3d_cs_switch_onscreen_ds(struct wined3d_cs *cs, struct wined3d_context *context, struct wined3d_surface *depth_stencil) DECLSPEC_HIDDEN; @@ -9655,7 +9655,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects, DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN; -@@ -2805,6 +3011,7 @@ +@@ -2817,6 +3023,7 @@ void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN; @@ -9663,7 +9663,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_cs_emit_set_consts_f(struct wined3d_cs *cs, UINT start_register, const float *constants, UINT vector4f_count, enum wined3d_shader_type type) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_consts_b(struct wined3d_cs *cs, UINT start_register, -@@ -2868,6 +3075,7 @@ +@@ -2880,6 +3087,7 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_resource *resource, unsigned int sub_resource_idx, const struct wined3d_box *box, const void *data, unsigned int row_pitch, unsigned int depth_pitch) DECLSPEC_HIDDEN; @@ -9671,7 +9671,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* Direct3D terminology with little modifications. We do not have an issued state * because only the driver knows about it, but we have a created state because d3d -@@ -2882,8 +3090,12 @@ +@@ -2894,8 +3102,12 @@ struct wined3d_query_ops { HRESULT (*query_get_data)(struct wined3d_query *query, void *data, DWORD data_size, DWORD flags); @@ -9684,7 +9684,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_query -@@ -2897,12 +3109,16 @@ +@@ -2909,12 +3121,16 @@ enum wined3d_query_type type; DWORD data_size; void *extendedData; @@ -9701,7 +9701,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* TODO: Add tests and support for FLOAT16_4 POSITIONT, D3DCOLOR position, other * fixed function semantics as D3DCOLOR or FLOAT16 */ -@@ -2929,7 +3145,9 @@ +@@ -2941,7 +3157,9 @@ GLenum buffer_object_usage; GLenum buffer_type_hint; DWORD flags; @@ -9711,7 +9711,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *map_ptr; struct wined3d_map_range *maps; -@@ -2954,11 +3172,15 @@ +@@ -2966,11 +3184,15 @@ BYTE *buffer_get_sysmem(struct wined3d_buffer *This, struct wined3d_context *context) DECLSPEC_HIDDEN; void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_context *context, const struct wined3d_state *state) DECLSPEC_HIDDEN; @@ -9727,7 +9727,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer, const struct wined3d_box *box, const void *data) DECLSPEC_HIDDEN; -@@ -2996,8 +3218,10 @@ +@@ -3008,8 +3230,10 @@ return surface_from_resource(resource); } @@ -9738,7 +9738,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_shader_resource_view { LONG refcount; -@@ -3010,8 +3234,12 @@ +@@ -3022,8 +3246,12 @@ struct wined3d_swapchain_ops { void (*swapchain_present)(struct wined3d_swapchain *swapchain, const RECT *src_rect, @@ -9751,7 +9751,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_swapchain -@@ -3050,8 +3278,10 @@ +@@ -3062,8 +3290,10 @@ void swapchain_destroy_contexts(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; HDC swapchain_get_backup_dc(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; void swapchain_update_draw_bindings(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; @@ -9762,7 +9762,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /***************************************************************************** * Utility function prototypes -@@ -3255,7 +3485,9 @@ +@@ -3266,7 +3496,9 @@ void shader_generate_main(const struct wined3d_shader *shader, struct wined3d_string_buffer *buffer, const struct wined3d_shader_reg_maps *reg_maps, const DWORD *byte_code, void *backend_ctx) DECLSPEC_HIDDEN; BOOL shader_match_semantic(const char *semantic_name, enum wined3d_decl_usage usage) DECLSPEC_HIDDEN; diff --git a/patches/wined3d-Revert_PixelFormat/0003-Revert-wined3d-Track-if-a-context-s-hdc-is-private-s.patch b/patches/wined3d-Revert_PixelFormat/0003-Revert-wined3d-Track-if-a-context-s-hdc-is-private-s.patch index 797af5b6..bcadaf7f 100644 --- a/patches/wined3d-Revert_PixelFormat/0003-Revert-wined3d-Track-if-a-context-s-hdc-is-private-s.patch +++ b/patches/wined3d-Revert_PixelFormat/0003-Revert-wined3d-Track-if-a-context-s-hdc-is-private-s.patch @@ -1,4 +1,4 @@ -From 5328b553ac1e9b1c57045fc8a0e2964f66a47d25 Mon Sep 17 00:00:00 2001 +From 8e605496655d72d832a822ba6adc77fdc2540216 Mon Sep 17 00:00:00 2001 From: Ken Thomases Date: Sun, 14 Sep 2014 19:47:03 -0500 Subject: Revert "wined3d: Track if a context's hdc is private so we never need @@ -11,7 +11,7 @@ This reverts commit 272873823e9beff91ea1a62845fc7e5f94a9636f. 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c -index c11dd08..10e484c 100644 +index cfd6ec6..ed14aa4 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -812,7 +812,7 @@ static BOOL context_restore_pixel_format(struct wined3d_context *ctx) @@ -76,7 +76,7 @@ index c11dd08..10e484c 100644 @@ -1446,7 +1445,6 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, int swap_interval; DWORD state; - HDC hdc; + HDC hdc = 0; - BOOL hdc_is_private = FALSE; TRACE("swapchain %p, target %p, window %p.\n", swapchain, target, swapchain->win_handle); @@ -110,10 +110,10 @@ index c11dd08..10e484c 100644 ret->needs_set = 1; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index d5a881f..e9bc39e 100644 +index a5e7167..00ecbc4 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -1195,9 +1195,8 @@ struct wined3d_context +@@ -1218,9 +1218,8 @@ struct wined3d_context DWORD use_immediate_mode_draw : 1; DWORD rebind_fbo : 1; DWORD needs_set : 1;