diff --git a/programs/develop/libraries/libs-dev/.test/001/Tupfile.lua b/programs/develop/libraries/libs-dev/.test/001/Tupfile.lua new file mode 100644 index 0000000000..3f35e3788c --- /dev/null +++ b/programs/develop/libraries/libs-dev/.test/001/Tupfile.lua @@ -0,0 +1,2 @@ +if tup.getconfig("NO_FASM") ~= "" then return end +tup.rule("*.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "%B") diff --git a/programs/develop/libraries/libs-dev/.test/002/Tupfile.lua b/programs/develop/libraries/libs-dev/.test/002/Tupfile.lua new file mode 100644 index 0000000000..3f35e3788c --- /dev/null +++ b/programs/develop/libraries/libs-dev/.test/002/Tupfile.lua @@ -0,0 +1,2 @@ +if tup.getconfig("NO_FASM") ~= "" then return end +tup.rule("*.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "%B") diff --git a/programs/develop/libraries/libs-dev/.test/003/Tupfile.lua b/programs/develop/libraries/libs-dev/.test/003/Tupfile.lua new file mode 100644 index 0000000000..3f35e3788c --- /dev/null +++ b/programs/develop/libraries/libs-dev/.test/003/Tupfile.lua @@ -0,0 +1,2 @@ +if tup.getconfig("NO_FASM") ~= "" then return end +tup.rule("*.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "%B") diff --git a/programs/develop/libraries/libs-dev/.test/004/Tupfile.lua b/programs/develop/libraries/libs-dev/.test/004/Tupfile.lua new file mode 100644 index 0000000000..3f35e3788c --- /dev/null +++ b/programs/develop/libraries/libs-dev/.test/004/Tupfile.lua @@ -0,0 +1,2 @@ +if tup.getconfig("NO_FASM") ~= "" then return end +tup.rule("*.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "%B") diff --git a/programs/develop/libraries/libs-dev/.test/005/Tupfile.lua b/programs/develop/libraries/libs-dev/.test/005/Tupfile.lua new file mode 100644 index 0000000000..3f35e3788c --- /dev/null +++ b/programs/develop/libraries/libs-dev/.test/005/Tupfile.lua @@ -0,0 +1,2 @@ +if tup.getconfig("NO_FASM") ~= "" then return end +tup.rule("*.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "%B") diff --git a/programs/develop/libraries/libs-dev/.test/006/Tupfile.lua b/programs/develop/libraries/libs-dev/.test/006/Tupfile.lua new file mode 100644 index 0000000000..3f35e3788c --- /dev/null +++ b/programs/develop/libraries/libs-dev/.test/006/Tupfile.lua @@ -0,0 +1,2 @@ +if tup.getconfig("NO_FASM") ~= "" then return end +tup.rule("*.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "%B") diff --git a/programs/develop/libraries/libs-dev/.test/007/Tupfile.lua b/programs/develop/libraries/libs-dev/.test/007/Tupfile.lua new file mode 100644 index 0000000000..3f35e3788c --- /dev/null +++ b/programs/develop/libraries/libs-dev/.test/007/Tupfile.lua @@ -0,0 +1,2 @@ +if tup.getconfig("NO_FASM") ~= "" then return end +tup.rule("*.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "%B") diff --git a/programs/develop/libraries/libs-dev/.test/007/test007.asm b/programs/develop/libraries/libs-dev/.test/007/test007.asm new file mode 100644 index 0000000000..1237044184 --- /dev/null +++ b/programs/develop/libraries/libs-dev/.test/007/test007.asm @@ -0,0 +1,128 @@ +use32 +org 0x0 + db 'MENUET01' + dd 0x01, START, I_END, E_END, E_END, 0, 0 + +;----------------------------------------------------------------------------- + +include '../../../../../proc32.inc' +include '../../../../../macros.inc' +include '../../../../../dll.inc' +;include '../../../../../debug-fdo.inc' + +include '../../libio/libio.inc' +include '../../libimg/libimg.inc' + +;----------------------------------------------------------------------------- + +START: + mcall 68, 11 + + stdcall dll.Load, @IMPORT + or eax, eax + jnz exit + + invoke img.from_file, input_file + test eax, eax + jz exit + mov [image_top], eax + + invoke img.create, 100, 100, Image.bpp32 + mov [image_bottom], eax + mov edi, [eax+Image.Data] + mov eax, 0xffffff00 + mov ecx, 100*100 + rep stosd + +still: + mcall 10 + cmp eax, 1 + je .draw_window + cmp eax, 2 + je .key + cmp eax, 3 + je .button + jmp still + + +.draw_window: + mcall 12, 1 + mcall 0, <200, 150>, <200, 150>, 0x73FFFFFF, 0x00000000, window_title + call draw_image + mcall 12, 2 + jmp still + +.key: + mcall 2 + jmp still + +.button: + mcall 17 + shr eax, 8 + cmp eax, 1 + jne still + +exit: + invoke img.destroy, [image_bottom] + invoke img.destroy, [image_top] + mcall -1 + + +proc draw_image + mcall 9, proc_info, -1 + + mov ecx, [proc_info.client_box.height] + inc ecx + mov edx, [proc_info.client_box.width] + inc edx + + mov eax, [image_bottom] + mov esi, [eax+Image.Data] + invoke img.create, [eax+Image.Width], [eax+Image.Height], Image.bpp32 + mov [image_blended], eax + mov edi, [eax+Image.Data] + mov ecx, [eax+Image.Width] + imul ecx, [eax+Image.Height] + rep movsd + invoke img.blend, [image_blended], [image_top], 5, 10, 20, 50, 80, 60 + invoke img.draw, eax, 0, 0, [eax+Image.Width], [eax+Image.Height], 0, 0 + invoke img.destroy, [image_blended] + + ret +endp + +;----------------------------------------------------------------------------- + +window_title db 'img.blend example',0 +input_file: +; db '/hd0/1/bottom.jpg',0 + db '/hd0/1/top.png',0 +;----------------------------------------------------------------------------- + +align 4 +@IMPORT: + +library \ + libimg , 'libimg.obj' + +import libimg , \ + libimg.init , 'lib_init' , \ + img.create , 'img_create' , \ + img.decode , 'img_decode' , \ + img.destroy , 'img_destroy' , \ + img.draw , 'img_draw' , \ + img.from_file , 'img_from_file' , \ + img.blend , 'img_blend' + +;----------------------------------------------------------------------------- + +I_END: + +image_top dd ? +image_bottom dd ? +image_blended dd ? + +proc_info process_information + +rd 0x400 ; stack +E_END: