diff options
Diffstat (limited to 'dw/fltkimgbuf.cc')
-rw-r--r-- | dw/fltkimgbuf.cc | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/dw/fltkimgbuf.cc b/dw/fltkimgbuf.cc index e537c761..26b46969 100644 --- a/dw/fltkimgbuf.cc +++ b/dw/fltkimgbuf.cc @@ -52,10 +52,10 @@ uchar *FltkImgbuf::findGammaCorrectionTable (double gamma) } _MSG("Creating new table for gamma = %g\n", gamma); - + GammaCorrectionTable *gct = new GammaCorrectionTable(); gct->gamma = gamma; - + for (int i = 0; i < 256; i++) gct->map[i] = 255 * pow((double)i / 255, gamma); @@ -107,7 +107,7 @@ void FltkImgbuf::init (Type type, int width, int height, double gamma, } else if (width > MAX_WIDTH) { // Too large dimensions cause dangerous overflow errors, so we // limit dimensions to harmless values. - // + // // Example: 65535 * 65536 / 65536 (see scaling below) results in // the negative value -1. @@ -140,11 +140,11 @@ void FltkImgbuf::init (Type type, int width, int height, double gamma, rawdata = new uchar[bpp * width * height]; // Set light-gray as interim background color. memset(rawdata, 222, width*height*bpp); - + refCount = 1; deleteOnUnref = true; copiedRows = new lout::misc::BitSet (height); - + // The list is only used for root buffers. if (isRoot()) scaledBuffers = new lout::container::typed::List <FltkImgbuf> (true); @@ -308,15 +308,15 @@ inline void FltkImgbuf::scaleBuffer (const core::byte *src, int srcWidth, int v[bpp]; for(int i = 0; i < bpp; i++) v[i] = 0; - + for(int xo = xo1; xo < xo2; xo++) for(int yo = yo1; yo < yo2; yo++) { const core::byte *ps = src + bpp * (yo * srcWidth + xo); for(int i = 0; i < bpp; i++) - v[i] += + v[i] += (scaleMode == BEAUTIFUL_GAMMA ? gammaMap2[ps[i]] : ps[i]); } - + core::byte *pd = dest + bpp * (y * destWidth + x); for(int i = 0; i < bpp; i++) pd[i] = @@ -332,7 +332,7 @@ void FltkImgbuf::copyRow (int row, const core::byte *data) // Flag the row done and copy its data. copiedRows->set (row, true); memcpy(rawdata + row * width * bpp, data, width * bpp); - + // Update all the scaled buffers of this root image. for (Iterator <FltkImgbuf> it = scaledBuffers->iterator(); it.hasNext(); ) { @@ -417,7 +417,7 @@ void FltkImgbuf::getRowArea (int row, dw::core::Rectangle *area) // scaled buffer int sr1 = scaledY (row); int sr2 = scaledY (row + 1); - + area->x = 0; area->y = sr1; area->width = width; @@ -533,7 +533,7 @@ int FltkImgbuf::scaledY(int ySrc) int FltkImgbuf::backscaledY(int yScaled) { assert (root != NULL); - + // Notice that rounding errors because of integers do not play a // role. This method cannot be the exact inverse of scaledY, since // scaleY is not bijective, and so not invertible. Instead, both |