randr/xfree86: Fix initial gamma computation.
- The previous version overflowed sometimes.
This commit is contained in:
		
							parent
							
								
									ba9dc353a6
								
							
						
					
					
						commit
						b5736d237a
					
				|  | @ -2248,24 +2248,23 @@ xf86CrtcSetInitialGamma(xf86CrtcPtr crtc, float gamma_red, float gamma_green, | ||||||
|      * So take the default gamma size for lack of something better. |      * So take the default gamma size for lack of something better. | ||||||
|      */ |      */ | ||||||
|     for (i = 0; i < size; i++) { |     for (i = 0; i < size; i++) { | ||||||
|         /* Code partially borrowed from ComputeGamma(). */ |  | ||||||
|         if (gamma_red == 1.0) |         if (gamma_red == 1.0) | ||||||
|             red[i] = i << 8; |             red[i] = i << 8; | ||||||
|         else |         else | ||||||
|             red[i] = (CARD16)((pow((double)i/(double)size, |             red[i] = (CARD16)(pow((double)i/(double)(size - 1), | ||||||
|                         gamma_red) * (double)size + 0.5)*256); | 			(double)gamma_red) * (double)(size - 1) * 256); | ||||||
| 
 | 
 | ||||||
|         if (gamma_green == 1.0) |         if (gamma_green == 1.0) | ||||||
|             green[i] = i << 8; |             green[i] = i << 8; | ||||||
|         else |         else | ||||||
|             green[i] = (CARD16)((pow((double)i/(double)size, |             green[i] = (CARD16)(pow((double)i/(double)(size - 1), | ||||||
|                         gamma_green) * (double)size + 0.5)*256); | 			(double)gamma_green) * (double)(size - 1) * 256); | ||||||
| 
 | 
 | ||||||
|         if (gamma_blue == 1.0) |         if (gamma_blue == 1.0) | ||||||
|             blue[i] = i << 8; |             blue[i] = i << 8; | ||||||
|         else |         else | ||||||
|             blue[i] = (CARD16)((pow((double)i/(double)size, |             blue[i] = (CARD16)(pow((double)i/(double)(size - 1), | ||||||
|                         gamma_blue) * (double)size + 0.5)*256); | 			(double)gamma_blue) * (double)(size - 1) * 256); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /* Default size is 256, so anything else is failure. */ |     /* Default size is 256, so anything else is failure. */ | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue