[bitmaps]
mysha=../examples/data/mysha.pcx
allegro=../examples/data/allegro.pcx

[test blit]
op0=al_clear_to_color(red)
op1=al_draw_bitmap(mysha, 37, 47, flags)
flags=0
hash=dabe9c74

[test blit vflip]
extend=test blit
flags=ALLEGRO_FLIP_VERTICAL
hash=ee8c112c

[test blit hflip]
extend=test blit
flags=ALLEGRO_FLIP_HORIZONTAL
hash=7e343e90

[test blit vhflip]
extend=test blit
flags=ALLEGRO_FLIP_VERTICAL|ALLEGRO_FLIP_HORIZONTAL
hash=72d59a18

[test region]
op0=al_clear_to_color(red)
op1=al_draw_bitmap(mysha, 37, 47, flags)
op2=al_draw_bitmap_region(mysha, 111, 51, 77, 99, 37, 47, flags)
flags=0
hash=8e5335ae

[test region hflip]
extend=test region
flags=ALLEGRO_FLIP_HORIZONTAL
hash=569472fc

[test region vflip]
extend=test region
flags=ALLEGRO_FLIP_VERTICAL
hash=f479bb0d

[test region vhflip]
extend=test region
flags=ALLEGRO_FLIP_HORIZONTAL|ALLEGRO_FLIP_VERTICAL
hash=cadc1987

[test scale min]
op0=al_clear_to_color(red)
op1=al_draw_scaled_bitmap(mysha, 0, 0, 320, 200, 11, 17, 77, 99, flags)
flags=0
hash=ae4b4301

[test scale min vflip]
extend=test scale min
flags=ALLEGRO_FLIP_VERTICAL
hash=973bd6bd
sig=DLLLLLLLLELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL

[test scale min hflip]
extend=test scale min
flags=ALLEGRO_FLIP_HORIZONTAL
hash=807e7ae5

[test scale min vhflip]
extend=test scale min
flags=ALLEGRO_FLIP_VERTICAL|ALLEGRO_FLIP_HORIZONTAL
hash=5c2b54ad

[test scale max]
op0=al_clear_to_color(blue)
op1=al_draw_scaled_bitmap(mysha, 0, 0, 320, 200, 11, 17, 611, 415, flags)
flags=0
hash=1ede4355
sig=EEEEEEDDCEFGPGEEDDFKjsebEDDGwvsVaEEDHvcgQPKDDHogTKMFEE4EaNLN9DE22254I222DDDDDDDDD

[test scale max hflip]
extend=test scale max
flags=ALLEGRO_FLIP_HORIZONTAL
hash=99b05f69
sig=CDEEEEEEECDEMFRFFECDEairgGFDEIZburwFDEMOTlrvGDECLLUeqGDD2HMNaA3222385222DDDDDDDDD

[test scale max vflip]
extend=test scale max
flags=ALLEGRO_FLIP_VERTICAL
hash=d9f0a6ea
sig=22221222222VM2K222GmePLLDEEJrmeRQJEDHuuoTUHDDFlovXaEDDEFPsgVEDCEEEEEEEDCIIIIIIHHH

[test scale max2]
op0=al_clear_to_color(aqua)
op1=al_draw_scaled_bitmap(mysha, 0, 0, 320, 200, 320, 240, dw, dh, flags)
dw=600
dh=600
flags=0
hash=edba302f
sig=ggggggggggggggggggggggggggggggggggggggggXPQQQggggQEEEEggggQEEFFggggQFOtsggggQFomt

[test scale max2 vflip]
extend=test scale max2
flags=ALLEGRO_FLIP_VERTICAL
hash=e6bc6d52
sig=ggggggggggggggggggggggggggggggggggggggggTJJJJggggJ222BggggJ22LGggggJ1baOggggVIkgP

[test scale max2 negy hflip]
extend=test scale max2
dh=-600
flags=ALLEGRO_FLIP_HORIZONTAL
hash=e6bc6d52
sig=ggggPDEEYggggPCDEXggggPDDEDggggOCDDEggggYTTUUgggggggggggggggggggggggggggggggggggg

[test scale max2 negy vhflip]
extend=test scale max2
dh=-600
flags=ALLEGRO_FLIP_VERTICAL|ALLEGRO_FLIP_HORIZONTAL
hash=cf1b15e6
sig=ggggQEEDMggggQDE7HggggJ1211ggggJ2222ggggWPPPPgggggggggggggggggggggggggggggggggggg

[test scale max2 negx vflip]
extend=test scale max2
dw=-600
flags=ALLEGRO_FLIP_VERTICAL
hash=635d9cf1
sig=ggggggggggggggggggggggggggggggggggggJJJJWgggg9222PggggHK22PggggOab1PggggQgkIYgggg

[test scale max2 negx negy]
extend=test scale max2
dw=-600
dh=-600
sig=tmnFUggggrrIFUggggFFEEUggggEEEEUggggUUUTbgggggggggggggggggggggggggggggggggggggggg

[test scale max2 negx negy hflip]
extend=test scale max2 negx negy
flags=ALLEGRO_FLIP_HORIZONTAL
sig=ZEEDTggggXEDCTggggDEDCTggggEDDCTggggUTTTagggggggggggggggggggggggggggggggggggggggg

[test scale max2 negx negy vflip]
extend=test scale max2 negx negy
flags=ALLEGRO_FLIP_VERTICAL
sig=QgkHYggggOaZ2PggggHH22Pgggg9222PggggPPPPZgggggggggggggggggggggggggggggggggggggggg

[test scale max2 negx negy vhflip]
extend=test scale max2 negx negy
flags=ALLEGRO_FLIP_VERTICAL|ALLEGRO_FLIP_HORIZONTAL
sig=MCEEUggggG7EDUgggg1121Pgggg2222PggggPPPPZgggggggggggggggggggggggggggggggggggggggg

[test rotate]
op0=al_clear_to_color(purple)
op1=al_draw_rotated_bitmap(allegro, 50, 50, 320, 240, theta, flags)
op2=al_draw_pixel(320, 240, cyan)
theta=0
flags=0
hash=435c5d10

[test rotate 0.5]
extend=test rotate
theta=0.5
hash=f03d3240
sig=LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLULLLLLLLLRKLLLLLLLQaaTLLLLOKSOkRLLLLGQXTLLLLLLINOL

[test rotate 1.0]
extend=test rotate
theta=1.0
hash=78bf9ff5
sig=LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLkLLLLLLLIRLLLLLLOLcLLLLLLLOQkLLLLLLGaXeLLLLLLSinLL

[test rotate 1.0 vflip]
extend=test rotate 1.0
flags=ALLEGRO_FLIP_VERTICAL
hash=5b75eca4
sig=LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLSNLLLLLLYTPHLLLLLLeVNLLLLLLL+WMLLLLLLhgNLL

[test rotate -1.0]
extend=test rotate
theta=-1.0
hash=d86fa86f
sig=LLLLLVmMLLLLLLYhNNLLLLKlUOLLLLLUdbHLLLLLTOLLLLLLLbLMLLLLLLLNLLLLLLLLLLLLLLLLLLLLL

[test rotate -2.0]
extend=test rotate
theta=-2.0
hash=1b5ff6da
sig=LLifZHLLLLLLgUJLLLLLLaYKLLLLLLKfOILLLLLLTJLLLLLLLkLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL

[test rotate -2.0 hflip]
extend=test rotate -2.0
flags=ALLEGRO_FLIP_HORIZONTAL
hash=0a4986c3
sig=LLVSMGLLLLLLYSKLLLLLLabULLLLLLPTNMLLLLLLlNLLLLLLLiLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL

[test rotate -2.0 vhflip]
extend=test rotate -2.0
flags=ALLEGRO_FLIP_VERTICAL|ALLEGRO_FLIP_HORIZONTAL
hash=4ddeb3e3
sig=LLJPcKLLLLLLJcZLLLLLLKWgLLLLLLIYUjLLLLLLNBLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL

[test scaled rotate]
op0=al_clear_to_color(firebrick)
op1=al_draw_scaled_rotated_bitmap(allegro, 50, 50, 320, 240, xscale, yscale, theta, flags)
op2=al_draw_pixel(320, 240, cyan)
xscale=0.25
yscale=0.25
theta=0.7854
flags=0
hash=dc4ad82d
sig=KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKdKKKKKKKKIKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK

[test scaled rotate 2]
extend=test scaled rotate
xscale=0.777
yscale=0.777
hash=8fc7ecf8
sig=KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKXKKKKKKKKTKKKKKKKNehKKKKKKHSsgKKKKKKHTgKKKKKKKMKKK

[test scaled rotate 2 neg]
extend=test scaled rotate
xscale=-0.777
yscale=-0.777
hash=96153b14
sig=KKKLKKKKKKKbTHKKKKKKhxSHKKKKKKheNKKKKKKKVKKKKKKKKXKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK

[test scaled rotate 3]
extend=test scaled rotate
xscale=1.777
yscale=1.777
hash=1d003c91
sig=KKKKKKKKKKKKKKKKKKKKKKXKKKKKKKllQKKKKKJYQYKKKKKJRTjKKKKNNQYdnKKKOKKQUnZRKKLMYWjgf

[test scaled rotate 4]
extend=test scaled rotate
xscale=3.0
yscale=3.0
theta=-2.5
hash=31a17741
sig=nhjTTOLOOlgdgSOJMMNnORRVNKLKOngKDEHKKKTnQYYKKKKMfnifKKKKKThiKKKKKKKWkKKKKKKKKKKKK

[test scaled rotate 4 vflip]
extend=test scaled rotate 4
flags=ALLEGRO_FLIP_VERTICAL
hash=055000e8
sig=NSTPVQYDjMHQMTVWYnGKJKOJPXVFHOOQJKNKKGMONQMKKKKKSOPMKKKKKINNKKKKKKKONKKKKKKKKKKKK

[test scaled rotate 4 hflip]
extend=test scaled rotate 4
flags=ALLEGRO_FLIP_HORIZONTAL
hash=59ba09c8
sig=mbfcaSMKOieel/TMNNQihgcHMONOYfi//DNKLbgclyqKKKLdhcnmKKKKKiflKKKKKKLlhKKKKKKKLKKKK

[test scaled rotate 4 vhflip]
extend=test scaled rotate 4
flags=ALLEGRO_FLIP_VERTICAL|ALLEGRO_FLIP_HORIZONTAL
hash=e3236edd
sig=NVTZGmClnNRYXVf/ClGPUTPRsDhGJQSLMNlKKKMKNLOKKKKMLNNNKKKKKLLNKKKKKKKNNKKKKKKKKKKKK

[test scaled rotate 5]
extend=test scaled rotate
xscale=200
yscale=3.0
theta=-2
# It is known that the sw version is slightly offset from the hw version.
hash=e941f051
sig=LXnQfPMOMKTkQXUGJLKRjmYGKJOKKXnUfQKNKKTkQXVJJKKRjnYCHJKKKYneaQLKKKTkQXWJKKKQimYDN

[test sub src]
op0=al_clear_to_color(teal)
op1=b = al_create_sub_bitmap(allegro, 3, 40, 310, 70)
op2=al_draw_bitmap(b, 50, 50, flags)
op3=al_draw_rectangle(49.5, 49.5, 360.5, 120.5, black, 1)
flags=0
hash=ec890555

[test sub src hflip]
extend=test sub src
flags=ALLEGRO_FLIP_HORIZONTAL
hash=8862d735
sig=QNOQQLLLLDGbSVLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL

[test sub src outside]
op0=al_clear_to_color(teal)
op1=al_draw_rectangle(9.5, 9.5, 380.5, 260.5, black, 1)
op2=b = al_create_sub_bitmap(allegro, -50, -50, 370, 250)
op3=al_draw_bitmap(b, 10, 10, flags)
flags=0
hash=208f7025

