mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against f65cfbfe9b20e38537c7cb8608e7f411c9e8b725
This commit is contained in:
parent
0d8d1f0447
commit
4e0031b058
@ -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 },';
|
||||
|
@ -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?= <rbernon@codeweavers.com>
|
||||
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
|
||||
|
||||
|
@ -1,68 +0,0 @@
|
||||
From a528571c8c5ffd11b0fbc4c2f16a4374dc766b76 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
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
|
||||
|
@ -1,118 +0,0 @@
|
||||
From 72930dc0724b3bf88e4f888b339e9d567c09d44a Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
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
|
||||
|
@ -1,66 +0,0 @@
|
||||
From 163cf44e74082d92b0f5b85a97ad6952a457b83f Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
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
|
||||
|
@ -1,88 +0,0 @@
|
||||
From 31e282ee90cefd3a051041be22566a87367c243f Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
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
|
||||
|
@ -1,82 +0,0 @@
|
||||
From 3b7298588452ac95cdcfdedb9ed14b4d43b54ab4 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
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
|
||||
|
@ -1,50 +0,0 @@
|
||||
From f77dade774e5a9652fe487b1468c56db8c68bdd2 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
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
|
||||
|
@ -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 <dmitry@baikal.ru>
|
||||
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
|
||||
|
||||
|
@ -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 <awesie@gmail.com>
|
||||
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 <awesie@gmail.com>
|
||||
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
|
||||
|
||||
|
@ -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 <z.figura12@gmail.com>
|
||||
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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user