There is no exhaustive documentation, but most functions are self-explanatory. I've used long function names for this purpose. Almost everything is accessible as a function or using a property of the TBGRABitmap object. For example, you can use CanvasBGRA to have some canvas similar to TCanvas and Canvas2D to have the same features as the HTML canvas.
Some special features require the use of units, but you may not need them. For example TBGRAMultishapeFiller to have an antialiased junctions of polygons is in BGRAPolygon, TBGRATextEffect is in BGRATextFX, 2D transformations are in BGRATransform, TBGRAScene3D is in BGRAScene3D. Notice that unit names are also quite clear so that you can guess where you can find what you need.
About double-buffering, it is not really part of BGRABitmap, because it is more how to handle forms. To do double-buffering, you can use TBGRAVirtualScreen which is in the BGRAControls package. See here :
http://www.lazarus.freepascal.org/index.php/topic,12411.0.htmlApart from that, double-buffering in BGRABitmap works like any double-buffering. You need to have a bitmap where you store your drawing and that you display with a single instruction.