# Test BMP loader with images from this source:
#   http://entropymine.com/jason/bmpsuite/  (version 2)

[bitmaps]
# --- Common ("good") bmp files
gpal1bg = bmpsuite2/g/pal1bg.bmp
gpal1 = bmpsuite2/g/pal1.bmp
gpal1wb = bmpsuite2/g/pal1wb.bmp
gpal4 = bmpsuite2/g/pal4.bmp
gpal4gs = bmpsuite2/g/pal4gs.bmp
gpal4rle = bmpsuite2/g/pal4rle.bmp
gpal8-0 = bmpsuite2/g/pal8-0.bmp
gpal8 = bmpsuite2/g/pal8.bmp
gpal8gs = bmpsuite2/g/pal8gs.bmp
gpal8nonsquare = bmpsuite2/g/pal8nonsquare.bmp
gpal8os2 = bmpsuite2/g/pal8os2.bmp
gpal8rle = bmpsuite2/g/pal8rle.bmp
gpal8topdown = bmpsuite2/g/pal8topdown.bmp
gpal8v4 = bmpsuite2/g/pal8v4.bmp
gpal8v5 = bmpsuite2/g/pal8v5.bmp
gpal8w124 = bmpsuite2/g/pal8w124.bmp
gpal8w125 = bmpsuite2/g/pal8w125.bmp
gpal8w126 = bmpsuite2/g/pal8w126.bmp
grgb16-565 = bmpsuite2/g/rgb16-565.bmp
grgb16-565pal = bmpsuite2/g/rgb16-565pal.bmp
grgb16 = bmpsuite2/g/rgb16.bmp
grgb24 = bmpsuite2/g/rgb24.bmp
grgb24pal = bmpsuite2/g/rgb24pal.bmp
grgb32 = bmpsuite2/g/rgb32.bmp
grgb32bf = bmpsuite2/g/rgb32bf.bmp

# --- Obscure ("questionable") bmp files
qpal1p1 = bmpsuite2/q/pal1p1.bmp
qpal2 = bmpsuite2/q/pal2.bmp
qpal2color = bmpsuite2/q/pal2color.bmp
qpal8os2-sz = bmpsuite2/q/pal8os2-sz.bmp
qpal8os2v2-40sz = bmpsuite2/q/pal8os2v2-40sz.bmp
qrgb24lprof = bmpsuite2/q/rgb24lprof.bmp
qrgb24prof = bmpsuite2/q/rgb24prof.bmp
qrgb24largepal = bmpsuite2/q/rgb24largepal.bmp
qpal8oversizepal = bmpsuite2/q/pal8oversizepal.bmp
qpal8os2sp = bmpsuite2/q/pal8os2sp.bmp
qrgb16-231 = bmpsuite2/q/rgb16-231.bmp
qrgb16-3103 = bmpsuite2/q/rgb16-3103.bmp
qrgb32-111110 = bmpsuite2/q/rgb32-111110.bmp
qrgb32-7187 = bmpsuite2/q/rgb32-7187.bmp
qrgba16-1924 = bmpsuite2/q/rgba16-1924.bmp
qrgba16-4444 = bmpsuite2/q/rgba16-4444.bmp
qrgba32-61754 = bmpsuite2/q/rgba32-61754.bmp
qrgba32-81284 = bmpsuite2/q/rgba32-81284.bmp
qrgba32 = bmpsuite2/q/rgba32.bmp

# activates the alpha channel detection hack
# output is not "correct", but it is what we want
qrgb32fakealpha = bmpsuite2/q/rgb32fakealpha.bmp

# multiple "correct" outputs, we choose palette 0 to fill empty spaces
# note: output of the "rlecut" variants is intended to have purple lines
qpal4rletrns = bmpsuite2/q/pal4rletrns.bmp
qpal8rletrns = bmpsuite2/q/pal8rletrns.bmp
qpal4rlecut = bmpsuite2/q/pal4rlecut.bmp
qpal8rlecut = bmpsuite2/q/pal8rlecut.bmp

# allegro bails on unrecognized header sizes
#qrgb32h52 = bmpsuite2/q/rgb32h52.bmp
#qrgba32h56 = bmpsuite2/q/rgba32h56.bmp

