- F = 1.f - F;
- while(w--){
- float a = (1 - *S*F)*255.f +.5f;
- row[3] = CLAMP(a,0,255);
- row+=bpp; ++S;
+ if(S){
+ while(w--){
+ float a = *S*F*255.f +.5f;
+ row[3] = CLAMP(a,0,255);
+ row+=bpp; ++S;
+ }
+ }else{
+ float a = F*255.f +.5f;
+ unsigned char s = CLAMP(a,0,255);
+ while(w--){ row[3] = s; row+=bpp; }