From: Runaway
RotateBitmap is in degrees, as well as most of the angle-related functions.
in this case in radians
I don't know if this works with angles != PI/2 * k , because then bitmap looks like:

,so black background becomes part of bitmap. It may work ,if bitmap finding function ignores clBlack.
And every new rotated bitmap is rectangle ,so if you rotate same bitmap multiple times at non 90 degree ,size of canvas will increase geometrically. Run this to understand ,what I'm talking about ,because it's hard to explain in english:rolleyes::
program new;
{$i srl/srl.simba}
{$I srl/srl/misc/debug.simba}
var
bmp ,a : integer;
begin
bmp := CreateBitmap(50,50);
FastReplaceColor(bmp,0,clred);
for a:= 0 to 9 do
begin
FastReplaceColor(bmp,0,a*2560);
debugbitmap(bmp);
wait(1000);
bmp := RotateBitmap(bmp,Radians(30));
end;
end.