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
March
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
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
September 2009
----- 2025 -----
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
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
3 participants
866 discussions
Start a n
N
ew thread
Aric Stewart : msctf: Stub of TF_InvalidAssemblyListCacheIfExist.
by Alexandre Julliard
09 Sep '09
09 Sep '09
Module: wine Branch: master Commit: c4da0b6115e5721d3c21a0e143b26ccccc2ac03c URL:
http://source.winehq.org/git/wine.git/?a=commit;h=c4da0b6115e5721d3c21a0e14…
Author: Aric Stewart <aric(a)codeweavers.com> Date: Tue Sep 8 10:29:56 2009 -0500 msctf: Stub of TF_InvalidAssemblyListCacheIfExist. --- dlls/msctf/msctf.c | 9 +++++++++ dlls/msctf/msctf.spec | 2 +- 2 files changed, 10 insertions(+), 1 deletions(-) diff --git a/dlls/msctf/msctf.c b/dlls/msctf/msctf.c index 8277278..3451ee8 100644 --- a/dlls/msctf/msctf.c +++ b/dlls/msctf/msctf.c @@ -608,3 +608,12 @@ HRESULT WINAPI TF_CreateInputProcessorProfiles( { return InputProcessorProfiles_Constructor(NULL,(IUnknown**)ppipr); } + +/*********************************************************************** + * TF_InvalidAssemblyListCacheIfExist(MSCTF.@) + */ +HRESULT WINAPI TF_InvalidAssemblyListCacheIfExist(void) +{ + FIXME("Stub\n"); + return S_OK; +} diff --git a/dlls/msctf/msctf.spec b/dlls/msctf/msctf.spec index f7c35a3..c0cb829 100644 --- a/dlls/msctf/msctf.spec +++ b/dlls/msctf/msctf.spec @@ -27,7 +27,7 @@ @ stub TF_InitMlngInfo @ stub TF_InitSystem @ stub TF_InvalidAssemblyListCache -@ stub TF_InvalidAssemblyListCacheIfExist +@ stdcall TF_InvalidAssemblyListCacheIfExist() @ stub TF_IsCtfmonRunning @ stub TF_IsInMarshaling @ stub TF_MlngInfoCount
1
0
0
0
André Hentschel : readme.de: Git is not an acronym.
by Alexandre Julliard
09 Sep '09
09 Sep '09
Module: wine Branch: master Commit: c0b04704447d0d442eb034f5a951fa26f8fd2f05 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=c0b04704447d0d442eb034f5a…
Author: André Hentschel <nerv(a)dawncrow.de> Date: Tue Sep 8 17:15:21 2009 +0200 readme.de: Git is not an acronym. --- documentation/README.de | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/documentation/README.de b/documentation/README.de index 0d7414e..64decee 100644 --- a/documentation/README.de +++ b/documentation/README.de @@ -194,7 +194,7 @@ Fehler: Melden Sie Fehler bitte an Wine-Bugzilla unter
http://bugs.winehq.org
IRC: Online-Hilfe wird Ihnen im Chat-Kanal #WineHQ unter
irc.freenode.net
gew�hrt. -GIT: Der aktuelle Wine-Entwicklungs-Zweig ist �ber GIT verf�gbar. +Git: Der aktuelle Wine-Entwicklungs-Zweig ist �ber Git verf�gbar. Besuchen Sie
http://www.winehq.org/site/git
f�r weitere Informationen. Mailing-Listen:
1
0
0
0
Henri Verbeet : widl: Generate proper prototypes for function declarations without arguments.
by Alexandre Julliard
09 Sep '09
09 Sep '09
Module: wine Branch: master Commit: a7b0a1cd4afcf5d4c33421ffacc3f4f7558dbb67 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=a7b0a1cd4afcf5d4c33421ffa…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Sep 8 16:38:03 2009 +0200 widl: Generate proper prototypes for function declarations without arguments. --- tools/widl/header.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/tools/widl/header.c b/tools/widl/header.c index 94ed1a9..b6b7be8 100644 --- a/tools/widl/header.c +++ b/tools/widl/header.c @@ -346,9 +346,14 @@ static void write_type_v(FILE *h, type_t *t, int is_field, int declonly, const c if (name) fprintf(h, "%s%s", needs_space_after(t) ? " " : "", name ); if (type_get_type_detect_alias(pt) == TYPE_FUNCTION) { + const var_list_t *args = type_function_get_args(pt); + if (ptr_level) fputc(')', h); fputc('(', h); - write_args(h, type_function_get_args(pt), NULL, 0, FALSE); + if (args) + write_args(h, args, NULL, 0, FALSE); + else + fprintf(h, "void"); fputc(')', h); } else write_type_right(h, t, is_field);
1
0
0
0
Henri Verbeet : d3d10: Use debugstr_a()/debugstr_an() to trace external strings.
by Alexandre Julliard
09 Sep '09
09 Sep '09
Module: wine Branch: master Commit: 8de9fea564981be40354c409bab122b3f3c96673 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=8de9fea564981be40354c409b…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Sep 8 16:38:02 2009 +0200 d3d10: Use debugstr_a()/debugstr_an() to trace external strings. --- dlls/d3d10/effect.c | 66 ++++++++++++++++++++------------------------------- 1 files changed, 26 insertions(+), 40 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=8de9fea564981be40354c…
1
0
0
0
Henri Verbeet : d3d10: Implement ID3D10EffectType::GetDesc().
by Alexandre Julliard
09 Sep '09
09 Sep '09
Module: wine Branch: master Commit: 9882788ac53f0797f748894d082b70905b6de889 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=9882788ac53f0797f748894d0…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Sep 8 16:38:01 2009 +0200 d3d10: Implement ID3D10EffectType::GetDesc(). --- dlls/d3d10/d3d10_private.h | 11 ++++ dlls/d3d10/effect.c | 121 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 108 insertions(+), 24 deletions(-) diff --git a/dlls/d3d10/d3d10_private.h b/dlls/d3d10/d3d10_private.h index 650fb92..bbcbef0 100644 --- a/dlls/d3d10/d3d10_private.h +++ b/dlls/d3d10/d3d10_private.h @@ -70,6 +70,17 @@ struct d3d10_effect_type DWORD id; struct wine_rb_entry entry; + + char *name; + DWORD element_count; + DWORD size_unpacked; + DWORD stride; + DWORD size_packed; + DWORD member_count; + DWORD column_count; + DWORD row_count; + D3D10_SHADER_VARIABLE_TYPE basetype; + D3D10_SHADER_VARIABLE_CLASS type_class; }; /* ID3D10EffectVariable */ diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index b9b43c0..d644d1a 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -424,52 +424,100 @@ static HRESULT parse_fx10_technique(struct d3d10_effect_technique *t, const char return S_OK; } -static void parse_fx10_type(const char *ptr, const char *data) +static D3D10_SHADER_VARIABLE_CLASS d3d10_variable_class(DWORD c) +{ + switch (c) + { + case 1: return D3D10_SVC_SCALAR; + case 2: return D3D10_SVC_VECTOR; + case 3: return D3D10_SVC_MATRIX_ROWS; + default: + FIXME("Unknown variable class %#x.\n", c); + return 0; + } +} + +static D3D10_SHADER_VARIABLE_TYPE d3d10_variable_type(DWORD t) +{ + switch (t) + { + case 1: return D3D10_SVT_FLOAT; + case 2: return D3D10_SVT_INT; + case 3: return D3D10_SVT_UINT; + case 4: return D3D10_SVT_BOOL; + default: + FIXME("Unknown variable type %#x.\n", t); + return 0; + } +} + +static HRESULT parse_fx10_type(struct d3d10_effect_type *t, const char *ptr, const char *data) { DWORD unknown0; - DWORD tmp; + DWORD offset; - read_dword(&ptr, &tmp); - TRACE("Type name at offset %#x.\n", tmp); - TRACE("Type name: %s.\n", debugstr_a(data + tmp)); + read_dword(&ptr, &offset); + TRACE("Type name at offset %#x.\n", offset); + + t->name = copy_name(data + offset); + if (!t->name) + { + ERR("Failed to copy name.\n"); + return E_OUTOFMEMORY; + } + TRACE("Type name: %s.\n", debugstr_a(t->name)); read_dword(&ptr, &unknown0); TRACE("Unknown 0: %u.\n", unknown0); - read_dword(&ptr, &tmp); - TRACE("Element count: %u.\n", tmp); + read_dword(&ptr, &t->element_count); + TRACE("Element count: %u.\n", t->element_count); - read_dword(&ptr, &tmp); - TRACE("Unpacked size: %#x.\n", tmp); + read_dword(&ptr, &t->size_unpacked); + TRACE("Unpacked size: %#x.\n", t->size_unpacked); - read_dword(&ptr, &tmp); - TRACE("Stride: %#x.\n", tmp); + read_dword(&ptr, &t->stride); + TRACE("Stride: %#x.\n", t->stride); - read_dword(&ptr, &tmp); - TRACE("Packed size %#x.\n", tmp); + read_dword(&ptr, &t->size_packed); + TRACE("Packed size %#x.\n", t->size_packed); if (unknown0 == 1) { + DWORD tmp; + + t->member_count = 0; + read_dword(&ptr, &tmp); + t->column_count = (tmp & D3D10_FX10_TYPE_COLUMN_MASK) >> D3D10_FX10_TYPE_COLUMN_SHIFT; + t->row_count = (tmp & D3D10_FX10_TYPE_ROW_MASK) >> D3D10_FX10_TYPE_ROW_SHIFT; + t->basetype = d3d10_variable_type((tmp & D3D10_FX10_TYPE_BASETYPE_MASK) >> D3D10_FX10_TYPE_BASETYPE_SHIFT); + t->type_class = d3d10_variable_class((tmp & D3D10_FX10_TYPE_CLASS_MASK) >> D3D10_FX10_TYPE_CLASS_SHIFT); + TRACE("Type description: %#x.\n", tmp); - TRACE("\tcolumns: %u.\n", (tmp & D3D10_FX10_TYPE_COLUMN_MASK) >> D3D10_FX10_TYPE_COLUMN_SHIFT); - TRACE("\trows: %u.\n", (tmp & D3D10_FX10_TYPE_ROW_MASK) >> D3D10_FX10_TYPE_ROW_SHIFT); - TRACE("\tbasetype: %#x.\n", (tmp & D3D10_FX10_TYPE_BASETYPE_MASK) >> D3D10_FX10_TYPE_BASETYPE_SHIFT); - TRACE("\tclass: %#x.\n", (tmp & D3D10_FX10_TYPE_CLASS_MASK) >> D3D10_FX10_TYPE_CLASS_SHIFT); + TRACE("\tcolumns: %u.\n", t->column_count); + TRACE("\trows: %u.\n", t->row_count); + TRACE("\tbasetype: %#x.\n", t->basetype); + TRACE("\tclass: %#x.\n", t->type_class); TRACE("\tunknown bits: %#x.\n", tmp & ~(D3D10_FX10_TYPE_COLUMN_MASK | D3D10_FX10_TYPE_ROW_MASK | D3D10_FX10_TYPE_BASETYPE_MASK | D3D10_FX10_TYPE_CLASS_MASK)); } else if (unknown0 == 3) { - DWORD member_count; unsigned int i; + DWORD tmp; TRACE("Type is a structure.\n"); - read_dword(&ptr, &member_count); - TRACE("Member count: %u.\n", member_count); + read_dword(&ptr, &t->member_count); + TRACE("Member count: %u.\n", t->member_count); - for (i = 0; i < member_count; ++i) + t->column_count = 0; + t->row_count = 0; + t->basetype = 0; + t->type_class = D3D10_SVC_STRUCT; + + for (i = 0; i < t->member_count; ++i) { read_dword(&ptr, &tmp); TRACE("Member %u name at offset %#x.\n", i, tmp); @@ -485,12 +533,15 @@ static void parse_fx10_type(const char *ptr, const char *data) TRACE("Member %u type info at offset %#x.\n", i, tmp); } } + + return S_OK; } static struct d3d10_effect_type *get_fx10_type(struct d3d10_effect *effect, const char *data, DWORD offset) { struct d3d10_effect_type *type; struct wine_rb_entry *entry; + HRESULT hr; entry = wine_rb_get(&effect->types, &offset); if (entry) @@ -508,7 +559,13 @@ static struct d3d10_effect_type *get_fx10_type(struct d3d10_effect *effect, cons type->vtbl = &d3d10_effect_type_vtbl; type->id = offset; - parse_fx10_type(data + offset, data); + hr = parse_fx10_type(type, data + offset, data); + if (FAILED(hr)) + { + ERR("Failed to parse type info, hr %#x.\n", hr); + HeapFree(GetProcessHeap(), 0, type); + return NULL; + } if (wine_rb_put(&effect->types, &offset, &type->entry) == -1) { @@ -632,6 +689,7 @@ static void d3d10_effect_type_destroy(struct wine_rb_entry *entry, void *context TRACE("effect type %p.\n", t); + HeapFree(GetProcessHeap(), 0, t->name); HeapFree(GetProcessHeap(), 0, t); } @@ -1906,9 +1964,24 @@ static BOOL STDMETHODCALLTYPE d3d10_effect_type_IsValid(ID3D10EffectType *iface) static HRESULT STDMETHODCALLTYPE d3d10_effect_type_GetDesc(ID3D10EffectType *iface, D3D10_EFFECT_TYPE_DESC *desc) { - FIXME("iface %p, desc %p stub!\n", iface, desc); + struct d3d10_effect_type *This = (struct d3d10_effect_type *)iface; - return E_NOTIMPL; + TRACE("iface %p, desc %p\n", iface, desc); + + if (!desc) return E_INVALIDARG; + + desc->TypeName = This->name; + desc->Class = This->type_class; + desc->Type = This->basetype; + desc->Elements = This->element_count; + desc->Members = This->member_count; + desc->Rows = This->row_count; + desc->Columns = This->column_count; + desc->PackedSize = This->size_packed; + desc->UnpackedSize = This->size_unpacked; + desc->Stride = This->stride; + + return S_OK; } static struct ID3D10EffectType * STDMETHODCALLTYPE d3d10_effect_type_GetMemberTypeByIndex(ID3D10EffectType *iface,
1
0
0
0
Henri Verbeet : d3d10: Implement ID3D10EffectVariable::GetType().
by Alexandre Julliard
09 Sep '09
09 Sep '09
Module: wine Branch: master Commit: 559351ea9cde7758c794750d6c059084c6fb4bd8 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=559351ea9cde7758c794750d6…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Sep 8 16:38:00 2009 +0200 d3d10: Implement ID3D10EffectVariable::GetType(). --- dlls/d3d10/d3d10_private.h | 18 +++++ dlls/d3d10/effect.c | 151 ++++++++++++++++++++++++++++++++++++++++++-- dlls/d3d10/utils.c | 15 +++++ 3 files changed, 179 insertions(+), 5 deletions(-) diff --git a/dlls/d3d10/d3d10_private.h b/dlls/d3d10/d3d10_private.h index a170d1d..650fb92 100644 --- a/dlls/d3d10/d3d10_private.h +++ b/dlls/d3d10/d3d10_private.h @@ -20,6 +20,7 @@ #define __WINE_D3D10_PRIVATE_H #include "wine/debug.h" +#include "wine/rbtree.h" #define COBJMACROS #include "winbase.h" @@ -31,6 +32,10 @@ /* TRACE helper functions */ const char *debug_d3d10_driver_type(D3D10_DRIVER_TYPE driver_type); +void *d3d10_rb_alloc(size_t size); +void *d3d10_rb_realloc(void *ptr, size_t size); +void d3d10_rb_free(void *ptr); + enum d3d10_effect_object_type { D3D10_EOT_VERTEXSHADER = 6, @@ -58,21 +63,33 @@ struct d3d10_effect_shader_variable } shader; }; +/* ID3D10EffectType */ +struct d3d10_effect_type +{ + const struct ID3D10EffectTypeVtbl *vtbl; + + DWORD id; + struct wine_rb_entry entry; +}; + /* ID3D10EffectVariable */ struct d3d10_effect_variable { const struct ID3D10EffectVariableVtbl *vtbl; + struct d3d10_effect_local_buffer *buffer; char *name; DWORD buffer_offset; DWORD annotation_count; DWORD flag; + struct d3d10_effect_type *type; }; struct d3d10_effect_local_buffer { const struct ID3D10EffectConstantBufferVtbl *vtbl; + struct d3d10_effect *effect; char *name; DWORD data_size; DWORD variable_count; @@ -131,6 +148,7 @@ struct d3d10_effect DWORD shader_call_count; DWORD shader_compile_count; + struct wine_rb_tree types; struct d3d10_effect_local_buffer *local_buffers; struct d3d10_effect_technique *techniques; }; diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index afdc386..b9b43c0 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -47,12 +47,14 @@ static const struct ID3D10EffectTechniqueVtbl d3d10_effect_technique_vtbl; static const struct ID3D10EffectPassVtbl d3d10_effect_pass_vtbl; static const struct ID3D10EffectVariableVtbl d3d10_effect_variable_vtbl; static const struct ID3D10EffectConstantBufferVtbl d3d10_effect_constant_buffer_vtbl; +static const struct ID3D10EffectTypeVtbl d3d10_effect_type_vtbl; /* null objects - needed for invalid calls */ static struct d3d10_effect_technique null_technique = {&d3d10_effect_technique_vtbl, NULL, NULL, 0, 0, NULL}; static struct d3d10_effect_pass null_pass = {&d3d10_effect_pass_vtbl, NULL, NULL, 0, 0, 0, NULL}; -static struct d3d10_effect_local_buffer null_local_buffer = {&d3d10_effect_constant_buffer_vtbl, NULL, 0, 0, 0, NULL}; -static struct d3d10_effect_variable null_variable = {&d3d10_effect_variable_vtbl, NULL, 0, 0}; +static struct d3d10_effect_local_buffer null_local_buffer = + {&d3d10_effect_constant_buffer_vtbl, NULL, NULL, 0, 0, 0, NULL}; +static struct d3d10_effect_variable null_variable = {&d3d10_effect_variable_vtbl, NULL, NULL, 0, 0, 0, NULL}; static inline void read_dword(const char **ptr, DWORD *d) { @@ -485,6 +487,39 @@ static void parse_fx10_type(const char *ptr, const char *data) } } +static struct d3d10_effect_type *get_fx10_type(struct d3d10_effect *effect, const char *data, DWORD offset) +{ + struct d3d10_effect_type *type; + struct wine_rb_entry *entry; + + entry = wine_rb_get(&effect->types, &offset); + if (entry) + { + TRACE("Returning existing type.\n"); + return WINE_RB_ENTRY_VALUE(entry, struct d3d10_effect_type, entry); + } + + type = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*type)); + if (!type) + { + ERR("Failed to allocate type memory.\n"); + return NULL; + } + + type->vtbl = &d3d10_effect_type_vtbl; + type->id = offset; + parse_fx10_type(data + offset, data); + + if (wine_rb_put(&effect->types, &offset, &type->entry) == -1) + { + ERR("Failed to insert type entry.\n"); + HeapFree(GetProcessHeap(), 0, type); + return NULL; + } + + return type; +} + static HRESULT parse_fx10_variable(struct d3d10_effect_variable *v, const char **ptr, const char *data) { DWORD offset; @@ -503,7 +538,12 @@ static HRESULT parse_fx10_variable(struct d3d10_effect_variable *v, const char * read_dword(ptr, &offset); TRACE("Variable type info at offset %#x.\n", offset); - parse_fx10_type(data + offset, data); + v->type = get_fx10_type(v->buffer->effect, data, offset); + if (!v->type) + { + ERR("Failed to get variable type.\n"); + return E_FAIL; + } skip_dword_unknown(ptr, 1); @@ -569,6 +609,7 @@ static HRESULT parse_fx10_local_buffer(struct d3d10_effect_local_buffer *l, cons HRESULT hr; v->vtbl = &d3d10_effect_variable_vtbl; + v->buffer = l; hr = parse_fx10_variable(v, ptr, data); if (FAILED(hr)) return hr; @@ -577,12 +618,43 @@ static HRESULT parse_fx10_local_buffer(struct d3d10_effect_local_buffer *l, cons return S_OK; } +static int d3d10_effect_type_compare(const void *key, const struct wine_rb_entry *entry) +{ + const struct d3d10_effect_type *t = WINE_RB_ENTRY_VALUE(entry, const struct d3d10_effect_type, entry); + const DWORD *id = key; + + return *id - t->id; +} + +static void d3d10_effect_type_destroy(struct wine_rb_entry *entry, void *context) +{ + struct d3d10_effect_type *t = WINE_RB_ENTRY_VALUE(entry, struct d3d10_effect_type, entry); + + TRACE("effect type %p.\n", t); + + HeapFree(GetProcessHeap(), 0, t); +} + +static const struct wine_rb_functions d3d10_effect_type_rb_functions = +{ + d3d10_rb_alloc, + d3d10_rb_realloc, + d3d10_rb_free, + d3d10_effect_type_compare, +}; + static HRESULT parse_fx10_body(struct d3d10_effect *e, const char *data, DWORD data_size) { const char *ptr = data + e->index_offset; unsigned int i; HRESULT hr; + if (wine_rb_init(&e->types, &d3d10_effect_type_rb_functions) == -1) + { + ERR("Failed to initialize type rbtree.\n"); + return E_FAIL; + } + e->local_buffers = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, e->local_buffer_count * sizeof(*e->local_buffers)); if (!e->local_buffers) { @@ -601,6 +673,7 @@ static HRESULT parse_fx10_body(struct d3d10_effect *e, const char *data, DWORD d { struct d3d10_effect_local_buffer *l = &e->local_buffers[i]; l->vtbl = &d3d10_effect_constant_buffer_vtbl; + l->effect = e; hr = parse_fx10_local_buffer(l, &ptr, data); if (FAILED(hr)) return hr; @@ -872,6 +945,8 @@ static ULONG STDMETHODCALLTYPE d3d10_effect_Release(ID3D10Effect *iface) HeapFree(GetProcessHeap(), 0, This->local_buffers); } + wine_rb_destroy(&This->types, d3d10_effect_type_destroy, NULL); + ID3D10Device_Release(This->device); HeapFree(GetProcessHeap(), 0, This); } @@ -1336,9 +1411,11 @@ static BOOL STDMETHODCALLTYPE d3d10_effect_variable_IsValid(ID3D10EffectVariable static struct ID3D10EffectType * STDMETHODCALLTYPE d3d10_effect_variable_GetType(ID3D10EffectVariable *iface) { - FIXME("iface %p stub!\n", iface); + struct d3d10_effect_variable *This = (struct d3d10_effect_variable *)iface; - return NULL; + TRACE("iface %p\n", iface); + + return (ID3D10EffectType *)This->type; } static HRESULT STDMETHODCALLTYPE d3d10_effect_variable_GetDesc(ID3D10EffectVariable *iface, @@ -1819,3 +1896,67 @@ static const struct ID3D10EffectConstantBufferVtbl d3d10_effect_constant_buffer_ d3d10_effect_constant_buffer_SetTextureBuffer, d3d10_effect_constant_buffer_GetTextureBuffer, }; + +static BOOL STDMETHODCALLTYPE d3d10_effect_type_IsValid(ID3D10EffectType *iface) +{ + FIXME("iface %p stub!\n", iface); + + return FALSE; +} + +static HRESULT STDMETHODCALLTYPE d3d10_effect_type_GetDesc(ID3D10EffectType *iface, D3D10_EFFECT_TYPE_DESC *desc) +{ + FIXME("iface %p, desc %p stub!\n", iface, desc); + + return E_NOTIMPL; +} + +static struct ID3D10EffectType * STDMETHODCALLTYPE d3d10_effect_type_GetMemberTypeByIndex(ID3D10EffectType *iface, + UINT index) +{ + FIXME("iface %p, index %u stub!\n", iface, index); + + return NULL; +} + +static struct ID3D10EffectType * STDMETHODCALLTYPE d3d10_effect_type_GetMemberTypeByName(ID3D10EffectType *iface, + LPCSTR name) +{ + FIXME("iface %p, name %s stub!\n", iface, debugstr_a(name)); + + return NULL; +} + +static struct ID3D10EffectType * STDMETHODCALLTYPE d3d10_effect_type_GetMemberTypeBySemantic(ID3D10EffectType *iface, + LPCSTR semantic) +{ + FIXME("iface %p, semantic %s stub!\n", iface, debugstr_a(semantic)); + + return NULL; +} + +static LPCSTR STDMETHODCALLTYPE d3d10_effect_type_GetMemberName(ID3D10EffectType *iface, UINT index) +{ + FIXME("iface %p, index %u stub!\n", iface, index); + + return NULL; +} + +static LPCSTR STDMETHODCALLTYPE d3d10_effect_type_GetMemberSemantic(ID3D10EffectType *iface, UINT index) +{ + FIXME("iface %p, index %u stub!\n", iface, index); + + return NULL; +} + +static const struct ID3D10EffectTypeVtbl d3d10_effect_type_vtbl = +{ + /* ID3D10EffectType */ + d3d10_effect_type_IsValid, + d3d10_effect_type_GetDesc, + d3d10_effect_type_GetMemberTypeByIndex, + d3d10_effect_type_GetMemberTypeByName, + d3d10_effect_type_GetMemberTypeBySemantic, + d3d10_effect_type_GetMemberName, + d3d10_effect_type_GetMemberSemantic, +}; diff --git a/dlls/d3d10/utils.c b/dlls/d3d10/utils.c index 461056b..2424557 100644 --- a/dlls/d3d10/utils.c +++ b/dlls/d3d10/utils.c @@ -41,3 +41,18 @@ const char *debug_d3d10_driver_type(D3D10_DRIVER_TYPE driver_type) } #undef WINE_D3D10_TO_STR + +void *d3d10_rb_alloc(size_t size) +{ + return HeapAlloc(GetProcessHeap(), 0, size); +} + +void *d3d10_rb_realloc(void *ptr, size_t size) +{ + return HeapReAlloc(GetProcessHeap(), 0, ptr, size); +} + +void d3d10_rb_free(void *ptr) +{ + HeapFree(GetProcessHeap(), 0, ptr); +}
1
0
0
0
Henri Verbeet : d3d10: Add initial support for parsing structures.
by Alexandre Julliard
09 Sep '09
09 Sep '09
Module: wine Branch: master Commit: 7f886a2b95ef6866582fe0ee8611720cf0cf66be URL:
http://source.winehq.org/git/wine.git/?a=commit;h=7f886a2b95ef6866582fe0ee8…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Sep 8 16:37:59 2009 +0200 d3d10: Add initial support for parsing structures. --- dlls/d3d10/effect.c | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index f7583f9..afdc386 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -457,6 +457,32 @@ static void parse_fx10_type(const char *ptr, const char *data) TRACE("\tunknown bits: %#x.\n", tmp & ~(D3D10_FX10_TYPE_COLUMN_MASK | D3D10_FX10_TYPE_ROW_MASK | D3D10_FX10_TYPE_BASETYPE_MASK | D3D10_FX10_TYPE_CLASS_MASK)); } + else if (unknown0 == 3) + { + DWORD member_count; + unsigned int i; + + TRACE("Type is a structure.\n"); + + read_dword(&ptr, &member_count); + TRACE("Member count: %u.\n", member_count); + + for (i = 0; i < member_count; ++i) + { + read_dword(&ptr, &tmp); + TRACE("Member %u name at offset %#x.\n", i, tmp); + TRACE("Member %u name: %s.\n", i, debugstr_a(data + tmp)); + + /* Member semantic? */ + skip_dword_unknown(&ptr, 1); + + read_dword(&ptr, &tmp); + TRACE("Member %u offset in struct: %#x.\n", i, tmp); + + read_dword(&ptr, &tmp); + TRACE("Member %u type info at offset %#x.\n", i, tmp); + } + } } static HRESULT parse_fx10_variable(struct d3d10_effect_variable *v, const char **ptr, const char *data)
1
0
0
0
Henri Verbeet : d3d10: Parse an effect type's basetype and class.
by Alexandre Julliard
09 Sep '09
09 Sep '09
Module: wine Branch: master Commit: a2db7e2b7742e335375eb247c401694de36bf47c URL:
http://source.winehq.org/git/wine.git/?a=commit;h=a2db7e2b7742e335375eb247c…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Sep 8 16:37:58 2009 +0200 d3d10: Parse an effect type's basetype and class. --- dlls/d3d10/effect.c | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletions(-) diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index d5f5e6c..f7583f9 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -37,6 +37,12 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3d10); #define D3D10_FX10_TYPE_ROW_SHIFT 8 #define D3D10_FX10_TYPE_ROW_MASK (0x7 << D3D10_FX10_TYPE_ROW_SHIFT) +#define D3D10_FX10_TYPE_BASETYPE_SHIFT 3 +#define D3D10_FX10_TYPE_BASETYPE_MASK (0x1f << D3D10_FX10_TYPE_BASETYPE_SHIFT) + +#define D3D10_FX10_TYPE_CLASS_SHIFT 0 +#define D3D10_FX10_TYPE_CLASS_MASK (0x7 << D3D10_FX10_TYPE_CLASS_SHIFT) + static const struct ID3D10EffectTechniqueVtbl d3d10_effect_technique_vtbl; static const struct ID3D10EffectPassVtbl d3d10_effect_pass_vtbl; static const struct ID3D10EffectVariableVtbl d3d10_effect_variable_vtbl; @@ -446,7 +452,10 @@ static void parse_fx10_type(const char *ptr, const char *data) TRACE("Type description: %#x.\n", tmp); TRACE("\tcolumns: %u.\n", (tmp & D3D10_FX10_TYPE_COLUMN_MASK) >> D3D10_FX10_TYPE_COLUMN_SHIFT); TRACE("\trows: %u.\n", (tmp & D3D10_FX10_TYPE_ROW_MASK) >> D3D10_FX10_TYPE_ROW_SHIFT); - TRACE("\tunknown bits: %#x.\n", tmp & ~(D3D10_FX10_TYPE_COLUMN_MASK | D3D10_FX10_TYPE_ROW_MASK)); + TRACE("\tbasetype: %#x.\n", (tmp & D3D10_FX10_TYPE_BASETYPE_MASK) >> D3D10_FX10_TYPE_BASETYPE_SHIFT); + TRACE("\tclass: %#x.\n", (tmp & D3D10_FX10_TYPE_CLASS_MASK) >> D3D10_FX10_TYPE_CLASS_SHIFT); + TRACE("\tunknown bits: %#x.\n", tmp & ~(D3D10_FX10_TYPE_COLUMN_MASK | D3D10_FX10_TYPE_ROW_MASK + | D3D10_FX10_TYPE_BASETYPE_MASK | D3D10_FX10_TYPE_CLASS_MASK)); } }
1
0
0
0
Rico Schüller : d3d10: Add initial type parsing code.
by Alexandre Julliard
09 Sep '09
09 Sep '09
Module: wine Branch: master Commit: 3f99f4bf90a472c4dae02ac7fd3933ece6c8b251 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=3f99f4bf90a472c4dae02ac7f…
Author: Rico Schüller <kgbricola(a)web.de> Date: Tue Sep 8 16:37:57 2009 +0200 d3d10: Add initial type parsing code. --- dlls/d3d10/effect.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 41 insertions(+), 0 deletions(-) diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index eddce29..d5f5e6c 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -31,6 +31,12 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3d10); #define TAG_FX10 MAKE_TAG('F', 'X', '1', '0') #define TAG_ISGN MAKE_TAG('I', 'S', 'G', 'N') +#define D3D10_FX10_TYPE_COLUMN_SHIFT 11 +#define D3D10_FX10_TYPE_COLUMN_MASK (0x7 << D3D10_FX10_TYPE_COLUMN_SHIFT) + +#define D3D10_FX10_TYPE_ROW_SHIFT 8 +#define D3D10_FX10_TYPE_ROW_MASK (0x7 << D3D10_FX10_TYPE_ROW_SHIFT) + static const struct ID3D10EffectTechniqueVtbl d3d10_effect_technique_vtbl; static const struct ID3D10EffectPassVtbl d3d10_effect_pass_vtbl; static const struct ID3D10EffectVariableVtbl d3d10_effect_variable_vtbl; @@ -410,6 +416,40 @@ static HRESULT parse_fx10_technique(struct d3d10_effect_technique *t, const char return S_OK; } +static void parse_fx10_type(const char *ptr, const char *data) +{ + DWORD unknown0; + DWORD tmp; + + read_dword(&ptr, &tmp); + TRACE("Type name at offset %#x.\n", tmp); + TRACE("Type name: %s.\n", debugstr_a(data + tmp)); + + read_dword(&ptr, &unknown0); + TRACE("Unknown 0: %u.\n", unknown0); + + read_dword(&ptr, &tmp); + TRACE("Element count: %u.\n", tmp); + + read_dword(&ptr, &tmp); + TRACE("Unpacked size: %#x.\n", tmp); + + read_dword(&ptr, &tmp); + TRACE("Stride: %#x.\n", tmp); + + read_dword(&ptr, &tmp); + TRACE("Packed size %#x.\n", tmp); + + if (unknown0 == 1) + { + read_dword(&ptr, &tmp); + TRACE("Type description: %#x.\n", tmp); + TRACE("\tcolumns: %u.\n", (tmp & D3D10_FX10_TYPE_COLUMN_MASK) >> D3D10_FX10_TYPE_COLUMN_SHIFT); + TRACE("\trows: %u.\n", (tmp & D3D10_FX10_TYPE_ROW_MASK) >> D3D10_FX10_TYPE_ROW_SHIFT); + TRACE("\tunknown bits: %#x.\n", tmp & ~(D3D10_FX10_TYPE_COLUMN_MASK | D3D10_FX10_TYPE_ROW_MASK)); + } +} + static HRESULT parse_fx10_variable(struct d3d10_effect_variable *v, const char **ptr, const char *data) { DWORD offset; @@ -428,6 +468,7 @@ static HRESULT parse_fx10_variable(struct d3d10_effect_variable *v, const char * read_dword(ptr, &offset); TRACE("Variable type info at offset %#x.\n", offset); + parse_fx10_type(data + offset, data); skip_dword_unknown(ptr, 1);
1
0
0
0
Davide Pizzetti : winefile: Italian translation update.
by Alexandre Julliard
09 Sep '09
09 Sep '09
Module: wine Branch: master Commit: d451778bcc37b841398a72429bb1bb214041e056 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=d451778bcc37b841398a72429…
Author: Davide Pizzetti <erpizzo(a)alice.it> Date: Tue Sep 8 15:46:39 2009 +0200 winefile: Italian translation update. --- programs/winefile/It.rc | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/programs/winefile/It.rc b/programs/winefile/It.rc index bfbf6f1..f201230 100644 --- a/programs/winefile/It.rc +++ b/programs/winefile/It.rc @@ -164,7 +164,7 @@ FONT 8, "MS Shell Dlg" IDD_SELECT_DESTINATION DIALOG FIXED IMPURE 15, 13, 210, 63 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Select destination" +CAPTION "Seleziona destinazione" FONT 8, "MS Shell Dlg" { CONTROL "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10 @@ -177,6 +177,6 @@ FONT 8, "MS Shell Dlg" STRINGTABLE { - IDS_FONT_SEL_DLG_NAME "Applica le impostazioni dei font" - IDS_FONT_SEL_ERROR "Si � verificato un errore durante la selezione del nuovo font." + IDS_FONT_SEL_DLG_NAME "Applica le impostazioni dei caratteri" + IDS_FONT_SEL_ERROR "Si � verificato un errore durante la selezione del nuovo carattere." }
1
0
0
0
← Newer
1
...
66
67
68
69
70
71
72
...
87
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
Results per page:
10
25
50
100
200