A high resolution device that's moving fast can potentially generate
an int overflow, making dx*dx+dy*dy negative. Now pow(negative, non-integer) yields NaN, so you loose. Use fp math to avoid that.
This commit is contained in:
		
							parent
							
								
									ff089e6cae
								
							
						
					
					
						commit
						12d27cf33c
					
				| 
						 | 
					@ -250,7 +250,7 @@ acceleratePointer(DeviceIntPtr pDev, int first_valuator, int num_valuators,
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else {
 | 
					        else {
 | 
				
			||||||
            mult = pow((float)(dx * dx + dy * dy),
 | 
							mult = pow((float)((float)dx * (float)dx + (float)dy * (float)dy),
 | 
				
			||||||
                       ((float)(pDev->ptrfeed->ctrl.num) /
 | 
					                       ((float)(pDev->ptrfeed->ctrl.num) /
 | 
				
			||||||
                        (float)(pDev->ptrfeed->ctrl.den) - 1.0) /
 | 
					                        (float)(pDev->ptrfeed->ctrl.den) - 1.0) /
 | 
				
			||||||
                       2.0) / 2.0;
 | 
					                       2.0) / 2.0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue