mirror of
https://github.com/mkxp-z/mkxp-z.git
synced 2025-04-21 13:42:20 +02:00
412 lines
13 KiB
Ruby
Executable file
412 lines
13 KiB
Ruby
Executable file
# Test suite for mkxp-z high-res Bitmap replacement.
|
|
# Bitmap tests.
|
|
# Copyright 2023 Splendide Imaginarius.
|
|
# License GPLv2+.
|
|
# Test images are from https://github.com/xinntao/Real-ESRGAN/
|
|
#
|
|
# Run the suite via the "customScript" field in mkxp.json.
|
|
# Use RGSS v3 for best results.
|
|
|
|
def dump(bmp, spr, desc)
|
|
spr.bitmap = bmp
|
|
Graphics.wait(1)
|
|
bmp.to_file("test-results/" + desc + "-lo.png")
|
|
if !bmp.hires.nil?
|
|
bmp.hires.to_file("test-results/" + desc + "-hi.png")
|
|
end
|
|
System::puts("Finished " + desc)
|
|
end
|
|
|
|
# Setup graphics
|
|
Graphics.resize_screen(640, 480)
|
|
|
|
# Setup font
|
|
fnt = Font.new("Liberation Sans", 100)
|
|
|
|
# Setup splash screen
|
|
bmp = Bitmap.new(640, 480)
|
|
bmp.fill_rect(0, 0, 640, 480, Color.new(0, 0, 0))
|
|
|
|
bmp.font = fnt
|
|
bmp.draw_text(0, 0, 640, 240, "High-Res Test Suite", 1)
|
|
bmp.draw_text(0, 240, 640, 240, "Starting Now", 1)
|
|
|
|
spr = Sprite.new()
|
|
spr.bitmap = bmp
|
|
|
|
Graphics.wait(1 * 60)
|
|
|
|
# Tests start here
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
dump(bmp, spr, "constructor-filename")
|
|
|
|
# TODO: Filename GIF constructor
|
|
|
|
bmp = Bitmap.new(640, 480)
|
|
bmp.clear
|
|
dump(bmp, spr, "constructor-dimensions")
|
|
|
|
# TODO: Animation constructor
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp.clear
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect)
|
|
dump(bmp, spr, "stretch-blt-clear-tree-lo-children-full-opaque")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp.clear
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect, 127)
|
|
dump(bmp, spr, "stretch-blt-clear-tree-lo-children-full-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp.clear
|
|
rect = bmp.rect
|
|
rect.width /= 2
|
|
rect.height /= 2
|
|
rect.x = rect.width
|
|
rect.y = rect.height
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
rect2 = bmp2.rect
|
|
rect2.width /= 2
|
|
rect2.height /= 2
|
|
rect2.x = rect2.width
|
|
bmp.stretch_blt(rect, bmp2, rect2, 127)
|
|
dump(bmp, spr, "stretch-blt-clear-tree-lo-children-quarter-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp.clear
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect)
|
|
dump(bmp, spr, "stretch-blt-clear-tree-hi-children-full-opaque")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp.clear
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect, 127)
|
|
dump(bmp, spr, "stretch-blt-clear-tree-hi-children-full-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp.clear
|
|
rect = bmp.rect
|
|
rect.width /= 2
|
|
rect.height /= 2
|
|
rect.x = rect.width
|
|
rect.y = rect.height
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
rect2 = bmp2.rect
|
|
rect2.width /= 2
|
|
rect2.height /= 2
|
|
rect2.x = rect2.width
|
|
bmp.stretch_blt(rect, bmp2, rect2, 127)
|
|
dump(bmp, spr, "stretch-blt-clear-tree-hi-children-quarter-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp.fill_rect(bmp.rect, Color.new(0, 0, 0))
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect)
|
|
dump(bmp, spr, "stretch-blt-black-tree-lo-children-full-opaque")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp.fill_rect(bmp.rect, Color.new(0, 0, 0))
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect, 127)
|
|
dump(bmp, spr, "stretch-blt-black-tree-lo-children-full-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp.fill_rect(bmp.rect, Color.new(0, 0, 0))
|
|
rect = bmp.rect
|
|
rect.width /= 2
|
|
rect.height /= 2
|
|
rect.x = rect.width
|
|
rect.y = rect.height
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
rect2 = bmp2.rect
|
|
rect2.width /= 2
|
|
rect2.height /= 2
|
|
rect2.x = rect2.width
|
|
bmp.stretch_blt(rect, bmp2, rect2, 127)
|
|
dump(bmp, spr, "stretch-blt-black-tree-lo-children-quarter-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp.fill_rect(bmp.rect, Color.new(0, 0, 0))
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect)
|
|
dump(bmp, spr, "stretch-blt-black-tree-hi-children-full-opaque")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp.fill_rect(bmp.rect, Color.new(0, 0, 0))
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect, 127)
|
|
dump(bmp, spr, "stretch-blt-black-tree-hi-children-full-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp.fill_rect(bmp.rect, Color.new(0, 0, 0))
|
|
rect = bmp.rect
|
|
rect.width /= 2
|
|
rect.height /= 2
|
|
rect.x = rect.width
|
|
rect.y = rect.height
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
rect2 = bmp2.rect
|
|
rect2.width /= 2
|
|
rect2.height /= 2
|
|
rect2.x = rect2.width
|
|
bmp.stretch_blt(rect, bmp2, rect2, 127)
|
|
dump(bmp, spr, "stretch-blt-black-tree-hi-children-quarter-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit-lo")
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect)
|
|
dump(bmp, spr, "stretch-blt-lo-tree-lo-children-full-opaque")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit-lo")
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect, 127)
|
|
dump(bmp, spr, "stretch-blt-lo-tree-lo-children-full-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit-lo")
|
|
rect = bmp.rect
|
|
rect.width /= 2
|
|
rect.height /= 2
|
|
rect.x = rect.width
|
|
rect.y = rect.height
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
rect2 = bmp2.rect
|
|
rect2.width /= 2
|
|
rect2.height /= 2
|
|
rect2.x = rect2.width
|
|
bmp.stretch_blt(rect, bmp2, rect2, 127)
|
|
dump(bmp, spr, "stretch-blt-lo-tree-lo-children-quarter-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit-lo")
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect)
|
|
dump(bmp, spr, "stretch-blt-lo-tree-hi-children-full-opaque")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit-lo")
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect, 127)
|
|
dump(bmp, spr, "stretch-blt-lo-tree-hi-children-full-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit-lo")
|
|
rect = bmp.rect
|
|
rect.width /= 2
|
|
rect.height /= 2
|
|
rect.x = rect.width
|
|
rect.y = rect.height
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
rect2 = bmp2.rect
|
|
rect2.width /= 2
|
|
rect2.height /= 2
|
|
rect2.x = rect2.width
|
|
bmp.stretch_blt(rect, bmp2, rect2, 127)
|
|
dump(bmp, spr, "stretch-blt-lo-tree-hi-children-quarter-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect)
|
|
dump(bmp, spr, "stretch-blt-hi-tree-lo-children-full-opaque")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect, 127)
|
|
dump(bmp, spr, "stretch-blt-hi-tree-lo-children-full-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
rect = bmp.rect
|
|
rect.width /= 2
|
|
rect.height /= 2
|
|
rect.x = rect.width
|
|
rect.y = rect.height
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
rect2 = bmp2.rect
|
|
rect2.width /= 2
|
|
rect2.height /= 2
|
|
rect2.x = rect2.width
|
|
bmp.stretch_blt(rect, bmp2, rect2, 127)
|
|
dump(bmp, spr, "stretch-blt-hi-tree-lo-children-quarter-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect)
|
|
dump(bmp, spr, "stretch-blt-hi-tree-hi-children-full-opaque")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.stretch_blt(bmp.rect, bmp2, bmp2.rect, 127)
|
|
dump(bmp, spr, "stretch-blt-hi-tree-hi-children-full-semitransparent")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/tree_alpha_16bit")
|
|
rect = bmp.rect
|
|
rect.width /= 2
|
|
rect.height /= 2
|
|
rect.x = rect.width
|
|
rect.y = rect.height
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
rect2 = bmp2.rect
|
|
rect2.width /= 2
|
|
rect2.height /= 2
|
|
rect2.x = rect2.width
|
|
bmp.stretch_blt(rect, bmp2, rect2, 127)
|
|
dump(bmp, spr, "stretch-blt-hi-tree-hi-children-quarter-semitransparent")
|
|
|
|
bmp = Bitmap.new(640, 480)
|
|
bmp.fill_rect(100, 200, 450, 300, Color.new(0, 0, 0))
|
|
bmp.fill_rect(50, 100, 220, 150, Color.new(255, 0, 0))
|
|
dump(bmp, spr, "fill-rect")
|
|
|
|
bmp = Bitmap.new(640, 480)
|
|
bmp.gradient_fill_rect(100, 200, 450, 300, Color.new(0, 0, 0), Color.new(0, 0, 255))
|
|
bmp.gradient_fill_rect(50, 100, 220, 150, Color.new(255, 0, 0), Color.new(255, 255, 0))
|
|
dump(bmp, spr, "gradient-fill-rect-horizontal")
|
|
|
|
bmp = Bitmap.new(640, 480)
|
|
bmp.gradient_fill_rect(100, 200, 450, 300, Color.new(0, 0, 0), Color.new(0, 0, 255), true)
|
|
bmp.gradient_fill_rect(50, 100, 220, 150, Color.new(255, 0, 0), Color.new(255, 255, 0), true)
|
|
dump(bmp, spr, "gradient-fill-rect-vertical")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
bmp.clear_rect(300, 175, 100, 150)
|
|
dump(bmp, spr, "clear-rect-lo-children")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.clear_rect(300, 175, 100, 150)
|
|
dump(bmp, spr, "clear-rect-hi-children")
|
|
|
|
# TODO: linear-blur is arguably passing but maybe should have stronger blur?
|
|
bmp = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.blur
|
|
dump(bmp, spr, "linear-blur")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
bmp.radial_blur(0, 10)
|
|
dump(bmp, spr, "radial-blur-0-lo-children")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.radial_blur(0, 10)
|
|
dump(bmp, spr, "radial-blur-0-hi-children")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
bmp.radial_blur(3, 10)
|
|
dump(bmp, spr, "radial-blur-3-lo-children")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.radial_blur(3, 10)
|
|
dump(bmp, spr, "radial-blur-3-hi-children")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.clear
|
|
dump(bmp, spr, "clear-full")
|
|
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp = Bitmap.new(bmp2.width, bmp2.height)
|
|
for x in (0...bmp2.width)
|
|
for y in (0...bmp2.height)
|
|
bmp.set_pixel(x, y, bmp2.get_pixel(x, y))
|
|
end
|
|
end
|
|
dump(bmp, spr, "get-set-pixel-dimensions")
|
|
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.clear
|
|
for x in (0...bmp2.width)
|
|
for y in (0...bmp2.height)
|
|
bmp.set_pixel(x, y, bmp2.get_pixel(x, y))
|
|
end
|
|
end
|
|
dump(bmp, spr, "get-set-pixel-clear")
|
|
|
|
bmp2 = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.hires.clear
|
|
for x in (0...bmp2.hires.width)
|
|
for y in (0...bmp2.hires.height)
|
|
bmp.hires.set_pixel(x, y, bmp2.hires.get_pixel(x, y))
|
|
end
|
|
end
|
|
dump(bmp, spr, "get-set-pixel-direct")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/children-alpha-lo")
|
|
bmp.hue_change(180)
|
|
dump(bmp, spr, "hue-change-lo-children")
|
|
|
|
bmp = Bitmap.new("Graphics/Pictures/children-alpha")
|
|
bmp.hue_change(180)
|
|
dump(bmp, spr, "hue-change-hi-children")
|
|
|
|
bmp = Bitmap.new(640, 480)
|
|
fnt = Font.new("Liberation Sans", 100)
|
|
bmp.font = fnt
|
|
bmp.draw_text(100, 200, 450, 300, "We <3 Real-ESRGAN", 1)
|
|
dump(bmp, spr, "draw-text-plain")
|
|
|
|
bmp = Bitmap.new(640, 480)
|
|
fnt = Font.new("Liberation Sans", 15)
|
|
bmp.font = fnt
|
|
bmp.draw_text(100, 200, 450, 300, "We <3 Real-ESRGAN", 0)
|
|
dump(bmp, spr, "draw-text-left")
|
|
|
|
bmp = Bitmap.new(640, 480)
|
|
fnt = Font.new("Liberation Sans", 15)
|
|
bmp.font = fnt
|
|
bmp.draw_text(100, 200, 450, 300, "We <3 Real-ESRGAN", 2)
|
|
dump(bmp, spr, "draw-text-right")
|
|
|
|
bmp = Bitmap.new(640, 480)
|
|
fnt = Font.new("Liberation Sans", 100)
|
|
fnt.bold = true
|
|
bmp.font = fnt
|
|
bmp.draw_text(100, 200, 450, 300, "We <3 Real-ESRGAN", 1)
|
|
dump(bmp, spr, "draw-text-bold")
|
|
|
|
bmp = Bitmap.new(640, 480)
|
|
fnt = Font.new("Liberation Sans", 100)
|
|
fnt.italic = true
|
|
bmp.font = fnt
|
|
bmp.draw_text(100, 200, 450, 300, "We <3 Real-ESRGAN", 1)
|
|
dump(bmp, spr, "draw-text-italic")
|
|
|
|
bmp = Bitmap.new(640, 480)
|
|
fnt = Font.new("Liberation Sans", 100)
|
|
fnt.color = Color.new(255, 0, 0)
|
|
fnt.outline = false
|
|
bmp.font = fnt
|
|
bmp.draw_text(100, 200, 450, 300, "We <3 Real-ESRGAN", 1)
|
|
dump(bmp, spr, "draw-text-red-no-outline")
|
|
|
|
bmp = Bitmap.new(640, 480)
|
|
fnt = Font.new("Liberation Sans", 100)
|
|
fnt.color = Color.new(255, 127, 127)
|
|
fnt.shadow = true
|
|
bmp.font = fnt
|
|
bmp.draw_text(100, 200, 450, 300, "We <3 Real-ESRGAN", 1)
|
|
dump(bmp, spr, "draw-text-pink-shadow")
|
|
|
|
bmp = Bitmap.new(640, 480)
|
|
fnt = Font.new("Liberation Sans", 100)
|
|
fnt.out_color = Color.new(0, 255, 0)
|
|
bmp.font = fnt
|
|
bmp.draw_text(100, 200, 450, 300, "We <3 Real-ESRGAN", 1)
|
|
dump(bmp, spr, "draw-text-green-outline")
|
|
|
|
# TODO: Animation tests, if we can find a good way to test them.
|
|
|
|
# Tests are finished, show exit screen
|
|
|
|
bmp = Bitmap.new(640, 480)
|
|
bmp.fill_rect(0, 0, 640, 480, Color.new(0, 0, 0))
|
|
|
|
fnt = Font.new("Liberation Sans", 100)
|
|
|
|
bmp.font = fnt
|
|
bmp.draw_text(0, 0, 640, 240, "High-Res Test Suite", 1)
|
|
bmp.draw_text(0, 240, 640, 240, "Has Finished", 1)
|
|
spr.bitmap = bmp
|
|
|
|
Graphics.wait(1 * 60)
|
|
|
|
exit
|