# OS2v2 format not supported
#qpal8os2v2-16 = bmpsuite2/q/pal8os2v2-16.bmp
#qpal8os2v2 = bmpsuite2/q/pal8os2v2.bmp
#qpal8os2v2-sz = bmpsuite2/q/pal8os2v2-sz.bmp

# BI_ALHPABITFIELDS not supported
#qrgba32abf = bmpsuite2/q/rgba32abf.bmp

# JPEG/PNG compression not supported
#qrgb24jpeg = bmpsuite2/q/rgb24jpeg.bmp
#qrgb24png = bmpsuite2/q/rgb24png.bmp

# --- Invalid ("bad") bmp files

# Ensure empty palette entries are consistently colored
bpal8badindex = bmpsuite2/b/pal8badindex.bmp

# Ensure unspecified pixels are consistently colored
bshortfile = bmpsuite2/b/shortfile.bmp

# Ensure zero-length bitfields are consistently handled
brgb16-880 = bmpsuite2/b/rgb16-880.bmp

# Ensure RLE top-down images remain working
brletopdown = bmpsuite2/b/rletopdown.bmp

[template]
op0=al_draw_bitmap(bmp, 0, 0, 0)

[template_premul]
op0=bmp = al_load_bitmap(filename)
op1=al_draw_bitmap(bmp, 0, 0, 0)

[test bmpsuite2 gpal1bg]
extend=template
bmp=gpal1bg
hash=0d098169

[test bmpsuite2 gpal1]
extend=template
bmp=gpal1
hash=0a1884dd

[test bmpsuite2 gpal1wb]
extend=template
bmp=gpal1wb
hash=0a1884dd

[test bmpsuite2 gpal4]
extend=template
bmp=gpal4
hash=a1f65579

[test bmpsuite2 gpal4gs]
extend=template
bmp=gpal4gs
hash=c17d0e68

[test bmpsuite2 gpal4rle]
extend=template
bmp=gpal4rle
hash=a1f65579

[test bmpsuite2 gpal8-0]
extend=template
bmp=gpal8-0
hash=3f98d122

[test bmpsuite2 gpal8]
extend=template
bmp=gpal8
hash=3f98d122

[test bmpsuite2 gpal8gs]
extend=template
bmp=gpal8gs
hash=644b7fcb

[test bmpsuite2 gpal8nonsquare]
extend=template
bmp=gpal8nonsquare
hash=92123f8e

[test bmpsuite2 gpal8os2]
extend=template
bmp=gpal8os2
hash=3f98d122

[test bmpsuite2 gpal8rle]
extend=template
bmp=gpal8rle
hash=3f98d122

[test bmpsuite2 gpal8topdown]
extend=template
bmp=gpal8topdown
hash=3f98d122

[test bmpsuite2 gpal8v4]
extend=template
bmp=gpal8v4
hash=3f98d122

[test bmpsuite2 gpal8v5]
extend=template
bmp=gpal8v5
hash=3f98d122

[test bmpsuite2 gpal8w124]
extend=template
bmp=gpal8w124
hash=0a409ae9

[test bmpsuite2 gpal8w125]
extend=template
bmp=gpal8w125
hash=57e4822b

[test bmpsuite2 gpal8w126]
extend=template
bmp=gpal8w126
hash=226f73e5

[test bmpsuite2 grgb16-565]
extend=template
bmp=grgb16-565
hash=250c9fae

[test bmpsuite2 grgb16-565pal]
extend=template
bmp=grgb16-565pal
hash=250c9fae

[test bmpsuite2 grgb16]
extend=template
bmp=grgb16
hash=7af81b6e

[test bmpsuite2 grgb24]
extend=template
bmp=grgb24
hash=68c13e2b

[test bmpsuite2 grgb24pal]
extend=template
bmp=grgb24pal
hash=68c13e2b

[test bmpsuite2 grgb32]
extend=template
bmp=grgb32
hash=68c13e2b

[test bmpsuite2 grgb32bf]
extend=template
bmp=grgb32bf
hash=68c13e2b

[test bmpsuite2 qpal1p1]
extend=template
bmp=qpal1p1
hash=87931dc5

