bool Lights::doupdate() { if(_generatorReady) { Pixel out; for(size_t i=0; i<_size; i++) { _generator(&out, i, _size, _extra); _current[i].blue = gamma[out.blue]; _current[i].green = gamma[out.green]; _current[i].red = gamma[out.red]; } _extra++; update(_current, _size); return false; } else { bool result = true; for(size_t i=0; i<_size; i++) { result = result & adjustPixel(&_current[i], &_target[i], _fade_speed); } if(!result) { update(_current, _size); } else { if(_useGenerator) _generatorReady = true; } return result; } }
bool ColorTransfer::saveImage() { assert(_inputImage); assert(_input); unsigned int offset = _input->GetWidth() * _input->GetHeight(); _gradedImage = new KImage(_input->GetWidth(), _input->GetHeight(), _input->GetBPP()); _gradedImage->BeginDirectAccess(); for (int i = 0; i < _input->GetHeight(); ++i) { for (int j = 0; j < _input->GetWidth(); ++j) { BYTE R = (BYTE) adjustPixel((_inputImage[j * _input->GetHeight() + i ]*255.0f)); BYTE G = (BYTE) adjustPixel((_inputImage[ offset + j * _input->GetHeight() + i] *255.0f)); BYTE B = (BYTE) adjustPixel((_inputImage[ 2 * offset + j * _input->GetHeight() + i ] * 255.0f)); KRGBColor color(R, G, B); _gradedImage->Put24BPPPixel(j, i, &color); } } _gradedImage->EndDirectAccess(); return true; }