[bitmaps]
bkg=../examples/data/bkg.png
texture=../examples/data/texture.tga
obp=../examples/data/obp.jpg


[ll]
op0= al_draw_bitmap(bkg, 0, 0, 0)
op1= al_build_transform(trans, 320, 240, 1, 1, 1.0)
op2=
op3= al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ONE)
op4= al_use_transform(trans)
op5= al_draw_prim(verts, 0, tex, 0, 4, ALLEGRO_PRIM_LINE_LIST)
op6= al_draw_prim(verts, 0, tex, 4, 9, ALLEGRO_PRIM_LINE_STRIP)
op7= al_draw_prim(verts, 0, tex, 9, 13, ALLEGRO_PRIM_LINE_LOOP)
verts=vtx_ll
tex=0

[test ll notex blend]
extend=ll
hash=3e2bdb71

[test ll notex opaque]
extend=ll
op3=al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO)
hash=8e491071

[test ll tex blend]
extend=ll
tex=texture
hash=002007ce

[test ll tex blend white]
extend=ll
verts=vtx_ll_white
tex=texture
hash=cccd8111

[test ll tex opaque]
extend=ll
op3=al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO)
tex=texture
hash=be2f916a

[test ll tex opaque white]
extend=ll
op3=al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO)
verts=vtx_ll_white
tex=texture
hash=92099701


[hl]
op0= al_draw_bitmap(bkg, 0, 0, 0)
op1= al_build_transform(trans, 320, 240, 0.75, 0.75, theta)
op2=
op3= al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ONE)
op4= al_use_transform(trans)
op5= al_draw_line(-300, -200, 300, 200, #008080ff, thickness)
op6= al_draw_triangle(-150, -250, 0, 250, 150, -250, #800080ff, thickness)
op7= al_draw_rectangle(-300, -200, 300, 200, #800000ff, thickness)
op8= al_draw_rounded_rectangle(-200, -125, 200, 125, 50, 100, #333300ff, thickness)
op9= al_draw_ellipse(0, 0, 300, 150, #008080ff, thickness)
op10=al_draw_arc(0, 0, 200, -1.5707, 3.1415, #803f00ff, thickness)
op11=
op12=
op13=al_draw_spline(points, #193380ff, thickness)
points=-300,-200, 700,200, -700,200, 300,-200
theta=0.5
thickness=1

[hl2]
# hl2 is like hl but the spline is not rotated.
# We received a report on i386 where the rotated spline is drawn with
# a single pixel difference, but still acceptable.
extend=hl
op11=al_build_transform(trans, 320, 240, 0.75, 0.75, 0)
op12=al_use_transform(trans)

[test hl thick-0]
extend=hl
thickness=0
hash=d62736a8
sig=766666666769966A66656659677676767A66866697567669A6556766786676665767A876776666766

[test hl thick-1]
extend=hl
thickness=1
sig=766666666769966966656659677676767A66866697566669965567667866766657679876776666766

[test hl thick-2]
extend=hl
thickness=2
hash=639f3cad

[test hl thick-10]
extend=hl
thickness=10
hash=019f07b9

[test hl2 thick-50]
extend=hl2
thickness=50
hash=a0129b37

[test hl2 thick-50 clip]
extend=test hl2 thick-50
op2=al_set_clipping_rectangle(220, 140, 420, 340)
hash=9039ee00

[test hl2 thick-50 nolight]
extend=test hl2 thick-50
op3=
hash=dc66bfe1

[test hl2 thick-50 nolight clip]
extend=test hl2 thick-50 clip
op3=
hash=2e3bd424

[test hl fill]
op0= al_draw_bitmap(bkg, 0, 0, 0)
op1= al_build_transform(trans, 320, 240, 0.75, 0.75, theta)
op2=
op3= al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ONE)
op4= al_use_transform(trans)
op5=
op6= al_draw_filled_triangle(-100, -100, -150, 200, 100, 200, #80b24c)
op7= al_draw_filled_rectangle(20, -50, 200, 50, #4c3399)
op8= al_draw_filled_ellipse(-250, 0, 100, 150, #4c4c4c)
op9= al_draw_filled_rounded_rectangle(50, -250, 350, -75, 50, 70, #333300)
theta=0.5
hash=effa21ee
sig=76N6666667PP6667666OP657EF76QPd67EFF7P6c6UDFE66cb6TS6F66cc66766657677576776666766

[test hl fill clip]
extend=test hl fill
op2=al_set_clipping_rectangle(220, 140, 420, 340)
hash=923737a4

[test hl fill nolight]
extend=test hl fill
op3=
hash=400eca07

[test hl fill subbmp dest]
op0= subbmp = al_create_sub_bitmap(target, 60, 60, 540, 380)
op1= al_set_target_bitmap(subbmp)
op2= al_draw_bitmap(bkg, 0, 0, 0)
op3=
op4= al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ONE)
op5= al_build_transform(trans, 320, 240, 0.75, 0.75, theta)
op6= al_use_transform(trans)
op7= al_draw_filled_triangle(-100, -100, -150, 200, 100, 200, #80b24c)
op8= al_draw_filled_rectangle(20, -50, 200, 50, #4c3399)
op9= al_draw_filled_ellipse(-250, 0, 100, 150, #4c4c4c)
op10=al_draw_filled_rounded_rectangle(50, -250, 350, -75, 50, 70, #333300)
theta=0.5
hash=457ddb11
sig=00000000075666667677QP7757676PP665F97APQY56FE75P7c76EE766bbTSUF776db77777666c7666

[test hl fill subbmp dest clip]
extend=test hl fill subbmp dest
op3=al_set_clipping_rectangle(220, 140, 300, 200)
hash=52d7f9fd

[test circle]
op0=al_clear_to_color(#884444)
op1=al_draw_circle(200, 150, 100, #66aa0080, 10)
op2=al_set_blender(ALLEGRO_ADD, ALLEGRO_ALPHA, ALLEGRO_ONE)
op3=al_draw_circle(350, 250, 200, #00aaaa80, 50)
op4=al_draw_filled_circle(250, 175, 75, #aa660080)
hash=484ad11f

[test small arc crash]
op0=al_build_transform(t, 100, 100, scale, scale, 0.0)
scale=0.005
op1=al_use_transform(t)
op2=al_draw_ellipse(0, 0, 32, 16, red, 2)
op3=al_draw_rounded_rectangle(50.5, 0.5, 100.5, 50.5, 5, 5, green, 3)
op4=al_draw_filled_rounded_rectangle(0, 100, 50, 150, 5, 5, blue)
op5=al_draw_arc(100, 100, 50, 0, 1.7, yellow, 4)
hash=f2391dc5

[test filled notex blend]
op0=
op1=al_draw_bitmap(bkg, 0, 0, 0)
op2=al_build_transform(t, 320, 240, 1, 1, 1.0)
op3=al_use_transform(t)
op4=al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ONE)
op5=al_draw_prim(vtx_notex, 0, 0, 0, 6, ALLEGRO_PRIM_TRIANGLE_FAN)
op6=al_draw_prim(vtx_notex, 0, 0, 7, 13, ALLEGRO_PRIM_TRIANGLE_LIST)
op7=al_draw_prim(vtx_notex, 0, 0, 14, 20, ALLEGRO_PRIM_TRIANGLE_STRIP)
hash=1312b9c9
sig=766666666766P66766656657K776767676667666975I5666LK556766KPJ6766657NJ7576776666766

[test filled notex opaque]
extend=test filled notex blend
op4=al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO)
hash=2ac96499
sig=766666666766I66766656657E776767676667666775B5666FE556766EID6766657GC7576776666766

[test filled textured blend]
op0=
op1=al_draw_bitmap(bkg, 0, 0, 0)
op2=al_build_transform(t, 320, 240, 1, 1, 1.0)
op3=al_use_transform(t)
op4=al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ONE)
op5=al_draw_prim(vtx_tex, 0, tex, 0, 6, ALLEGRO_PRIM_TRIANGLE_FAN)
op6=al_draw_prim(vtx_tex, 0, tex, 7, 13, ALLEGRO_PRIM_TRIANGLE_LIST)
op7=al_draw_prim(vtx_tex, 0, tex, 14, 20, ALLEGRO_PRIM_TRIANGLE_STRIP)
tex=texture
hash=04d0ae2f
sig=766666666766B66766656657977676767666766687585666NP556766RXS6766657fR7576776666766

[test filled textured blend clip]
extend=test filled textured blend
op0=al_set_clipping_rectangle(150, 80, 340, 280)
hash=4b485162
sig=000000000006B66700006657900006767600006687500006NP550000RXS6700000000000000000000

[test filled textured opaque]
extend=test filled textured blend
op4=al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO)
hash=67cc8955
sig=766666666766466766656657377676767666766677515666IK556766LTN6766657cK7576776666766

[test filled textured opaque clip]
extend=test filled textured opaque
op0=al_set_clipping_rectangle(150, 80, 340, 280)
hash=42db2b52
sig=000000000006466700006657300006767600006677500006IK550000LTN6700000000000000000000

[test filled subtexture blend]
# Note: sub-bitmap textures may not repeat/tile.
op0=tex = al_create_sub_bitmap(obp, 70, 60, 322, 303)
op1=al_draw_bitmap(bkg, 0, 0, 0)
op2=al_build_transform(t, 320, 240, 1, 1, 1.0)
op3=al_use_transform(t)
op4=al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ONE)
op5=al_draw_prim(vtx_tex2, 0, tex, 0, 6, ALLEGRO_PRIM_TRIANGLE_FAN)
op6=al_draw_prim(vtx_tex2, 0, tex, 7, 13, ALLEGRO_PRIM_TRIANGLE_LIST)
op7=al_draw_prim(vtx_tex2, 0, tex, 14, 20, ALLEGRO_PRIM_TRIANGLE_STRIP)
hash=891747fe
sig=766666666766J66766656657D776767676667666A75G5666ML556766NNK6766657MM7576776666766

[test filled subtexture opaque]
extend=test filled subtexture blend
op4=al_set_blender(ALLEGRO_ADD, ALLEGRO_ONE, ALLEGRO_ZERO)
hash=325bf4a2
sig=766666666766C66766656657777676767666766687595666GF556766GHE6766657GE7576776666766

[test filled textured solid non-white tint]
op0=
op1=al_draw_bitmap(bkg, 0, 0, 0)
op2=al_build_transform(t, 320, 240, 1, 1, 1.0)
op3=al_use_transform(t)
op4=al_set_blender(ALLEGRO_ADD, ALLEGRO_ALPHA, ALLEGRO_INVERSE_ALPHA)
op5=al_draw_prim(vtx_tex3, 0, texture, 0, 6, ALLEGRO_PRIM_TRIANGLE_FAN)
hash=e16da3fc
sig=7666666667666667666566576776767676667666675656669A556766ACA6766657FA7576776666766

[test filled textured subbmp dest]
op0=al_clear_to_color(gray)
op1=sub = al_create_sub_bitmap(target, 30, 150, 400, 300)
op2=al_set_target_bitmap(sub)
op3=al_clear_to_color(orange)
op4=
op5=al_build_transform(Tsub, 300, 10, 5, 4, 1.0)
op6=al_use_transform(Tsub)
op7=al_draw_prim(vtx_tex, 0, texture, 0, 6, ALLEGRO_PRIM_TRIANGLE_FAN)
hash=19fb34dc
sig=WWWWWWWWWWWWWWWWWWWWWWWWWWWZZZZgZWWWZZY7bZWWWZgEM5ZWWWgUaHAeWWWP8gUf7WWWCUEgNgWWW

[test filled textured subbmp dest clip]
extend=test filled textured subbmp dest
op4=al_set_clipping_rectangle(50, 50, 300, 200)
hash=49c3d736

[test div-by-zero]
# This test used to cause a division-by-zero.
op0=al_build_transform(t, 320, 240, 1, 1, theta)
op1=al_use_transform(t)
op2=al_draw_prim(vtx_divbyzero, 0, texture, 0, 4, ALLEGRO_PRIM_TRIANGLE_FAN)
theta=4.84207964
hash=a95ea313
sig=0000000000000Ca000000EgW00000bBgSK0000TWPYa0000NMgEX00000gbX000000MM0000000000000

[test pieslice]
# 5.1 additions scheduled to be backported to 5.0.6
op0=al_set_blender(ALLEGRO_ADD, ALLEGRO_ALPHA, ALLEGRO_INVERSE_ALPHA)
op1=al_draw_pieslice(160, 240, 100, 1.0, 6.0, blue, 10)
op2=al_draw_pieslice(160, 240, 100, 1.0, 6.0, yellow, 1)
op3=al_draw_filled_pieslice(480, 240, 200, 1.0, 1.5, #aa333388)
op4=al_draw_filled_pieslice(480, 240, 200, 2.0, 1.5, #33aa3399)
op5=al_draw_filled_pieslice(480, 240, 200, 3.0, 1.5, #3333aa88)
hash=64ef5e16
sig=00000000000000C6000OO0CCC005002ICC00C00IIII0030O1DDI300NN0DICC000000ICC0000000CC0

[test elliptical arc]
# 5.1 addition scheduled to be backported to 5.0.6
op0=al_set_blender(ALLEGRO_ADD, ALLEGRO_ALPHA, ALLEGRO_INVERSE_ALPHA)
op1=al_draw_elliptical_arc(160, 240, 50, 100, -1.5, 4.5, #ff5555aa, 50)
op2=al_draw_elliptical_arc(160, 240, 50, 100,  2.0, 4.5, #55ff55aa, 40)
op3=al_draw_elliptical_arc(160, 240, 50, 100,  2.0, 4.5, yellow, 0)
op4=al_draw_elliptical_arc(440, 240, 100, 50, -1.5, 4.5, #ff5555aa, 10)
op5=al_draw_elliptical_arc(440, 240, 100, 50,  2.0, 4.5, #55ff55aa, 20)
op6=al_draw_elliptical_arc(440, 240, 100, 50,  2.0, 4.5, yellow, 1)
hash=6a88fcfc

[vtx_ll]
v0 = 200.000000,    0.000000,    0.000000;  128.000000,    0.000000; #408000
v1 = 177.091202,   92.944641,    0.000000;  113.338371,   59.484570; #800040
v2 = 113.612938,  164.596771,    0.000000;   72.712280,  105.341934; #004080
v3 =  24.107338,  198.541779,    0.000000;   15.428697,  127.066742; #408000
v4 = -70.920990,  187.003250,    0.000000;  -45.389435,  119.682083; #800040
v5 =-149.702148,  132.624527,    0.000000;  -95.809372,   84.879700; #004080
v6 =-194.188370,   47.863136,    0.000000; -124.280556,   30.632408; #408000
v7 =-194.188354,  -47.863167,    0.000000; -124.280548,  -30.632427; #800040
v8 =-149.702133, -132.624557,    0.000000;  -95.809364,  -84.879715; #004080
v9 = -70.920914, -187.003265,    0.000000;  -45.389385, -119.682091; #408000
v10=  24.107349, -198.541779,    0.000000;   15.428703, -127.066742; #800040
v11= 113.612984, -164.596741,    0.000000;   72.712311, -105.341911; #004080
v12= 177.091202,  -92.944641,    0.000000;  113.338371,  -59.484570; #408000

[vtx_ll_white]
v0 = 200.000000,    0.000000,    0.000000;  128.000000,    0.000000; #ffffff
v1 = 177.091202,   92.944641,    0.000000;  113.338371,   59.484570; #ffffff
v2 = 113.612938,  164.596771,    0.000000;   72.712280,  105.341934; #ffffff
v3 =  24.107338,  198.541779,    0.000000;   15.428697,  127.066742; #ffffff
v4 = -70.920990,  187.003250,    0.000000;  -45.389435,  119.682083; #ffffff
v5 =-149.702148,  132.624527,    0.000000;  -95.809372,   84.879700; #ffffff
v6 =-194.188370,   47.863136,    0.000000; -124.280556,   30.632408; #ffffff
v7 =-194.188354,  -47.863167,    0.000000; -124.280548,  -30.632427; #ffffff
v8 =-149.702133, -132.624557,    0.000000;  -95.809364,  -84.879715; #ffffff
v9 = -70.920914, -187.003265,    0.000000;  -45.389385, -119.682091; #ffffff
v10=  24.107349, -198.541779,    0.000000;   15.428703, -127.066742; #ffffff
v11= 113.612984, -164.596741,    0.000000;   72.712311, -105.341911; #ffffff
v12= 177.091202,  -92.944641,    0.000000;  113.338371,  -59.484570; #ffffff

[vtx_notex]
v0 =    0.000000,    0.000000,    0.000000;    0.000000,    0.000000; #408000
v1 =  190.211304,   61.803402,    0.000000;    0.000000,    0.000000; #804040
v2 =  121.352547,   88.167786,    0.000000;    0.000000,    0.000000; #000080
v3 =  117.557053,  161.803406,    0.000000;    0.000000,    0.000000; #408000
v4 =   46.352547,  142.658478,    0.000000;    0.000000,    0.000000; #804040
v5 =   -0.000009,  200.000000,    0.000000;    0.000000,    0.000000; #000080
v6 =  -46.352554,  142.658478,    0.000000;    0.000000,    0.000000; #408000
v7 = -117.557037,  161.803406,    0.000000;    0.000000,    0.000000; #804040
v8 = -121.352547,   88.167778,    0.000000;    0.000000,    0.000000; #000080
v9 = -190.211304,   61.803406,    0.000000;    0.000000,    0.000000; #408000
v10= -150.000000,   -0.000013,    0.000000;    0.000000,    0.000000; #804040
v11= -190.211304,  -61.803394,    0.000000;    0.000000,    0.000000; #000080
v12= -121.352539,  -88.167801,    0.000000;    0.000000,    0.000000; #408000
v13= -117.557083, -161.803360,    0.000000;    0.000000,    0.000000; #804040
v14=  -46.352562, -142.658478,    0.000000;    0.000000,    0.000000; #000080
v15=    0.000002, -200.000000,    0.000000;    0.000000,    0.000000; #408000
v16=   46.352570, -142.658478,    0.000000;    0.000000,    0.000000; #804040
v17=  117.557098, -161.803360,    0.000000;    0.000000,    0.000000; #000080
v18=  121.352539,  -88.167793,    0.000000;    0.000000,    0.000000; #408000
v19=  190.211304,  -61.803391,    0.000000;    0.000000,    0.000000; #804040
v20=  150.000000,    0.000026,    0.000000;    0.000000,    0.000000; #000080

[vtx_tex]
v0 =    0.000000,    0.000000,    0.000000;    0.000000,    0.000000; #ffffff
v1 =  190.211304,   61.803402,    0.000000;  121.735237,   39.554176; #ffffff
v2 =  121.352547,   88.167786,    0.000000;   77.665627,   56.427383; #ffffff
v3 =  117.557053,  161.803406,    0.000000;   75.236511,  103.554176; #ffffff
v4 =   46.352547,  142.658478,    0.000000;   29.665630,   91.301422; #ffffff
v5 =   -0.000009,  200.000000,    0.000000;   -0.000006,  128.000000; #ffffff
v6 =  -46.352554,  142.658478,    0.000000;  -29.665634,   91.301422; #ffffff
v7 = -117.557037,  161.803406,    0.000000;  -75.236504,  103.554176; #ffffff
v8 = -121.352547,   88.167778,    0.000000;  -77.665627,   56.427380; #ffffff
v9 = -190.211304,   61.803406,    0.000000; -121.735237,   39.554180; #ffffff
v10= -150.000000,   -0.000013,    0.000000;  -96.000000,   -0.000008; #804040
v11= -190.211304,  -61.803394,    0.000000; -121.735237,  -39.554173; #000080
v12= -121.352539,  -88.167801,    0.000000;  -77.665627,  -56.427391; #408000
v13= -117.557083, -161.803360,    0.000000;  -75.236534, -103.554153; #804040
v14=  -46.352562, -142.658478,    0.000000;  -29.665640,  -91.301422; #000080
v15=    0.000002, -200.000000,    0.000000;    0.000002, -128.000000; #408000
v16=   46.352570, -142.658478,    0.000000;   29.665644,  -91.301422; #804040
v17=  117.557098, -161.803360,    0.000000;   75.236542, -103.554153; #000080
v18=  121.352539,  -88.167793,    0.000000;   77.665627,  -56.427387; #408000
v19=  190.211304,  -61.803391,    0.000000;  121.735237,  -39.554169; #804040
v20=  150.000000,    0.000026,    0.000000;   96.000000,    0.000017; #000080

[vtx_tex2]
v0 =    0.000000,    0.000000,    0.000000;  161.000000,  151.500000; #ffffff
v1 =  190.211304,   61.803402,    0.000000;  314.120087,  198.316071; #ffffff
v2 =  121.352547,   88.167786,    0.000000;  258.688812,  218.287094; #ffffff
v3 =  117.557053,  161.803406,    0.000000;  255.633423,  274.066071; #ffffff
v4 =   46.352547,  142.658478,    0.000000;  198.313797,  259.563782; #ffffff
v5 =   -0.000009,  200.000000,    0.000000;  161.000000,  303.000000; #ffffff
v6 =  -46.352554,  142.658478,    0.000000;  123.686195,  259.563782; #ffffff
v7 = -117.557037,  161.803406,    0.000000;   66.366585,  274.066071; #ffffff
v8 = -121.352547,   88.167778,    0.000000;   63.311199,  218.287094; #ffffff
v9 = -190.211304,   61.803406,    0.000000;    7.879900,  198.316086; #ffffff
v10= -150.000000,   -0.000013,    0.000000;   40.250000,  151.499985; #804040
v11= -190.211304,  -61.803394,    0.000000;    7.879900,  104.683929; #000080
v12= -121.352539,  -88.167801,    0.000000;   63.311207,   84.712891; #408000
v13= -117.557083, -161.803360,    0.000000;   66.366547,   28.933954; #804040
v14=  -46.352562, -142.658478,    0.000000;  123.686188,   43.436203; #000080
v15=    0.000002, -200.000000,    0.000000;  161.000000,    0.000000; #408000
v16=   46.352570, -142.658478,    0.000000;  198.313812,   43.436203; #804040
v17=  117.557098, -161.803360,    0.000000;  255.633469,   28.933954; #000080
v18=  121.352539,  -88.167793,    0.000000;  258.688782,   84.712898; #408000
v19=  190.211304,  -61.803391,    0.000000;  314.120087,  104.683929; #804040
v20=  150.000000,    0.000026,    0.000000;  281.750000,  151.500015; #000080

[vtx_tex3]
# All vertices have same non-white colour.
v0 =    0.000000,    0.000000,    0.000000;    0.000000,    0.000000; #ff883366
v1 =  190.211304,   61.803402,    0.000000;  121.735237,   39.554176; #ff883366
v2 =  121.352547,   88.167786,    0.000000;   77.665627,   56.427383; #ff883366
v3 =  117.557053,  161.803406,    0.000000;   75.236511,  103.554176; #ff883366
v4 =   46.352547,  142.658478,    0.000000;   29.665630,   91.301422; #ff883366
v5 =   -0.000009,  200.000000,    0.000000;   -0.000006,  128.000000; #ff883366
v6 =  -46.352554,  142.658478,    0.000000;  -29.665634,   91.301422; #ff883366

[vtx_divbyzero]
v0=  200.000000,    0.000000,    0.000000;   128.00,      0.0; #ffffff
v1=    0.000000,  200.000000,    0.000000;      0.0,    128.0; #ffffff
v2= -200.000000,    0.000000,    0.000000;   -128.0,      0.0; #ffffff
v3=    0.000000, -200.000000,    0.000000;      0.0,   -128.0; #ffffff