[test bmpsuite2 qpal2]
extend=template
bmp=qpal2
hash=e9f2003f

[test bmpsuite2 qpal2color]
extend=template
bmp=qpal2color
hash=441e2930

[test bmpsuite2 qpal8os2-sz]
extend=template
bmp=qpal8os2-sz
hash=3f98d122

[test bmpsuite2 qpal8os2v2-40sz]
extend=template
bmp=qpal8os2v2-40sz
hash=3f98d122

[test bmpsuite2 qrgb24lprof]
extend=template
bmp=qrgb24lprof
hash=68c13e2b

[test bmpsuite2 qrgb24prof]
extend=template
bmp=qrgb24prof
hash=68c13e2b

[test bmpsuite2 qrgb24largepal]
extend=template
bmp=qrgb24largepal
hash=68c13e2b

[test bmpsuite2 qpal8oversizepal]
extend=template
bmp=qpal8oversizepal
hash=3f98d122

[test bmpsuite2 qpal8os2sp]
extend=template
bmp=qpal8os2sp
hash=3f98d122

[test bmpsuite2 qrgb16-231]
extend=template
bmp=qrgb16-231
hash=ac77a449

[test bmpsuite2 qrgb16-3103]
extend=template
bmp=qrgb16-3103
hash=6c258348

[test bmpsuite2 qrgb32-111110]
extend=template
bmp=qrgb32-111110
hash=84580522

[test bmpsuite2 qrgb32-7187]
extend=template
bmp=qrgb32-7187
hash=dc097ec5

[test bmpsuite2 qrgba16-1924]
extend=template
bmp=qrgba16-1924
hash=1e8da1d6

[test bmpsuite2 qrgba16-4444]
extend=template
bmp=qrgba16-4444
hash=e76fc7c2

[test bmpsuite2 qrgba32-61754]
extend=template
bmp=qrgba32-61754
hash=26e36575

[test bmpsuite2 qrgba32-81284]
extend=template
bmp=qrgba32-81284
hash=d90b3b69

[test bmpsuite2 qrgba32]
extend=template
bmp=qrgba32
hash=8a20727d

[test bmpsuite2 qrgb32fakealpha]
extend=template
bmp=qrgb32fakealpha
hash=f645af5b

[test bmpsuite2 qpal4rletrns]
extend=template
bmp=qpal4rletrns
hash=a52bd5f5

[test bmpsuite2 qpal8rletrns]
extend=template
bmp=qpal8rletrns
hash=66933b5a

[test bmpsuite2 qpal4rlecut]
extend=template
bmp=qpal4rlecut
hash=f6a25391

[test bmpsuite2 qpal8rlecut]
extend=template
bmp=qpal8rlecut
hash=828ee98c

[test bmpsuite2 bpal8badindex]
extend=template
bmp=bpal8badindex
hash=eb1512c3

[test bmpsuite2 bshortfile]
extend=template
bmp=bshortfile
hash=76ba6cd6

[test bmpsuite2 brgb16-880]
extend=template
bmp=brgb16-880
hash=db0c5b9c

[test bmpsuite2 brletopdown]
extend=template
bmp=brletopdown
hash=3f98d122

[test bmpsuite2 qrgba16-1924_premul]
extend=template_premul
filename=bmpsuite2/q/rgba16-1924.bmp
hash=e2f9488d

[test bmpsuite2 qrgba16-4444_premul]
extend=template_premul
filename=bmpsuite2/q/rgba16-4444.bmp
hash=463e4ca9

[test bmpsuite2 qrgba32-61754_premul]
extend=template_premul
filename=bmpsuite2/q/rgba32-61754.bmp
hash=d7e0e0e2

[test bmpsuite2 qrgba32-81284_premul]
extend=template_premul
filename=bmpsuite2/q/rgba32-81284.bmp
hash=cd6f937e

[test bmpsuite2 qrgba32_premul]
extend=template_premul
filename=bmpsuite2/q/rgba32.bmp
hash=b4aca763

[test bmpsuite2 qrgb32fakealpha_premul]
extend=template_premul
filename=bmpsuite2/q/rgb32fakealpha.bmp
hash=5cf7f0d4
