You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against c1bc25dd38dab0504bd9eb45641a830ff08488b3.
[gdiplus-GdipCreateMetafileFromStream] Removed patches to implement GdipCreateMetafileFromStream and GdipGetMetafileHeaderFromMetafile (accepted upstream).
This commit is contained in:
@@ -1,40 +0,0 @@
|
||||
From df5c81e67b4f660770f98db3dab2d8cb62329975 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Sat, 19 Mar 2016 15:47:10 +0800
|
||||
Subject: gdiplus: Implement GdipCreateMetafileFromStream.
|
||||
|
||||
---
|
||||
dlls/gdiplus/metafile.c | 17 +++++++++++++++--
|
||||
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/gdiplus/metafile.c b/dlls/gdiplus/metafile.c
|
||||
index 922c101..ea9badc 100644
|
||||
--- a/dlls/gdiplus/metafile.c
|
||||
+++ b/dlls/gdiplus/metafile.c
|
||||
@@ -1139,8 +1139,21 @@ GpStatus WINGDIPAPI GdipCreateMetafileFromFile(GDIPCONST WCHAR *file,
|
||||
GpStatus WINGDIPAPI GdipCreateMetafileFromStream(IStream *stream,
|
||||
GpMetafile **metafile)
|
||||
{
|
||||
- FIXME("(%p, %p): stub\n", stream, metafile);
|
||||
- return NotImplemented;
|
||||
+ GpStatus stat;
|
||||
+
|
||||
+ TRACE("%p %p\n", stream, metafile);
|
||||
+
|
||||
+ stat = GdipLoadImageFromStream(stream, (GpImage **)metafile);
|
||||
+ if (stat != Ok) return stat;
|
||||
+
|
||||
+ if ((*metafile)->image.type != ImageTypeMetafile)
|
||||
+ {
|
||||
+ GdipDisposeImage(&(*metafile)->image);
|
||||
+ *metafile = NULL;
|
||||
+ return GenericError;
|
||||
+ }
|
||||
+
|
||||
+ return Ok;
|
||||
}
|
||||
|
||||
GpStatus WINGDIPAPI GdipSetMetafileDownLevelRasterizationLimit(GpMetafile *metafile,
|
||||
--
|
||||
2.7.1
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
From 38a7a77a067d4610666ca453f4ca68a69117e80e Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Tue, 10 May 2016 12:44:49 +0800
|
||||
Subject: gdiplus: Implement GdipGetMetafileHeaderFromMetafile.
|
||||
|
||||
For bug #27415.
|
||||
|
||||
These patches depend on
|
||||
"gdiplus: Reimplement metafile loading using gdi32 instead of IPicture. (v2)"
|
||||
---
|
||||
dlls/gdiplus/metafile.c | 15 +++++++++++----
|
||||
dlls/gdiplus/tests/image.c | 24 ++++++++++++------------
|
||||
2 files changed, 23 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/dlls/gdiplus/metafile.c b/dlls/gdiplus/metafile.c
|
||||
index 7af6c8c..30b2122 100644
|
||||
--- a/dlls/gdiplus/metafile.c
|
||||
+++ b/dlls/gdiplus/metafile.c
|
||||
@@ -957,17 +957,24 @@ GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointI(GpGraphics *graphics,
|
||||
GpStatus WINGDIPAPI GdipGetMetafileHeaderFromMetafile(GpMetafile * metafile,
|
||||
MetafileHeader * header)
|
||||
{
|
||||
- static int calls;
|
||||
+ GpStatus status;
|
||||
|
||||
TRACE("(%p, %p)\n", metafile, header);
|
||||
|
||||
if(!metafile || !header)
|
||||
return InvalidParameter;
|
||||
|
||||
- if(!(calls++))
|
||||
- FIXME("not implemented\n");
|
||||
+ if (!metafile->hemf)
|
||||
+ return InvalidParameter;
|
||||
|
||||
- memset(header, 0, sizeof(MetafileHeader));
|
||||
+ status = GdipGetMetafileHeaderFromEmf(metafile->hemf, header);
|
||||
+ if (status != Ok) return status;
|
||||
+
|
||||
+ header->Type = metafile->metafile_type;
|
||||
+ header->DpiX = metafile->image.xres;
|
||||
+ header->DpiY = metafile->image.yres;
|
||||
+ header->Width = metafile->bounds.Width;
|
||||
+ header->Height = metafile->bounds.Height;
|
||||
|
||||
return Ok;
|
||||
}
|
||||
diff --git a/dlls/gdiplus/tests/image.c b/dlls/gdiplus/tests/image.c
|
||||
index e6de9db..a28ddb4 100644
|
||||
--- a/dlls/gdiplus/tests/image.c
|
||||
+++ b/dlls/gdiplus/tests/image.c
|
||||
@@ -1465,17 +1465,17 @@ static void test_loadwmf(void)
|
||||
expect(Ok, stat);
|
||||
if (stat == Ok)
|
||||
{
|
||||
- todo_wine expect(MetafileTypeWmfPlaceable, header.Type);
|
||||
+ expect(MetafileTypeWmfPlaceable, header.Type);
|
||||
todo_wine expect(sizeof(wmfimage)-sizeof(WmfPlaceableFileHeader), header.Size);
|
||||
todo_wine expect(0x300, header.Version);
|
||||
expect(0, header.EmfPlusFlags);
|
||||
- todo_wine expectf(1440.0, header.DpiX);
|
||||
- todo_wine expectf(1440.0, header.DpiY);
|
||||
+ expectf(1440.0, header.DpiX);
|
||||
+ expectf(1440.0, header.DpiY);
|
||||
expect(0, header.X);
|
||||
expect(0, header.Y);
|
||||
- todo_wine expect(320, header.Width);
|
||||
- todo_wine expect(320, header.Height);
|
||||
- todo_wine expect(1, U(header).WmfHeader.mtType);
|
||||
+ expect(320, header.Width);
|
||||
+ expect(320, header.Height);
|
||||
+ expect(1, U(header).WmfHeader.mtType);
|
||||
expect(0, header.EmfPlusHeaderSize);
|
||||
expect(0, header.LogicalDpiX);
|
||||
expect(0, header.LogicalDpiY);
|
||||
@@ -1523,17 +1523,17 @@ static void test_createfromwmf(void)
|
||||
expect(Ok, stat);
|
||||
if (stat == Ok)
|
||||
{
|
||||
- todo_wine expect(MetafileTypeWmfPlaceable, header.Type);
|
||||
+ expect(MetafileTypeWmfPlaceable, header.Type);
|
||||
todo_wine expect(sizeof(wmfimage)-sizeof(WmfPlaceableFileHeader), header.Size);
|
||||
todo_wine expect(0x300, header.Version);
|
||||
expect(0, header.EmfPlusFlags);
|
||||
- todo_wine expectf(1440.0, header.DpiX);
|
||||
- todo_wine expectf(1440.0, header.DpiY);
|
||||
+ expectf(1440.0, header.DpiX);
|
||||
+ expectf(1440.0, header.DpiY);
|
||||
expect(0, header.X);
|
||||
expect(0, header.Y);
|
||||
- todo_wine expect(320, header.Width);
|
||||
- todo_wine expect(320, header.Height);
|
||||
- todo_wine expect(1, U(header).WmfHeader.mtType);
|
||||
+ expect(320, header.Width);
|
||||
+ expect(320, header.Height);
|
||||
+ expect(1, U(header).WmfHeader.mtType);
|
||||
expect(0, header.EmfPlusHeaderSize);
|
||||
expect(0, header.LogicalDpiX);
|
||||
expect(0, header.LogicalDpiY);
|
||||
--
|
||||
2.8.0
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
From 0bfed12f7c720bc7a929bd8c8b249b47b949aeb3 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Wed, 22 Jun 2016 16:19:59 +0800
|
||||
Subject: gdiplus: Implement GdipCreateMetafileFromFile.
|
||||
|
||||
---
|
||||
dlls/gdiplus/metafile.c | 18 ++++++++++++++++--
|
||||
1 file changed, 16 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/gdiplus/metafile.c b/dlls/gdiplus/metafile.c
|
||||
index 6b9ee73..a3933b0 100644
|
||||
--- a/dlls/gdiplus/metafile.c
|
||||
+++ b/dlls/gdiplus/metafile.c
|
||||
@@ -1227,8 +1227,22 @@ GpStatus WINGDIPAPI GdipCreateMetafileFromWmfFile(GDIPCONST WCHAR *file,
|
||||
GpStatus WINGDIPAPI GdipCreateMetafileFromFile(GDIPCONST WCHAR *file,
|
||||
GpMetafile **metafile)
|
||||
{
|
||||
- FIXME("(%p, %p): stub\n", file, metafile);
|
||||
- return NotImplemented;
|
||||
+ GpStatus status;
|
||||
+ IStream *stream;
|
||||
+
|
||||
+ TRACE("(%p, %p)\n", file, metafile);
|
||||
+
|
||||
+ if (!file || !metafile) return InvalidParameter;
|
||||
+
|
||||
+ *metafile = NULL;
|
||||
+
|
||||
+ status = GdipCreateStreamOnFile(file, GENERIC_READ, &stream);
|
||||
+ if (status == Ok)
|
||||
+ {
|
||||
+ status = GdipCreateMetafileFromStream(stream, metafile);
|
||||
+ IStream_Release(stream);
|
||||
+ }
|
||||
+ return status;
|
||||
}
|
||||
|
||||
GpStatus WINGDIPAPI GdipCreateMetafileFromStream(IStream *stream,
|
||||
--
|
||||
2.8.0
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
Fixes: [40325] Implement GdipCreateMetafileFromStream
|
||||
Fixes: [27415] Implement GdipGetMetafileHeaderFromMetafile
|
||||
Reference in New Issue
Block a user