[PATCH 03/10] d3d10: Implement scalar effect variable get methods.
Matteo Bruni
matteo.mystral at gmail.com
Wed Jan 22 09:36:48 CST 2020
On Sat, Dec 7, 2019 at 7:23 PM Connor McAdams <conmanx360 at gmail.com> wrote:
>
> Implement GetFloat/GetFloatArray, GetInt/GetIntArray, and
> GetBool/GetBoolArray methods for the scalar effect variable interface.
>
> Signed-off-by: Connor McAdams <conmanx360 at gmail.com>
> ---
> dlls/d3d10/effect.c | 71 +++++++++++++++++++++++++++++++++++++--------
> 1 file changed, 59 insertions(+), 12 deletions(-)
>
> diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c
> index 4ecc0753de..4ab882c1dc 100644
> --- a/dlls/d3d10/effect.c
> +++ b/dlls/d3d10/effect.c
> @@ -4249,6 +4249,35 @@ static void write_variable_array_to_cbuffer(struct d3d10_effect_variable *variab
> variable->buffer->u.buffer.changed = 1;
> }
>
> +static inline void read_variable_from_cbuffer(struct d3d10_effect_variable *variable, void *data)
> +{
> + memcpy(data, variable->buffer->u.buffer.local_buffer + variable->buffer_offset, variable->type->size_packed);
> +}
> +
> +static void read_variable_array_from_cbuffer(struct d3d10_effect_variable *variable, void *data, UINT count)
> +{
> + char *cbuf = variable->buffer->u.buffer.local_buffer + variable->buffer_offset;
> + char *cur_element = data;
> + DWORD element_size;
> + UINT i;
> +
> + if (!variable->type->element_count)
> + {
> + write_variable_to_cbuffer(variable, data);
> + return;
> + }
I suppose you meant to use read_variable_from_cbuffer().
More information about the wine-devel
mailing list