Hi hedgehog,
Nope there isn't a global translate function in TBGRABitmap, so that functions like SetPixel are as fast as possible.
Canvas2D is not supposed to do pixel drawing. However CanvasBGRA (TBGRACanvas class) is suited for this: when one draws with a solid pen of width 1, it will definitely use integer coordinates.
So we could implement some transformations into CanvasBGRA, at least translations and integer transforms (flip, rotate 90 degrees, maybe scale by an integer). This would be an integer matrix applied to all coordinates used in the functions. For the clip rectangle, to be readable, the matrix need to be inversible within the integers, so probably it is simpler to not allow scaling.