[test sub src outside hflip]
extend=test sub src outside
flags=ALLEGRO_FLIP_HORIZONTAL
hash=c72f2d45

[test sub src outside vflip]
extend=test sub src outside
flags=ALLEGRO_FLIP_VERTICAL
hash=287e0fbd

[test sub src outside vhflip]
extend=test sub src outside
flags=ALLEGRO_FLIP_VERTICAL|ALLEGRO_FLIP_HORIZONTAL
hash=4696783d

[test sub src outside scale]
op0=al_clear_to_color(teal)
op1=b = al_create_sub_bitmap(allegro, -50, -50, 370, 250)
op2=al_draw_rectangle(9.5, 9.5, 610.5, 410.5, black, 1)
op3=al_draw_scaled_bitmap(b, 0, 0, 370, 250,  10, 10, 600, 400, flags)
flags=0
hash=ac298a45
sig=LLLLLLLLLLTNKKNXbkLmnkkffVhLnNOhcv/zLKZPaepcOLKNKZYYNOLMNMMOSOOLONIHHKLNLLLLLLLLL

[test sub src outside scale hflip]
extend=test sub src outside scale
flags=ALLEGRO_FLIP_HORIZONTAL
hash=898f5e8d
sig=LLLLLLLLLjcRKKKRWLYYheknnjLW/P+UWYkLQ/qgPaRRLLQWZXQJKLNRQOKONQLLMIFGOKNLLLLLLLLLL

[test sub src outside scale vflip]
extend=test sub src outside scale
flags=ALLEGRO_FLIP_VERTICAL
hash=762b67d5
sig=LMPLHHMLMLQMHJSWNNLLPMZXYSNLMdMjbdLDLcbOmfgkmLjhTQReegLLLLLLLLLLLLLLLLLLLLLLLLLLL

[test sub src outside scale vhflip]
extend=test sub src outside scale
flags=ALLEGRO_FLIP_HORIZONTAL|ALLEGRO_FLIP_VERTICAL
hash=7c95685d
sig=LNJGGONOLNNVMMGKPLMUfdWRKJLh/hcUaYVLmkekXhYjLfeYVPYjkLLLLLLLLLLLLLLLLLLLLLLLLLLLL

[test sub dest]
op0=b = al_create_sub_bitmap(target, 35, 37, 103, 104)
op1=al_set_target_bitmap(b)
op2=al_draw_bitmap(allegro, 0, 0, 0)
hash=1127286c

[test sub dest pixel]
op0=b = al_create_sub_bitmap(target, 35, 37, 103, 104)
op1=al_set_target_bitmap(b)
op2=al_draw_pixel(0.5, 0.5, red)
op3=al_put_pixel(1, 0, limegreen)
op4=al_draw_pixel(14.5, 17.5, red)
op5=al_put_pixel(15, 17, limegreen)
op6=al_draw_pixel(24.5, 27.5, red)
op7=al_put_pixel(25, 27, limegreen)
hash=b4d84cb9
hash_hw=663b41cf
sig_hw=000000000000000000000000000000000000000000000000000000000000000000000000000000000

[test subsub dest]
op0=al_clear_to_color(tan)
op1=b1 = al_create_sub_bitmap(target, 70, 90, 200, 200)
op2=al_set_target_bitmap(b1)
op3=al_clear_to_color(seagreen)
op4=b2 = al_create_sub_bitmap(b1, -50, -50, 200, 200)
op5=al_set_target_bitmap(b2)
op6=al_clear_to_color(royalblue)
op7=al_draw_bitmap(allegro, 10, 10, 0)
hash=066a6e10

[test sub transform]
op0=al_clear_to_color(teal)
op1=b = al_create_sub_bitmap(mysha, 160, 0, 160, 200)
op2=al_translate_transform(Tt, -80, 0)
op3=al_use_transform(Tt)
op4=al_draw_bitmap(b, 320, 10, flags)
op5=al_use_transform(Ti)
op6=al_draw_line(320.5, 0, 320.5, 480, #ffffff, 1)
flags=0
hash=945d520b
sig=LLLZLCLLLLLLPLDLLLLLLMLDLLLLLL2A2LLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLL

[test sub transform hflip]
extend=test sub transform
flags=ALLEGRO_FLIP_HORIZONTAL
hash=ee8a23a0
sig=LLLCLZLLLLLLDLPLLLLLLDLMLLLLLL2A2LLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLL

[test sub transform vflip]
extend=test sub transform
flags=ALLEGRO_FLIP_VERTICAL
hash=9290db87
sig=LLL2B1LLLLLLKLDLLLLLLVLCLLLLLLEKCLLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLL

[test sub transform vhflip]
extend=test sub transform
flags=ALLEGRO_FLIP_VERTICAL|ALLEGRO_FLIP_HORIZONTAL
hash=d43a7e7c
sig=LLL1A2LLLLLLDLLLLLLLLCLVLLLLLLCKELLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLL

[test region transform]
op0=al_clear_to_color(teal)
op1=al_translate_transform(Tt, -80, 0)
op2=al_use_transform(Tt)
op3=al_draw_bitmap_region(mysha, 160, 0, 160, 200, 320, 10, flags)
op4=al_use_transform(Ti)
op5=al_draw_line(320.5, 0, 320.5, 480, #ffffff, 1)
flags=0
hash=945d520b
sig=LLLZLCLLLLLLPLDLLLLLLMLDLLLLLL2A2LLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLL

[test region transform hflip]
extend=test region transform
flags=ALLEGRO_FLIP_HORIZONTAL
hash=ee8a23a0
sig=LLLCLZLLLLLLDLPLLLLLLDLMLLLLLL2A2LLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLL

[test region transform vflip]
extend=test region transform
flags=ALLEGRO_FLIP_VERTICAL
hash=9290db87
sig=LLL2B1LLLLLLKLDLLLLLLVLCLLLLLLEKCLLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLL

[test region transform vhflip]
extend=test region transform
flags=ALLEGRO_FLIP_VERTICAL|ALLEGRO_FLIP_HORIZONTAL
hash=d43a7e7c
sig=LLL1A2LLLLLLDLLLLLLLLCLVLLLLLLCKELLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLLLLLLRLLLL

[test transform compose]
op0=al_translate_transform(Tt, 200, 50)
op1=al_use_transform(Tt)
op2=al_draw_bitmap(allegro, 0, 0, 0)
op3=al_rotate_transform(Tr, 0.5)
op4=al_use_transform(Tr)
op5=al_draw_bitmap(mysha, 0, 0, 0)
op6=al_scale_transform(T, 1.5, 0.7)
op7=al_compose_transform(T, Tr)
op8=al_compose_transform(T, Tt)
op9=al_use_transform(T)
op10=al_draw_bitmap(allegro, 0, 0, 0)
hash=e1c88814
sig=E0075AAD0wElcvfjm0pYKUlWto0LLKKZnPM02CEHKZNe002100JZPl000000MNV000000000000000000

[test transform per bitmap]
op0=al_clear_to_color(gray)
op1=al_build_transform(T1, 200, 50, 1, 1, -0.333)
op2=al_use_transform(T1)
op3=sub = al_create_sub_bitmap(target, 30, 150, 400, 300)
op4=al_set_target_bitmap(sub)
op5=al_clear_to_color(azure)
op6=al_build_transform(Tsub, 0, 0, 1.5, 1.5, 0.5)
op7=al_use_transform(Tsub)
op8=al_draw_bitmap(mysha, 0, 0, 0)
op9=al_set_target_bitmap(target)
op10=al_draw_bitmap(allegro, 0, 0, 0)
hash=341b718b
sig=WWWVngLbWWWWBUUaNWWWWJNKLLWE++POGWWWFEP+++WWWmtEE++WWWqvlFD+WWWjaPQECWWWVLKPDCWWW