diff options
author | Neil Roberts <neil@linux.intel.com> | 2011-11-17 16:35:23 +0000 |
---|---|---|
committer | Neil Roberts <neil@linux.intel.com> | 2011-11-24 13:23:00 +0000 |
commit | 9e52b4d714a34be13a69847a03fc178ff0ea81de (patch) | |
tree | 214b3f28267d2a9a8612aacd585e9bfe093b97cd /cogl/cogl-pipeline-state.c | |
parent | 80a9c3bb32a7efb2715cd4f4856b9c5e2a47cb0e (diff) | |
download | cogl-9e52b4d714a34be13a69847a03fc178ff0ea81de.tar.gz |
Fix comparing the uniforms state
When comparing uniform values, it was not correctly handling the case
where pipeline0 has the value set but pipeline1 does not (only the
other way around) so it would crash.
Reviewed-by: Robert Bragg <robert@linux.intel.com>
Diffstat (limited to 'cogl/cogl-pipeline-state.c')
-rw-r--r-- | cogl/cogl-pipeline-state.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/cogl/cogl-pipeline-state.c b/cogl/cogl-pipeline-state.c index 8f7eefa3..88bf1531 100644 --- a/cogl/cogl-pipeline-state.c +++ b/cogl/cogl-pipeline-state.c @@ -321,11 +321,16 @@ _cogl_pipeline_uniforms_state_equal (CoglPipeline *authority0, const CoglBoxedValue *value0 = values0[i]; const CoglBoxedValue *value1 = values1[i]; - if (value0 == NULL || value0->type == COGL_BOXED_NONE) + if (value0 == NULL) { if (value1 != NULL && value1->type != COGL_BOXED_NONE) return FALSE; } + else if (value1 == NULL) + { + if (value0 != NULL && value0->type != COGL_BOXED_NONE) + return FALSE; + } else if (!_cogl_boxed_value_equal (value0, value1)) return FALSE; } |