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
August 2010
----- 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
884 discussions
Start a n
N
ew thread
Aric Stewart : usp10: Add Cyrillic script.
by Alexandre Julliard
24 Aug '10
24 Aug '10
Module: wine Branch: master Commit: b21ca5628e24c0bc6c04ac9a2cdd04246f150383 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=b21ca5628e24c0bc6c04ac9a2…
Author: Aric Stewart <aric(a)codeweavers.com> Date: Mon Aug 23 13:58:07 2010 -0500 usp10: Add Cyrillic script. --- dlls/usp10/shape.c | 1 + dlls/usp10/usp10.c | 11 ++++++++++- dlls/usp10/usp10_internal.h | 1 + 3 files changed, 12 insertions(+), 1 deletions(-) diff --git a/dlls/usp10/shape.c b/dlls/usp10/shape.c index 9140453..6a8db33 100644 --- a/dlls/usp10/shape.c +++ b/dlls/usp10/shape.c @@ -307,6 +307,7 @@ static const ScriptShapeData ShapingData[] = {{ arabic_features, 6}, "arab", ContextualShape_Arabic}, {{ NULL, 0}, "thaa", NULL}, {{ standard_features, 2}, "grek", NULL}, + {{ standard_features, 2}, "cyrl", NULL}, }; static INT GSUB_is_glyph_covered(LPCVOID table , UINT glyph) diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c index 93f33ea..af82180 100644 --- a/dlls/usp10/usp10.c +++ b/dlls/usp10/usp10.c @@ -58,6 +58,9 @@ static const scriptRange scriptRanges[] = { { Script_Latin, 0x00, 0x2af , Script_Numeric, Script_Punctuation}, /* Greek: U+0370–U+03FF */ { Script_Greek, 0x370, 0x3ff, 0, 0}, + /* Cyrillic: U+0400–U+04FF */ + /* Cyrillic Supplement: U+0500–U+052F */ + { Script_Cyrillic, 0x400, 0x52f, 0, 0}, /* Hebrew: U+0590–U+05FF */ { Script_Hebrew, 0x590, 0x5ff, 0, 0}, /* Arabic: U+0600–U+06FF */ @@ -80,6 +83,10 @@ static const scriptRange scriptRanges[] = { { Script_Greek, 0x1f00, 0x1fff, 0, 0}, /* Latin Extended-C: U+2C60–U+2C7F */ { Script_Latin, 0x2c60, 0x2c7f, 0, 0}, + /* Cyrillic Extended-A: U+2DE0–U+2DFF */ + { Script_Cyrillic, 0x2de0, 0x2dff, 0, 0}, + /* Cyrillic Extended-B: U+A640–U+A69F */ + { Script_Cyrillic, 0xa640, 0xa69f, 0, 0}, /* Modifier Tone Letters: U+A700–U+A71F */ /* Latin Extended-D: U+A720–U+A7FF */ { Script_Latin, 0xa700, 0xa7ff, 0, 0}, @@ -129,6 +136,8 @@ static const scriptData scriptInformation[] = { {LANG_DIVEHI, 0, 1, 0, 1, DEFAULT_CHARSET, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, {{Script_Greek, 0, 0, 0, 0, 0, 0, { 0,0,0,0,0,0,0,0,0,0,0}}, {LANG_GREEK, 0, 0, 0, 0, GREEK_CHARSET, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{Script_Cyrillic, 0, 0, 0, 0, 0, 0, { 0,0,0,0,0,0,0,0,0,0,0}}, + {LANG_RUSSIAN, 0, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, }; static const SCRIPT_PROPERTIES *script_props[] = @@ -139,7 +148,7 @@ static const SCRIPT_PROPERTIES *script_props[] = &scriptInformation[6].props, &scriptInformation[7].props, &scriptInformation[8].props, &scriptInformation[9].props, &scriptInformation[10].props, &scriptInformation[11].props, - &scriptInformation[12].props + &scriptInformation[12].props, &scriptInformation[13].props }; typedef struct { diff --git a/dlls/usp10/usp10_internal.h b/dlls/usp10/usp10_internal.h index 94699d9..436af4d 100644 --- a/dlls/usp10/usp10_internal.h +++ b/dlls/usp10/usp10_internal.h @@ -31,6 +31,7 @@ #define Script_Persian 10 #define Script_Thaana 11 #define Script_Greek 12 +#define Script_Cyrillic 13 #define GLYPH_BLOCK_SHIFT 8 #define GLYPH_BLOCK_SIZE (1UL << GLYPH_BLOCK_SHIFT)
1
0
0
0
Aric Stewart : usp10: Add Greek Script.
by Alexandre Julliard
24 Aug '10
24 Aug '10
Module: wine Branch: master Commit: 2701b8f97a98b0b66cfa947471a6a79e5833969c URL:
http://source.winehq.org/git/wine.git/?a=commit;h=2701b8f97a98b0b66cfa94747…
Author: Aric Stewart <aric(a)codeweavers.com> Date: Mon Aug 23 13:58:00 2010 -0500 usp10: Add Greek Script. --- dlls/usp10/shape.c | 1 + dlls/usp10/usp10.c | 9 ++++++++- dlls/usp10/usp10_internal.h | 1 + 3 files changed, 10 insertions(+), 1 deletions(-) diff --git a/dlls/usp10/shape.c b/dlls/usp10/shape.c index 3644069..9140453 100644 --- a/dlls/usp10/shape.c +++ b/dlls/usp10/shape.c @@ -306,6 +306,7 @@ static const ScriptShapeData ShapingData[] = {{ syriac_features, 4}, "syrc", ContextualShape_Syriac}, {{ arabic_features, 6}, "arab", ContextualShape_Arabic}, {{ NULL, 0}, "thaa", NULL}, + {{ standard_features, 2}, "grek", NULL}, }; static INT GSUB_is_glyph_covered(LPCVOID table , UINT glyph) diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c index d084bc0..93f33ea 100644 --- a/dlls/usp10/usp10.c +++ b/dlls/usp10/usp10.c @@ -56,6 +56,8 @@ static const scriptRange scriptRanges[] = { /* Latin Extended-B: U+0180–U+024F */ /* IPA Extensions: U+0250–U+02AF */ { Script_Latin, 0x00, 0x2af , Script_Numeric, Script_Punctuation}, + /* Greek: U+0370–U+03FF */ + { Script_Greek, 0x370, 0x3ff, 0, 0}, /* Hebrew: U+0590–U+05FF */ { Script_Hebrew, 0x590, 0x5ff, 0, 0}, /* Arabic: U+0600–U+06FF */ @@ -74,6 +76,8 @@ static const scriptRange scriptRanges[] = { { Script_Latin, 0x1d00, 0x1dbf, 0, 0}, /* Latin Extended Additional: U+1E00–U+1EFF */ { Script_Latin, 0x1e00, 0x1eff, 0, 0}, + /* Greek Extended: U+1F00–U+1FFF */ + { Script_Greek, 0x1f00, 0x1fff, 0, 0}, /* Latin Extended-C: U+2C60–U+2C7F */ { Script_Latin, 0x2c60, 0x2c7f, 0, 0}, /* Modifier Tone Letters: U+A700–U+A71F */ @@ -123,6 +127,8 @@ static const scriptData scriptInformation[] = { {LANG_PERSIAN, 1, 1, 0, 0, ARABIC_CHARSET, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, {{Script_Thaana, 1, 1, 0, 0, 0, 0, { 1,0,0,0,0,0,0,0,0,0,0}}, {LANG_DIVEHI, 0, 1, 0, 1, DEFAULT_CHARSET, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{Script_Greek, 0, 0, 0, 0, 0, 0, { 0,0,0,0,0,0,0,0,0,0,0}}, + {LANG_GREEK, 0, 0, 0, 0, GREEK_CHARSET, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, }; static const SCRIPT_PROPERTIES *script_props[] = @@ -132,7 +138,8 @@ static const SCRIPT_PROPERTIES *script_props[] = &scriptInformation[4].props, &scriptInformation[5].props, &scriptInformation[6].props, &scriptInformation[7].props, &scriptInformation[8].props, &scriptInformation[9].props, - &scriptInformation[10].props, &scriptInformation[11].props + &scriptInformation[10].props, &scriptInformation[11].props, + &scriptInformation[12].props }; typedef struct { diff --git a/dlls/usp10/usp10_internal.h b/dlls/usp10/usp10_internal.h index 6e05365..94699d9 100644 --- a/dlls/usp10/usp10_internal.h +++ b/dlls/usp10/usp10_internal.h @@ -30,6 +30,7 @@ #define Script_Syriac 9 #define Script_Persian 10 #define Script_Thaana 11 +#define Script_Greek 12 #define GLYPH_BLOCK_SHIFT 8 #define GLYPH_BLOCK_SIZE (1UL << GLYPH_BLOCK_SHIFT)
1
0
0
0
Aric Stewart : usp10: Add Thaana script.
by Alexandre Julliard
24 Aug '10
24 Aug '10
Module: wine Branch: master Commit: 2585d41eeb358b39ba06233bded1031a69ca59f2 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=2585d41eeb358b39ba06233bd…
Author: Aric Stewart <aric(a)codeweavers.com> Date: Mon Aug 23 13:57:52 2010 -0500 usp10: Add Thaana script. --- dlls/usp10/shape.c | 1 + dlls/usp10/usp10.c | 7 +++++-- dlls/usp10/usp10_internal.h | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/dlls/usp10/shape.c b/dlls/usp10/shape.c index cc0a3c0..3644069 100644 --- a/dlls/usp10/shape.c +++ b/dlls/usp10/shape.c @@ -305,6 +305,7 @@ static const ScriptShapeData ShapingData[] = {{ hebrew_features, 1}, "hebr", NULL}, {{ syriac_features, 4}, "syrc", ContextualShape_Syriac}, {{ arabic_features, 6}, "arab", ContextualShape_Arabic}, + {{ NULL, 0}, "thaa", NULL}, }; static INT GSUB_is_glyph_covered(LPCVOID table , UINT glyph) diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c index a601a02..d084bc0 100644 --- a/dlls/usp10/usp10.c +++ b/dlls/usp10/usp10.c @@ -50,7 +50,6 @@ typedef struct _scriptRange } scriptRange; static const scriptRange scriptRanges[] = { - /* Basic Latin: U+0000–U+007A */ /* Latin-1 Supplement: U+0080–U+00FF */ /* Latin Extended-A: U+0100–U+017F */ @@ -69,6 +68,8 @@ static const scriptRange scriptRanges[] = { { Script_Syriac, 0x700, 0x74f, 0, 0}, /* Arabic Supplement: U+0750–U+077F */ { Script_Arabic, 0x750, 0x77f, 0, 0}, + /* Thaana: U+0780–U+07BF */ + { Script_Thaana, 0x780, 0x7bf, 0, 0}, /* Phonetic Extensions: U+1D00–U+1DBF */ { Script_Latin, 0x1d00, 0x1dbf, 0, 0}, /* Latin Extended Additional: U+1E00–U+1EFF */ @@ -120,6 +121,8 @@ static const scriptData scriptInformation[] = { {LANG_SYRIAC, 0, 1, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 0, 1, 0, 0, 1, 0}}, {{Script_Persian, 1, 1, 0, 0, 0, 0, { 1,0,0,0,0,0,0,0,0,0,0}}, {LANG_PERSIAN, 1, 1, 0, 0, ARABIC_CHARSET, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, + {{Script_Thaana, 1, 1, 0, 0, 0, 0, { 1,0,0,0,0,0,0,0,0,0,0}}, + {LANG_DIVEHI, 0, 1, 0, 1, DEFAULT_CHARSET, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, }; static const SCRIPT_PROPERTIES *script_props[] = @@ -129,7 +132,7 @@ static const SCRIPT_PROPERTIES *script_props[] = &scriptInformation[4].props, &scriptInformation[5].props, &scriptInformation[6].props, &scriptInformation[7].props, &scriptInformation[8].props, &scriptInformation[9].props, - &scriptInformation[10].props + &scriptInformation[10].props, &scriptInformation[11].props }; typedef struct { diff --git a/dlls/usp10/usp10_internal.h b/dlls/usp10/usp10_internal.h index fe796b0..6e05365 100644 --- a/dlls/usp10/usp10_internal.h +++ b/dlls/usp10/usp10_internal.h @@ -29,6 +29,7 @@ #define Script_Hebrew 8 #define Script_Syriac 9 #define Script_Persian 10 +#define Script_Thaana 11 #define GLYPH_BLOCK_SHIFT 8 #define GLYPH_BLOCK_SIZE (1UL << GLYPH_BLOCK_SHIFT)
1
0
0
0
Austin English : d3d8/d3d9: Fix a compiler warning on non-i386/x86_64.
by Alexandre Julliard
24 Aug '10
24 Aug '10
Module: wine Branch: master Commit: 243771deb1347a8812841280d56ee9b88e7eac1e URL:
http://source.winehq.org/git/wine.git/?a=commit;h=243771deb1347a8812841280d…
Author: Austin English <austinenglish(a)gmail.com> Date: Mon Aug 23 11:36:57 2010 -0500 d3d8/d3d9: Fix a compiler warning on non-i386/x86_64. --- dlls/d3d8/device.c | 3 +-- dlls/d3d9/device.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c index c2dd948..f889564 100644 --- a/dlls/d3d8/device.c +++ b/dlls/d3d8/device.c @@ -2767,9 +2767,8 @@ static const IWineD3DDeviceParentVtbl d3d8_wined3d_device_parent_vtbl = static void setup_fpu(void) { - WORD cw; - #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) + WORD cw; __asm__ volatile ("fnstcw %0" : "=m" (cw)); cw = (cw & ~0xf3f) | 0x3f; __asm__ volatile ("fldcw %0" : : "m" (cw)); diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c index 9af042d..f5bcbaa 100644 --- a/dlls/d3d9/device.c +++ b/dlls/d3d9/device.c @@ -2835,9 +2835,8 @@ static const IWineD3DDeviceParentVtbl d3d9_wined3d_device_parent_vtbl = static void setup_fpu(void) { - WORD cw; - #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) + WORD cw; __asm__ volatile ("fnstcw %0" : "=m" (cw)); cw = (cw & ~0xf3f) | 0x3f; __asm__ volatile ("fldcw %0" : : "m" (cw));
1
0
0
0
Henri Verbeet : wined3d: Rename WINED3DFORMAT to wined3d_format_id.
by Alexandre Julliard
24 Aug '10
24 Aug '10
Module: wine Branch: master Commit: cc5271d1b78982cc0b7e7ee1395d530160680db6 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=cc5271d1b78982cc0b7e7ee13…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Mon Aug 23 18:28:10 2010 +0200 wined3d: Rename WINED3DFORMAT to wined3d_format_id. --- dlls/d3d10core/d3d10core_private.h | 4 +- dlls/d3d10core/device.c | 14 +++-- dlls/d3d10core/utils.c | 6 +- dlls/d3d8/d3d8_private.h | 13 ++--- dlls/d3d8/device.c | 22 ++++---- dlls/d3d8/vertexdeclaration.c | 2 +- dlls/d3d8/volume.c | 2 +- dlls/d3d9/d3d9_private.h | 8 ++-- dlls/d3d9/device.c | 20 ++++--- dlls/d3d9/vertexdeclaration.c | 2 +- dlls/d3d9/volume.c | 2 +- dlls/ddraw/ddraw.c | 26 +++++---- dlls/ddraw/ddraw_private.h | 4 +- dlls/ddraw/device.c | 12 ++-- dlls/ddraw/surface.c | 4 +- dlls/ddraw/utils.c | 16 +++--- dlls/dxgi/dxgi_private.h | 2 +- dlls/dxgi/output.c | 2 +- dlls/dxgi/utils.c | 2 +- dlls/wined3d/buffer.c | 8 ++-- dlls/wined3d/cubetexture.c | 8 ++-- dlls/wined3d/device.c | 18 +++--- dlls/wined3d/directx.c | 69 ++++++++++++++----------- dlls/wined3d/drawprim.c | 3 +- dlls/wined3d/surface.c | 9 ++-- dlls/wined3d/surface_base.c | 19 ++++--- dlls/wined3d/swapchain.c | 2 +- dlls/wined3d/texture.c | 6 +- dlls/wined3d/utils.c | 99 ++++++++++++++++++++---------------- dlls/wined3d/volume.c | 4 +- dlls/wined3d/volumetexture.c | 8 ++-- dlls/wined3d/wined3d_private.h | 31 ++++++------ include/wine/wined3d.idl | 68 ++++++++++++------------ 33 files changed, 272 insertions(+), 243 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=cc5271d1b78982cc0b7e7…
1
0
0
0
Henri Verbeet : wined3d: Pass floating point colors to IWineD3DDeviceImpl_ColorFill().
by Alexandre Julliard
24 Aug '10
24 Aug '10
Module: wine Branch: master Commit: 0df144164bea7f555bfba062ffada1780367d348 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=0df144164bea7f555bfba062f…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Mon Aug 23 18:28:09 2010 +0200 wined3d: Pass floating point colors to IWineD3DDeviceImpl_ColorFill(). --- dlls/d3d9/device.c | 13 +++++++++++-- dlls/wined3d/device.c | 19 +++++++++++-------- include/wine/wined3d.idl | 2 +- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c index b9f539e..76e1964 100644 --- a/dlls/d3d9/device.c +++ b/dlls/d3d9/device.c @@ -1007,7 +1007,16 @@ static HRESULT WINAPI IDirect3DDevice9Impl_StretchRect(IDirect3DDevice9Ex *iface return hr; } -static HRESULT WINAPI IDirect3DDevice9Impl_ColorFill(LPDIRECT3DDEVICE9EX iface, IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) { +static HRESULT WINAPI IDirect3DDevice9Impl_ColorFill(IDirect3DDevice9Ex *iface, + IDirect3DSurface9 *pSurface, const RECT *pRect, D3DCOLOR color) +{ + const WINED3DCOLORVALUE c = + { + ((color >> 16) & 0xff) / 255.0f, + ((color >> 8) & 0xff) / 255.0f, + (color & 0xff) / 255.0f, + ((color >> 24) & 0xff) / 255.0f, + }; IDirect3DDevice9Impl *This = (IDirect3DDevice9Impl *)iface; IDirect3DSurface9Impl *surface = (IDirect3DSurface9Impl *)pSurface; WINED3DPOOL pool; @@ -1036,7 +1045,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_ColorFill(LPDIRECT3DDEVICE9EX iface /* Colorfill can only be used on rendertarget surfaces, or offscreen plain surfaces in D3DPOOL_DEFAULT */ /* Note: D3DRECT is compatible with WINED3DRECT */ - hr = IWineD3DDevice_ColorFill(This->WineD3DDevice, surface->wineD3DSurface, (CONST WINED3DRECT*)pRect, color); + hr = IWineD3DDevice_ColorFill(This->WineD3DDevice, surface->wineD3DSurface, (const WINED3DRECT *)pRect, &c); wined3d_mutex_unlock(); diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index e528296..ba77888 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -1675,9 +1675,12 @@ static void IWineD3DDeviceImpl_LoadLogo(IWineD3DDeviceImpl *This, const char *fi colorkey.dwColorSpaceLowValue = 0; colorkey.dwColorSpaceHighValue = 0; IWineD3DSurface_SetColorKey(This->logo_surface, WINEDDCKEY_SRCBLT, &colorkey); - } else { + } + else + { + const WINED3DCOLORVALUE c = {1.0f, 1.0f, 1.0f, 1.0f}; /* Fill the surface with a white color to show that wined3d is there */ - IWineD3DDevice_ColorFill((IWineD3DDevice *) This, This->logo_surface, NULL, 0xffffffff); + IWineD3DDevice_ColorFill((IWineD3DDevice *)This, This->logo_surface, NULL, &c); } out: @@ -5494,14 +5497,14 @@ static HRESULT WINAPI IWineD3DDeviceImpl_DeletePatch(IWineD3DDevice *iface, UINT } static HRESULT WINAPI IWineD3DDeviceImpl_ColorFill(IWineD3DDevice *iface, - IWineD3DSurface *surface, const WINED3DRECT *pRect, WINED3DCOLOR color) + IWineD3DSurface *surface, const WINED3DRECT *pRect, const WINED3DCOLORVALUE *color) { - const WINED3DCOLORVALUE c = {D3DCOLOR_R(color), D3DCOLOR_G(color), D3DCOLOR_B(color), D3DCOLOR_A(color)}; IWineD3DSurfaceImpl *s = (IWineD3DSurfaceImpl *)surface; WINEDDBLTFX BltFx; - TRACE("iface %p, surface %p, rect %s, color 0x%08x.\n", - iface, surface, wine_dbgstr_rect((const RECT *)pRect), color); + TRACE("iface %p, surface %p, rect %s, color {%.8e, %.8e, %.8e, %.8e}.\n", + iface, surface, wine_dbgstr_rect((const RECT *)pRect), + color->r, color->g, color->b, color->a); if (s->resource.pool != WINED3DPOOL_DEFAULT && s->resource.pool != WINED3DPOOL_SYSTEMMEM) { @@ -5514,14 +5517,14 @@ static HRESULT WINAPI IWineD3DDeviceImpl_ColorFill(IWineD3DDevice *iface, const RECT draw_rect = {0, 0, s->currentDesc.Width, s->currentDesc.Height}; return device_clear_render_targets((IWineD3DDeviceImpl *)iface, 1, &s, - !!pRect, (const RECT *)pRect, &draw_rect, WINED3DCLEAR_TARGET, &c, 0.0f, 0); + !!pRect, (const RECT *)pRect, &draw_rect, WINED3DCLEAR_TARGET, color, 0.0f, 0); } else { /* Just forward this to the DirectDraw blitting engine */ memset(&BltFx, 0, sizeof(BltFx)); BltFx.dwSize = sizeof(BltFx); - BltFx.u5.dwFillColor = wined3d_format_convert_from_float(s->resource.format_desc, &c); + BltFx.u5.dwFillColor = wined3d_format_convert_from_float(s->resource.format_desc, color); return IWineD3DSurface_Blt(surface, (const RECT *)pRect, NULL, NULL, WINEDDBLT_COLORFILL, &BltFx, WINED3DTEXF_POINT); } diff --git a/include/wine/wined3d.idl b/include/wine/wined3d.idl index ea2f855..853c2d7 100644 --- a/include/wine/wined3d.idl +++ b/include/wine/wined3d.idl @@ -3376,7 +3376,7 @@ interface IWineD3DDevice : IWineD3DBase HRESULT ColorFill( [in] IWineD3DSurface *surface, [in] const WINED3DRECT *rect, - [in] WINED3DCOLOR color + [in] const WINED3DCOLORVALUE *color ); HRESULT UpdateTexture( [in] IWineD3DBaseTexture *src_texture,
1
0
0
0
Henri Verbeet : wined3d: Use floating point colors in the blitter' s color_fill functions.
by Alexandre Julliard
24 Aug '10
24 Aug '10
Module: wine Branch: master Commit: 50b5955288e4a661773cd8101eca6d14d6888855 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=50b5955288e4a661773cd8101…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Mon Aug 23 18:28:08 2010 +0200 wined3d: Use floating point colors in the blitter's color_fill functions. --- dlls/wined3d/arb_program_shader.c | 3 +- dlls/wined3d/surface.c | 96 +++++++++++++++++------------------- dlls/wined3d/wined3d_private.h | 3 +- 3 files changed, 49 insertions(+), 53 deletions(-) diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index db1f953..cc420d2 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -7172,7 +7172,8 @@ HRESULT arbfp_blit_surface(IWineD3DDeviceImpl *device, IWineD3DSurfaceImpl *src_ return WINED3D_OK; } -static HRESULT arbfp_blit_color_fill(IWineD3DDeviceImpl *device, IWineD3DSurfaceImpl *dst_surface, const RECT *dst_rect, DWORD fill_color) +static HRESULT arbfp_blit_color_fill(IWineD3DDeviceImpl *device, IWineD3DSurfaceImpl *dst_surface, + const RECT *dst_rect, const WINED3DCOLORVALUE *color) { FIXME("Color filling not implemented by arbfp_blit\n"); return WINED3DERR_INVALIDCALL; diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index c210fdf..23af293 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -984,58 +984,56 @@ void surface_add_dirty_rect(IWineD3DSurfaceImpl *surface, const RECT *dirty_rect } } -static BOOL surface_convert_color_to_argb(IWineD3DSurfaceImpl *This, DWORD color, DWORD *argb_color) +static BOOL surface_convert_color_to_float(IWineD3DSurfaceImpl *surface, DWORD color, WINED3DCOLORVALUE *float_color) { - IWineD3DDeviceImpl *device = This->resource.device; + const struct wined3d_format_desc *format = surface->resource.format_desc; + IWineD3DDeviceImpl *device = surface->resource.device; - switch(This->resource.format_desc->format) + switch (format->format) { case WINED3DFMT_P8_UINT: + if (surface->palette) { - DWORD alpha; - - if (primary_render_target_is_p8(device)) - alpha = color << 24; - else - alpha = 0xFF000000; - - if (This->palette) { - *argb_color = (alpha | - (This->palette->palents[color].peRed << 16) | - (This->palette->palents[color].peGreen << 8) | - (This->palette->palents[color].peBlue)); - } else { - *argb_color = alpha; - } + float_color->r = surface->palette->palents[color].peRed / 255.0f; + float_color->g = surface->palette->palents[color].peGreen / 255.0f; + float_color->b = surface->palette->palents[color].peBlue / 255.0f; } + else + { + float_color->r = 0.0f; + float_color->g = 0.0f; + float_color->b = 0.0f; + } + float_color->a = primary_render_target_is_p8(device) ? color / 255.0f : 1.0f; break; case WINED3DFMT_B5G6R5_UNORM: - { - if (color == 0xFFFF) { - *argb_color = 0xFFFFFFFF; - } else { - *argb_color = ((0xFF000000) | - ((color & 0xF800) << 8) | - ((color & 0x07E0) << 5) | - ((color & 0x001F) << 3)); - } - } + float_color->r = ((color >> 11) & 0x1f) / 31.0f; + float_color->g = ((color >> 5) & 0x3f) / 63.0f; + float_color->b = (color & 0x1f) / 31.0f; + float_color->a = 1.0f; break; case WINED3DFMT_B8G8R8_UNORM: case WINED3DFMT_B8G8R8X8_UNORM: - *argb_color = 0xFF000000 | color; + float_color->r = D3DCOLOR_R(color); + float_color->g = D3DCOLOR_G(color); + float_color->b = D3DCOLOR_B(color); + float_color->a = 1.0f; break; case WINED3DFMT_B8G8R8A8_UNORM: - *argb_color = color; + float_color->r = D3DCOLOR_R(color); + float_color->g = D3DCOLOR_G(color); + float_color->b = D3DCOLOR_B(color); + float_color->a = D3DCOLOR_A(color); break; default: - ERR("Unhandled conversion from %s to ARGB!\n", debug_d3dformat(This->resource.format_desc->format)); + ERR("Unhandled conversion from %s to floating point.\n", debug_d3dformat(format->format)); return FALSE; } + return TRUE; } @@ -3720,35 +3718,33 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface, surface_modify_location(dst_surface, SFLAG_INDRAWABLE, TRUE); return WINED3D_OK; - } else { + } + else + { /* Source-Less Blit to render target */ - if (Flags & WINEDDBLT_COLORFILL) { - DWORD color; + if (Flags & WINEDDBLT_COLORFILL) + { + WINED3DCOLORVALUE color; TRACE("Colorfill\n"); - /* The color as given in the Blt function is in the format of the frame-buffer... - * 'clear' expect it in ARGB format => we need to do some conversion :-) - */ - if (!surface_convert_color_to_argb(dst_surface, DDBltFx->u5.dwFillColor, &color)) - { - /* The color conversion function already prints an error, so need to do it here */ + /* The color as given in the Blt function is in the surface format. */ + if (!surface_convert_color_to_float(dst_surface, DDBltFx->u5.dwFillColor, &color)) return WINED3DERR_INVALIDCALL; - } if (ffp_blit.blit_supported(&device->adapter->gl_info, BLIT_OP_COLOR_FILL, NULL, 0, 0, NULL, &dst_rect, dst_surface->resource.usage, dst_surface->resource.pool, dst_surface->resource.format_desc)) { - return ffp_blit.color_fill(device, dst_surface, &dst_rect, color); + return ffp_blit.color_fill(device, dst_surface, &dst_rect, &color); } else if (cpu_blit.blit_supported(&device->adapter->gl_info, BLIT_OP_COLOR_FILL, NULL, 0, 0, NULL, &dst_rect, dst_surface->resource.usage, dst_surface->resource.pool, dst_surface->resource.format_desc)) { - return cpu_blit.color_fill(device, dst_surface, &dst_rect, color); + return cpu_blit.color_fill(device, dst_surface, &dst_rect, &color); } return WINED3DERR_INVALIDCALL; } @@ -4869,14 +4865,13 @@ static BOOL ffp_blit_supported(const struct wined3d_gl_info *gl_info, enum blit_ return FALSE; } -static HRESULT ffp_blit_color_fill(IWineD3DDeviceImpl *device, - IWineD3DSurfaceImpl *dst_surface, const RECT *dst_rect, DWORD color) +static HRESULT ffp_blit_color_fill(IWineD3DDeviceImpl *device, IWineD3DSurfaceImpl *dst_surface, + const RECT *dst_rect, const WINED3DCOLORVALUE *color) { - const WINED3DCOLORVALUE c = {D3DCOLOR_R(color), D3DCOLOR_G(color), D3DCOLOR_B(color), D3DCOLOR_A(color)}; const RECT draw_rect = {0, 0, dst_surface->currentDesc.Width, dst_surface->currentDesc.Height}; return device_clear_render_targets(device, 1 /* rt_count */, &dst_surface, 1 /* rect_count */, - dst_rect, &draw_rect, WINED3DCLEAR_TARGET, &c, 0.0f /* depth */, 0 /* stencil */); + dst_rect, &draw_rect, WINED3DCLEAR_TARGET, color, 0.0f /* depth */, 0 /* stencil */); } const struct blit_shader ffp_blit = { @@ -4923,15 +4918,14 @@ static BOOL cpu_blit_supported(const struct wined3d_gl_info *gl_info, enum blit_ return FALSE; } -static HRESULT cpu_blit_color_fill(IWineD3DDeviceImpl *device, - IWineD3DSurfaceImpl *dst_surface, const RECT *dst_rect, DWORD color) +static HRESULT cpu_blit_color_fill(IWineD3DDeviceImpl *device, IWineD3DSurfaceImpl *dst_surface, + const RECT *dst_rect, const WINED3DCOLORVALUE *color) { - const WINED3DCOLORVALUE c = {D3DCOLOR_R(color), D3DCOLOR_G(color), D3DCOLOR_B(color), D3DCOLOR_A(color)}; WINEDDBLTFX BltFx; memset(&BltFx, 0, sizeof(BltFx)); BltFx.dwSize = sizeof(BltFx); - BltFx.u5.dwFillColor = wined3d_format_convert_from_float(dst_surface->resource.format_desc, &c); + BltFx.u5.dwFillColor = wined3d_format_convert_from_float(dst_surface->resource.format_desc, color); return IWineD3DBaseSurfaceImpl_Blt((IWineD3DSurface*)dst_surface, dst_rect, NULL, NULL, WINEDDBLT_COLORFILL, &BltFx, WINED3DTEXF_POINT); } diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index c0ac388..a96dd90 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1143,7 +1143,8 @@ struct blit_shader BOOL (*blit_supported)(const struct wined3d_gl_info *gl_info, enum blit_operation blit_op, const RECT *src_rect, DWORD src_usage, WINED3DPOOL src_pool, const struct wined3d_format_desc *src_format_desc, const RECT *dst_rect, DWORD dst_usage, WINED3DPOOL dst_pool, const struct wined3d_format_desc *dst_format_desc); - HRESULT (*color_fill)(IWineD3DDeviceImpl *device, IWineD3DSurfaceImpl *dst_surface, const RECT *dst_rect, DWORD fill_color); + HRESULT (*color_fill)(IWineD3DDeviceImpl *device, IWineD3DSurfaceImpl *dst_surface, + const RECT *dst_rect, const WINED3DCOLORVALUE *color); }; extern const struct blit_shader ffp_blit DECLSPEC_HIDDEN;
1
0
0
0
Henri Verbeet : wined3d: Convert from floating point to specific surface formats.
by Alexandre Julliard
24 Aug '10
24 Aug '10
Module: wine Branch: master Commit: 9956ea70449907aaeee72b72e4b7f178ac876a68 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=9956ea70449907aaeee72b72e…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Mon Aug 23 18:28:07 2010 +0200 wined3d: Convert from floating point to specific surface formats. Instead of from WINED3DFMT_B8G8R8A8_UNORM. --- dlls/wined3d/device.c | 14 +++----------- dlls/wined3d/surface.c | 10 +++++++--- dlls/wined3d/utils.c | 30 +++++++++++++++++++----------- dlls/wined3d/wined3d_private.h | 5 ++--- 4 files changed, 31 insertions(+), 28 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index bb793cd..e528296 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -5496,6 +5496,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_DeletePatch(IWineD3DDevice *iface, UINT static HRESULT WINAPI IWineD3DDeviceImpl_ColorFill(IWineD3DDevice *iface, IWineD3DSurface *surface, const WINED3DRECT *pRect, WINED3DCOLOR color) { + const WINED3DCOLORVALUE c = {D3DCOLOR_R(color), D3DCOLOR_G(color), D3DCOLOR_B(color), D3DCOLOR_A(color)}; IWineD3DSurfaceImpl *s = (IWineD3DSurfaceImpl *)surface; WINEDDBLTFX BltFx; @@ -5510,7 +5511,6 @@ static HRESULT WINAPI IWineD3DDeviceImpl_ColorFill(IWineD3DDevice *iface, if (wined3d_settings.offscreen_rendering_mode == ORM_FBO) { - const WINED3DCOLORVALUE c = {D3DCOLOR_R(color), D3DCOLOR_G(color), D3DCOLOR_B(color), D3DCOLOR_A(color)}; const RECT draw_rect = {0, 0, s->currentDesc.Width, s->currentDesc.Height}; return device_clear_render_targets((IWineD3DDeviceImpl *)iface, 1, &s, @@ -5521,7 +5521,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_ColorFill(IWineD3DDevice *iface, /* Just forward this to the DirectDraw blitting engine */ memset(&BltFx, 0, sizeof(BltFx)); BltFx.dwSize = sizeof(BltFx); - BltFx.u5.dwFillColor = color_convert_argb_to_fmt(color, s->resource.format_desc->format); + BltFx.u5.dwFillColor = wined3d_format_convert_from_float(s->resource.format_desc, &c); return IWineD3DSurface_Blt(surface, (const RECT *)pRect, NULL, NULL, WINEDDBLT_COLORFILL, &BltFx, WINED3DTEXF_POINT); } @@ -5560,19 +5560,11 @@ static void WINAPI IWineD3DDeviceImpl_ClearRendertargetView(IWineD3DDevice *ifac else { WINEDDBLTFX BltFx; - WINED3DCOLOR c; - - WARN("Converting to WINED3DCOLOR, this might give incorrect results\n"); - - c = ((DWORD)(color->b * 255.0f)); - c |= ((DWORD)(color->g * 255.0f)) << 8; - c |= ((DWORD)(color->r * 255.0f)) << 16; - c |= ((DWORD)(color->a * 255.0f)) << 24; /* Just forward this to the DirectDraw blitting engine */ memset(&BltFx, 0, sizeof(BltFx)); BltFx.dwSize = sizeof(BltFx); - BltFx.u5.dwFillColor = color_convert_argb_to_fmt(c, surface->resource.format_desc->format); + BltFx.u5.dwFillColor = wined3d_format_convert_from_float(surface->resource.format_desc, color); hr = IWineD3DSurface_Blt((IWineD3DSurface *)surface, NULL, NULL, NULL, WINEDDBLT_COLORFILL, &BltFx, WINED3DTEXF_POINT); if (FAILED(hr)) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 06893ee..c210fdf 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -4923,13 +4923,17 @@ static BOOL cpu_blit_supported(const struct wined3d_gl_info *gl_info, enum blit_ return FALSE; } -static HRESULT cpu_blit_color_fill(IWineD3DDeviceImpl *device, IWineD3DSurfaceImpl *dst_surface, const RECT *dst_rect, DWORD fill_color) +static HRESULT cpu_blit_color_fill(IWineD3DDeviceImpl *device, + IWineD3DSurfaceImpl *dst_surface, const RECT *dst_rect, DWORD color) { + const WINED3DCOLORVALUE c = {D3DCOLOR_R(color), D3DCOLOR_G(color), D3DCOLOR_B(color), D3DCOLOR_A(color)}; WINEDDBLTFX BltFx; + memset(&BltFx, 0, sizeof(BltFx)); BltFx.dwSize = sizeof(BltFx); - BltFx.u5.dwFillColor = color_convert_argb_to_fmt(fill_color, dst_surface->resource.format_desc->format); - return IWineD3DBaseSurfaceImpl_Blt((IWineD3DSurface*)dst_surface, dst_rect, NULL, NULL, WINEDDBLT_COLORFILL, &BltFx, WINED3DTEXF_POINT); + BltFx.u5.dwFillColor = wined3d_format_convert_from_float(dst_surface->resource.format_desc, &c); + return IWineD3DBaseSurfaceImpl_Blt((IWineD3DSurface*)dst_surface, dst_rect, + NULL, NULL, WINEDDBLT_COLORFILL, &BltFx, WINED3DTEXF_POINT); } const struct blit_shader cpu_blit = { diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c index e3a0cb6..b6d7eab 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c @@ -2532,25 +2532,33 @@ BOOL getDepthStencilBits(const struct wined3d_format_desc *format_desc, short *d return TRUE; } -DWORD color_convert_argb_to_fmt(DWORD color, WINED3DFORMAT destfmt) +DWORD wined3d_format_convert_from_float(const struct wined3d_format_desc *format, const WINED3DCOLORVALUE *color) { + WINED3DFORMAT destfmt = format->format; unsigned int r, g, b, a; DWORD ret; - if (destfmt == WINED3DFMT_B8G8R8A8_UNORM - || destfmt == WINED3DFMT_B8G8R8X8_UNORM - || destfmt == WINED3DFMT_B8G8R8_UNORM) - return color; + TRACE("Converting color {%.8e %.8e %.8e %.8e} to format %s.\n", + color->r, color->g, color->b, color->a, debug_d3dformat(destfmt)); - TRACE("Converting color %08x to format %s\n", color, debug_d3dformat(destfmt)); - - a = (color & 0xff000000) >> 24; - r = (color & 0x00ff0000) >> 16; - g = (color & 0x0000ff00) >> 8; - b = (color & 0x000000ff) >> 0; + r = (DWORD)((color->r * 255.0f) + 0.5f); + g = (DWORD)((color->g * 255.0f) + 0.5f); + b = (DWORD)((color->b * 255.0f) + 0.5f); + a = (DWORD)((color->a * 255.0f) + 0.5f); switch(destfmt) { + case WINED3DFMT_B8G8R8A8_UNORM: + case WINED3DFMT_B8G8R8X8_UNORM: + case WINED3DFMT_B8G8R8_UNORM: + ret = b; + ret |= g << 8; + ret |= r << 16; + ret |= a << 24; + TRACE("Returning 0x%08x.\n", ret); + return ret; + + case WINED3DFMT_B5G6R5_UNORM: if(r == 0xff && g == 0xff && b == 0xff) return 0xffff; r = (r * 32) / 256; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index ecb426c..c0ac388 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2620,9 +2620,6 @@ const char *debug_d3dtop(WINED3DTEXTUREOP d3dtop) DECLSPEC_HIDDEN; void dump_color_fixup_desc(struct color_fixup_desc fixup) DECLSPEC_HIDDEN; const char *debug_surflocation(DWORD flag) DECLSPEC_HIDDEN; -/* Color conversion routines */ -DWORD color_convert_argb_to_fmt(DWORD color, WINED3DFORMAT destfmt) DECLSPEC_HIDDEN; - /* Routines for GL <-> D3D values */ GLenum StencilOp(DWORD op) DECLSPEC_HIDDEN; GLenum CompareFunc(DWORD func) DECLSPEC_HIDDEN; @@ -2998,6 +2995,8 @@ const struct wined3d_format_desc *getFormatDescEntry(WINED3DFORMAT fmt, const struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN; UINT wined3d_format_calculate_size(const struct wined3d_format_desc *format, UINT alignment, UINT width, UINT height) DECLSPEC_HIDDEN; +DWORD wined3d_format_convert_from_float(const struct wined3d_format_desc *format, + const WINED3DCOLORVALUE *color) DECLSPEC_HIDDEN; static inline BOOL use_vs(IWineD3DStateBlockImpl *stateblock) {
1
0
0
0
Henri Verbeet : wined3d: Explicitly pass the draw rect to device_clear_render_targets().
by Alexandre Julliard
24 Aug '10
24 Aug '10
Module: wine Branch: master Commit: a455a918c15ace9ac382df00cd4b0fae77802fec URL:
http://source.winehq.org/git/wine.git/?a=commit;h=a455a918c15ace9ac382df00c…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Mon Aug 23 18:28:06 2010 +0200 wined3d: Explicitly pass the draw rect to device_clear_render_targets(). For regular clears this is the intersection of the viewport and scissor rectangles, but color fills shouldn't be affected by those. --- dlls/wined3d/device.c | 34 +++++++++++++++++++--------------- dlls/wined3d/surface.c | 3 ++- dlls/wined3d/wined3d_private.h | 6 +++--- 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index defcceb..bb793cd 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -655,8 +655,8 @@ static void prepare_ds_clear(IWineD3DSurfaceImpl *ds, struct wined3d_context *co } HRESULT device_clear_render_targets(IWineD3DDeviceImpl *device, UINT rt_count, IWineD3DSurfaceImpl **rts, - UINT rect_count, const WINED3DRECT *rects, DWORD flags, const WINED3DCOLORVALUE *color, - float depth, DWORD stencil) + UINT rect_count, const RECT *rects, const RECT *draw_rect, DWORD flags, + const WINED3DCOLORVALUE *color, float depth, DWORD stencil) { const RECT *clear_rect = (rect_count > 0 && rects) ? (const RECT *)rects : NULL; IWineD3DSurfaceImpl *depth_stencil = device->depth_stencil; @@ -665,9 +665,6 @@ HRESULT device_clear_render_targets(IWineD3DDeviceImpl *device, UINT rt_count, I struct wined3d_context *context; GLbitfield clear_mask = 0; unsigned int i; - RECT draw_rect; - - device_get_draw_rect(device, &draw_rect); /* When we're clearing parts of the drawable, make sure that the target surface is well up to date in the * drawable. After the clear we'll mark the drawable up to date, so we have to make sure that this is true @@ -677,7 +674,7 @@ HRESULT device_clear_render_targets(IWineD3DDeviceImpl *device, UINT rt_count, I * anyway. If we're not clearing the color buffer we don't have to copy either since we're not going to set * the drawable up to date. We have to check all settings that limit the clear area though. Do not bother * checking all this if the dest surface is in the drawable anyway. */ - if (flags & WINED3DCLEAR_TARGET && !is_full_clear(target, &draw_rect, clear_rect)) + if (flags & WINED3DCLEAR_TARGET && !is_full_clear(target, draw_rect, clear_rect)) { for (i = 0; i < rt_count; ++i) { @@ -720,7 +717,7 @@ HRESULT device_clear_render_targets(IWineD3DDeviceImpl *device, UINT rt_count, I if (location == SFLAG_DS_ONSCREEN && depth_stencil != device->onscreen_depth_stencil) device_switch_onscreen_ds(device, context, depth_stencil); - prepare_ds_clear(depth_stencil, context, location, &draw_rect, rect_count, clear_rect); + prepare_ds_clear(depth_stencil, context, location, draw_rect, rect_count, clear_rect); surface_modify_location(depth_stencil, SFLAG_INDRAWABLE, TRUE); glDepthMask(GL_TRUE); @@ -751,13 +748,13 @@ HRESULT device_clear_render_targets(IWineD3DDeviceImpl *device, UINT rt_count, I { if (context->render_offscreen) { - glScissor(draw_rect.left, draw_rect.top, - draw_rect.right - draw_rect.left, draw_rect.bottom - draw_rect.top); + glScissor(draw_rect->left, draw_rect->top, + draw_rect->right - draw_rect->left, draw_rect->bottom - draw_rect->top); } else { - glScissor(draw_rect.left, drawable_height - draw_rect.bottom, - draw_rect.right - draw_rect.left, draw_rect.bottom - draw_rect.top); + glScissor(draw_rect->left, drawable_height - draw_rect->bottom, + draw_rect->right - draw_rect->left, draw_rect->bottom - draw_rect->top); } checkGLcall("glScissor"); glClear(clear_mask); @@ -771,7 +768,7 @@ HRESULT device_clear_render_targets(IWineD3DDeviceImpl *device, UINT rt_count, I for (i = 0; i < rect_count; ++i) { /* Note that GL uses lower left, width/height. */ - IntersectRect(¤t_rect, &draw_rect, &clear_rect[i]); + IntersectRect(¤t_rect, draw_rect, &clear_rect[i]); TRACE("clear_rect[%u] %s, current_rect %s.\n", i, wine_dbgstr_rect(&clear_rect[i]), @@ -4581,6 +4578,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Clear(IWineD3DDevice *iface, DWORD Coun { const WINED3DCOLORVALUE c = {D3DCOLOR_R(color), D3DCOLOR_G(color), D3DCOLOR_B(color), D3DCOLOR_A(color)}; IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; + RECT draw_rect; TRACE("(%p) Count (%d), pRects (%p), Flags (%x), color (0x%08x), Z (%f), Stencil (%d)\n", This, Count, pRects, Flags, color, Z, Stencil); @@ -4592,8 +4590,11 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Clear(IWineD3DDevice *iface, DWORD Coun return WINED3DERR_INVALIDCALL; } + device_get_draw_rect(This, &draw_rect); + return device_clear_render_targets(This, This->adapter->gl_info.limits.buffers, - This->render_targets, Count, pRects, Flags, &c, Z, Stencil); + This->render_targets, Count, (const RECT *)pRects, &draw_rect, Flags, + &c, Z, Stencil); } /***** @@ -5510,9 +5511,10 @@ static HRESULT WINAPI IWineD3DDeviceImpl_ColorFill(IWineD3DDevice *iface, if (wined3d_settings.offscreen_rendering_mode == ORM_FBO) { const WINED3DCOLORVALUE c = {D3DCOLOR_R(color), D3DCOLOR_G(color), D3DCOLOR_B(color), D3DCOLOR_A(color)}; + const RECT draw_rect = {0, 0, s->currentDesc.Width, s->currentDesc.Height}; return device_clear_render_targets((IWineD3DDeviceImpl *)iface, 1, &s, - !!pRect, pRect, WINED3DCLEAR_TARGET, &c, 0.0f, 0); + !!pRect, (const RECT *)pRect, &draw_rect, WINED3DCLEAR_TARGET, &c, 0.0f, 0); } else { @@ -5550,8 +5552,10 @@ static void WINAPI IWineD3DDeviceImpl_ClearRendertargetView(IWineD3DDevice *ifac if (wined3d_settings.offscreen_rendering_mode == ORM_FBO) { + const RECT draw_rect = {0, 0, surface->currentDesc.Width, surface->currentDesc.Height}; + device_clear_render_targets((IWineD3DDeviceImpl *)iface, 1, &surface, - 0, NULL, WINED3DCLEAR_TARGET, color, 0.0f, 0); + 0, NULL, &draw_rect, WINED3DCLEAR_TARGET, color, 0.0f, 0); } else { diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 7aab4ff..06893ee 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -4873,9 +4873,10 @@ static HRESULT ffp_blit_color_fill(IWineD3DDeviceImpl *device, IWineD3DSurfaceImpl *dst_surface, const RECT *dst_rect, DWORD color) { const WINED3DCOLORVALUE c = {D3DCOLOR_R(color), D3DCOLOR_G(color), D3DCOLOR_B(color), D3DCOLOR_A(color)}; + const RECT draw_rect = {0, 0, dst_surface->currentDesc.Width, dst_surface->currentDesc.Height}; return device_clear_render_targets(device, 1 /* rt_count */, &dst_surface, 1 /* rect_count */, - (const WINED3DRECT *)dst_rect, WINED3DCLEAR_TARGET, &c, 0.0f /* depth */, 0 /* stencil */); + dst_rect, &draw_rect, WINED3DCLEAR_TARGET, &c, 0.0f /* depth */, 0 /* stencil */); } const struct blit_shader ffp_blit = { diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index cfb6e71..ecb426c 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1688,9 +1688,9 @@ struct IWineD3DDeviceImpl struct WineD3DRectPatch *currentPatch; }; -HRESULT device_clear_render_targets(IWineD3DDeviceImpl *device, - UINT rt_count, IWineD3DSurfaceImpl **rts, UINT rect_count, const WINED3DRECT *rects, - DWORD flags, const WINED3DCOLORVALUE *color, float depth, DWORD stencil) DECLSPEC_HIDDEN; +HRESULT device_clear_render_targets(IWineD3DDeviceImpl *device, UINT rt_count, IWineD3DSurfaceImpl **rts, + UINT rect_count, const RECT *rects, const RECT *draw_rect, DWORD flags, + const WINED3DCOLORVALUE *color, float depth, DWORD stencil) DECLSPEC_HIDDEN; BOOL device_context_add(IWineD3DDeviceImpl *device, struct wined3d_context *context) DECLSPEC_HIDDEN; void device_context_remove(IWineD3DDeviceImpl *device, struct wined3d_context *context) DECLSPEC_HIDDEN; void device_get_draw_rect(IWineD3DDeviceImpl *device, RECT *rect) DECLSPEC_HIDDEN;
1
0
0
0
André Hentschel : winhlp32: Update translations.
by Alexandre Julliard
24 Aug '10
24 Aug '10
Module: wine Branch: master Commit: ba56392b921f610317ecb438d63e724af3f17bdf URL:
http://source.winehq.org/git/wine.git/?a=commit;h=ba56392b921f610317ecb438d…
Author: André Hentschel <nerv(a)dawncrow.de> Date: Mon Aug 23 19:16:20 2010 +0200 winhlp32: Update translations. --- programs/winhlp32/Bg.rc | 4 ++-- programs/winhlp32/Cs.rc | 4 ++-- programs/winhlp32/De.rc | 4 ++-- programs/winhlp32/Eo.rc | 4 ++-- programs/winhlp32/Es.rc | 4 ++-- programs/winhlp32/Fi.rc | 4 ++-- programs/winhlp32/Hu.rc | 4 ++-- programs/winhlp32/Ja.rc | 4 ++-- programs/winhlp32/Pl.rc | 4 ++-- programs/winhlp32/Pt.rc | 8 ++++---- programs/winhlp32/Rm.rc | 2 +- programs/winhlp32/Ru.rc | 2 +- programs/winhlp32/Si.rc | 4 ++-- programs/winhlp32/Sk.rc | 4 ++-- programs/winhlp32/Tr.rc | 4 ++-- programs/winhlp32/Wa.rc | 4 ++-- programs/winhlp32/Zh.rc | 8 ++++---- programs/winhlp32/winhelp.c | 2 +- 18 files changed, 37 insertions(+), 37 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=ba56392b921f610317ecb…
1
0
0
0
← Newer
1
...
27
28
29
30
31
32
33
...
89
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
80
81
82
83
84
85
86
87
88
89
Results per page:
10
25
50
100
200