winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
August
July
June
May
April
March
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
List overview
wine-gitlab
June 2024
----- 2025 -----
August 2025
July 2025
June 2025
May 2025
April 2025
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
wine-gitlab@winehq.org
2 participants
788 discussions
Start a n
N
ew thread
[PATCH 0/1] MR5790: makedep: Support building only tools, headers and import libs.
by Rémi Bernon (@rbernon)
04 Jun '24
04 Jun '24
I think this would be useful to build a subset of Wine that could then be used to build third-party modules without having to build everything. --
https://gitlab.winehq.org/wine/wine/-/merge_requests/5790
3
4
0
0
[PATCH 5/5] wineps.drv: Add partial support for changing page size.
by Piotr Caban
04 Jun '24
04 Jun '24
From: Piotr Caban <piotr(a)codeweavers.com> --- dlls/wineps.drv/printproc.c | 2 ++ dlls/wineps.drv/ps.c | 14 ++++++++++++-- dlls/wineps.drv/psdrv.h | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/dlls/wineps.drv/printproc.c b/dlls/wineps.drv/printproc.c index db2979f0fbe..84f4b9f5900 100644 --- a/dlls/wineps.drv/printproc.c +++ b/dlls/wineps.drv/printproc.c @@ -3110,6 +3110,8 @@ BOOL WINAPI PrintDocumentOnPrintProcessor(HANDLE pp, WCHAR *doc_name) if (ret) ret = PSDRV_ResetDC(data->ctx, devmode); + if (ret && devmode && (devmode->dmFields & DM_PAPERSIZE)) + ret = PSDRV_WritePageSize(data->ctx); free(devmode); if (!ret) goto cleanup; diff --git a/dlls/wineps.drv/ps.c b/dlls/wineps.drv/ps.c index d48370acef7..31e8c5bdebb 100644 --- a/dlls/wineps.drv/ps.c +++ b/dlls/wineps.drv/ps.c @@ -396,6 +396,17 @@ static void write_cups_job_ticket( print_ctx *ctx, const struct ticket_info *inf write_spool( ctx, cups_ap_d_inputslot, sizeof(cups_ap_d_inputslot) - 1 ); } +INT PSDRV_WritePageSize( print_ctx *ctx ) +{ + PAGESIZE *page = find_pagesize( ctx->pi->ppd, &ctx->Devmode->dmPublic ); + + if (page && page->InvocationString) + PSDRV_WriteFeature( ctx, "*PageSize", page->Name, page->InvocationString ); + else + WARN("Page size not set\n"); + return 1; +} + INT PSDRV_WriteHeader( print_ctx *ctx, LPCWSTR title ) { char *buf, *escaped_title; @@ -443,8 +454,7 @@ INT PSDRV_WriteHeader( print_ctx *ctx, LPCWSTR title ) if (slot && slot->InvocationString) PSDRV_WriteFeature( ctx, "*InputSlot", slot->Name, slot->InvocationString ); - if (page && page->InvocationString) - PSDRV_WriteFeature( ctx, "*PageSize", page->Name, page->InvocationString ); + PSDRV_WritePageSize( ctx ); if (duplex && duplex->InvocationString) PSDRV_WriteFeature( ctx, "*Duplex", duplex->Name, duplex->InvocationString ); diff --git a/dlls/wineps.drv/psdrv.h b/dlls/wineps.drv/psdrv.h index d1ac2cc06cd..2c4703de942 100644 --- a/dlls/wineps.drv/psdrv.h +++ b/dlls/wineps.drv/psdrv.h @@ -466,6 +466,7 @@ extern char PSDRV_UnicodeToANSI(int u); extern INT PSDRV_WriteHeader( print_ctx *ctx, LPCWSTR title ); extern INT PSDRV_WriteFooter( print_ctx *ctx ); +extern INT PSDRV_WritePageSize( print_ctx *ctx ); extern INT PSDRV_WriteNewPage( print_ctx *ctx ); extern INT PSDRV_WriteEndPage( print_ctx *ctx ); extern BOOL PSDRV_WriteMoveTo(print_ctx *ctx, INT x, INT y); -- GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/5791
1
0
0
0
[PATCH 4/5] wineps.drv: Write PageBoundingBox for every page.
by Piotr Caban
04 Jun '24
04 Jun '24
From: Piotr Caban <piotr(a)codeweavers.com> --- dlls/wineps.drv/ps.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dlls/wineps.drv/ps.c b/dlls/wineps.drv/ps.c index 8d3db610647..d48370acef7 100644 --- a/dlls/wineps.drv/ps.c +++ b/dlls/wineps.drv/ps.c @@ -95,6 +95,7 @@ static const char psendfeature[] = static const char psnewpage[] = /* name, number, xres, yres, xtrans, ytrans, rot */ "%%%%Page: %s %d\n" +"%%%%PageBoundingBox: %ld %ld %ld %ld\n" "%%%%PageOrientation: %s\n" "%%%%BeginPageSetup\n" "/pgsave save def\n" @@ -560,6 +561,7 @@ INT PSDRV_WriteNewPage( print_ctx *ctx ) } sprintf(buf, psnewpage, name, ctx->job.PageNo, + bbox.left, bbox.top, bbox.right, bbox.bottom, ctx->Devmode->dmPublic.dmOrientation == DMORIENT_LANDSCAPE ? "Landscape" : "Portrait", GetDeviceCaps(ctx->hdc, ASPECTX), GetDeviceCaps(ctx->hdc, ASPECTY), xtrans, ytrans, rotation); -- GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/5791
1
0
0
0
[PATCH 3/5] wineps.drv: Take all pages into account when computing bounding box.
by Piotr Caban
04 Jun '24
04 Jun '24
From: Piotr Caban <piotr(a)codeweavers.com> --- dlls/wineps.drv/ps.c | 85 +++++++++++++++++++++++------------------ dlls/wineps.drv/psdrv.h | 1 + 2 files changed, 49 insertions(+), 37 deletions(-) diff --git a/dlls/wineps.drv/ps.c b/dlls/wineps.drv/ps.c index 744bda62497..8d3db610647 100644 --- a/dlls/wineps.drv/ps.c +++ b/dlls/wineps.drv/ps.c @@ -54,7 +54,7 @@ static const char cups_ap_d_inputslot[] = "%cupsJobTicket: AP_D_InputSlot=\n"; / static const char psheader[] = /* title llx lly urx ury orientation */ "%%%%Creator: Wine PostScript Driver\n" "%%%%Title: %s\n" -"%%%%BoundingBox: %d %d %d %d\n" +"%%%%BoundingBox: (atend)\n" "%%%%Pages: (atend)\n" "%%%%EndComments\n"; @@ -110,6 +110,7 @@ static const char psendpage[] = static const char psfooter[] = /* pages */ "%%%%Trailer\n" +"%%%%BoundingBox: %ld %ld %ld %ld\n" "%%%%Pages: %d\n" "%%%%EOF\n"; @@ -400,7 +401,6 @@ INT PSDRV_WriteHeader( print_ctx *ctx, LPCWSTR title ) INPUTSLOT *slot = find_slot( ctx->pi->ppd, &ctx->Devmode->dmPublic ); PAGESIZE *page = find_pagesize( ctx->pi->ppd, &ctx->Devmode->dmPublic ); DUPLEX *duplex = find_duplex( ctx->pi->ppd, &ctx->Devmode->dmPublic ); - int llx, lly, urx, ury; int ret, len; struct ticket_info ticket_info = { page, duplex }; @@ -419,46 +419,14 @@ INT PSDRV_WriteHeader( print_ctx *ctx, LPCWSTR title ) escaped_title = escape_title(title); buf = HeapAlloc( GetProcessHeap(), 0, sizeof(psheader) + - strlen(escaped_title) + 30 ); + strlen(escaped_title) ); if(!buf) { WARN("HeapAlloc failed\n"); HeapFree(GetProcessHeap(), 0, escaped_title); return 0; } - /* BBox co-ords are in default user co-ord system so urx < ury even in - landscape mode */ - if ((ctx->Devmode->dmPublic.dmFields & DM_PAPERSIZE) && page) - { - if (page->ImageableArea) - { - llx = page->ImageableArea->llx; - lly = page->ImageableArea->lly; - urx = page->ImageableArea->urx; - ury = page->ImageableArea->ury; - } - else - { - llx = lly = 0; - urx = page->PaperDimension->x; - ury = page->PaperDimension->y; - } - } - else if ((ctx->Devmode->dmPublic.dmFields & DM_PAPERLENGTH) && - (ctx->Devmode->dmPublic.dmFields & DM_PAPERWIDTH)) - { - /* Devmode sizes in 1/10 mm */ - llx = lly = 0; - urx = ctx->Devmode->dmPublic.dmPaperWidth * 72.0 / 254.0; - ury = ctx->Devmode->dmPublic.dmPaperLength * 72.0 / 254.0; - } - else - { - llx = lly = urx = ury = 0; - } - /* FIXME should do something better with BBox */ - - sprintf(buf, psheader, escaped_title, llx, lly, urx, ury); + sprintf(buf, psheader, escaped_title); HeapFree(GetProcessHeap(), 0, escaped_title); @@ -498,7 +466,8 @@ INT PSDRV_WriteFooter( print_ctx *ctx ) return 0; } - sprintf(buf, psfooter, ctx->job.PageNo); + sprintf(buf, psfooter, ctx->bbox.left, ctx->bbox.top, + ctx->bbox.right, ctx->bbox.bottom, ctx->job.PageNo); if( write_spool( ctx, buf, strlen(buf) ) != strlen(buf) ) { WARN("WriteSpool error\n"); @@ -520,15 +489,57 @@ INT PSDRV_WriteEndPage( print_ctx *ctx ) } +static void get_bounding_box( print_ctx *ctx, RECT *bbox) +{ + PAGESIZE *page; + + /* BBox co-ords are in default user co-ord system so urx < ury even in + landscape mode */ + if ((ctx->Devmode->dmPublic.dmFields & DM_PAPERSIZE) && + (page = find_pagesize( ctx->pi->ppd, &ctx->Devmode->dmPublic ))) + { + if (page->ImageableArea) + { + bbox->left = page->ImageableArea->llx; + bbox->top = page->ImageableArea->lly; + bbox->right = page->ImageableArea->urx; + bbox->bottom = page->ImageableArea->ury; + } + else + { + bbox->left = bbox->top = 0; + bbox->right = page->PaperDimension->x; + bbox->bottom = page->PaperDimension->y; + } + } + else if ((ctx->Devmode->dmPublic.dmFields & DM_PAPERLENGTH) && + (ctx->Devmode->dmPublic.dmFields & DM_PAPERWIDTH)) + { + /* Devmode sizes in 1/10 mm */ + bbox->left = bbox->top = 0; + bbox->right = ctx->Devmode->dmPublic.dmPaperWidth * 72.0 / 254.0; + bbox->bottom = ctx->Devmode->dmPublic.dmPaperLength * 72.0 / 254.0; + } + else + { + bbox->left = bbox->top = bbox->right = bbox->bottom = 0; + } + /* FIXME should do something better with BBox */ +} + INT PSDRV_WriteNewPage( print_ctx *ctx ) { signed int xtrans, ytrans, rotation; char buf[256], name[16]; + RECT bbox; sprintf(name, "%d", ctx->job.PageNo); + get_bounding_box( ctx, &bbox ); + UnionRect( &ctx->bbox, &bbox, &ctx->bbox ); + if(ctx->Devmode->dmPublic.dmOrientation == DMORIENT_LANDSCAPE) { if(ctx->pi->ppd->LandscapeOrientation == -90) { xtrans = GetDeviceCaps(ctx->hdc, PHYSICALHEIGHT) - diff --git a/dlls/wineps.drv/psdrv.h b/dlls/wineps.drv/psdrv.h index 31adc36adfc..d1ac2cc06cd 100644 --- a/dlls/wineps.drv/psdrv.h +++ b/dlls/wineps.drv/psdrv.h @@ -368,6 +368,7 @@ typedef struct PSDRV_DEVMODE *Devmode; PRINTERINFO *pi; int pathdepth; + RECT bbox; } print_ctx; extern print_ctx *create_print_ctx( HDC hdc, const WCHAR *device, -- GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/5791
1
0
0
0
[PATCH 2/5] wineps.drv: Write page orientation hint for every page.
by Piotr Caban
04 Jun '24
04 Jun '24
From: Piotr Caban <piotr(a)codeweavers.com> --- dlls/wineps.drv/ps.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/dlls/wineps.drv/ps.c b/dlls/wineps.drv/ps.c index 149bfc81c36..744bda62497 100644 --- a/dlls/wineps.drv/ps.c +++ b/dlls/wineps.drv/ps.c @@ -56,7 +56,6 @@ static const char psheader[] = /* title llx lly urx ury orientation */ "%%%%Title: %s\n" "%%%%BoundingBox: %d %d %d %d\n" "%%%%Pages: (atend)\n" -"%%%%Orientation: %s\n" "%%%%EndComments\n"; static const char psbeginprolog[] = @@ -96,6 +95,7 @@ static const char psendfeature[] = static const char psnewpage[] = /* name, number, xres, yres, xtrans, ytrans, rot */ "%%%%Page: %s %d\n" +"%%%%PageOrientation: %s\n" "%%%%BeginPageSetup\n" "/pgsave save def\n" "72 %d div 72 %d div scale\n" @@ -402,7 +402,6 @@ INT PSDRV_WriteHeader( print_ctx *ctx, LPCWSTR title ) DUPLEX *duplex = find_duplex( ctx->pi->ppd, &ctx->Devmode->dmPublic ); int llx, lly, urx, ury; int ret, len; - const char * dmOrientation; struct ticket_info ticket_info = { page, duplex }; @@ -459,8 +458,7 @@ INT PSDRV_WriteHeader( print_ctx *ctx, LPCWSTR title ) } /* FIXME should do something better with BBox */ - dmOrientation = (ctx->Devmode->dmPublic.dmOrientation == DMORIENT_LANDSCAPE ? "Landscape" : "Portrait"); - sprintf(buf, psheader, escaped_title, llx, lly, urx, ury, dmOrientation); + sprintf(buf, psheader, escaped_title, llx, lly, urx, ury); HeapFree(GetProcessHeap(), 0, escaped_title); @@ -551,8 +549,9 @@ INT PSDRV_WriteNewPage( print_ctx *ctx ) } sprintf(buf, psnewpage, name, ctx->job.PageNo, - GetDeviceCaps(ctx->hdc, ASPECTX), GetDeviceCaps(ctx->hdc, ASPECTY), - xtrans, ytrans, rotation); + ctx->Devmode->dmPublic.dmOrientation == DMORIENT_LANDSCAPE ? "Landscape" : "Portrait", + GetDeviceCaps(ctx->hdc, ASPECTX), GetDeviceCaps(ctx->hdc, ASPECTY), + xtrans, ytrans, rotation); if( write_spool( ctx, buf, strlen(buf) ) != strlen(buf) ) { WARN("WriteSpool error\n"); -- GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/5791
1
0
0
0
[PATCH 1/5] wineps.drv: Don't use dynamic buffer when writing new page info.
by Piotr Caban
04 Jun '24
04 Jun '24
From: Piotr Caban <piotr(a)codeweavers.com> --- dlls/wineps.drv/ps.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/dlls/wineps.drv/ps.c b/dlls/wineps.drv/ps.c index 59e245b9b6c..149bfc81c36 100644 --- a/dlls/wineps.drv/ps.c +++ b/dlls/wineps.drv/ps.c @@ -526,19 +526,11 @@ INT PSDRV_WriteEndPage( print_ctx *ctx ) INT PSDRV_WriteNewPage( print_ctx *ctx ) { - char *buf; - char name[100]; signed int xtrans, ytrans, rotation; - int ret = 1; + char buf[256], name[16]; sprintf(name, "%d", ctx->job.PageNo); - buf = HeapAlloc( GetProcessHeap(), 0, sizeof(psnewpage) + 200 ); - if(!buf) { - WARN("HeapAlloc failed\n"); - return 0; - } - if(ctx->Devmode->dmPublic.dmOrientation == DMORIENT_LANDSCAPE) { if(ctx->pi->ppd->LandscapeOrientation == -90) { xtrans = GetDeviceCaps(ctx->hdc, PHYSICALHEIGHT) - @@ -564,10 +556,9 @@ INT PSDRV_WriteNewPage( print_ctx *ctx ) if( write_spool( ctx, buf, strlen(buf) ) != strlen(buf) ) { WARN("WriteSpool error\n"); - ret = 0; + return 0; } - HeapFree( GetProcessHeap(), 0, buf ); - return ret; + return 1; } -- GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/5791
1
0
0
0
[PATCH 0/1] MR5785: gdiplus: Remove record container from metafile object
by David Kahurani (@ReDress)
04 Jun '24
04 Jun '24
This list is best suited as a local object Signed-off-by: David Kahurani k.kahurani(a)gmail.com --
https://gitlab.winehq.org/wine/wine/-/merge_requests/5785
4
5
0
0
[PATCH v2 0/1] MR5788: d3d11/tests: Add a test for NV12 textures.
by Giovanni Mascellani (@giomasce)
04 Jun '24
04 Jun '24
-- v2: d3d11/tests: Add a test for NV12 textures.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5788
4
4
0
0
[PATCH 0/4] MR5780: mshtml: Unify document node IDispatchEx implementation.
by Jacek Caban (@jacek)
04 Jun '24
04 Jun '24
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5780
3
5
0
0
[PATCH v2 0/6] MR5773: mmdevapi: Fake success in a few IAudioSessionControl2 methods
by Fabian Maurer (@DarkShadow44)
04 Jun '24
04 Jun '24
Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=56763
-- v2: mmdevapi: Implement IAudioSessionControl2 GetGroupingParam SetGroupingParam mmdevapi: Implement IAudioSessionControl2 GetIconPath / SetIconPath mmdevapi: Implement IAudioSessionControl2 GetDisplayName / SetDisplayName mmdevapi/tests: Add tests for IAudioSessionControl2 GetGroupingParam / SetGroupingParam mmdevapi/tests: Add tests for IAudioSessionControl2 GetIconPath / SetIconPath mmdevapi/tests: Add tests for IAudioSessionControl2 GetDisplayName / SetDisplayName
https://gitlab.winehq.org/wine/wine/-/merge_requests/5773
5
18
0
0
← Newer
1
...
70
71
72
73
74
75
76
...
79
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Results per page:
10
25
50
100
200