Yes, good catch. Must have missed that one. Thanks. On Wed, Jan 22, 2020 at 10:37 AM Matteo Bruni <matteo.mystral(a)gmail.com> wrote:
On Sat, Dec 7, 2019 at 7:23 PM Connor McAdams <conmanx360(a)gmail.com> wrote:
Implement GetFloat/GetFloatArray, GetInt/GetIntArray, and GetBool/GetBoolArray methods for the scalar effect variable interface.
Signed-off-by: Connor McAdams <conmanx360(a)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().