diff options
author | marha <marha@users.sourceforge.net> | 2013-07-16 08:59:33 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-07-16 08:59:33 +0200 |
commit | d00d82f6017166fdeb927320ce4c656cb99319fd (patch) | |
tree | 75d388ec743971c4bdcc85b639f8bc35458b27e0 /mesalib/src/mesa/program | |
parent | 707c146a74f6ff862be3ebb2470d1f31e29dd907 (diff) | |
parent | 06f4de23ace4de1fd628c37891214f0a4ecb77db (diff) | |
download | vcxsrv-d00d82f6017166fdeb927320ce4c656cb99319fd.tar.gz vcxsrv-d00d82f6017166fdeb927320ce4c656cb99319fd.tar.bz2 vcxsrv-d00d82f6017166fdeb927320ce4c656cb99319fd.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
libxcb xcb-proto mesa xkbcomp git update 16 Jul 2013
Conflicts:
mesalib/src/glsl/glsl_symbol_table.cpp
Diffstat (limited to 'mesalib/src/mesa/program')
-rw-r--r-- | mesalib/src/mesa/program/prog_parameter.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/mesalib/src/mesa/program/prog_parameter.c b/mesalib/src/mesa/program/prog_parameter.c index 95b153e16..4d9cf08d2 100644 --- a/mesalib/src/mesa/program/prog_parameter.c +++ b/mesalib/src/mesa/program/prog_parameter.c @@ -155,7 +155,21 @@ _mesa_add_parameter(struct gl_program_parameter_list *paramList, p->Size = size; p->DataType = datatype; if (values) { - COPY_4V(paramList->ParameterValues[oldNum + i], values); + if (size >= 4) { + COPY_4V(paramList->ParameterValues[oldNum + i], values); + } + else { + /* copy 1, 2 or 3 values */ + GLuint remaining = size % 4; + assert(remaining < 4); + for (j = 0; j < remaining; j++) { + paramList->ParameterValues[oldNum + i][j].f = values[j].f; + } + /* fill in remaining positions with zeros */ + for (; j < 4; j++) { + paramList->ParameterValues[oldNum + i][j].f = 0.0f; + } + } values += 4; p->Initialized = GL_TRUE; } |