Is floating point math actually needed here? Or would doing:
```
projX = (x * srcW) / dstW;
```
suffice?