From 4e0031b058d30c50ec0c9bb9a26bf73961dd73e4 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 22 Apr 2020 08:16:06 +1000 Subject: [PATCH] Rebase against f65cfbfe9b20e38537c7cb8608e7f411c9e8b725 --- patches/patchinstall.sh | 16 +-- ...ort-for-dinput-devices-that-use-raw-.patch | 18 +-- ...d-support-for-16bppGray-and-32bppGra.patch | 68 ---------- ...d-support-for-3bps-RGB-format-to-TIF.patch | 118 ------------------ ...d-support-for-12bpp-RGB-format-to-TI.patch | 66 ---------- ...d-support-for-128bppRGBAFloat-format.patch | 88 ------------- ...d-support-for-32bppCMYK-and-64bppCMY.patch | 82 ------------ ...d-support-for-4bpp-RGBA-format-to-TI.patch | 50 -------- ...d-support-for-16bpp-RGBA-format-to-T.patch | 15 +-- ...glReadPixels-for-RT-texture-download.patch | 14 +-- ...ub-implementation-of-Wow64Transition.patch | 19 ++- 11 files changed, 35 insertions(+), 519 deletions(-) delete mode 100644 patches/windowscodecs-TIFF_Support/0006-windowscodecs-Add-support-for-16bppGray-and-32bppGra.patch delete mode 100644 patches/windowscodecs-TIFF_Support/0007-windowscodecs-Add-support-for-3bps-RGB-format-to-TIF.patch delete mode 100644 patches/windowscodecs-TIFF_Support/0008-windowscodecs-Add-support-for-12bpp-RGB-format-to-TI.patch delete mode 100644 patches/windowscodecs-TIFF_Support/0009-windowscodecs-Add-support-for-128bppRGBAFloat-format.patch delete mode 100644 patches/windowscodecs-TIFF_Support/0011-windowscodecs-Add-support-for-32bppCMYK-and-64bppCMY.patch delete mode 100644 patches/windowscodecs-TIFF_Support/0012-windowscodecs-Add-support-for-4bpp-RGBA-format-to-TI.patch diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index a140ab3a..08e75f33 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "f31a29b8d1ea478af28f14cdaf3db1515a932853" + echo "f65cfbfe9b20e38537c7cb8608e7f411c9e8b725" } # Show version information @@ -6323,28 +6323,16 @@ fi # | * windowscodecs-GIF_Encoder # | # | Modified files: -# | * dlls/gdiplus/image.c, dlls/gdiplus/tests/image.c, dlls/windowscodecs/metadatahandler.c, dlls/windowscodecs/regsvr.c, +# | * dlls/gdiplus/image.c, dlls/gdiplus/tests/image.c, dlls/windowscodecs/metadatahandler.c, # | dlls/windowscodecs/tests/tiffformat.c, dlls/windowscodecs/tiffformat.c # | if test "$enable_windowscodecs_TIFF_Support" -eq 1; then - patch_apply windowscodecs-TIFF_Support/0006-windowscodecs-Add-support-for-16bppGray-and-32bppGra.patch - patch_apply windowscodecs-TIFF_Support/0007-windowscodecs-Add-support-for-3bps-RGB-format-to-TIF.patch - patch_apply windowscodecs-TIFF_Support/0008-windowscodecs-Add-support-for-12bpp-RGB-format-to-TI.patch - patch_apply windowscodecs-TIFF_Support/0009-windowscodecs-Add-support-for-128bppRGBAFloat-format.patch - patch_apply windowscodecs-TIFF_Support/0011-windowscodecs-Add-support-for-32bppCMYK-and-64bppCMY.patch - patch_apply windowscodecs-TIFF_Support/0012-windowscodecs-Add-support-for-4bpp-RGBA-format-to-TI.patch patch_apply windowscodecs-TIFF_Support/0013-windowscodecs-Add-support-for-16bpp-RGBA-format-to-T.patch patch_apply windowscodecs-TIFF_Support/0014-windowscodecs-Add-some-tests-for-various-TIFF-color-.patch patch_apply windowscodecs-TIFF_Support/0015-windowscodecs-Tolerate-partial-reads-in-the-IFD-meta.patch patch_apply windowscodecs-TIFF_Support/0016-gdiplus-Add-support-for-more-image-color-formats.patch patch_apply windowscodecs-TIFF_Support/0017-gdiplus-tests-Add-some-tests-for-loading-TIFF-images.patch ( - printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for 16bppGray and 32bppGrayFloat formats to TIFF decoder.", 1 },'; - printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for 3bps RGB format to TIFF decoder.", 1 },'; - printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for 12bpp RGB format to TIFF decoder.", 1 },'; - printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for 128bppRGBAFloat format to TIFF decoder.", 1 },'; - printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for 32bppCMYK and 64bppCMYK formats to TIFF decoder.", 1 },'; - printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for 4bpp RGBA format to TIFF decoder.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for 16bpp RGBA format to TIFF decoder.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add some tests for various TIFF color formats.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Tolerate partial reads in the IFD metadata loader.", 1 },'; diff --git a/patches/user32-rawinput-mouse/0011-dinput8-Add-support-for-dinput-devices-that-use-raw-.patch b/patches/user32-rawinput-mouse/0011-dinput8-Add-support-for-dinput-devices-that-use-raw-.patch index 55628fa7..bba505ac 100644 --- a/patches/user32-rawinput-mouse/0011-dinput8-Add-support-for-dinput-devices-that-use-raw-.patch +++ b/patches/user32-rawinput-mouse/0011-dinput8-Add-support-for-dinput-devices-that-use-raw-.patch @@ -1,4 +1,4 @@ -From 8217791e4b68de86e713dee0ecdd3c5ccd029017 Mon Sep 17 00:00:00 2001 +From c2f13f4d65b25a10b2e9dc8a156dbf6adc6e8263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Mon, 26 Aug 2019 16:06:59 +0200 Subject: [PATCH] dinput8: Add support for dinput devices that use raw input @@ -30,7 +30,7 @@ index 423e8f77792..b0fb181fc6d 100644 int queue_len; /* valid size of the queue */ int queue_head; /* position to write new event into queue */ diff --git a/dlls/dinput/dinput_main.c b/dlls/dinput/dinput_main.c -index 4d2d4afe106..9e3b9f48250 100644 +index ee5af1b8ce3..79b275af89b 100644 --- a/dlls/dinput/dinput_main.c +++ b/dlls/dinput/dinput_main.c @@ -98,6 +98,10 @@ static const struct dinput_device *dinput_devices[] = @@ -123,7 +123,7 @@ index 4d2d4afe106..9e3b9f48250 100644 /* Force creation of the message queue */ PeekMessageW( &msg, 0, 0, 0, PM_NOREMOVE ); SetEvent(param); -@@ -1812,6 +1872,9 @@ static DWORD WINAPI hook_thread_proc(void *param) +@@ -1816,6 +1876,9 @@ static DWORD WINAPI hook_thread_proc(void *param) DispatchMessageW(&msg); } @@ -133,7 +133,7 @@ index 4d2d4afe106..9e3b9f48250 100644 FreeLibraryAndExitThread(DINPUT_instance, 0); } -@@ -1893,6 +1956,23 @@ void check_dinput_hooks(LPDIRECTINPUTDEVICE8W iface, BOOL acquired) +@@ -1898,6 +1961,23 @@ void check_dinput_hooks(LPDIRECTINPUTDEVICE8W iface, BOOL acquired) hook_thread_event = NULL; } @@ -154,10 +154,10 @@ index 4d2d4afe106..9e3b9f48250 100644 + WARN( "Unable to (un)register raw device %x:%x\n", dev->raw_device.usUsagePage, dev->raw_device.usUsage ); + } + - PostThreadMessageW( hook_thread_id, WM_USER+0x10, 1, 0 ); - - LeaveCriticalSection(&dinput_hook_crit); -@@ -1919,9 +1999,11 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved) + if (acquired) + hook_change_finished_event = CreateEventW( NULL, FALSE, FALSE, NULL ); + PostThreadMessageW( hook_thread_id, WM_USER+0x10, 1, (LPARAM)hook_change_finished_event ); +@@ -1932,9 +2012,11 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved) case DLL_PROCESS_ATTACH: DisableThreadLibraryCalls(inst); DINPUT_instance = inst; @@ -170,5 +170,5 @@ index 4d2d4afe106..9e3b9f48250 100644 break; } -- -2.24.1 +2.26.1 diff --git a/patches/windowscodecs-TIFF_Support/0006-windowscodecs-Add-support-for-16bppGray-and-32bppGra.patch b/patches/windowscodecs-TIFF_Support/0006-windowscodecs-Add-support-for-16bppGray-and-32bppGra.patch deleted file mode 100644 index 1eb72f7f..00000000 --- a/patches/windowscodecs-TIFF_Support/0006-windowscodecs-Add-support-for-16bppGray-and-32bppGra.patch +++ /dev/null @@ -1,68 +0,0 @@ -From a528571c8c5ffd11b0fbc4c2f16a4374dc766b76 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Fri, 9 Dec 2016 12:28:02 +0800 -Subject: windowscodecs: Add support for 16bppGray and 32bppGrayFloat formats - to TIFF decoder. - ---- - dlls/windowscodecs/regsvr.c | 2 ++ - dlls/windowscodecs/tiffformat.c | 22 ++++++++++++++++++++-- - 2 files changed, 22 insertions(+), 2 deletions(-) - -diff --git a/dlls/windowscodecs/regsvr.c b/dlls/windowscodecs/regsvr.c -index ca9ca94..d1649fa 100644 ---- a/dlls/windowscodecs/regsvr.c -+++ b/dlls/windowscodecs/regsvr.c -@@ -1211,6 +1211,8 @@ static GUID const * const tiff_decode_formats[] = { - &GUID_WICPixelFormatBlackWhite, - &GUID_WICPixelFormat4bppGray, - &GUID_WICPixelFormat8bppGray, -+ &GUID_WICPixelFormat16bppGray, -+ &GUID_WICPixelFormat32bppGrayFloat, - &GUID_WICPixelFormat1bppIndexed, - &GUID_WICPixelFormat2bppIndexed, - &GUID_WICPixelFormat4bppIndexed, -diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c -index c72fadf..166bacd 100644 ---- a/dlls/windowscodecs/tiffformat.c -+++ b/dlls/windowscodecs/tiffformat.c -@@ -319,6 +319,8 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info) - } - decode_info->planar = planar; - -+ TRACE("planar %u, photometric %u, samples %u, bps %u\n", planar, photometric, samples, bps); -+ - switch(photometric) - { - case 0: /* WhiteIsZero */ -@@ -383,9 +385,25 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info) - } - } - break; -+ case 16: -+ if (samples != 1) -+ { -+ FIXME("unhandled 16bpp grayscale sample count %u\n", samples); -+ return WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT; -+ } -+ decode_info->format = &GUID_WICPixelFormat16bppGray; -+ break; -+ case 32: -+ if (samples != 1) -+ { -+ FIXME("unhandled 32bpp grayscale sample count %u\n", samples); -+ return WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT; -+ } -+ decode_info->format = &GUID_WICPixelFormat32bppGrayFloat; -+ break; - default: -- FIXME("unhandled greyscale bit count %u\n", bps); -- return E_FAIL; -+ WARN("unhandled greyscale bit count %u\n", bps); -+ return WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT; - } - break; - case 2: /* RGB */ --- -2.9.0 - diff --git a/patches/windowscodecs-TIFF_Support/0007-windowscodecs-Add-support-for-3bps-RGB-format-to-TIF.patch b/patches/windowscodecs-TIFF_Support/0007-windowscodecs-Add-support-for-3bps-RGB-format-to-TIF.patch deleted file mode 100644 index 473c6e9e..00000000 --- a/patches/windowscodecs-TIFF_Support/0007-windowscodecs-Add-support-for-3bps-RGB-format-to-TIF.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 72930dc0724b3bf88e4f888b339e9d567c09d44a Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Fri, 9 Dec 2016 12:33:30 +0800 -Subject: windowscodecs: Add support for 3bps RGB format to TIFF decoder. - ---- - dlls/windowscodecs/tiffformat.c | 78 +++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 75 insertions(+), 3 deletions(-) - -diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c -index 166bacd..9906d75 100644 ---- a/dlls/windowscodecs/tiffformat.c -+++ b/dlls/windowscodecs/tiffformat.c -@@ -407,8 +407,6 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info) - } - break; - case 2: /* RGB */ -- decode_info->bpp = bps * samples; -- - if (samples == 4) - { - ret = pTIFFGetField(tiff, TIFFTAG_EXTRASAMPLES, &extra_sample_count, &extra_samples); -@@ -425,8 +423,11 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info) - return E_FAIL; - } - -+ decode_info->bpp = max(bps, 8) * samples; -+ decode_info->source_bpp = bps * samples; - switch(bps) - { -+ case 1: - case 8: - decode_info->reverse_bgr = 1; - if (samples == 3) -@@ -1009,8 +1010,79 @@ static HRESULT TiffFrameDecode_ReadTile(TiffFrameDecode *This, UINT tile_x, UINT - if (ret == -1) - return E_FAIL; - -+ /* 3bpp RGB */ -+ if (This->decode_info.source_bpp == 3 && This->decode_info.samples == 3 && This->decode_info.bpp == 24) -+ { -+ BYTE *srcdata, *src, *dst; -+ DWORD x, y, count, width_bytes = (This->decode_info.tile_width * 3 + 7) / 8; -+ -+ count = width_bytes * This->decode_info.tile_height; -+ -+ srcdata = HeapAlloc(GetProcessHeap(), 0, count); -+ if (!srcdata) return E_OUTOFMEMORY; -+ memcpy(srcdata, This->cached_tile, count); -+ -+ for (y = 0; y < This->decode_info.tile_height; y++) -+ { -+ src = srcdata + y * width_bytes; -+ dst = This->cached_tile + y * This->decode_info.tile_width * 3; -+ -+ for (x = 0; x < This->decode_info.tile_width; x += 8) -+ { -+ dst[2] = (src[0] & 0x80) ? 0xff : 0; /* R */ -+ dst[1] = (src[0] & 0x40) ? 0xff : 0; /* G */ -+ dst[0] = (src[0] & 0x20) ? 0xff : 0; /* B */ -+ if (x + 1 < This->decode_info.tile_width) -+ { -+ dst[5] = (src[0] & 0x10) ? 0xff : 0; /* R */ -+ dst[4] = (src[0] & 0x08) ? 0xff : 0; /* G */ -+ dst[3] = (src[0] & 0x04) ? 0xff : 0; /* B */ -+ } -+ if (x + 2 < This->decode_info.tile_width) -+ { -+ dst[8] = (src[0] & 0x02) ? 0xff : 0; /* R */ -+ dst[7] = (src[0] & 0x01) ? 0xff : 0; /* G */ -+ dst[6] = (src[1] & 0x80) ? 0xff : 0; /* B */ -+ } -+ if (x + 3 < This->decode_info.tile_width) -+ { -+ dst[11] = (src[1] & 0x40) ? 0xff : 0; /* R */ -+ dst[10] = (src[1] & 0x20) ? 0xff : 0; /* G */ -+ dst[9] = (src[1] & 0x10) ? 0xff : 0; /* B */ -+ } -+ if (x + 4 < This->decode_info.tile_width) -+ { -+ dst[14] = (src[1] & 0x08) ? 0xff : 0; /* R */ -+ dst[13] = (src[1] & 0x04) ? 0xff : 0; /* G */ -+ dst[12] = (src[1] & 0x02) ? 0xff : 0; /* B */ -+ } -+ if (x + 5 < This->decode_info.tile_width) -+ { -+ dst[17] = (src[1] & 0x01) ? 0xff : 0; /* R */ -+ dst[16] = (src[2] & 0x80) ? 0xff : 0; /* G */ -+ dst[15] = (src[2] & 0x40) ? 0xff : 0; /* B */ -+ } -+ if (x + 6 < This->decode_info.tile_width) -+ { -+ dst[20] = (src[2] & 0x20) ? 0xff : 0; /* R */ -+ dst[19] = (src[2] & 0x10) ? 0xff : 0; /* G */ -+ dst[18] = (src[2] & 0x08) ? 0xff : 0; /* B */ -+ } -+ if (x + 7 < This->decode_info.tile_width) -+ { -+ dst[23] = (src[2] & 0x04) ? 0xff : 0; /* R */ -+ dst[22] = (src[2] & 0x02) ? 0xff : 0; /* G */ -+ dst[21] = (src[2] & 0x01) ? 0xff : 0; /* B */ -+ } -+ src += 3; -+ dst += 24; -+ } -+ } -+ -+ HeapFree(GetProcessHeap(), 0, srcdata); -+ } - /* 8bpp grayscale with extra alpha */ -- if (This->decode_info.source_bpp == 16 && This->decode_info.samples == 2 && This->decode_info.bpp == 32) -+ else if (This->decode_info.source_bpp == 16 && This->decode_info.samples == 2 && This->decode_info.bpp == 32) - { - BYTE *src; - DWORD *dst, count = This->decode_info.tile_width * This->decode_info.tile_height; --- -2.9.0 - diff --git a/patches/windowscodecs-TIFF_Support/0008-windowscodecs-Add-support-for-12bpp-RGB-format-to-TI.patch b/patches/windowscodecs-TIFF_Support/0008-windowscodecs-Add-support-for-12bpp-RGB-format-to-TI.patch deleted file mode 100644 index 90a941f8..00000000 --- a/patches/windowscodecs-TIFF_Support/0008-windowscodecs-Add-support-for-12bpp-RGB-format-to-TI.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 163cf44e74082d92b0f5b85a97ad6952a457b83f Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Fri, 9 Dec 2016 12:36:56 +0800 -Subject: windowscodecs: Add support for 12bpp RGB format to TIFF decoder. - ---- - dlls/windowscodecs/tiffformat.c | 36 ++++++++++++++++++++++++++++++++++++ - 1 file changed, 36 insertions(+) - -diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c -index 9906d75..f17e508 100644 ---- a/dlls/windowscodecs/tiffformat.c -+++ b/dlls/windowscodecs/tiffformat.c -@@ -428,6 +428,7 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info) - switch(bps) - { - case 1: -+ case 4: - case 8: - decode_info->reverse_bgr = 1; - if (samples == 3) -@@ -1081,6 +1082,41 @@ static HRESULT TiffFrameDecode_ReadTile(TiffFrameDecode *This, UINT tile_x, UINT - - HeapFree(GetProcessHeap(), 0, srcdata); - } -+ /* 12bpp RGB */ -+ else if (This->decode_info.source_bpp == 12 && This->decode_info.samples == 3 && This->decode_info.bpp == 24) -+ { -+ BYTE *srcdata, *src, *dst; -+ DWORD x, y, count, width_bytes = (This->decode_info.tile_width * 12 + 7) / 8; -+ -+ count = width_bytes * This->decode_info.tile_height; -+ -+ srcdata = HeapAlloc(GetProcessHeap(), 0, count); -+ if (!srcdata) return E_OUTOFMEMORY; -+ memcpy(srcdata, This->cached_tile, count); -+ -+ for (y = 0; y < This->decode_info.tile_height; y++) -+ { -+ src = srcdata + y * width_bytes; -+ dst = This->cached_tile + y * This->decode_info.tile_width * 3; -+ -+ for (x = 0; x < This->decode_info.tile_width; x += 2) -+ { -+ dst[0] = ((src[1] & 0xf0) >> 4) * 17; /* B */ -+ dst[1] = (src[0] & 0x0f) * 17; /* G */ -+ dst[2] = ((src[0] & 0xf0) >> 4) * 17; /* R */ -+ if (x + 1 < This->decode_info.tile_width) -+ { -+ dst[5] = (src[1] & 0x0f) * 17; /* B */ -+ dst[4] = ((src[2] & 0xf0) >> 4) * 17; /* G */ -+ dst[3] = (src[2] & 0x0f) * 17; /* R */ -+ } -+ src += 3; -+ dst += 6; -+ } -+ } -+ -+ HeapFree(GetProcessHeap(), 0, srcdata); -+ } - /* 8bpp grayscale with extra alpha */ - else if (This->decode_info.source_bpp == 16 && This->decode_info.samples == 2 && This->decode_info.bpp == 32) - { --- -2.9.0 - diff --git a/patches/windowscodecs-TIFF_Support/0009-windowscodecs-Add-support-for-128bppRGBAFloat-format.patch b/patches/windowscodecs-TIFF_Support/0009-windowscodecs-Add-support-for-128bppRGBAFloat-format.patch deleted file mode 100644 index 074456cf..00000000 --- a/patches/windowscodecs-TIFF_Support/0009-windowscodecs-Add-support-for-128bppRGBAFloat-format.patch +++ /dev/null @@ -1,88 +0,0 @@ -From 31e282ee90cefd3a051041be22566a87367c243f Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Fri, 9 Dec 2016 12:46:00 +0800 -Subject: [PATCH] windowscodecs: Add support for 128bppRGBAFloat format to TIFF - decoder. - ---- - dlls/windowscodecs/regsvr.c | 18 ++++++++++++++++++ - dlls/windowscodecs/tiffformat.c | 12 ++++++++++-- - 2 files changed, 28 insertions(+), 2 deletions(-) - -diff --git a/dlls/windowscodecs/regsvr.c b/dlls/windowscodecs/regsvr.c -index 94b7a100bab..a35c7bbc9f5 100644 ---- a/dlls/windowscodecs/regsvr.c -+++ b/dlls/windowscodecs/regsvr.c -@@ -1224,6 +1224,7 @@ static GUID const * const tiff_decode_formats[] = { - &GUID_WICPixelFormat48bppRGB, - &GUID_WICPixelFormat64bppRGBA, - &GUID_WICPixelFormat64bppPRGBA, -+ &GUID_WICPixelFormat128bppRGBAFloat, - NULL - }; - -@@ -1753,6 +1754,11 @@ static BYTE const channel_mask_16bit4[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - static BYTE const channel_mask_32bit[] = { 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }; - -+static BYTE const channel_mask_128bit1[] = { 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; -+static BYTE const channel_mask_128bit2[] = { 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; -+static BYTE const channel_mask_128bit3[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00 }; -+static BYTE const channel_mask_128bit4[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff }; -+ - static BYTE const channel_mask_5bit[] = { 0x1f, 0x00 }; - static BYTE const channel_mask_5bit2[] = { 0xe0, 0x03 }; - static BYTE const channel_mask_5bit3[] = { 0x00, 0x7c }; -@@ -1770,6 +1776,7 @@ static BYTE const * const channel_masks_16bit[] = { channel_mask_16bit, - channel_mask_16bit2, channel_mask_16bit3, channel_mask_16bit4}; - - static BYTE const * const channel_masks_32bit[] = { channel_mask_32bit }; -+static BYTE const * const channel_masks_128bit[] = { channel_mask_128bit1, channel_mask_128bit2, channel_mask_128bit3, channel_mask_128bit4 }; - - static BYTE const * const channel_masks_BGRA5551[] = { channel_mask_5bit, - channel_mask_5bit2, channel_mask_5bit3, channel_mask_5bit4 }; -@@ -2053,6 +2060,17 @@ static struct regsvr_pixelformat const pixelformat_list[] = { - WICPixelFormatNumericRepresentationUnsignedInteger, - 0 - }, -+ { &GUID_WICPixelFormat128bppRGBAFloat, -+ "The Wine Project", -+ "128bpp RGBAFloat", -+ NULL, /* no version */ -+ &GUID_VendorMicrosoft, -+ 128, /* bitsperpixel */ -+ 4, /* channel count */ -+ channel_masks_128bit, -+ WICPixelFormatNumericRepresentationFloat, -+ 1 -+ }, - { NULL } /* list terminator */ - }; - -diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c -index 60799641142..0a3d5b70102 100644 ---- a/dlls/windowscodecs/tiffformat.c -+++ b/dlls/windowscodecs/tiffformat.c -@@ -467,9 +467,17 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info) - return E_FAIL; - } - break; -+ case 32: -+ if (samples != 4) -+ { -+ FIXME("unhandled 32bpp RGB sample count %u\n", samples); -+ return WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT; -+ } -+ decode_info->format = &GUID_WICPixelFormat128bppRGBAFloat; -+ break; - default: -- FIXME("unhandled RGB bit count %u\n", bps); -- return E_FAIL; -+ WARN("unhandled RGB bit count %u\n", bps); -+ return WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT; - } - break; - case 3: /* RGB Palette */ --- -2.25.1 - diff --git a/patches/windowscodecs-TIFF_Support/0011-windowscodecs-Add-support-for-32bppCMYK-and-64bppCMY.patch b/patches/windowscodecs-TIFF_Support/0011-windowscodecs-Add-support-for-32bppCMYK-and-64bppCMY.patch deleted file mode 100644 index 544f030b..00000000 --- a/patches/windowscodecs-TIFF_Support/0011-windowscodecs-Add-support-for-32bppCMYK-and-64bppCMY.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 3b7298588452ac95cdcfdedb9ed14b4d43b54ab4 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Fri, 9 Dec 2016 12:52:36 +0800 -Subject: [PATCH] windowscodecs: Add support for 32bppCMYK and 64bppCMYK - formats to TIFF decoder. - ---- - dlls/windowscodecs/regsvr.c | 13 +++++++++++++ - dlls/windowscodecs/tiffformat.c | 25 ++++++++++++++++++++++++- - 2 files changed, 37 insertions(+), 1 deletion(-) - -diff --git a/dlls/windowscodecs/regsvr.c b/dlls/windowscodecs/regsvr.c -index a35c7bbc9f5..158329dd845 100644 ---- a/dlls/windowscodecs/regsvr.c -+++ b/dlls/windowscodecs/regsvr.c -@@ -1224,6 +1224,8 @@ static GUID const * const tiff_decode_formats[] = { - &GUID_WICPixelFormat48bppRGB, - &GUID_WICPixelFormat64bppRGBA, - &GUID_WICPixelFormat64bppPRGBA, -+ &GUID_WICPixelFormat32bppCMYK, -+ &GUID_WICPixelFormat64bppCMYK, - &GUID_WICPixelFormat128bppRGBAFloat, - NULL - }; -@@ -2060,6 +2062,17 @@ static struct regsvr_pixelformat const pixelformat_list[] = { - WICPixelFormatNumericRepresentationUnsignedInteger, - 0 - }, -+ { &GUID_WICPixelFormat64bppCMYK, -+ "The Wine Project", -+ "64bpp CMYK", -+ NULL, /* no version */ -+ &GUID_VendorMicrosoft, -+ 64, /* bitsperpixel */ -+ 4, /* channel count */ -+ channel_masks_16bit, -+ WICPixelFormatNumericRepresentationUnsignedInteger, -+ 0 -+ }, - { &GUID_WICPixelFormat128bppRGBAFloat, - "The Wine Project", - "128bpp RGBAFloat", -diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c -index 0a3d5b70102..33934db6eb3 100644 ---- a/dlls/windowscodecs/tiffformat.c -+++ b/dlls/windowscodecs/tiffformat.c -@@ -508,8 +508,31 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info) - return E_NOTIMPL; - } - break; -+ -+ case 5: /* Separated */ -+ if (samples != 4) -+ { -+ FIXME("unhandled Separated sample count %u\n", samples); -+ return E_FAIL; -+ } -+ -+ decode_info->bpp = bps * samples; -+ switch(bps) -+ { -+ case 8: -+ decode_info->format = &GUID_WICPixelFormat32bppCMYK; -+ break; -+ case 16: -+ decode_info->format = &GUID_WICPixelFormat64bppCMYK; -+ break; -+ -+ default: -+ WARN("unhandled Separated bit count %u\n", bps); -+ return WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT; -+ } -+ break; -+ - case 4: /* Transparency mask */ -- case 5: /* CMYK */ - case 6: /* YCbCr */ - case 8: /* CIELab */ - default: --- -2.25.1 - diff --git a/patches/windowscodecs-TIFF_Support/0012-windowscodecs-Add-support-for-4bpp-RGBA-format-to-TI.patch b/patches/windowscodecs-TIFF_Support/0012-windowscodecs-Add-support-for-4bpp-RGBA-format-to-TI.patch deleted file mode 100644 index 545e3500..00000000 --- a/patches/windowscodecs-TIFF_Support/0012-windowscodecs-Add-support-for-4bpp-RGBA-format-to-TI.patch +++ /dev/null @@ -1,50 +0,0 @@ -From f77dade774e5a9652fe487b1468c56db8c68bdd2 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Fri, 9 Dec 2016 12:58:30 +0800 -Subject: windowscodecs: Add support for 4bpp RGBA format to TIFF decoder. - ---- - dlls/windowscodecs/tiffformat.c | 27 +++++++++++++++++++++++++++ - 1 file changed, 27 insertions(+) - -diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c -index 15c4b69..bfb495c 100644 ---- a/dlls/windowscodecs/tiffformat.c -+++ b/dlls/windowscodecs/tiffformat.c -@@ -1148,6 +1148,33 @@ static HRESULT TiffFrameDecode_ReadTile(TiffFrameDecode *This, UINT tile_x, UINT - - HeapFree(GetProcessHeap(), 0, srcdata); - } -+ /* 4bpp RGBA */ -+ else if (This->decode_info.source_bpp == 4 && This->decode_info.samples == 4 && This->decode_info.bpp == 32) -+ { -+ BYTE *src, *dst; -+ DWORD count; -+ -+ /* 1 source byte expands to 2 BGRA samples */ -+ count = (This->decode_info.tile_width * This->decode_info.tile_height + 1) / 2; -+ -+ src = This->cached_tile + count - 1; -+ dst = This->cached_tile + This->decode_info.tile_size; -+ -+ while (count--) -+ { -+ BYTE b = *src--; -+ -+ dst -= 8; -+ dst[2] = (b & 0x80) ? 0xff : 0; /* R */ -+ dst[1] = (b & 0x40) ? 0xff : 0; /* G */ -+ dst[0] = (b & 0x20) ? 0xff : 0; /* B */ -+ dst[3] = (b & 0x10) ? 0xff : 0; /* A */ -+ dst[6] = (b & 0x08) ? 0xff : 0; /* R */ -+ dst[5] = (b & 0x04) ? 0xff : 0; /* G */ -+ dst[4] = (b & 0x02) ? 0xff : 0; /* B */ -+ dst[7] = (b & 0x01) ? 0xff : 0; /* A */ -+ } -+ } - /* 8bpp grayscale with extra alpha */ - else if (This->decode_info.source_bpp == 16 && This->decode_info.samples == 2 && This->decode_info.bpp == 32) - { --- -2.9.0 - diff --git a/patches/windowscodecs-TIFF_Support/0013-windowscodecs-Add-support-for-16bpp-RGBA-format-to-T.patch b/patches/windowscodecs-TIFF_Support/0013-windowscodecs-Add-support-for-16bpp-RGBA-format-to-T.patch index a8f5ae98..04898ac3 100644 --- a/patches/windowscodecs-TIFF_Support/0013-windowscodecs-Add-support-for-16bpp-RGBA-format-to-T.patch +++ b/patches/windowscodecs-TIFF_Support/0013-windowscodecs-Add-support-for-16bpp-RGBA-format-to-T.patch @@ -1,19 +1,20 @@ -From 7d79785f0687d5f4dba7a43b12dd68751b3d022a Mon Sep 17 00:00:00 2001 +From d76e0a4b2bc10ef165f13d33ad6f2c91c880ad2b Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Fri, 9 Dec 2016 12:59:58 +0800 -Subject: windowscodecs: Add support for 16bpp RGBA format to TIFF decoder. +Subject: [PATCH] windowscodecs: Add support for 16bpp RGBA format to TIFF + decoder. --- dlls/windowscodecs/tiffformat.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c -index bfb495c..c8f16f2 100644 +index 3d43c967d97..d91886487a3 100644 --- a/dlls/windowscodecs/tiffformat.c +++ b/dlls/windowscodecs/tiffformat.c -@@ -1175,6 +1175,31 @@ static HRESULT TiffFrameDecode_ReadTile(TiffFrameDecode *This, UINT tile_x, UINT - dst[7] = (b & 0x01) ? 0xff : 0; /* A */ - } +@@ -1216,6 +1216,31 @@ static HRESULT TiffFrameDecode_ReadTile(TiffFrameDecode *This, UINT tile_x, UINT + + HeapFree(GetProcessHeap(), 0, srcdata); } + /* 16bpp RGBA */ + else if (This->decode_info.source_bpp == 16 && This->decode_info.samples == 4 && This->decode_info.bpp == 32) @@ -44,5 +45,5 @@ index bfb495c..c8f16f2 100644 else if (This->decode_info.source_bpp == 16 && This->decode_info.samples == 2 && This->decode_info.bpp == 32) { -- -2.9.0 +2.26.1 diff --git a/patches/wined3d-mesa_texture_download/0001-wined3d-Use-glReadPixels-for-RT-texture-download.patch b/patches/wined3d-mesa_texture_download/0001-wined3d-Use-glReadPixels-for-RT-texture-download.patch index bd242187..33da795f 100644 --- a/patches/wined3d-mesa_texture_download/0001-wined3d-Use-glReadPixels-for-RT-texture-download.patch +++ b/patches/wined3d-mesa_texture_download/0001-wined3d-Use-glReadPixels-for-RT-texture-download.patch @@ -1,4 +1,4 @@ -From 416d92bcc80c6881340a2e9879c284c5edcd2c93 Mon Sep 17 00:00:00 2001 +From a90132c381702bd5ab4feea5df55c9aae5b70f38 Mon Sep 17 00:00:00 2001 From: Andrew Wesie Date: Sun, 30 Sep 2018 12:02:00 -0500 Subject: [PATCH] wined3d: Use glReadPixels for RT texture download. @@ -9,18 +9,18 @@ Signed-off-by: Andrew Wesie 1 file changed, 19 insertions(+) diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c -index 6ae822ddf2..9090822a4c 100644 +index fcab1d5d773..7e2dccd280a 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c -@@ -2386,6 +2386,7 @@ static void wined3d_texture_gl_download_data(struct wined3d_context *context, - const struct wined3d_format_gl *format_gl; +@@ -2456,6 +2456,7 @@ static void wined3d_texture_gl_download_data(struct wined3d_context *context, + struct wined3d_bo_gl *dst_bo; BOOL srgb = FALSE; GLenum target; + struct wined3d_texture_sub_resource *sub_resource; TRACE("context %p, src_texture %p, src_sub_resource_idx %u, src_location %s, src_box %s, dst_bo_addr %s, " "dst_format %s, dst_x %u, dst_y %u, dst_z %u, dst_row_pitch %u, dst_slice_pitch %u.\n", -@@ -2440,6 +2441,7 @@ static void wined3d_texture_gl_download_data(struct wined3d_context *context, +@@ -2510,6 +2511,7 @@ static void wined3d_texture_gl_download_data(struct wined3d_context *context, format_gl = wined3d_format_gl(src_texture->resource.format); target = wined3d_texture_gl_get_sub_resource_target(src_texture_gl, src_sub_resource_idx); @@ -28,7 +28,7 @@ index 6ae822ddf2..9090822a4c 100644 if ((src_texture->resource.type == WINED3D_RTYPE_TEXTURE_2D && (target == GL_TEXTURE_2D_ARRAY || format_gl->f.conv_byte_count -@@ -2472,6 +2474,23 @@ static void wined3d_texture_gl_download_data(struct wined3d_context *context, +@@ -2542,6 +2544,23 @@ static void wined3d_texture_gl_download_data(struct wined3d_context *context, GL_EXTCALL(glGetCompressedTexImage(target, src_level, dst_bo_addr->addr)); checkGLcall("glGetCompressedTexImage"); } @@ -53,5 +53,5 @@ index 6ae822ddf2..9090822a4c 100644 { TRACE("Downloading texture %p, %u, level %u, format %#x, type %#x, data %p.\n", -- -2.20.1 +2.26.1 diff --git a/patches/wow64cpu-Wow64Transition/0002-ntdll-Add-a-stub-implementation-of-Wow64Transition.patch b/patches/wow64cpu-Wow64Transition/0002-ntdll-Add-a-stub-implementation-of-Wow64Transition.patch index f0237510..0005e1c7 100644 --- a/patches/wow64cpu-Wow64Transition/0002-ntdll-Add-a-stub-implementation-of-Wow64Transition.patch +++ b/patches/wow64cpu-Wow64Transition/0002-ntdll-Add-a-stub-implementation-of-Wow64Transition.patch @@ -1,4 +1,4 @@ -From 503f898967ffdf8e3b7eff12faf2adf4f2fc4a25 Mon Sep 17 00:00:00 2001 +From 32184e71ba797fc987bbdc848b2ebd9dd2e14d59 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Wed, 8 Aug 2018 20:00:15 -0500 Subject: [PATCH] ntdll: Add a stub implementation of Wow64Transition. @@ -9,10 +9,10 @@ Subject: [PATCH] ntdll: Add a stub implementation of Wow64Transition. 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index 3586bd44d96..1f74b029cac 100644 +index 59398955b51..1973548362d 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c -@@ -4418,12 +4418,14 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) +@@ -4681,6 +4681,7 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) return TRUE; } @@ -20,14 +20,13 @@ index 3586bd44d96..1f74b029cac 100644 /*********************************************************************** * __wine_process_init - */ - void __wine_process_init(void) - { -+ static const WCHAR wow64cpuW[] = {'w','o','w','6','4','c','p','u','.','d','l','l',0}; +@@ -4691,12 +4692,13 @@ void __wine_process_init(void) static const WCHAR ntdllW[] = {'\\','?','?','\\','C',':','\\','w','i','n','d','o','w','s','\\', 's','y','s','t','e','m','3','2','\\', 'n','t','d','l','l','.','d','l','l',0}; -@@ -4432,7 +4434,7 @@ void __wine_process_init(void) ++ static const WCHAR wow64cpuW[] = {'w','o','w','6','4','c','p','u','.','d','l','l',0}; + static const WCHAR kernel32W[] = {'\\','?','?','\\','C',':','\\','w','i','n','d','o','w','s','\\', + 's','y','s','t','e','m','3','2','\\', 'k','e','r','n','e','l','3','2','.','d','l','l',0}; RTL_USER_PROCESS_PARAMETERS *params; ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION runlevel; @@ -36,7 +35,7 @@ index 3586bd44d96..1f74b029cac 100644 NTSTATUS status; ANSI_STRING func_name; UNICODE_STRING nt_name; -@@ -4480,7 +4482,15 @@ void __wine_process_init(void) +@@ -4753,7 +4755,15 @@ void __wine_process_init(void) MESSAGE( "wine: could not load kernel32.dll, status %x\n", status ); exit(1); } @@ -65,5 +64,5 @@ index 39a2407e5bd..dc70320653b 100644 @ stdcall -private ZwAccessCheck(ptr long long ptr ptr ptr ptr ptr) NtAccessCheck @ stdcall -private ZwAccessCheckAndAuditAlarm(ptr long ptr ptr ptr long ptr long ptr ptr ptr) NtAccessCheckAndAuditAlarm -- -2.25.1 +2.26.1