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
February 2019
----- 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
1 participants
672 discussions
Start a n
N
ew thread
Józef Kucia : tests: Add test for SV_RenderTargetArrayIndex in pixel shader.
by Alexandre Julliard
26 Feb '19
26 Feb '19
Module: vkd3d Branch: master Commit: 9eebb38e5686fff01dfaa2f4d1b94343cb83c9bb URL:
https://source.winehq.org/git/vkd3d.git/?a=commit;h=9eebb38e5686fff01dfaa2f…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Tue Feb 26 12:27:53 2019 +0100 tests: Add test for SV_RenderTargetArrayIndex in pixel shader. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- tests/d3d12.c | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 150 insertions(+), 4 deletions(-) diff --git a/tests/d3d12.c b/tests/d3d12.c index 7e74fbf..d8a13a7 100644 --- a/tests/d3d12.c +++ b/tests/d3d12.c @@ -21633,7 +21633,6 @@ static void test_layered_rendering(void) D3D12_VERTEX_BUFFER_VIEW vbv; struct test_context context; ID3D12CommandQueue *queue; - ID3D12PipelineState *pso; ID3D12Device *device; ID3D12Resource *vb; HRESULT hr; @@ -21794,7 +21793,7 @@ static void test_layered_rendering(void) context.render_target_desc.Format, &vs, &ps, &input_layout); pso_desc.GS = gs; hr = ID3D12Device_CreateGraphicsPipelineState(device, &pso_desc, - &IID_ID3D12PipelineState, (void **)&pso); + &IID_ID3D12PipelineState, (void **)&context.pipeline_state); ok(hr == S_OK, "Failed to create graphics pipeline state, hr %#x.\n", hr); vb = create_upload_buffer(context.device, sizeof(vertices), vertices); @@ -21808,7 +21807,7 @@ static void test_layered_rendering(void) ID3D12GraphicsCommandList_RSSetScissorRects(command_list, 1, &context.scissor_rect); ID3D12GraphicsCommandList_RSSetViewports(command_list, 1, &context.viewport); ID3D12GraphicsCommandList_SetGraphicsRootSignature(command_list, context.root_signature); - ID3D12GraphicsCommandList_SetPipelineState(command_list, pso); + ID3D12GraphicsCommandList_SetPipelineState(command_list, context.pipeline_state); ID3D12GraphicsCommandList_IASetPrimitiveTopology(command_list, D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); ID3D12GraphicsCommandList_IASetVertexBuffers(command_list, 0, 1, &vbv); ID3D12GraphicsCommandList_DrawInstanced(command_list, 12, 1, 0, 0); @@ -21825,7 +21824,153 @@ static void test_layered_rendering(void) check_sub_resource_uint(context.render_target, 3, queue, command_list, 0xffffff00, 0); ID3D12Resource_Release(vb); - ID3D12PipelineState_Release(pso); + destroy_test_context(&context); +} + +static void test_ps_layer(void) +{ + D3D12_GRAPHICS_PIPELINE_STATE_DESC pso_desc; + ID3D12GraphicsCommandList *command_list; + struct test_context_desc desc; + struct test_context context; + ID3D12CommandQueue *queue; + ID3D12Device *device; + unsigned int i; + HRESULT hr; + + static const float white[] = {1.0f, 1.0f, 1.0f, 1.0f}; + static const DWORD vs_code[] = + { +#if 0 + void main(in uint vertex_id : SV_VertexID, out uint layer : LAYER) + { + layer = vertex_id; + } +#endif + 0x43425844, 0xd2b4abd8, 0xf9adf7df, 0xed1b4eb0, 0x4bf54391, 0x00000001, 0x000000d8, 0x00000003, + 0x0000002c, 0x00000060, 0x00000090, 0x4e475349, 0x0000002c, 0x00000001, 0x00000008, 0x00000020, + 0x00000000, 0x00000006, 0x00000001, 0x00000000, 0x00000101, 0x565f5653, 0x65747265, 0x00444978, + 0x4e47534f, 0x00000028, 0x00000001, 0x00000008, 0x00000020, 0x00000000, 0x00000000, 0x00000001, + 0x00000000, 0x00000e01, 0x4559414c, 0xabab0052, 0x58454853, 0x00000040, 0x00010050, 0x00000010, + 0x0100086a, 0x04000060, 0x00101012, 0x00000000, 0x00000006, 0x03000065, 0x00102012, 0x00000000, + 0x05000036, 0x00102012, 0x00000000, 0x0010100a, 0x00000000, 0x0100003e, + }; + static const D3D12_SHADER_BYTECODE vs = {vs_code, sizeof(vs_code)}; + static const DWORD gs_code[] = + { +#if 0 + struct gs_in + { + uint layer : LAYER; + }; + + struct gs_out + { + float4 position : SV_Position; + uint layer : SV_RenderTargetArrayIndex; + }; + + [maxvertexcount(3)] + void main(point gs_in vin[1], inout TriangleStream<gs_out> vout) + { + gs_out o; + + o.layer = vin[0].layer; + + o.position = float4(-1, 1, 0, 1); + vout.Append(o); + + o.position = float4(3, 1, 0, 1); + vout.Append(o); + + o.position = float4(-1, -3, 0, 1); + vout.Append(o); + } +#endif + 0x43425844, 0x2589d822, 0x7557587c, 0x7d7e9cc0, 0x6bad86aa, 0x00000001, 0x000001fc, 0x00000003, + 0x0000002c, 0x0000005c, 0x000000cc, 0x4e475349, 0x00000028, 0x00000001, 0x00000008, 0x00000020, + 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000101, 0x4559414c, 0xabab0052, 0x3547534f, + 0x00000068, 0x00000002, 0x00000008, 0x00000000, 0x00000040, 0x00000000, 0x00000001, 0x00000003, + 0x00000000, 0x0000000f, 0x00000000, 0x0000004c, 0x00000000, 0x00000004, 0x00000001, 0x00000001, + 0x00000e01, 0x505f5653, 0x7469736f, 0x006e6f69, 0x525f5653, 0x65646e65, 0x72615472, 0x41746567, + 0x79617272, 0x65646e49, 0xabab0078, 0x58454853, 0x00000128, 0x00020050, 0x0000004a, 0x0100086a, + 0x0400005f, 0x00201012, 0x00000001, 0x00000000, 0x0100085d, 0x0300008f, 0x00110000, 0x00000000, + 0x0100285c, 0x04000067, 0x001020f2, 0x00000000, 0x00000001, 0x04000067, 0x00102012, 0x00000001, + 0x00000004, 0x0200005e, 0x00000003, 0x08000036, 0x001020f2, 0x00000000, 0x00004002, 0xbf800000, + 0x3f800000, 0x00000000, 0x3f800000, 0x06000036, 0x00102012, 0x00000001, 0x0020100a, 0x00000000, + 0x00000000, 0x03000075, 0x00110000, 0x00000000, 0x08000036, 0x001020f2, 0x00000000, 0x00004002, + 0x40400000, 0x3f800000, 0x00000000, 0x3f800000, 0x06000036, 0x00102012, 0x00000001, 0x0020100a, + 0x00000000, 0x00000000, 0x03000075, 0x00110000, 0x00000000, 0x08000036, 0x001020f2, 0x00000000, + 0x00004002, 0xbf800000, 0xc0400000, 0x00000000, 0x3f800000, 0x06000036, 0x00102012, 0x00000001, + 0x0020100a, 0x00000000, 0x00000000, 0x03000075, 0x00110000, 0x00000000, 0x0100003e, + }; + static const D3D12_SHADER_BYTECODE gs = {gs_code, sizeof(gs_code)}; + static const DWORD ps_code[] = + { +#if 0 + float4 main(float4 p : SV_Position, uint layer : SV_RenderTargetArrayIndex) : SV_Target0 + { + return layer / 255.0; + } +#endif + 0x43425844, 0x53474926, 0xbd247b84, 0x389660f4, 0x331cf598, 0x00000001, 0x00000140, 0x00000003, + 0x0000002c, 0x00000094, 0x000000c8, 0x4e475349, 0x00000060, 0x00000002, 0x00000008, 0x00000038, + 0x00000000, 0x00000001, 0x00000003, 0x00000000, 0x0000000f, 0x00000044, 0x00000000, 0x00000004, + 0x00000001, 0x00000001, 0x00000101, 0x505f5653, 0x7469736f, 0x006e6f69, 0x525f5653, 0x65646e65, + 0x72615472, 0x41746567, 0x79617272, 0x65646e49, 0xabab0078, 0x4e47534f, 0x0000002c, 0x00000001, + 0x00000008, 0x00000020, 0x00000000, 0x00000000, 0x00000003, 0x00000000, 0x0000000f, 0x545f5653, + 0x65677261, 0xabab0074, 0x58454853, 0x00000070, 0x00000050, 0x0000001c, 0x0100086a, 0x04000864, + 0x00101012, 0x00000001, 0x00000004, 0x03000065, 0x001020f2, 0x00000000, 0x02000068, 0x00000001, + 0x05000056, 0x00100012, 0x00000000, 0x0010100a, 0x00000001, 0x0a000038, 0x001020f2, 0x00000000, + 0x00100006, 0x00000000, 0x00004002, 0x3b808081, 0x3b808081, 0x3b808081, 0x3b808081, 0x0100003e, + }; + static const D3D12_SHADER_BYTECODE ps = {ps_code, sizeof(ps_code)}; + static const unsigned int expected_results[] = + { + 0x00000000, + 0x01010101, + 0x02020202, + 0x03030303, + 0x04040404, + 0x05050505, + }; + + memset(&desc, 0, sizeof(desc)); + desc.rt_array_size = 6; + desc.no_pipeline = true; + if (!init_test_context(&context, &desc)) + return; + device = context.device; + command_list = context.list; + queue = context.queue; + + init_pipeline_state_desc(&pso_desc, context.root_signature, + context.render_target_desc.Format, &vs, &ps, NULL); + pso_desc.GS = gs; + pso_desc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT; + hr = ID3D12Device_CreateGraphicsPipelineState(device, &pso_desc, + &IID_ID3D12PipelineState, (void **)&context.pipeline_state); + ok(hr == S_OK, "Failed to create graphics pipeline state, hr %#x.\n", hr); + + ID3D12GraphicsCommandList_ClearRenderTargetView(command_list, context.rtv, white, 0, NULL); + + ID3D12GraphicsCommandList_OMSetRenderTargets(command_list, 1, &context.rtv, FALSE, NULL); + ID3D12GraphicsCommandList_RSSetScissorRects(command_list, 1, &context.scissor_rect); + ID3D12GraphicsCommandList_RSSetViewports(command_list, 1, &context.viewport); + ID3D12GraphicsCommandList_SetGraphicsRootSignature(command_list, context.root_signature); + ID3D12GraphicsCommandList_SetPipelineState(command_list, context.pipeline_state); + ID3D12GraphicsCommandList_IASetPrimitiveTopology(command_list, D3D_PRIMITIVE_TOPOLOGY_POINTLIST); + ID3D12GraphicsCommandList_DrawInstanced(command_list, 6, 1, 0, 0); + + transition_resource_state(command_list, context.render_target, + D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_COPY_SOURCE); + + for (i = 0; i < ARRAY_SIZE(expected_results); ++i) + { + check_sub_resource_uint(context.render_target, i, queue, command_list, expected_results[i], 0); + reset_command_list(command_list, context.allocator); + } + destroy_test_context(&context); } @@ -25108,6 +25253,7 @@ START_TEST(d3d12) run_test(test_multithread_command_queue_exec); run_test(test_geometry_shader); run_test(test_layered_rendering); + run_test(test_ps_layer); run_test(test_nop_tessellation_shaders); run_test(test_quad_tessellation); run_test(test_tessellation_dcl_index_range);
1
0
0
0
Alistair Leslie-Hughes : oleaut32: Correctly get the Grouping separator.
by Alexandre Julliard
25 Feb '19
25 Feb '19
Module: wine Branch: master Commit: f784cabd3489b20c13afd80fddbbcf5aa1b656b3 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=f784cabd3489b20c13afd80f…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Sun Feb 24 07:00:35 2019 +0000 oleaut32: Correctly get the Grouping separator. LOCALE_SGROUPING allows for 10 characters including the null. Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/oleaut32/varformat.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dlls/oleaut32/varformat.c b/dlls/oleaut32/varformat.c index 91b3c16..757c4f9 100644 --- a/dlls/oleaut32/varformat.c +++ b/dlls/oleaut32/varformat.c @@ -2284,9 +2284,9 @@ HRESULT WINAPI VarFormatNumber(LPVARIANT pVarIn, INT nDigits, INT nLeading, INT if (nGrouping == -2) { - WCHAR grouping[16]; + WCHAR grouping[10]; grouping[2] = '\0'; - GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, grouping, ARRAY_SIZE(grouping)); + GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SGROUPING, grouping, ARRAY_SIZE(grouping)); numfmt.Grouping = grouping[2] == '2' ? 32 : grouping[0] - '0'; } else if (nGrouping == -1) @@ -2460,9 +2460,9 @@ HRESULT WINAPI VarFormatCurrency(LPVARIANT pVarIn, INT nDigits, INT nLeading, if (nGrouping == -2) { - WCHAR grouping[16]; + WCHAR grouping[10]; grouping[2] = '\0'; - GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, grouping, ARRAY_SIZE(grouping)); + GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SGROUPING, grouping, ARRAY_SIZE(grouping)); numfmt.Grouping = grouping[2] == '2' ? 32 : grouping[0] - '0'; } else if (nGrouping == -1)
1
0
0
0
Alistair Leslie-Hughes : oleaut32: Correctly get the thousands separator in VarFormatCurrency.
by Alexandre Julliard
25 Feb '19
25 Feb '19
Module: wine Branch: master Commit: 1a842d18c9980154667d2d00d2ae2153c1ee173e URL:
https://source.winehq.org/git/wine.git/?a=commit;h=1a842d18c9980154667d2d00…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Sun Feb 24 07:00:34 2019 +0000 oleaut32: Correctly get the thousands separator in VarFormatCurrency. LOCALE_STHOUSAND allows for 4 chracters including the NULL. Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/oleaut32/varformat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/oleaut32/varformat.c b/dlls/oleaut32/varformat.c index d6ce4a9..91b3c16 100644 --- a/dlls/oleaut32/varformat.c +++ b/dlls/oleaut32/varformat.c @@ -2443,7 +2443,7 @@ HRESULT WINAPI VarFormatCurrency(LPVARIANT pVarIn, INT nDigits, INT nLeading, if (SUCCEEDED(hRet)) { - WCHAR buff[256], decimal[8], thousands[8], currency[13]; + WCHAR buff[256], decimal[8], thousands[4], currency[13]; CURRENCYFMTW numfmt; if (nDigits < 0) @@ -2482,7 +2482,7 @@ HRESULT WINAPI VarFormatCurrency(LPVARIANT pVarIn, INT nDigits, INT nLeading, numfmt.lpDecimalSep = decimal; GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, decimal, ARRAY_SIZE(decimal)); numfmt.lpThousandSep = thousands; - GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, thousands, ARRAY_SIZE(thousands)); + GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, thousands, ARRAY_SIZE(thousands)); numfmt.lpCurrencySymbol = currency; GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SCURRENCY, currency, ARRAY_SIZE(currency));
1
0
0
0
Alistair Leslie-Hughes : oleaut32: Correctly get the Currency separator in VarFormatCurrency.
by Alexandre Julliard
25 Feb '19
25 Feb '19
Module: wine Branch: master Commit: 29cf8ee8ab54f35def5b4c5ed7d155b730bf901e URL:
https://source.winehq.org/git/wine.git/?a=commit;h=29cf8ee8ab54f35def5b4c5e…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Sun Feb 24 07:00:32 2019 +0000 oleaut32: Correctly get the Currency separator in VarFormatCurrency. LOCALE_SCURRENCY allows for 13 chracters including the NULL. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=46442
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/oleaut32/varformat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/oleaut32/varformat.c b/dlls/oleaut32/varformat.c index 470ea4e..d6ce4a9 100644 --- a/dlls/oleaut32/varformat.c +++ b/dlls/oleaut32/varformat.c @@ -2443,7 +2443,7 @@ HRESULT WINAPI VarFormatCurrency(LPVARIANT pVarIn, INT nDigits, INT nLeading, if (SUCCEEDED(hRet)) { - WCHAR buff[256], decimal[8], thousands[8], currency[8]; + WCHAR buff[256], decimal[8], thousands[8], currency[13]; CURRENCYFMTW numfmt; if (nDigits < 0) @@ -2484,7 +2484,7 @@ HRESULT WINAPI VarFormatCurrency(LPVARIANT pVarIn, INT nDigits, INT nLeading, numfmt.lpThousandSep = thousands; GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, thousands, ARRAY_SIZE(thousands)); numfmt.lpCurrencySymbol = currency; - GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, currency, ARRAY_SIZE(currency)); + GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SCURRENCY, currency, ARRAY_SIZE(currency)); /* use NLS as per VarFormatNumber() */ if (GetCurrencyFormatW(LOCALE_USER_DEFAULT, 0, V_BSTR(&vStr), &numfmt, buff, ARRAY_SIZE(buff)))
1
0
0
0
Józef Kucia : d3d11: Use better name for current entry variable in validate_stream_output_entries ().
by Alexandre Julliard
25 Feb '19
25 Feb '19
Module: wine Branch: master Commit: 5661e29008cab32138cd1f1154e8ea301845022e URL:
https://source.winehq.org/git/wine.git/?a=commit;h=5661e29008cab32138cd1f11…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Mon Feb 25 13:24:14 2019 +0100 d3d11: Use better name for current entry variable in validate_stream_output_entries(). Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d11/shader.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/dlls/d3d11/shader.c b/dlls/d3d11/shader.c index 9a4f1a8..2276dd7 100644 --- a/dlls/d3d11/shader.c +++ b/dlls/d3d11/shader.c @@ -961,53 +961,53 @@ static HRESULT validate_stream_output_entries(const D3D11_SO_DECLARATION_ENTRY * for (i = 0; i < entry_count; ++i) { - const D3D11_SO_DECLARATION_ENTRY *f = &entries[i]; + const D3D11_SO_DECLARATION_ENTRY *e = &entries[i]; TRACE("Stream: %u, semantic: %s, semantic idx: %u, start component: %u, " "component count %u, output slot %u.\n", - f->Stream, debugstr_a(f->SemanticName), f->SemanticIndex, - f->StartComponent, f->ComponentCount, f->OutputSlot); + e->Stream, debugstr_a(e->SemanticName), e->SemanticIndex, + e->StartComponent, e->ComponentCount, e->OutputSlot); - if (f->Stream >= D3D11_SO_STREAM_COUNT) + if (e->Stream >= D3D11_SO_STREAM_COUNT) { - WARN("Invalid stream %u.\n", f->Stream); + WARN("Invalid stream %u.\n", e->Stream); return E_INVALIDARG; } - if (f->Stream && feature_level < D3D_FEATURE_LEVEL_11_0) + if (e->Stream && feature_level < D3D_FEATURE_LEVEL_11_0) { - WARN("Invalid stream %u for feature level %#x.\n", f->Stream, feature_level); + WARN("Invalid stream %u for feature level %#x.\n", e->Stream, feature_level); return E_INVALIDARG; } - if (f->Stream) + if (e->Stream) { FIXME("Streams not implemented yet.\n"); return E_INVALIDARG; } - if (f->OutputSlot >= D3D11_SO_BUFFER_SLOT_COUNT) + if (e->OutputSlot >= D3D11_SO_BUFFER_SLOT_COUNT) { - WARN("Invalid output slot %u.\n", f->OutputSlot); + WARN("Invalid output slot %u.\n", e->OutputSlot); return E_INVALIDARG; } - if (!f->SemanticName) + if (!e->SemanticName) { - if (f->SemanticIndex) + if (e->SemanticIndex) { - WARN("Invalid semantic idx %u for stream output gap.\n", f->SemanticIndex); + WARN("Invalid semantic idx %u for stream output gap.\n", e->SemanticIndex); return E_INVALIDARG; } - if (f->StartComponent || !f->ComponentCount) + if (e->StartComponent || !e->ComponentCount) { - WARN("Invalid stream output gap %u-%u.\n", f->StartComponent, f->ComponentCount); + WARN("Invalid stream output gap %u-%u.\n", e->StartComponent, e->ComponentCount); return E_INVALIDARG; } } else { - if (f->StartComponent > 3 || f->ComponentCount > 4 || !f->ComponentCount - || f->StartComponent + f->ComponentCount > 4) + if (e->StartComponent > 3 || e->ComponentCount > 4 || !e->ComponentCount + || e->StartComponent + e->ComponentCount > 4) { - WARN("Invalid component range %u-%u.\n", f->StartComponent, f->ComponentCount); + WARN("Invalid component range %u-%u.\n", e->StartComponent, e->ComponentCount); return E_INVALIDARG; } }
1
0
0
0
Józef Kucia : wined3d: Add new registry setting to select shader backend.
by Alexandre Julliard
25 Feb '19
25 Feb '19
Module: wine Branch: master Commit: 27399aa665005da65ec820682409009d70327746 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=27399aa665005da65ec82068…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Mon Feb 25 13:24:13 2019 +0100 wined3d: Add new registry setting to select shader backend. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wined3d/adapter_gl.c | 16 +++++++++++----- dlls/wined3d/wined3d_main.c | 31 +++++++++++++++++++++++++------ dlls/wined3d/wined3d_private.h | 10 +++++++++- 3 files changed, 45 insertions(+), 12 deletions(-) diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index acfed24..803ebda 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -1983,22 +1983,28 @@ static const struct fragment_pipeline *select_fragment_implementation(const stru static const struct wined3d_shader_backend_ops *select_shader_backend(const struct wined3d_gl_info *gl_info) { - BOOL glsl = wined3d_settings.use_glsl && gl_info->glsl_version >= MAKEDWORD_VERSION(1, 20); - if (!gl_info->supported[WINED3D_GL_LEGACY_CONTEXT] && !wined3d_settings.use_glsl) + BOOL glsl = wined3d_settings.shader_backend == WINED3D_SHADER_BACKEND_AUTO + || wined3d_settings.shader_backend == WINED3D_SHADER_BACKEND_GLSL; + BOOL arb = wined3d_settings.shader_backend == WINED3D_SHADER_BACKEND_AUTO + || wined3d_settings.shader_backend == WINED3D_SHADER_BACKEND_ARB; + + if (!gl_info->supported[WINED3D_GL_LEGACY_CONTEXT] && !glsl) { - ERR_(winediag)("Ignoring the UseGLSL registry key. " + ERR_(winediag)("Ignoring the shader backend registry key. " "GLSL is the only shader backend available on core profile contexts. " "You need to explicitly set GL version to use legacy contexts.\n"); glsl = TRUE; } + glsl = glsl && gl_info->glsl_version >= MAKEDWORD_VERSION(1, 20); + if (glsl && gl_info->supported[ARB_VERTEX_SHADER] && gl_info->supported[ARB_FRAGMENT_SHADER]) return &glsl_shader_backend; - if (gl_info->supported[ARB_VERTEX_PROGRAM] && gl_info->supported[ARB_FRAGMENT_PROGRAM]) + if (arb && gl_info->supported[ARB_VERTEX_PROGRAM] && gl_info->supported[ARB_FRAGMENT_PROGRAM]) return &arb_program_shader_backend; if (glsl && (gl_info->supported[ARB_VERTEX_SHADER] || gl_info->supported[ARB_FRAGMENT_SHADER])) return &glsl_shader_backend; - if (gl_info->supported[ARB_VERTEX_PROGRAM] || gl_info->supported[ARB_FRAGMENT_PROGRAM]) + if (arb && (gl_info->supported[ARB_VERTEX_PROGRAM] || gl_info->supported[ARB_FRAGMENT_PROGRAM])) return &arb_program_shader_backend; return &none_shader_backend; } diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c index ca83d0a..1b64d2c 100644 --- a/dlls/wined3d/wined3d_main.c +++ b/dlls/wined3d/wined3d_main.c @@ -74,7 +74,6 @@ struct wined3d_settings wined3d_settings = { TRUE, /* Multithreaded CS by default. */ MAKEDWORD_VERSION(4, 4), /* Default to OpenGL 4.4 */ - TRUE, /* Use of GLSL enabled by default */ ORM_FBO, /* Use FBOs to do offscreen rendering */ PCI_VENDOR_NONE,/* PCI Vendor ID */ PCI_DEVICE_NONE,/* PCI Device ID */ @@ -90,6 +89,7 @@ struct wined3d_settings wined3d_settings = ~0U, /* No PS shader model limit by default. */ ~0u, /* No CS shader model limit by default. */ FALSE, /* 3D support enabled by default. */ + WINED3D_SHADER_BACKEND_AUTO, }; struct wined3d * CDECL wined3d_create(DWORD flags) @@ -218,14 +218,33 @@ static BOOL wined3d_dll_init(HINSTANCE hInstDLL) tmpvalue >> 16, tmpvalue & 0xffff); wined3d_settings.max_gl_version = tmpvalue; } - if ( !get_config_key( hkey, appkey, "UseGLSL", buffer, size) ) + if (!get_config_key(hkey, appkey, "ShaderBackend", buffer, size)) { - if (!strcmp(buffer,"disabled")) + if (!strcasecmp(buffer, "glsl")) { - ERR_(winediag)("The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks.\n"); - TRACE("Use of GL Shading Language disabled.\n"); - wined3d_settings.use_glsl = FALSE; + ERR_(winediag)("Using the GLSL shader backend.\n"); + wined3d_settings.shader_backend = WINED3D_SHADER_BACKEND_GLSL; } + else if (!strcasecmp(buffer, "arb")) + { + ERR_(winediag)("Using the ARB shader backend.\n"); + wined3d_settings.shader_backend = WINED3D_SHADER_BACKEND_ARB; + } + else if (!strcasecmp(buffer, "none")) + { + ERR_(winediag)("Disabling shader backends.\n"); + wined3d_settings.shader_backend = WINED3D_SHADER_BACKEND_NONE; + } + } + else if (!get_config_key(hkey, appkey, "UseGLSL", buffer, size) && !strcmp(buffer, "disabled")) + { + wined3d_settings.shader_backend = WINED3D_SHADER_BACKEND_ARB; + } + if (wined3d_settings.shader_backend == WINED3D_SHADER_BACKEND_ARB + || wined3d_settings.shader_backend == WINED3D_SHADER_BACKEND_NONE) + { + ERR_(winediag)("The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks.\n"); + TRACE("Use of GL Shading Language disabled.\n"); } if (!get_config_key(hkey, appkey, "OffscreenRenderingMode", buffer, size) && !strcmp(buffer,"backbuffer")) diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index cd49789..b3f3847 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -375,13 +375,20 @@ static inline void wined3d_pause(void) #define PCI_VENDOR_NONE 0xffff /* e.g. 0x8086 for Intel and 0x10de for Nvidia */ #define PCI_DEVICE_NONE 0xffff /* e.g. 0x14f for a Geforce6200 */ +enum wined3d_shader_backend +{ + WINED3D_SHADER_BACKEND_AUTO, + WINED3D_SHADER_BACKEND_GLSL, + WINED3D_SHADER_BACKEND_ARB, + WINED3D_SHADER_BACKEND_NONE, +}; + /* NOTE: When adding fields to this structure, make sure to update the default * values in wined3d_main.c as well. */ struct wined3d_settings { unsigned int cs_multithreaded; DWORD max_gl_version; - BOOL use_glsl; int offscreen_rendering_mode; unsigned short pci_vendor_id; unsigned short pci_device_id; @@ -398,6 +405,7 @@ struct wined3d_settings unsigned int max_sm_ps; unsigned int max_sm_cs; BOOL no_3d; + enum wined3d_shader_backend shader_backend; }; extern struct wined3d_settings wined3d_settings DECLSPEC_HIDDEN;
1
0
0
0
Zebediah Figura : msvcr120: Add nexttoward implementation.
by Alexandre Julliard
25 Feb '19
25 Feb '19
Module: wine Branch: master Commit: 28e74af742f984d58d293e6bc6e4d09b5c3fa844 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=28e74af742f984d58d293e6b…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Sat Feb 23 14:46:46 2019 -0600 msvcr120: Add nexttoward implementation. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=45631
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- configure | 2 + configure.ac | 2 + .../api-ms-win-crt-math-l1-1-0.spec | 6 +- dlls/msvcr120/msvcr120.spec | 6 +- dlls/msvcr120/tests/msvcr120.c | 89 ++++++++++++++++++++++ dlls/msvcr120_app/msvcr120_app.spec | 6 +- dlls/msvcrt/math.c | 38 +++++++++ dlls/ucrtbase/ucrtbase.spec | 6 +- include/config.h.in | 6 ++ 9 files changed, 149 insertions(+), 12 deletions(-) diff --git a/configure b/configure index fa50a3c..793e2ff 100755 --- a/configure +++ b/configure @@ -18717,6 +18717,8 @@ for ac_func in \ lroundf \ nearbyint \ nearbyintf \ + nexttoward \ + nexttowardf \ powl \ remainder \ remainderf \ diff --git a/configure.ac b/configure.ac index c661837..c978477 100644 --- a/configure.ac +++ b/configure.ac @@ -2762,6 +2762,8 @@ AC_CHECK_FUNCS(\ lroundf \ nearbyint \ nearbyintf \ + nexttoward \ + nexttowardf \ powl \ remainder \ remainderf \ diff --git a/dlls/api-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec b/dlls/api-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec index 0d645e5..f5e4fb1 100644 --- a/dlls/api-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec +++ b/dlls/api-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec @@ -297,9 +297,9 @@ @ cdecl nextafter(double double) ucrtbase.nextafter @ cdecl nextafterf(float float) ucrtbase.nextafterf @ cdecl nextafterl(double double) ucrtbase.nextafterl -@ stub nexttoward -@ stub nexttowardf -@ stub nexttowardl +@ cdecl nexttoward(double double) ucrtbase.nexttoward +@ cdecl nexttowardf(float double) ucrtbase.nexttowardf +@ cdecl nexttowardl(double double) ucrtbase.nexttowardl @ stub norm @ stub normf @ stub norml diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 769ee50..7dfcabf 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -2302,9 +2302,9 @@ @ cdecl nextafter(double double) MSVCRT__nextafter @ cdecl nextafterf(float float) MSVCRT__nextafterf @ cdecl nextafterl(double double) MSVCRT__nextafter -@ stub nexttoward -@ stub nexttowardf -@ stub nexttowardl +@ cdecl nexttoward(double double) MSVCRT_nexttoward +@ cdecl nexttowardf(float double) MSVCRT_nexttowardf +@ cdecl nexttowardl(double double) MSVCRT_nexttoward @ stub norm @ stub normf @ stub norml diff --git a/dlls/msvcr120/tests/msvcr120.c b/dlls/msvcr120/tests/msvcr120.c index 79b667e..3077a18 100644 --- a/dlls/msvcr120/tests/msvcr120.c +++ b/dlls/msvcr120/tests/msvcr120.c @@ -127,6 +127,16 @@ static inline float __port_nan(void) } #define NAN __port_nan() +static inline int isnormal(double d) +{ + return _fpclass(d) & (_FPCLASS_PN | _FPCLASS_NN); +} + +static inline int isinf(double d) +{ + return _fpclass(d) & (_FPCLASS_PINF | _FPCLASS_NINF); +} + struct MSVCRT_lconv { char* decimal_point; @@ -192,6 +202,9 @@ static unsigned short (__cdecl *p_wctype)(const char*); static int (__cdecl *p_vsscanf)(const char*, const char *, __ms_va_list valist); static _Dcomplex* (__cdecl *p__Cbuild)(_Dcomplex*, double, double); static double (__cdecl *p_creal)(_Dcomplex); +static double (__cdecl *p_nexttoward)(double, double); +static float (__cdecl *p_nexttowardf)(float, double); +static double (__cdecl *p_nexttowardl)(double, double); /* make sure we use the correct errno */ #undef errno @@ -252,6 +265,9 @@ static BOOL init(void) SET(p_vsscanf, "vsscanf"); SET(p__Cbuild, "_Cbuild"); SET(p_creal, "creal"); + SET(p_nexttoward, "nexttoward"); + SET(p_nexttowardf, "nexttowardf"); + SET(p_nexttowardl, "nexttowardl"); if(sizeof(void*) == 8) { /* 64-bit initialization */ SET(p_critical_section_ctor, "??0critical_section@Concurrency@@QEAA@XZ"); @@ -964,6 +980,78 @@ static void test__Cbuild(void) ok(d == 3.0, "creal returned %lf\n", d); } +static void test_nexttoward(void) +{ + errno_t e; + double d; + float f; + int i; + + struct + { + double source; + double dir; + float f; + double d; + } + tests[] = + { + {0.0, 0.0, 0.0f, 0.0}, + {0.0, 1.0, 1.0e-45f, 5.0e-324}, + {0.0, -1.0, -1.0e-45f, -5.0e-324}, + {2.2250738585072009e-308, 0.0, 0.0f, 2.2250738585072004e-308}, + {2.2250738585072009e-308, 2.2250738585072010e-308, 1.0e-45f, 2.2250738585072009e-308}, + {2.2250738585072009e-308, 1.0, 1.0e-45f, 2.2250738585072014e-308}, + {2.2250738585072014e-308, 0.0, 0.0f, 2.2250738585072009e-308}, + {2.2250738585072014e-308, 2.2250738585072014e-308, 1.0e-45f, 2.2250738585072014e-308}, + {2.2250738585072014e-308, 1.0, 1.0e-45f, 2.2250738585072019e-308}, + {1.0, 2.0, 1.00000012f, 1.0000000000000002}, + {1.0, 0.0, 0.99999994f, 0.9999999999999999}, + {1.0, 1.0, 1.0f, 1.0}, + {0.0, INFINITY, 1.0e-45f, 5.0e-324}, + {FLT_MAX, INFINITY, INFINITY, 3.402823466385289e+038}, + {DBL_MAX, INFINITY, INFINITY, INFINITY}, + {INFINITY, INFINITY, INFINITY, INFINITY}, + {INFINITY, 0, FLT_MAX, DBL_MAX}, + }; + + for (i = 0; i < ARRAY_SIZE(tests); ++i) + { + f = p_nexttowardf(tests[i].source, tests[i].dir); + ok(f == tests[i].f, "Test %d: expected %0.8ef, got %0.8ef.\n", i, tests[i].f, f); + + errno = -1; + d = p_nexttoward(tests[i].source, tests[i].dir); + e = errno; + ok(d == tests[i].d, "Test %d: expected %0.16e, got %0.16e.\n", i, tests[i].d, d); + if (!isnormal(d) && !isinf(tests[i].source)) + ok(e == ERANGE, "Test %d: expected ERANGE, got %d.\n", i, e); + else + ok(e == -1, "Test %d: expected no error, got %d.\n", i, e); + + d = p_nexttowardl(tests[i].source, tests[i].dir); + ok(d == tests[i].d, "Test %d: expected %0.16e, got %0.16e.\n", i, tests[i].d, d); + } + + errno = -1; + d = p_nexttoward(NAN, 0); + e = errno; + ok(_isnan(d), "Expected NAN, got %0.16e.\n", d); + ok(e == -1, "Expected no error, got %d.\n", e); + + errno = -1; + d = p_nexttoward(NAN, NAN); + e = errno; + ok(_isnan(d), "Expected NAN, got %0.16e.\n", d); + ok(e == -1, "Expected no error, got %d.\n", e); + + errno = -1; + d = p_nexttoward(0, NAN); + e = errno; + ok(_isnan(d), "Expected NAN, got %0.16e.\n", d); + ok(e == -1, "Expected no error, got %d.\n", e); +} + START_TEST(msvcr120) { if (!init()) return; @@ -983,4 +1071,5 @@ START_TEST(msvcr120) test_wctype(); test_vsscanf(); test__Cbuild(); + test_nexttoward(); } diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index e3323dd..d78d26f 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -1965,9 +1965,9 @@ @ cdecl nextafter(double double) msvcr120.nextafter @ cdecl nextafterf(float float) msvcr120.nextafterf @ cdecl nextafterl(double double) msvcr120.nextafterl -@ stub nexttoward -@ stub nexttowardf -@ stub nexttowardl +@ cdecl nexttoward(double double) msvcr120.nexttoward +@ cdecl nexttowardf(float double) msvcr120.nexttowardf +@ cdecl nexttowardl(double double) msvcr120.nexttowardl @ stub norm @ stub normf @ stub norml diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c index d4785d3..dc12cb1 100644 --- a/dlls/msvcrt/math.c +++ b/dlls/msvcrt/math.c @@ -1529,6 +1529,44 @@ float CDECL MSVCRT_nearbyintf(float num) #endif } +/********************************************************************* + * nexttoward (MSVCR120.@) + */ +double CDECL MSVCRT_nexttoward(double num, double next) +{ +#ifdef HAVE_NEXTTOWARD + double ret = nexttoward(num, next); + if (!(MSVCRT__fpclass(ret) & (MSVCRT__FPCLASS_PN | MSVCRT__FPCLASS_NN + | MSVCRT__FPCLASS_SNAN | MSVCRT__FPCLASS_QNAN)) && !isinf(num)) + { + *MSVCRT__errno() = MSVCRT_ERANGE; + } + return ret; +#else + FIXME("not implemented\n"); + return 0; +#endif +} + +/********************************************************************* + * nexttowardf (MSVCR120.@) + */ +float CDECL MSVCRT_nexttowardf(float num, double next) +{ +#ifdef HAVE_NEXTTOWARDF + float ret = nexttowardf(num, next); + if (!(MSVCRT__fpclass(ret) & (MSVCRT__FPCLASS_PN | MSVCRT__FPCLASS_NN + | MSVCRT__FPCLASS_SNAN | MSVCRT__FPCLASS_QNAN)) && !isinf(num)) + { + *MSVCRT__errno() = MSVCRT_ERANGE; + } + return ret; +#else + FIXME("not implemented\n"); + return 0; +#endif +} + #endif /* _MSVCR_VER>=120 */ /********************************************************************* diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index eb08843..00c8064 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -2438,9 +2438,9 @@ @ cdecl nextafter(double double) MSVCRT__nextafter @ cdecl nextafterf(float float) MSVCRT__nextafterf @ cdecl nextafterl(double double) MSVCRT__nextafter -@ stub nexttoward -@ stub nexttowardf -@ stub nexttowardl +@ cdecl nexttoward(double double) MSVCRT_nexttoward +@ cdecl nexttowardf(float double) MSVCRT_nexttowardf +@ cdecl nexttowardl(double double) MSVCRT_nexttoward @ stub norm @ stub normf @ stub norml diff --git a/include/config.h.in b/include/config.h.in index 0c99a8c..149e8b1 100644 --- a/include/config.h.in +++ b/include/config.h.in @@ -696,6 +696,12 @@ /* Define to 1 if you have the <net/route.h> header file. */ #undef HAVE_NET_ROUTE_H +/* Define to 1 if you have the `nexttoward' function. */ +#undef HAVE_NEXTTOWARD + +/* Define to 1 if you have the `nexttowardf' function. */ +#undef HAVE_NEXTTOWARDF + /* Define to 1 if `_msg_ptr' is a member of `ns_msg'. */ #undef HAVE_NS_MSG__MSG_PTR
1
0
0
0
Sven Baars : dsound: Add missing SetEventHandle error handling (Coverity).
by Alexandre Julliard
25 Feb '19
25 Feb '19
Module: wine Branch: master Commit: 9689d6e29efbf209d5f3c88b5a6252a07d274662 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=9689d6e29efbf209d5f3c88b…
Author: Sven Baars <sven.wine(a)gmail.com> Date: Fri Feb 22 14:03:13 2019 +0100 dsound: Add missing SetEventHandle error handling (Coverity). Signed-off-by: Sven Baars <sven.wine(a)gmail.com> Signed-off-by: Andrew Eikum <aeikum(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/dsound/primary.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dlls/dsound/primary.c b/dlls/dsound/primary.c index a30fc5e..9f41a2b4 100644 --- a/dlls/dsound/primary.c +++ b/dlls/dsound/primary.c @@ -319,7 +319,11 @@ HRESULT DSOUND_ReopenDevice(DirectSoundDevice *device, BOOL forcewave) return hres; } - IAudioClient_SetEventHandle(client, device->sleepev); + hres = IAudioClient_SetEventHandle(client, device->sleepev); + if (FAILED(hres)) { + WARN("SetEventHandle failed: %08x\n", hres); + goto err; + } hres = IAudioClient_GetService(client, &IID_IAudioRenderClient, (void**)&render); if(FAILED(hres))
1
0
0
0
Nikolay Sivov : usp10: Use single path for all fonts in ScriptGetCMap().
by Alexandre Julliard
25 Feb '19
25 Feb '19
Module: wine Branch: master Commit: df4aaff7a3832c040611e6152b6431ac853371a5 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=df4aaff7a3832c040611e615…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Fri Feb 22 15:52:48 2019 +0300 usp10: Use single path for all fonts in ScriptGetCMap(). Testing tmPitchAndFamily bitmask does not tell if font has mappings defined. Besides that, GetGlyphIndices() handles bitmap system fonts exactly the same way alternate path did. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=46678
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Aric Stewart <aric(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/usp10/usp10.c | 45 +++++++++++++++------------------------------ 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c index abc2605..0a26996 100644 --- a/dlls/usp10/usp10.c +++ b/dlls/usp10/usp10.c @@ -3544,42 +3544,27 @@ HRESULT WINAPI ScriptGetCMap(HDC hdc, SCRIPT_CACHE *psc, const WCHAR *pwcInChars hr = S_OK; - if ((get_cache_pitch_family(psc) & TMPF_TRUETYPE)) + for (i = 0; i < cChars; i++) { - for (i = 0; i < cChars; i++) + WCHAR inChar; + if (dwFlags == SGCM_RTL) + inChar = mirror_char(pwcInChars[i]); + else + inChar = pwcInChars[i]; + if (!(pwOutGlyphs[i] = get_cache_glyph(psc, inChar))) { - WCHAR inChar; - if (dwFlags == SGCM_RTL) - inChar = mirror_char(pwcInChars[i]); - else - inChar = pwcInChars[i]; - if (!(pwOutGlyphs[i] = get_cache_glyph(psc, inChar))) + WORD glyph; + if (!hdc) return E_PENDING; + if (GetGlyphIndicesW(hdc, &inChar, 1, &glyph, GGI_MARK_NONEXISTING_GLYPHS) == GDI_ERROR) return S_FALSE; + if (glyph == 0xffff) { - WORD glyph; - if (!hdc) return E_PENDING; - if (GetGlyphIndicesW(hdc, &inChar, 1, &glyph, GGI_MARK_NONEXISTING_GLYPHS) == GDI_ERROR) return S_FALSE; - if (glyph == 0xffff) - { - hr = S_FALSE; - glyph = 0x0; - } - pwOutGlyphs[i] = set_cache_glyph(psc, inChar, glyph); + hr = S_FALSE; + glyph = 0x0; } + pwOutGlyphs[i] = set_cache_glyph(psc, inChar, glyph); } } - else - { - TRACE("no glyph translation\n"); - for (i = 0; i < cChars; i++) - { - WCHAR inChar; - if (dwFlags == SGCM_RTL) - inChar = mirror_char(pwcInChars[i]); - else - inChar = pwcInChars[i]; - pwOutGlyphs[i] = inChar; - } - } + return hr; }
1
0
0
0
Alistair Leslie-Hughes : kernel32: Correct GetCurrencyFormatW/ A spec entries.
by Alexandre Julliard
25 Feb '19
25 Feb '19
Module: wine Branch: master Commit: 941e4f54414e328eec2022bb6f553a6f5ba89093 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=941e4f54414e328eec2022bb…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Sun Feb 24 07:00:07 2019 +0000 kernel32: Correct GetCurrencyFormatW/A spec entries. Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- .../api-ms-win-core-localization-l2-1-0.spec | 2 +- dlls/kernel32/kernel32.spec | 4 ++-- dlls/kernelbase/kernelbase.spec | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dlls/api-ms-win-core-localization-l2-1-0/api-ms-win-core-localization-l2-1-0.spec b/dlls/api-ms-win-core-localization-l2-1-0/api-ms-win-core-localization-l2-1-0.spec index ba319c9..75fdc07 100644 --- a/dlls/api-ms-win-core-localization-l2-1-0/api-ms-win-core-localization-l2-1-0.spec +++ b/dlls/api-ms-win-core-localization-l2-1-0/api-ms-win-core-localization-l2-1-0.spec @@ -8,5 +8,5 @@ @ stdcall EnumTimeFormatsEx(ptr wstr long long) kernel32.EnumTimeFormatsEx @ stdcall EnumTimeFormatsW(ptr long long) kernel32.EnumTimeFormatsW @ stdcall GetCurrencyFormatEx(wstr long wstr ptr ptr long) kernel32.GetCurrencyFormatEx -@ stdcall GetCurrencyFormatW(long long str ptr str long) kernel32.GetCurrencyFormatW +@ stdcall GetCurrencyFormatW(long long wstr ptr ptr long) kernel32.GetCurrencyFormatW @ stdcall GetNumberFormatEx(wstr long wstr ptr ptr long) kernel32.GetNumberFormatEx diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index ae7bc88..d925431 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -618,9 +618,9 @@ @ stdcall GetConsoleTitleA(ptr long) @ stdcall GetConsoleTitleW(ptr long) @ stdcall GetConsoleWindow() -@ stdcall GetCurrencyFormatA(long long str ptr str long) +@ stdcall GetCurrencyFormatA(long long str ptr ptr long) @ stdcall GetCurrencyFormatEx(wstr long wstr ptr ptr long) -@ stdcall GetCurrencyFormatW(long long str ptr str long) +@ stdcall GetCurrencyFormatW(long long wstr ptr ptr long) @ stdcall GetCurrentActCtx(ptr) @ stdcall GetCurrentConsoleFont(long long ptr) # @ stub GetCurrentConsoleFontEx diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec index 45b375c..0b19212 100644 --- a/dlls/kernelbase/kernelbase.spec +++ b/dlls/kernelbase/kernelbase.spec @@ -449,7 +449,7 @@ @ stdcall GetConsoleScreenBufferInfoEx(long ptr) kernel32.GetConsoleScreenBufferInfoEx @ stdcall GetConsoleTitleW(ptr long) kernel32.GetConsoleTitleW @ stdcall GetCurrencyFormatEx(wstr long wstr ptr ptr long) kernel32.GetCurrencyFormatEx -@ stdcall GetCurrencyFormatW(long long str ptr str long) kernel32.GetCurrencyFormatW +@ stdcall GetCurrencyFormatW(long long wstr ptr ptr long) kernel32.GetCurrencyFormatW @ stdcall GetCurrentActCtx(ptr) kernel32.GetCurrentActCtx # @ stub GetCurrentApplicationUserModelId @ stdcall GetCurrentDirectoryA(long ptr) kernel32.GetCurrentDirectoryA
1
0
0
0
← Newer
1
...
8
9
10
11
12
13
14
...
68
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
Results per page:
10
25
50
100
200