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
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
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
October 2014
----- 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
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
2 participants
397 discussions
Start a n
N
ew thread
Stefan Dösinger : d3d9/tests: Port test_window_style to d3d9ex.
by Alexandre Julliard
17 Oct '14
17 Oct '14
Module: wine Branch: master Commit: 80cbd276e016fedd609f1ece6e398f8f72ce2c78 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=80cbd276e016fedd609f1ece6…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Thu Oct 16 17:07:20 2014 +0200 d3d9/tests: Port test_window_style to d3d9ex. --- dlls/d3d9/tests/d3d9ex.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/dlls/d3d9/tests/d3d9ex.c b/dlls/d3d9/tests/d3d9ex.c index a496584..11fe091 100644 --- a/dlls/d3d9/tests/d3d9ex.c +++ b/dlls/d3d9/tests/d3d9ex.c @@ -2108,6 +2108,105 @@ done: UnregisterClassA("d3d9_test_wndproc_wc", GetModuleHandleA(NULL)); } +static void test_window_style(void) +{ + RECT focus_rect, fullscreen_rect, r; + LONG device_style, device_exstyle; + LONG focus_style, focus_exstyle; + struct device_desc device_desc; + LONG style; + IDirect3DDevice9Ex *device; + HRESULT hr; + ULONG ref; + static const LONG test_style_flags[] = + { + 0, + WS_VISIBLE + }; + unsigned int i; + + SetRect(&fullscreen_rect, 0, 0, startup_mode.dmPelsWidth, startup_mode.dmPelsHeight); + + for (i = 0; i < sizeof(test_style_flags) / sizeof(*test_style_flags); ++i) + { + focus_window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW | test_style_flags[i], + 0, 0, startup_mode.dmPelsWidth / 2, startup_mode.dmPelsHeight / 2, 0, 0, 0, 0); + device_window = CreateWindowA("d3d9_test_wc", "d3d9_test", WS_OVERLAPPEDWINDOW | test_style_flags[i], + 0, 0, startup_mode.dmPelsWidth / 2, startup_mode.dmPelsHeight / 2, 0, 0, 0, 0); + + device_style = GetWindowLongA(device_window, GWL_STYLE); + device_exstyle = GetWindowLongA(device_window, GWL_EXSTYLE); + focus_style = GetWindowLongA(focus_window, GWL_STYLE); + focus_exstyle = GetWindowLongA(focus_window, GWL_EXSTYLE); + + GetWindowRect(focus_window, &focus_rect); + + device_desc.device_window = device_window; + device_desc.width = startup_mode.dmPelsWidth; + device_desc.height = startup_mode.dmPelsHeight; + device_desc.windowed = FALSE; + if (!(device = create_device(focus_window, &device_desc))) + { + skip("Failed to create a D3D device, skipping tests.\n"); + DestroyWindow(device_window); + DestroyWindow(focus_window); + return; + } + + style = GetWindowLongA(device_window, GWL_STYLE); + todo_wine ok(style == device_style, "Expected device window style %#x, got %#x.\n", + device_style, style); + style = GetWindowLongA(device_window, GWL_EXSTYLE); + todo_wine ok(style == device_exstyle, "Expected device window extended style %#x, got %#x.\n", + device_exstyle, style); + + style = GetWindowLongA(focus_window, GWL_STYLE); + ok(style == focus_style, "Expected focus window style %#x, got %#x.\n", + focus_style, style); + style = GetWindowLongA(focus_window, GWL_EXSTYLE); + ok(style == focus_exstyle, "Expected focus window extended style %#x, got %#x.\n", + focus_exstyle, style); + + GetWindowRect(device_window, &r); + ok(EqualRect(&r, &fullscreen_rect), "Expected {%d, %d, %d, %d}, got {%d, %d, %d, %d}.\n", + fullscreen_rect.left, fullscreen_rect.top, fullscreen_rect.right, fullscreen_rect.bottom, + r.left, r.top, r.right, r.bottom); + GetClientRect(device_window, &r); + todo_wine ok(!EqualRect(&r, &fullscreen_rect), "Client rect and window rect are equal.\n"); + GetWindowRect(focus_window, &r); + ok(EqualRect(&r, &focus_rect), "Expected {%d, %d, %d, %d}, got {%d, %d, %d, %d}.\n", + focus_rect.left, focus_rect.top, focus_rect.right, focus_rect.bottom, + r.left, r.top, r.right, r.bottom); + + hr = reset_device(device, device_window, TRUE); + ok(SUCCEEDED(hr), "Failed to reset device, hr %#x.\n", hr); + + style = GetWindowLongA(device_window, GWL_STYLE); + if (test_style_flags[i] & WS_VISIBLE) + ok(style == device_style, "Expected device window style %#x, got %#x.\n", + device_style, style); + else + todo_wine ok(style == device_style, "Expected device window style %#x, got %#x.\n", + device_style, style); + style = GetWindowLongA(device_window, GWL_EXSTYLE); + todo_wine ok(style == device_exstyle, "Expected device window extended style %#x, got %#x.\n", + device_exstyle, style); + + style = GetWindowLongA(focus_window, GWL_STYLE); + ok(style == focus_style, "Expected focus window style %#x, got %#x.\n", + focus_style, style); + style = GetWindowLongA(focus_window, GWL_EXSTYLE); + ok(style == focus_exstyle, "Expected focus window extended style %#x, got %#x.\n", + focus_exstyle, style); + + ref = IDirect3DDevice9Ex_Release(device); + ok(ref == 0, "The device was not properly freed: refcount %u.\n", ref); + + DestroyWindow(device_window); + DestroyWindow(focus_window); + } +} + START_TEST(d3d9ex) { d3d9_handle = LoadLibraryA("d3d9.dll"); @@ -2141,4 +2240,5 @@ START_TEST(d3d9ex) test_unsupported_shaders(); test_wndproc(); test_wndproc_windowed(); + test_window_style(); }
1
0
0
0
Stefan Dösinger : d3d9/tests: Port wndproc tests to d3d9ex.
by Alexandre Julliard
17 Oct '14
17 Oct '14
Module: wine Branch: master Commit: 5c33ffaf6744475c97d45fb72abc06daeaf43bd6 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=5c33ffaf6744475c97d45fb72…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Thu Oct 16 17:07:19 2014 +0200 d3d9/tests: Port wndproc tests to d3d9ex. --- dlls/d3d9/tests/d3d9ex.c | 466 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 466 insertions(+) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=5c33ffaf6744475c97d45…
1
0
0
0
Ken Thomases : configure: For Mac, link wineloader with -no_pie if it' s available.
by Alexandre Julliard
17 Oct '14
17 Oct '14
Module: wine Branch: master Commit: 5ddaf34d69fe9608e45abb65a48854b22fa3610a URL:
http://source.winehq.org/git/wine.git/?a=commit;h=5ddaf34d69fe9608e45abb65a…
Author: Ken Thomases <ken(a)codeweavers.com> Date: Thu Oct 16 22:03:11 2014 -0500 configure: For Mac, link wineloader with -no_pie if it's available. This is necessary for the specified image base and WINE_DOS and WINE_SHAREDHEAP segment addresses to be respected. The latter are necessary to reserve the correct ranges of the address space. --- configure | 28 +++++++++++++++++++++++++--- configure.ac | 5 ++--- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/configure b/configure index 2228ce3..f57c9ad 100755 --- a/configure +++ b/configure @@ -7719,9 +7719,31 @@ uninstall:: APPKIT_LIBS="-framework AppKit" LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist" - case $host_os in - darwin11*) LDEXECFLAGS="-Wl,-macosx_version_min,10.6 $LDEXECFLAGS" ;; - esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,-no_pie" >&5 +$as_echo_n "checking whether the compiler supports -Wl,-no_pie... " >&6; } +if ${ac_cv_cflags__Wl__no_pie+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_wine_try_cflags_saved=$CFLAGS +CFLAGS="$CFLAGS -Wl,-no_pie" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(int argc, char **argv) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_cflags__Wl__no_pie=yes +else + ac_cv_cflags__Wl__no_pie=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +CFLAGS=$ac_wine_try_cflags_saved +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Wl__no_pie" >&5 +$as_echo "$ac_cv_cflags__Wl__no_pie" >&6; } +if test "x$ac_cv_cflags__Wl__no_pie" = xyes; then : + LDEXECFLAGS="-Wl,-no_pie $LDEXECFLAGS" +fi if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes" then DISKARBITRATION_LIBS="-framework DiskArbitration -framework CoreFoundation" diff --git a/configure.ac b/configure.ac index 240ce29..5ebc2c3 100644 --- a/configure.ac +++ b/configure.ac @@ -760,9 +760,8 @@ uninstall:: AC_SUBST(CORESERVICES_LIBS,"-framework CoreServices") AC_SUBST(APPKIT_LIBS,"-framework AppKit") LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist" - case $host_os in - darwin11*) LDEXECFLAGS="-Wl,-macosx_version_min,10.6 $LDEXECFLAGS" ;; - esac + WINE_TRY_CFLAGS([-Wl,-no_pie], + [LDEXECFLAGS="-Wl,-no_pie $LDEXECFLAGS"]) if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes" then dnl DiskArbitration API is not public on Darwin < 8.0, use it only if header found
1
0
0
0
Ken Thomases : wined3d: Fix subtraction of resource size from used adapter memory.
by Alexandre Julliard
17 Oct '14
17 Oct '14
Module: wine Branch: master Commit: bd460bca1ccade89400515fa004c5e3204e55d11 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=bd460bca1ccade89400515fa0…
Author: Ken Thomases <ken(a)codeweavers.com> Date: Thu Oct 16 22:03:22 2014 -0500 wined3d: Fix subtraction of resource size from used adapter memory. Properly negate an unsigned value while promoting it from 32- to 64-bit. --- dlls/wined3d/resource.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c index d40af56..0ab55dc 100644 --- a/dlls/wined3d/resource.c +++ b/dlls/wined3d/resource.c @@ -151,7 +151,7 @@ void resource_cleanup(struct wined3d_resource *resource) if (resource->pool == WINED3D_POOL_DEFAULT && d3d->flags & WINED3D_VIDMEM_ACCOUNTING) { TRACE("Decrementing device memory pool by %u.\n", resource->size); - adapter_adjust_memory(resource->device->adapter, 0 - resource->size); + adapter_adjust_memory(resource->device->adapter, (INT64)0 - resource->size); } wined3d_resource_free_sysmem(resource);
1
0
0
0
Nikolay Sivov : dwrite: Some tests for IDWriteFontColletion methods.
by Alexandre Julliard
17 Oct '14
17 Oct '14
Module: wine Branch: master Commit: bb23664ee98fd99b5e5c99fae973fcdbea9397de URL:
http://source.winehq.org/git/wine.git/?a=commit;h=bb23664ee98fd99b5e5c99fae…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Fri Oct 17 08:39:41 2014 +0400 dwrite: Some tests for IDWriteFontColletion methods. --- dlls/dwrite/tests/font.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 1 deletion(-) diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index 411b249..3305cdb 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -1,7 +1,7 @@ /* * Font related tests * - * Copyright 2012 Nikolay Sivov for CodeWeavers + * Copyright 2012, 2014 Nikolay Sivov for CodeWeavers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -1189,6 +1189,93 @@ static void test_GetUnicodeRanges(void) IDWriteFontFace1_Release(fontface1); } +static void test_GetFontFromFontFace(void) +{ + IDWriteFontFace *fontface, *fontface2; + IDWriteFontCollection *collection; + IDWriteFont *font, *font2, *font3; + IDWriteFontFamily *family; + HRESULT hr; + + hr = IDWriteFactory_GetSystemFontCollection(factory, &collection, FALSE); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IDWriteFontCollection_GetFontFamily(collection, 0, &family); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IDWriteFontFamily_GetFirstMatchingFont(family, DWRITE_FONT_WEIGHT_NORMAL, + DWRITE_FONT_STRETCH_NORMAL, DWRITE_FONT_STYLE_NORMAL, &font); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IDWriteFont_CreateFontFace(font, &fontface); + ok(hr == S_OK, "got 0x%08x\n", hr); + + font2 = NULL; + hr = IDWriteFontCollection_GetFontFromFontFace(collection, fontface, &font2); +todo_wine + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(font2 != font, "got %p, %p\n", font2, font); + + font3 = NULL; + hr = IDWriteFontCollection_GetFontFromFontFace(collection, fontface, &font3); +todo_wine { + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(font3 != font && font3 != font2, "got %p, %p, %p\n", font3, font2, font); +} + +if (font2) { + hr = IDWriteFont_CreateFontFace(font2, &fontface2); + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(fontface2 == fontface, "got %p, %p\n", fontface2, fontface); + IDWriteFontFace_Release(fontface2); +} + +if (font3) { + hr = IDWriteFont_CreateFontFace(font3, &fontface2); + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(fontface2 == fontface, "got %p, %p\n", fontface2, fontface); + IDWriteFontFace_Release(fontface2); +} + +if (font) + IDWriteFont_Release(font); +if (font2) + IDWriteFont_Release(font2); +if (font3) + IDWriteFont_Release(font3); + IDWriteFontFace_Release(fontface); + IDWriteFontFamily_Release(family); + IDWriteFontCollection_Release(collection); +} + +static void test_GetFirstMatchingFont(void) +{ + IDWriteFontCollection *collection; + IDWriteFont *font, *font2; + IDWriteFontFamily *family; + HRESULT hr; + + hr = IDWriteFactory_GetSystemFontCollection(factory, &collection, FALSE); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IDWriteFontCollection_GetFontFamily(collection, 0, &family); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IDWriteFontFamily_GetFirstMatchingFont(family, DWRITE_FONT_WEIGHT_NORMAL, + DWRITE_FONT_STRETCH_NORMAL, DWRITE_FONT_STYLE_NORMAL, &font); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IDWriteFontFamily_GetFirstMatchingFont(family, DWRITE_FONT_WEIGHT_NORMAL, + DWRITE_FONT_STRETCH_NORMAL, DWRITE_FONT_STYLE_NORMAL, &font2); + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(font != font2, "got %p, %p\n", font, font2); + + IDWriteFont_Release(font); + IDWriteFont_Release(font2); + IDWriteFontFamily_Release(family); + IDWriteFontCollection_Release(collection); +} + START_TEST(font) { HRESULT hr; @@ -1214,6 +1301,8 @@ START_TEST(font) test_CreateFontFileReference(); test_shared_isolated(); test_GetUnicodeRanges(); + test_GetFontFromFontFace(); + test_GetFirstMatchingFont(); IDWriteFactory_Release(factory); }
1
0
0
0
Nikolay Sivov : dwrite: Return on first found glyph.
by Alexandre Julliard
17 Oct '14
17 Oct '14
Module: wine Branch: master Commit: e3c514f6d555a4772160b49f1d0e4ee49f92b8f6 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=e3c514f6d555a4772160b49f1…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Thu Oct 16 11:59:55 2014 +0400 dwrite: Return on first found glyph. --- dlls/dwrite/opentype.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/dwrite/opentype.c b/dlls/dwrite/opentype.c index a11b2fb..487f56b 100644 --- a/dlls/dwrite/opentype.c +++ b/dlls/dwrite/opentype.c @@ -377,7 +377,7 @@ void opentype_cmap_get_glyphindex(void *data, UINT32 utf32c, UINT16 *pgi) table = (WORD*)(((BYTE*)CMAP_Table) + GET_BE_DWORD(CMAP_Table->tables[i].offset)); type = GET_BE_WORD(*table); TRACE("table type %i\n", type); - /* Break when we find a handled type */ + switch (type) { case OPENTYPE_CMAP_TABLE_SEGMENT_MAPPING: @@ -389,6 +389,8 @@ void opentype_cmap_get_glyphindex(void *data, UINT32 utf32c, UINT16 *pgi) default: TRACE("table type %i unhandled.\n", type); } + + if (*pgi) return; } }
1
0
0
0
Nikolay Sivov : dwrite: Create IDWriteFontFace2 instance for IDWriteFont.
by Alexandre Julliard
17 Oct '14
17 Oct '14
Module: wine Branch: master Commit: d02d35a7b1ed3805390213a19fb5b83082cac1b8 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=d02d35a7b1ed3805390213a19…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Thu Oct 16 09:47:43 2014 +0400 dwrite: Create IDWriteFontFace2 instance for IDWriteFont. --- dlls/dwrite/analyzer.c | 2 -- dlls/dwrite/bidi.c | 1 - dlls/dwrite/dwrite_private.h | 4 +++- dlls/dwrite/font.c | 31 ++++++++++++------------------- dlls/dwrite/gdiinterop.c | 1 - dlls/dwrite/layout.c | 1 - dlls/dwrite/main.c | 4 +--- dlls/dwrite/opentype.c | 1 - dlls/dwrite/shape.c | 1 - 9 files changed, 16 insertions(+), 30 deletions(-) diff --git a/dlls/dwrite/analyzer.c b/dlls/dwrite/analyzer.c index 1a05335..46cf3b5 100644 --- a/dlls/dwrite/analyzer.c +++ b/dlls/dwrite/analyzer.c @@ -21,8 +21,6 @@ #define COBJMACROS -#include "dwrite.h" -#include "dwrite_2.h" #include "dwrite_private.h" #include "scripts.h" diff --git a/dlls/dwrite/bidi.c b/dlls/dwrite/bidi.c index 8e8daf6..48a7a06 100644 --- a/dlls/dwrite/bidi.c +++ b/dlls/dwrite/bidi.c @@ -48,7 +48,6 @@ #include "wine/debug.h" #include "wine/list.h" -#include "dwrite_1.h" #include "dwrite_private.h" WINE_DEFAULT_DEBUG_CHANNEL(bidi); diff --git a/dlls/dwrite/dwrite_private.h b/dlls/dwrite/dwrite_private.h index 4b54a35..88ca127 100644 --- a/dlls/dwrite/dwrite_private.h +++ b/dlls/dwrite/dwrite_private.h @@ -16,6 +16,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "dwrite_2.h" + #include "wine/debug.h" #include "wine/unicode.h" @@ -103,7 +105,7 @@ extern HRESULT get_system_fontcollection(IDWriteFontCollection**) DECLSPEC_HIDDE extern HRESULT get_textanalyzer(IDWriteTextAnalyzer**) DECLSPEC_HIDDEN; extern HRESULT create_font_file(IDWriteFontFileLoader *loader, const void *reference_key, UINT32 key_size, IDWriteFontFile **font_file) DECLSPEC_HIDDEN; extern HRESULT create_localfontfileloader(IDWriteLocalFontFileLoader** iface) DECLSPEC_HIDDEN; -extern HRESULT font_create_fontface(IDWriteFactory *iface, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace **font_face) DECLSPEC_HIDDEN; +extern HRESULT font_create_fontface(IDWriteFactory*,DWRITE_FONT_FACE_TYPE,UINT32,IDWriteFontFile* const*,UINT32,DWRITE_FONT_SIMULATIONS,IDWriteFontFace2 **) DECLSPEC_HIDDEN; /* Opentype font table functions */ extern HRESULT opentype_analyze_font(IDWriteFontFileStream*,UINT32*,DWRITE_FONT_FILE_TYPE*,DWRITE_FONT_FACE_TYPE*,BOOL*) DECLSPEC_HIDDEN; diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c index 9a2c636..fc13941 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c @@ -20,8 +20,6 @@ #define COBJMACROS -#include "dwrite.h" -#include "dwrite_2.h" #include "dwrite_private.h" WINE_DEFAULT_DEBUG_CHANNEL(dwrite); @@ -93,7 +91,7 @@ struct dwrite_font { BOOL is_system; IDWriteFontFamily *family; - IDWriteFontFace *face; + IDWriteFontFace2 *face; struct dwrite_font_data *data; }; @@ -689,7 +687,7 @@ static const IDWriteFontFace2Vtbl dwritefontfacevtbl = { dwritefontface2_GetRecommendedRenderingMode }; -static HRESULT create_system_fontface(struct dwrite_font *font, IDWriteFontFace **face) +static HRESULT create_system_fontface(struct dwrite_font *font, IDWriteFontFace2 **face) { struct dwrite_fontface *This; @@ -722,7 +720,7 @@ static HRESULT create_system_fontface(struct dwrite_font *font, IDWriteFontFace This->logfont.lfWeight = font->data->weight; strcpyW(This->logfont.lfFaceName, font->data->facename); - *face = (IDWriteFontFace*)&This->IDWriteFontFace2_iface; + *face = &This->IDWriteFontFace2_iface; return S_OK; } @@ -736,7 +734,7 @@ HRESULT convert_fontface_to_logfont(IDWriteFontFace *face, LOGFONTW *logfont) return S_OK; } -static HRESULT get_fontface_from_font(struct dwrite_font *font, IDWriteFontFace **fontface) +static HRESULT get_fontface_from_font(struct dwrite_font *font, IDWriteFontFace2 **fontface) { *fontface = NULL; @@ -788,7 +786,7 @@ static ULONG WINAPI dwritefont_Release(IDWriteFont2 *iface) if (!ref) { - if (This->face) IDWriteFontFace_Release(This->face); + if (This->face) IDWriteFontFace2_Release(This->face); if (This->family) IDWriteFontFamily_Release(This->family); _free_font_data(This->data); heap_free(This); @@ -868,7 +866,7 @@ static void WINAPI dwritefont_GetMetrics(IDWriteFont2 *iface, DWRITE_FONT_METRIC static HRESULT WINAPI dwritefont_HasCharacter(IDWriteFont2 *iface, UINT32 value, BOOL *exists) { struct dwrite_font *This = impl_from_IDWriteFont2(iface); - IDWriteFontFace *fontface; + IDWriteFontFace2 *fontface; UINT16 index; HRESULT hr; @@ -881,7 +879,7 @@ static HRESULT WINAPI dwritefont_HasCharacter(IDWriteFont2 *iface, UINT32 value, return hr; index = 0; - hr = IDWriteFontFace_GetGlyphIndices(fontface, &value, 1, &index); + hr = IDWriteFontFace2_GetGlyphIndices(fontface, &value, 1, &index); if (FAILED(hr)) return hr; @@ -896,7 +894,7 @@ static HRESULT WINAPI dwritefont_CreateFontFace(IDWriteFont2 *iface, IDWriteFont TRACE("(%p)->(%p)\n", This, face); - hr = get_fontface_from_font(This, face); + hr = get_fontface_from_font(This, (IDWriteFontFace2**)face); if (hr == S_OK) IDWriteFontFace_AddRef(*face); @@ -918,8 +916,7 @@ static void WINAPI dwritefont1_GetPanose(IDWriteFont2 *iface, DWRITE_PANOSE *pan static HRESULT WINAPI dwritefont1_GetUnicodeRanges(IDWriteFont2 *iface, UINT32 max_count, DWRITE_UNICODE_RANGE *ranges, UINT32 *count) { struct dwrite_font *This = impl_from_IDWriteFont2(iface); - IDWriteFontFace2 *fontface2; - IDWriteFontFace *fontface; + IDWriteFontFace2 *fontface; HRESULT hr; TRACE("(%p)->(%u %p %p)\n", This, max_count, ranges, count); @@ -928,11 +925,7 @@ static HRESULT WINAPI dwritefont1_GetUnicodeRanges(IDWriteFont2 *iface, UINT32 m if (FAILED(hr)) return hr; - IDWriteFontFace_QueryInterface(fontface, &IID_IDWriteFontFace2, (void**)&fontface2); - hr = IDWriteFontFace2_GetUnicodeRanges(fontface2, max_count, ranges, count); - IDWriteFontFace2_Release(fontface2); - - return hr; + return IDWriteFontFace2_GetUnicodeRanges(fontface, max_count, ranges, count); } static HRESULT WINAPI dwritefont1_IsMonospacedFont(IDWriteFont2 *iface) @@ -1652,7 +1645,7 @@ HRESULT create_font_file(IDWriteFontFileLoader *loader, const void *reference_ke return S_OK; } -HRESULT font_create_fontface(IDWriteFactory *iface, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace **font_face) +HRESULT font_create_fontface(IDWriteFactory *iface, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace2 **font_face) { int i; struct dwrite_fontface *This; @@ -1706,7 +1699,7 @@ HRESULT font_create_fontface(IDWriteFactory *iface, DWRITE_FONT_FACE_TYPE facety This->data->simulations = sim_flags; This->is_system = FALSE; - *font_face = (IDWriteFontFace*)&This->IDWriteFontFace2_iface; + *font_face = &This->IDWriteFontFace2_iface; return S_OK; } diff --git a/dlls/dwrite/gdiinterop.c b/dlls/dwrite/gdiinterop.c index 7c20110..c3c2b11 100644 --- a/dlls/dwrite/gdiinterop.c +++ b/dlls/dwrite/gdiinterop.c @@ -25,7 +25,6 @@ #include "windef.h" #include "winbase.h" #include "wingdi.h" -#include "dwrite_1.h" #include "dwrite_private.h" #include "wine/debug.h" diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c index 0afd466..86ddf3c 100644 --- a/dlls/dwrite/layout.c +++ b/dlls/dwrite/layout.c @@ -25,7 +25,6 @@ #include "windef.h" #include "winbase.h" #include "wingdi.h" -#include "dwrite_2.h" #include "dwrite_private.h" #include "wine/list.h" diff --git a/dlls/dwrite/main.c b/dlls/dwrite/main.c index 0e0f5c5..50ad539 100644 --- a/dlls/dwrite/main.c +++ b/dlls/dwrite/main.c @@ -27,8 +27,6 @@ #include "winuser.h" #include "initguid.h" -#include "dwrite.h" -#include "dwrite_2.h" #include "dwrite_private.h" #include "wine/debug.h" @@ -609,7 +607,7 @@ static HRESULT WINAPI dwritefactory_CreateFontFace(IDWriteFactory *iface, { struct dwritefactory *This = impl_from_IDWriteFactory(iface); TRACE("(%p)->(%d %u %p %u 0x%x %p)\n", This, facetype, files_number, font_files, index, sim_flags, font_face); - return font_create_fontface(iface, facetype, files_number, font_files, index, sim_flags, font_face); + return font_create_fontface(iface, facetype, files_number, font_files, index, sim_flags, (IDWriteFontFace2**)font_face); } static HRESULT WINAPI dwritefactory_CreateRenderingParams(IDWriteFactory *iface, IDWriteRenderingParams **params) diff --git a/dlls/dwrite/opentype.c b/dlls/dwrite/opentype.c index b17e8ac..a11b2fb 100644 --- a/dlls/dwrite/opentype.c +++ b/dlls/dwrite/opentype.c @@ -20,7 +20,6 @@ #define COBJMACROS -#include "dwrite_1.h" #include "dwrite_private.h" WINE_DEFAULT_DEBUG_CHANNEL(dwrite); diff --git a/dlls/dwrite/shape.c b/dlls/dwrite/shape.c index ba306c7..00c9548 100644 --- a/dlls/dwrite/shape.c +++ b/dlls/dwrite/shape.c @@ -21,7 +21,6 @@ #define COBJMACROS -#include "dwrite_1.h" #include "dwrite_private.h" WINE_DEFAULT_DEBUG_CHANNEL(dwrite);
1
0
0
0
Nikolay Sivov : dwrite: Added a helper to get IDWriteFontFace from IDWriteFont.
by Alexandre Julliard
17 Oct '14
17 Oct '14
Module: wine Branch: master Commit: 460363535e331a37c96fc285ee2c7573d7a4fe8f URL:
http://source.winehq.org/git/wine.git/?a=commit;h=460363535e331a37c96fc285e…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Thu Oct 16 09:36:13 2014 +0400 dwrite: Added a helper to get IDWriteFontFace from IDWriteFont. --- dlls/dwrite/font.c | 54 ++++++++++++++++++++++-------------------------------- 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c index 0b287ff..9a2c636 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c @@ -736,6 +736,21 @@ HRESULT convert_fontface_to_logfont(IDWriteFontFace *face, LOGFONTW *logfont) return S_OK; } +static HRESULT get_fontface_from_font(struct dwrite_font *font, IDWriteFontFace **fontface) +{ + *fontface = NULL; + + if (!font->face) { + HRESULT hr = font->is_system ? create_system_fontface(font, &font->face) : + font_create_fontface(NULL, font->data->face_data->type, font->data->face_data->file_count, font->data->face_data->files, + font->data->face_data->index, font->data->face_data->simulations, &font->face); + if (FAILED(hr)) return hr; + } + + *fontface = font->face; + return S_OK; +} + static HRESULT WINAPI dwritefont_QueryInterface(IDWriteFont2 *iface, REFIID riid, void **obj) { struct dwrite_font *This = impl_from_IDWriteFont2(iface); @@ -861,13 +876,12 @@ static HRESULT WINAPI dwritefont_HasCharacter(IDWriteFont2 *iface, UINT32 value, *exists = FALSE; - hr = IDWriteFont2_CreateFontFace(iface, &fontface); + hr = get_fontface_from_font(This, &fontface); if (FAILED(hr)) return hr; index = 0; hr = IDWriteFontFace_GetGlyphIndices(fontface, &value, 1, &index); - IDWriteFontFace_Release(fontface); if (FAILED(hr)) return hr; @@ -878,37 +892,15 @@ static HRESULT WINAPI dwritefont_HasCharacter(IDWriteFont2 *iface, UINT32 value, static HRESULT WINAPI dwritefont_CreateFontFace(IDWriteFont2 *iface, IDWriteFontFace **face) { struct dwrite_font *This = impl_from_IDWriteFont2(iface); + HRESULT hr; - if (This->is_system) - { - TRACE("(%p)->(%p)\n", This, face); - - if (!This->face) - { - HRESULT hr = create_system_fontface(This, &This->face); - if (FAILED(hr)) return hr; - } - - *face = This->face; - IDWriteFontFace_AddRef(*face); - - return S_OK; - } - else - { - TRACE("(%p)->(%p)\n", This, face); + TRACE("(%p)->(%p)\n", This, face); - if (!This->face) - { - HRESULT hr = font_create_fontface(NULL, This->data->face_data->type, This->data->face_data->file_count, This->data->face_data->files, This->data->face_data->index, This->data->face_data->simulations, &This->face); - if (FAILED(hr)) return hr; - } - - *face = This->face; + hr = get_fontface_from_font(This, face); + if (hr == S_OK) IDWriteFontFace_AddRef(*face); - return S_OK; - } + return hr; } static void WINAPI dwritefont1_GetMetrics(IDWriteFont2 *iface, DWRITE_FONT_METRICS1 *metrics) @@ -932,13 +924,11 @@ static HRESULT WINAPI dwritefont1_GetUnicodeRanges(IDWriteFont2 *iface, UINT32 m TRACE("(%p)->(%u %p %p)\n", This, max_count, ranges, count); - hr = IDWriteFont2_CreateFontFace(iface, &fontface); + hr = get_fontface_from_font(This, &fontface); if (FAILED(hr)) return hr; IDWriteFontFace_QueryInterface(fontface, &IID_IDWriteFontFace2, (void**)&fontface2); - IDWriteFontFace_Release(fontface); - hr = IDWriteFontFace2_GetUnicodeRanges(fontface2, max_count, ranges, count); IDWriteFontFace2_Release(fontface2);
1
0
0
0
Nikolay Sivov : dwrite: Hide BiDi helpers.
by Alexandre Julliard
17 Oct '14
17 Oct '14
Module: wine Branch: master Commit: 571307edc208ffde43933b6dd05125b6b8b8feb4 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=571307edc208ffde43933b6dd…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Thu Oct 16 09:27:01 2014 +0400 dwrite: Hide BiDi helpers. --- dlls/dwrite/dwrite_private.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/dwrite/dwrite_private.h b/dlls/dwrite/dwrite_private.h index 4c9aeef..4b54a35 100644 --- a/dlls/dwrite/dwrite_private.h +++ b/dlls/dwrite/dwrite_private.h @@ -112,8 +112,8 @@ extern void opentype_cmap_get_glyphindex(void*,UINT32,UINT16*) DECLSPEC_HIDDEN; extern HRESULT opentype_cmap_get_unicode_ranges(void*,UINT32,DWRITE_UNICODE_RANGE*,UINT32*) DECLSPEC_HIDDEN; extern VOID get_font_properties(LPCVOID os2, LPCVOID head, LPCVOID post, DWRITE_FONT_METRICS *metrics, DWRITE_FONT_STRETCH *stretch, DWRITE_FONT_WEIGHT *weight, DWRITE_FONT_STYLE *style) DECLSPEC_HIDDEN; -extern HRESULT bidi_computelevels(const WCHAR*,UINT32,UINT8,UINT8*,UINT8*); -extern WCHAR bidi_get_mirrored_char(WCHAR); +extern HRESULT bidi_computelevels(const WCHAR*,UINT32,UINT8,UINT8*,UINT8*) DECLSPEC_HIDDEN; +extern WCHAR bidi_get_mirrored_char(WCHAR) DECLSPEC_HIDDEN; /* Glyph shaping */ enum SCRIPT_JUSTIFY
1
0
0
0
Sebastian Lackner : server: Fix invalid memory access when copying KeyNameInformation data.
by Alexandre Julliard
17 Oct '14
17 Oct '14
Module: wine Branch: master Commit: add67b6f8d37122b329f83fa90094ef4a8adf883 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=add67b6f8d37122b329f83fa9…
Author: Sebastian Lackner <sebastian(a)fds-team.de> Date: Fri Oct 17 06:08:20 2014 +0200 server: Fix invalid memory access when copying KeyNameInformation data. --- server/registry.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/registry.c b/server/registry.c index 4aaaf03..43527df 100644 --- a/server/registry.c +++ b/server/registry.c @@ -950,10 +950,10 @@ static void enum_key( const struct key *key, int index, int info_class, for (k = key; k != root_key; k = k->parent) { pos -= k->namelen; - if (pos < len) memcpy( data + namelen, k->name, + if (pos < len) memcpy( data + pos, k->name, min( k->namelen, len - pos ) ); pos -= sizeof(backslash); - if (pos < len) memcpy( data + namelen, backslash, + if (pos < len) memcpy( data + pos, backslash, min( sizeof(backslash), len - pos ) ); } memcpy( data, root_name, min( sizeof(root_name) - sizeof(backslash), len ) );
1
0
0
0
← Newer
1
...
16
17
18
19
20
21
22
...
40
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
Results per page:
10
25
50
100
200