[PATCH 3/6] d3d10/effect: Use same field to return ExplicitBindPoint for all variable types.
Matteo Bruni
matteo.mystral at gmail.com
Fri Sep 10 15:13:31 CDT 2021
On Thu, Sep 9, 2021 at 7:58 AM Nikolay Sivov <nsivov at codeweavers.com> wrote:
>
> Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
> ---
> dlls/d3d10/effect.c | 23 ++++++++++++-----------
> dlls/d3d10/tests/effect.c | 36 ++++++++++++++++++++++++++----------
> 2 files changed, 38 insertions(+), 21 deletions(-)
>
> diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c
> index f8e7674ae1a..4807136f670 100644
> --- a/dlls/d3d10/effect.c
> +++ b/dlls/d3d10/effect.c
> @@ -2045,6 +2045,9 @@ static HRESULT parse_fx10_numeric_variable(const char *data, size_t data_size,
> return hr;
> }
>
> + if (v->flag & D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT)
> + v->explicit_bind_point = v->buffer_offset;
> +
> return S_OK;
> }
>
> @@ -3967,7 +3970,7 @@ static struct ID3D10EffectType * STDMETHODCALLTYPE d3d10_effect_variable_GetType
> static HRESULT STDMETHODCALLTYPE d3d10_effect_variable_GetDesc(ID3D10EffectVariable *iface,
> D3D10_EFFECT_VARIABLE_DESC *desc)
> {
> - struct d3d10_effect_variable *This = impl_from_ID3D10EffectVariable(iface);
> + struct d3d10_effect_variable *v = impl_from_ID3D10EffectVariable(iface);
>
> TRACE("iface %p, desc %p\n", iface, desc);
>
> @@ -3985,16 +3988,14 @@ static HRESULT STDMETHODCALLTYPE d3d10_effect_variable_GetDesc(ID3D10EffectVaria
>
> /* FIXME: This isn't correct. Anonymous shaders let desc->ExplicitBindPoint untouched, but normal shaders set it! */
> memset(desc, 0, sizeof(*desc));
> - desc->Name = This->name;
> - desc->Semantic = This->semantic;
> - desc->Flags = This->flag;
> - desc->Annotations = This->annotation_count;
> - desc->BufferOffset = This->buffer_offset;
> -
> - if (This->flag & D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT)
> - {
> - desc->ExplicitBindPoint = This->buffer_offset;
> - }
> + desc->Name = v->name;
> + desc->Semantic = v->semantic;
> + desc->Flags = v->flag;
> + desc->Annotations = v->annotation_count;
> + desc->BufferOffset = v->buffer_offset;
> +
> + if (v->flag & D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT)
> + desc->ExplicitBindPoint = v->explicit_bind_point;
>
> return S_OK;
> }
Incidentally, what is that FIXME at the top of the hunk? Any idea
what's trying to say?
More information about the wine-devel
mailing list