aboutsummaryrefslogtreecommitdiff
path: root/graphics/VectorRendererSpec.cpp
diff options
context:
space:
mode:
authorMax Horn2009-02-13 19:24:32 +0000
committerMax Horn2009-02-13 19:24:32 +0000
commit4dbbbc13583314b5f738689afed20935969da652 (patch)
tree8ca0804e80cbd3ec8976583a49a6f8d957ad1d77 /graphics/VectorRendererSpec.cpp
parentb1038f97a2daedaafc733a780dca0cdd0f55115a (diff)
downloadscummvm-rg350-4dbbbc13583314b5f738689afed20935969da652.tar.gz
scummvm-rg350-4dbbbc13583314b5f738689afed20935969da652.tar.bz2
scummvm-rg350-4dbbbc13583314b5f738689afed20935969da652.zip
GUI: Fixed long-standing bug in calcGradient (gradients look a bit better now)
svn-id: r36311
Diffstat (limited to 'graphics/VectorRendererSpec.cpp')
-rw-r--r--graphics/VectorRendererSpec.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/graphics/VectorRendererSpec.cpp b/graphics/VectorRendererSpec.cpp
index a6b3436e4c..4926479a8b 100644
--- a/graphics/VectorRendererSpec.cpp
+++ b/graphics/VectorRendererSpec.cpp
@@ -423,9 +423,9 @@ calcGradient(uint32 pos, uint32 max) {
PixelType output = 0;
pos = (MIN(pos * Base::_gradientFactor, max) << 12) / max;
- output |= (_gradientStart + ((Base::_gradientBytes[0] * pos) >> 12)) & _redMask;
- output |= (_gradientStart + ((Base::_gradientBytes[1] * pos) >> 12)) & _greenMask;
- output |= (_gradientStart + ((Base::_gradientBytes[2] * pos) >> 12)) & _blueMask;
+ output |= ((_gradientStart&_redMask) + ((Base::_gradientBytes[0] * pos) >> 12)) & _redMask;
+ output |= ((_gradientStart&_greenMask) + ((Base::_gradientBytes[1] * pos) >> 12)) & _greenMask;
+ output |= ((_gradientStart&_blueMask) + ((Base::_gradientBytes[2] * pos) >> 12)) & _blueMask;
output |= ~(_redMask | _greenMask | _blueMask);
return output;