forked from KolibriOS/kolibrios
buf2d: 1) small optimize 2) add examples
git-svn-id: svn://kolibrios.org@2185 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -62,7 +62,7 @@ table { font-size: 15px; }
|
|||||||
<20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
<20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>.</p>
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>.</p>
|
||||||
|
|
||||||
<p><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 25.03.11.</p>
|
<p><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 13.09.11.</p>
|
||||||
|
|
||||||
<h1><a name="f_buf"><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></a></h1>
|
<h1><a name="f_buf"><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></a></h1>
|
||||||
<p><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
<p><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
@@ -293,5 +293,6 @@ import_buf2d_lib:
|
|||||||
<p>22.12.10 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> buf2d_cruve_bezier <20><> buf2d_curve_bezier.</p>
|
<p>22.12.10 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> buf2d_cruve_bezier <20><> buf2d_curve_bezier.</p>
|
||||||
<p>25.03.11 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> buf2d_set_pixel.</p>
|
<p>25.03.11 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> buf2d_set_pixel.</p>
|
||||||
<p>30.08.11 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> buf2d_resize.</p>
|
<p>30.08.11 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> buf2d_resize.</p>
|
||||||
|
<p>13.09.11 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> buf_filled_rect_by_size buf_rect_by_size, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@@ -1080,11 +1080,19 @@ proc buf_line_h, buf_struc:dword, coord_x0:dword, coord_y0:dword, coord_x1:dword
|
|||||||
jle @f
|
jle @f
|
||||||
xchg ebx,esi ;<3B> x0 > x1 <20><> <20><><EFBFBD>塞 <20><><EFBFBD>⠬<EFBFBD> x0 <20> x1
|
xchg ebx,esi ;<3B> x0 > x1 <20><> <20><><EFBFBD>塞 <20><><EFBFBD>⠬<EFBFBD> x0 <20> x1
|
||||||
@@:
|
@@:
|
||||||
|
bt ebx,31
|
||||||
|
jae @f
|
||||||
|
;<3B> <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> x0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫쭠<E2A5AB>
|
||||||
|
xor ebx,ebx
|
||||||
|
@@:
|
||||||
cmp esi,buf2d_w
|
cmp esi,buf2d_w
|
||||||
jl @f
|
jl @f
|
||||||
|
;<3B> <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> x0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ਭ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
mov esi,buf2d_w
|
mov esi,buf2d_w
|
||||||
;dec esi
|
;dec esi
|
||||||
@@:
|
@@:
|
||||||
|
cmp ebx,esi
|
||||||
|
jge .end24 ;<3B> x0 >= x1 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> x0, x1 <20><>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
;<3B> eax <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 <20><>砫<EFBFBD> 1-<2D> <20><>窨 <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
;<3B> eax <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 <20><>砫<EFBFBD> 1-<2D> <20><>窨 <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
mov eax,buf2d_w ;size x
|
mov eax,buf2d_w ;size x
|
||||||
@@ -1093,21 +1101,17 @@ proc buf_line_h, buf_struc:dword, coord_x0:dword, coord_y0:dword, coord_x1:dword
|
|||||||
lea eax,[eax+eax*2] ;(size_x*y+x)*3
|
lea eax,[eax+eax*2] ;(size_x*y+x)*3
|
||||||
add eax,buf2d_data ;ptr+(size_x*y+x)*3
|
add eax,buf2d_data ;ptr+(size_x*y+x)*3
|
||||||
|
|
||||||
|
mov ecx,esi
|
||||||
|
sub ecx,ebx ;<3B> ecx <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><>祪 <20><><EFBFBD><EFBFBD><EFBFBD> <20>뢮<EFBFBD><EBA2AE><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
mov edx,dword[color]
|
mov edx,dword[color]
|
||||||
|
mov ebx,edx ;<3B><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> x0 <20> ebx 㦥 <20><> <20>㦭<EFBFBD>
|
||||||
|
ror edx,16 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>稢<EFBFBD><E7A8A2><EFBFBD> ॣ<><E0A5A3><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> 3-<2D> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> dl
|
||||||
|
cld
|
||||||
@@: ;横<> <20><> <20><><EFBFBD> x <20><> x0 <20><> x1
|
@@: ;横<> <20><> <20><><EFBFBD> x <20><> x0 <20><> x1
|
||||||
cmp ebx,esi
|
mov word[eax],bx ;copy pixel color
|
||||||
jge @f
|
mov byte[eax+2],dl
|
||||||
bt ebx,31
|
add eax,3
|
||||||
jc .otr_x
|
loop @b
|
||||||
mov word[eax],dx ;copy pixel color
|
|
||||||
ror edx,16
|
|
||||||
mov byte[eax+2],dl
|
|
||||||
ror edx,16
|
|
||||||
.otr_x:
|
|
||||||
add eax,3
|
|
||||||
inc ebx
|
|
||||||
jmp @b
|
|
||||||
@@:
|
|
||||||
.end24:
|
.end24:
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
21
programs/develop/libraries/buf2d/trunk/examples/build.bat
Normal file
21
programs/develop/libraries/buf2d/trunk/examples/build.bat
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
if not exist bin mkdir bin
|
||||||
|
@fasm.exe -m 16384 ..\buf2d.asm bin\buf2d.obj
|
||||||
|
@kpack bin\buf2d.obj
|
||||||
|
|
||||||
|
if not exist bin\font8x9.bmp @copy ..\..\..\..\..\fs\kfar\trunk\font8x9.bmp bin\font8x9.bmp
|
||||||
|
@copy foto.jpg bin\foto.jpg
|
||||||
|
@copy img0.png bin\img0.png
|
||||||
|
@copy img1.png bin\img1.png
|
||||||
|
|
||||||
|
@fasm.exe -m 16384 e0_dr_lines.asm bin\e0_dr_lines.kex
|
||||||
|
@fasm.exe -m 16384 e1_scaling.asm bin\e1_scaling.kex
|
||||||
|
@fasm.exe -m 16384 e2_images.asm bin\e2_images.kex
|
||||||
|
@fasm.exe -m 16384 e3_text.asm bin\e3_text.kex
|
||||||
|
@fasm.exe -m 16384 e4_graf_ed.asm bin\e4_graf_ed.kex
|
||||||
|
|
||||||
|
@kpack bin\e0_dr_lines.kex
|
||||||
|
@kpack bin\e1_scaling.kex
|
||||||
|
@kpack bin\e2_images.kex
|
||||||
|
@kpack bin\e3_text.kex
|
||||||
|
@kpack bin\e4_graf_ed.kex
|
||||||
|
pause
|
99
programs/develop/libraries/buf2d/trunk/examples/dll.inc
Normal file
99
programs/develop/libraries/buf2d/trunk/examples/dll.inc
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
|
||||||
|
proc dll.Load, import_table:dword
|
||||||
|
mov esi,[import_table]
|
||||||
|
.next_lib: mov edx,[esi]
|
||||||
|
or edx,edx
|
||||||
|
jz .exit
|
||||||
|
push esi
|
||||||
|
mov esi,[esi+4]
|
||||||
|
mov edi,s_libdir.fname
|
||||||
|
@@: lodsb
|
||||||
|
stosb
|
||||||
|
or al,al
|
||||||
|
jnz @b
|
||||||
|
mcall 68,19,s_libdir
|
||||||
|
or eax,eax
|
||||||
|
jz .fail
|
||||||
|
stdcall dll.Link,eax,edx
|
||||||
|
push eax
|
||||||
|
mov eax, [eax]
|
||||||
|
cmp dword [eax], 'lib_'
|
||||||
|
pop eax
|
||||||
|
jnz @f
|
||||||
|
stdcall dll.Init,[eax+4]
|
||||||
|
@@:
|
||||||
|
pop esi
|
||||||
|
add esi,8
|
||||||
|
jmp .next_lib
|
||||||
|
.exit: xor eax,eax
|
||||||
|
ret
|
||||||
|
.fail: add esp,4
|
||||||
|
xor eax,eax
|
||||||
|
inc eax
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
proc dll.Link, exp:dword,imp:dword
|
||||||
|
push eax
|
||||||
|
mov esi,[imp]
|
||||||
|
test esi,esi
|
||||||
|
jz .done
|
||||||
|
.next: lodsd
|
||||||
|
test eax,eax
|
||||||
|
jz .done
|
||||||
|
stdcall dll.GetProcAddress,[exp],eax
|
||||||
|
or eax,eax
|
||||||
|
jz @f
|
||||||
|
mov [esi-4],eax
|
||||||
|
jmp .next
|
||||||
|
@@: mov dword[esp],0
|
||||||
|
.done: pop eax
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
proc dll.Init, dllentry:dword
|
||||||
|
pushad
|
||||||
|
mov eax,mem.Alloc
|
||||||
|
mov ebx,mem.Free
|
||||||
|
mov ecx,mem.ReAlloc
|
||||||
|
mov edx,dll.Load
|
||||||
|
stdcall [dllentry]
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
proc dll.GetProcAddress, exp:dword,sz_name:dword
|
||||||
|
mov edx,[exp]
|
||||||
|
xor eax,eax
|
||||||
|
.next: or edx,edx
|
||||||
|
jz .end
|
||||||
|
cmp dword[edx],0
|
||||||
|
jz .end
|
||||||
|
stdcall strcmp,[edx],[sz_name]
|
||||||
|
test eax,eax
|
||||||
|
jz .ok
|
||||||
|
add edx,8
|
||||||
|
jmp .next
|
||||||
|
.ok: mov eax,[edx+4]
|
||||||
|
.end: ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
proc strcmp, str1:dword,str2:dword
|
||||||
|
push esi edi
|
||||||
|
mov esi,[str1]
|
||||||
|
mov edi,[str2]
|
||||||
|
xor eax,eax
|
||||||
|
@@: lodsb
|
||||||
|
scasb
|
||||||
|
jne .fail
|
||||||
|
or al,al
|
||||||
|
jnz @b
|
||||||
|
jmp .ok
|
||||||
|
.fail: or eax,-1
|
||||||
|
.ok: pop edi esi
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
s_libdir:
|
||||||
|
db '/sys/lib/'
|
||||||
|
.fname rb 32
|
150
programs/develop/libraries/buf2d/trunk/examples/e0_dr_lines.asm
Normal file
150
programs/develop/libraries/buf2d/trunk/examples/e0_dr_lines.asm
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
use32
|
||||||
|
org 0x0
|
||||||
|
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD><E1AFAE>塞<EFBFBD><EFA5AC><EFBFBD> 䠩<><E4A0A9> <20>ᥣ<EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
|
||||||
|
dd 0x1
|
||||||
|
dd start
|
||||||
|
dd i_end ;ࠧ<><E0A0A7><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
dd mem,stacktop
|
||||||
|
dd 0,cur_dir_path
|
||||||
|
|
||||||
|
include '../../../../../macros.inc'
|
||||||
|
include '../../../../../proc32.inc'
|
||||||
|
include '../../../../../develop/libraries/box_lib/load_lib.mac'
|
||||||
|
include 'mem.inc'
|
||||||
|
|
||||||
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, 0 ;dll.Load
|
||||||
|
|
||||||
|
align 4
|
||||||
|
start:
|
||||||
|
load_library vectors_name, cur_dir_path, library_path, system_path, \
|
||||||
|
err_message_found_lib, head_f_l, import_buf2d_lib, err_message_import, head_f_i
|
||||||
|
cmp eax,-1
|
||||||
|
jz button.exit
|
||||||
|
|
||||||
|
mcall 40,0x27
|
||||||
|
stdcall [buf2d_create], buf_0 ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_line], buf_0, 110, 20, 125, 90, 0xffff00 ;<3B><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_line], buf_0, 60, 120, 110, 20, 0xd000 ;<3B><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_curve_bezier], buf_0, (10 shl 16)+20,(110 shl 16)+10,(50 shl 16)+90, dword 0xff
|
||||||
|
stdcall [buf2d_circle], buf_0, 125, 90, 30, 0xffffff ;<3B><><EFBFBD>㥬 <20><><EFBFBD>㦭<EFBFBD><E3A6AD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_circle], buf_0, 25, 70, 15, 0xff0000 ;<3B><><EFBFBD>㥬 <20><><EFBFBD>㦭<EFBFBD><E3A6AD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
align 4
|
||||||
|
red_win:
|
||||||
|
call draw_window
|
||||||
|
|
||||||
|
align 4
|
||||||
|
still:
|
||||||
|
mcall 10
|
||||||
|
cmp al,1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
jz red_win
|
||||||
|
cmp al,2
|
||||||
|
jz key
|
||||||
|
cmp al,3
|
||||||
|
jz button
|
||||||
|
jmp still
|
||||||
|
|
||||||
|
align 4
|
||||||
|
draw_window:
|
||||||
|
pushad
|
||||||
|
mcall 12,1
|
||||||
|
|
||||||
|
;mov edx,0x32000000
|
||||||
|
mov edx,0x33000000
|
||||||
|
mcall 0,(50 shl 16)+330,(30 shl 16)+275,,,caption
|
||||||
|
|
||||||
|
stdcall [buf2d_draw], buf_0
|
||||||
|
|
||||||
|
mcall 12,2
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
|
||||||
|
align 4
|
||||||
|
key:
|
||||||
|
mcall 2
|
||||||
|
|
||||||
|
cmp ah,27 ;Esc
|
||||||
|
je button.exit
|
||||||
|
|
||||||
|
jmp still
|
||||||
|
|
||||||
|
align 4
|
||||||
|
button:
|
||||||
|
mcall 17 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
cmp ah,1
|
||||||
|
jne still
|
||||||
|
.exit:
|
||||||
|
stdcall [buf2d_delete],buf_0 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
mcall -1 ;<3B><>室 <20><> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||||
|
|
||||||
|
caption db 'Test buf2d library, [Esc] - exit',0
|
||||||
|
|
||||||
|
;--------------------------------------------------
|
||||||
|
align 4
|
||||||
|
import_buf2d_lib:
|
||||||
|
dd sz_lib_init
|
||||||
|
buf2d_create dd sz_buf2d_create
|
||||||
|
buf2d_create_f_img dd sz_buf2d_create_f_img
|
||||||
|
buf2d_clear dd sz_buf2d_clear
|
||||||
|
buf2d_draw dd sz_buf2d_draw
|
||||||
|
buf2d_delete dd sz_buf2d_delete
|
||||||
|
buf2d_line dd sz_buf2d_line
|
||||||
|
buf2d_circle dd sz_buf2d_circle
|
||||||
|
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
|
||||||
|
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
|
||||||
|
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
|
||||||
|
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
|
||||||
|
buf2d_bit_blt dd sz_buf2d_bit_blt
|
||||||
|
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
|
||||||
|
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
|
||||||
|
buf2d_curve_bezier dd sz_buf2d_curve_bezier
|
||||||
|
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
|
||||||
|
buf2d_draw_text dd sz_buf2d_draw_text
|
||||||
|
dd 0,0
|
||||||
|
sz_lib_init db 'lib_init',0
|
||||||
|
sz_buf2d_create db 'buf2d_create',0
|
||||||
|
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
|
||||||
|
sz_buf2d_clear db 'buf2d_clear',0
|
||||||
|
sz_buf2d_draw db 'buf2d_draw',0
|
||||||
|
sz_buf2d_delete db 'buf2d_delete',0
|
||||||
|
sz_buf2d_line db 'buf2d_line',0
|
||||||
|
sz_buf2d_circle db 'buf2d_circle',0 ;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD>㦭<EFBFBD><E3A6AD><EFBFBD><EFBFBD>
|
||||||
|
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
|
||||||
|
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
|
||||||
|
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
|
||||||
|
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
|
||||||
|
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
|
||||||
|
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
|
||||||
|
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
|
||||||
|
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
|
||||||
|
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
|
||||||
|
sz_buf2d_draw_text db 'buf2d_draw_text',0
|
||||||
|
|
||||||
|
align 4
|
||||||
|
buf_0:
|
||||||
|
dd 0 ;㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
dw 20 ;+4 left
|
||||||
|
dw 10 ;+6 top
|
||||||
|
dd 160 ;+8 w
|
||||||
|
dd 128 ;+12 h
|
||||||
|
dd 0x80 ;+16 color
|
||||||
|
db 24 ;+20 bit in pixel
|
||||||
|
|
||||||
|
;--------------------------------------------------
|
||||||
|
system_path db '/sys/lib/'
|
||||||
|
vectors_name db 'buf2d.obj',0
|
||||||
|
err_message_found_lib db 'Sorry I cannot load library buf2d.obj',0
|
||||||
|
head_f_i:
|
||||||
|
head_f_l db 'System error',0
|
||||||
|
err_message_import db 'Error on load import library buf2d.obj',0
|
||||||
|
;--------------------------------------------------
|
||||||
|
|
||||||
|
i_end: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
rb 1024
|
||||||
|
stacktop:
|
||||||
|
cur_dir_path:
|
||||||
|
rb 4096
|
||||||
|
library_path:
|
||||||
|
rb 4096
|
||||||
|
mem:
|
||||||
|
|
182
programs/develop/libraries/buf2d/trunk/examples/e1_scaling.asm
Normal file
182
programs/develop/libraries/buf2d/trunk/examples/e1_scaling.asm
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
use32
|
||||||
|
org 0x0
|
||||||
|
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD><E1AFAE>塞<EFBFBD><EFA5AC><EFBFBD> 䠩<><E4A0A9> <20>ᥣ<EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
|
||||||
|
dd 0x1
|
||||||
|
dd start
|
||||||
|
dd i_end ;ࠧ<><E0A0A7><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
dd mem,stacktop
|
||||||
|
dd 0,cur_dir_path
|
||||||
|
|
||||||
|
include '../../../../../macros.inc'
|
||||||
|
include '../../../../../proc32.inc'
|
||||||
|
include '../../../../../develop/libraries/box_lib/load_lib.mac'
|
||||||
|
include 'mem.inc'
|
||||||
|
|
||||||
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, 0 ;dll.Load
|
||||||
|
|
||||||
|
align 4
|
||||||
|
start:
|
||||||
|
load_library vectors_name, cur_dir_path, library_path, system_path, \
|
||||||
|
err_message_found_lib, head_f_l, import_buf2d_lib, err_message_import, head_f_i
|
||||||
|
cmp eax,-1
|
||||||
|
jz button.exit
|
||||||
|
|
||||||
|
mcall 40,0x27
|
||||||
|
stdcall [buf2d_create], buf_0 ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_line], buf_0, 110, 20, 125, 90, 0xffff00 ;<3B><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_line], buf_0, 60, 120, 110, 20, 0xd000 ;<3B><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_curve_bezier], buf_0, (10 shl 16)+20,(110 shl 16)+10,(50 shl 16)+90, dword 0xff
|
||||||
|
stdcall [buf2d_circle], buf_0, 125, 90, 30, 0xffffff ;<3B><><EFBFBD>㥬 <20><><EFBFBD>㦭<EFBFBD><E3A6AD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_circle], buf_0, 25, 70, 15, 0xff0000 ;<3B><><EFBFBD>㥬 <20><><EFBFBD>㦭<EFBFBD><E3A6AD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
stdcall [buf2d_img_hdiv2], buf_0 ;ᦨ<><E1A6A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 2 ࠧ<>
|
||||||
|
stdcall [buf2d_img_wdiv2], buf_0 ;ᦨ<><E1A6A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ਭ<EFBFBD> <20> 2 ࠧ<>
|
||||||
|
stdcall [buf2d_create_f_img], buf_1,[buf_0] ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쪨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> buf_1, <20><> <20>᭮<EFBFBD><E1ADAE> ᦠ⮣<E1A6A0> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> buf_0
|
||||||
|
|
||||||
|
;<3B> <20><> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪<EFBFBD><E3ADAA><EFBFBD> buf2d_create, ⮣<><E2AEA3> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
;<3B><><EFBFBD>諮<EFBFBD><E8ABAE> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <><E1ABA5>騬<EFBFBD> <20><>ப<EFBFBD><E0AEAA><EFBFBD>:
|
||||||
|
;xor ecx,ecx
|
||||||
|
;xor eax,eax
|
||||||
|
;mov cx,word[buf_1.size_x]
|
||||||
|
;mov ax,word[buf_1.size_y]
|
||||||
|
;imul ecx,eax
|
||||||
|
;imul ecx,3 ;ecx - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>쪮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
;stdcall mem_copy, dword[buf_0],dword[buf_1],ecx
|
||||||
|
|
||||||
|
stdcall [buf2d_clear], buf_0,0xffffff
|
||||||
|
stdcall [buf2d_bit_blt], buf_0, 15,10, buf_1
|
||||||
|
stdcall [buf2d_bit_blt], buf_0, 110,65, buf_1
|
||||||
|
|
||||||
|
stdcall [buf2d_conv_24_to_8], buf_1
|
||||||
|
;stdcall [buf2d_bit_blt_alpha], buf_0, 1,1, buf_1,0xff8080 ;<3B><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> <20><>⮣<EFBFBD><E2AEA3>䨨
|
||||||
|
|
||||||
|
align 4
|
||||||
|
red_win:
|
||||||
|
call draw_window
|
||||||
|
|
||||||
|
align 4
|
||||||
|
still:
|
||||||
|
mcall 10
|
||||||
|
cmp al,1 ;<3B><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
jz red_win
|
||||||
|
cmp al,2
|
||||||
|
jz key
|
||||||
|
cmp al,3
|
||||||
|
jz button
|
||||||
|
jmp still
|
||||||
|
|
||||||
|
align 4
|
||||||
|
draw_window:
|
||||||
|
pushad
|
||||||
|
mcall 12,1
|
||||||
|
|
||||||
|
;mov edx,0x32000000
|
||||||
|
mov edx,0x33000000
|
||||||
|
mcall 0,(50 shl 16)+330,(30 shl 16)+275,,,caption
|
||||||
|
|
||||||
|
stdcall [buf2d_draw], buf_0
|
||||||
|
|
||||||
|
mcall 12,2
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
|
||||||
|
align 4
|
||||||
|
key:
|
||||||
|
mcall 2
|
||||||
|
|
||||||
|
cmp ah,27 ;Esc
|
||||||
|
je button.exit
|
||||||
|
|
||||||
|
jmp still
|
||||||
|
|
||||||
|
align 4
|
||||||
|
button:
|
||||||
|
mcall 17 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
cmp ah,1
|
||||||
|
jne still
|
||||||
|
.exit:
|
||||||
|
stdcall [buf2d_delete],buf_0 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_delete],buf_1 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
mcall -1 ;<3B><>室 <20><> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||||
|
|
||||||
|
caption db 'Test buf2d library, [Esc] - exit',0
|
||||||
|
|
||||||
|
;--------------------------------------------------
|
||||||
|
align 4
|
||||||
|
import_buf2d_lib:
|
||||||
|
dd sz_lib_init
|
||||||
|
buf2d_create dd sz_buf2d_create
|
||||||
|
buf2d_create_f_img dd sz_buf2d_create_f_img
|
||||||
|
buf2d_clear dd sz_buf2d_clear
|
||||||
|
buf2d_draw dd sz_buf2d_draw
|
||||||
|
buf2d_delete dd sz_buf2d_delete
|
||||||
|
buf2d_line dd sz_buf2d_line
|
||||||
|
buf2d_circle dd sz_buf2d_circle
|
||||||
|
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
|
||||||
|
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
|
||||||
|
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
|
||||||
|
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
|
||||||
|
buf2d_bit_blt dd sz_buf2d_bit_blt
|
||||||
|
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
|
||||||
|
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
|
||||||
|
buf2d_curve_bezier dd sz_buf2d_curve_bezier
|
||||||
|
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
|
||||||
|
buf2d_draw_text dd sz_buf2d_draw_text
|
||||||
|
dd 0,0
|
||||||
|
sz_lib_init db 'lib_init',0
|
||||||
|
sz_buf2d_create db 'buf2d_create',0
|
||||||
|
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
|
||||||
|
sz_buf2d_clear db 'buf2d_clear',0
|
||||||
|
sz_buf2d_draw db 'buf2d_draw',0
|
||||||
|
sz_buf2d_delete db 'buf2d_delete',0
|
||||||
|
sz_buf2d_line db 'buf2d_line',0
|
||||||
|
sz_buf2d_circle db 'buf2d_circle',0 ;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD>㦭<EFBFBD><E3A6AD><EFBFBD><EFBFBD>
|
||||||
|
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
|
||||||
|
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
|
||||||
|
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
|
||||||
|
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
|
||||||
|
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
|
||||||
|
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
|
||||||
|
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
|
||||||
|
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
|
||||||
|
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
|
||||||
|
sz_buf2d_draw_text db 'buf2d_draw_text',0
|
||||||
|
|
||||||
|
align 4
|
||||||
|
buf_0:
|
||||||
|
dd 0 ;㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
dw 20 ;+4 left
|
||||||
|
dw 10 ;+6 top
|
||||||
|
dd 160 ;+8 w
|
||||||
|
dd 128 ;+12 h
|
||||||
|
dd 0x80 ;+16 color
|
||||||
|
db 24 ;+20 bit in pixel
|
||||||
|
|
||||||
|
align 4
|
||||||
|
buf_1:
|
||||||
|
dd 0 ;㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
dw 10 ;+4 left
|
||||||
|
dw 10 ;+6 top
|
||||||
|
.size_x: dd 80 ;+8 w
|
||||||
|
.size_y: dd 64 ;+12 h
|
||||||
|
dd 0x80 ;+16 color
|
||||||
|
db 24 ;+20 bit in pixel
|
||||||
|
|
||||||
|
;--------------------------------------------------
|
||||||
|
system_path db '/sys/lib/'
|
||||||
|
vectors_name db 'buf2d.obj',0
|
||||||
|
err_message_found_lib db 'Sorry I cannot load library buf2d.obj',0
|
||||||
|
head_f_i:
|
||||||
|
head_f_l db 'System error',0
|
||||||
|
err_message_import db 'Error on load import library buf2d.obj',0
|
||||||
|
;--------------------------------------------------
|
||||||
|
|
||||||
|
i_end: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
rb 1024
|
||||||
|
stacktop:
|
||||||
|
cur_dir_path:
|
||||||
|
rb 4096
|
||||||
|
library_path:
|
||||||
|
rb 4096
|
||||||
|
mem:
|
||||||
|
|
318
programs/develop/libraries/buf2d/trunk/examples/e2_images.asm
Normal file
318
programs/develop/libraries/buf2d/trunk/examples/e2_images.asm
Normal file
@@ -0,0 +1,318 @@
|
|||||||
|
use32
|
||||||
|
org 0x0
|
||||||
|
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD><E1AFAE>塞<EFBFBD><EFA5AC><EFBFBD> 䠩<><E4A0A9> <20>ᥣ<EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
|
||||||
|
dd 0x1
|
||||||
|
dd start
|
||||||
|
dd i_end ;ࠧ<><E0A0A7><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
dd mem,stacktop
|
||||||
|
dd 0,sys_path
|
||||||
|
|
||||||
|
include '../../../../../macros.inc'
|
||||||
|
include '../../../../../proc32.inc'
|
||||||
|
include '../../../../../develop/libraries/box_lib/load_lib.mac'
|
||||||
|
include 'mem.inc'
|
||||||
|
include 'dll.inc'
|
||||||
|
|
||||||
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
|
||||||
|
|
||||||
|
struct FileInfoBlock
|
||||||
|
Function dd ?
|
||||||
|
Position dd ?
|
||||||
|
Flags dd ?
|
||||||
|
Count dd ?
|
||||||
|
Buffer dd ?
|
||||||
|
db ?
|
||||||
|
FileName dd ?
|
||||||
|
ends
|
||||||
|
|
||||||
|
IMAGE_FILE0_SIZE equ 640*480*3 ;ࠧ<><E0A0A7><EFBFBD> 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> 640 x 480
|
||||||
|
IMAGE_FILE1_SIZE equ 200*186*3 ;ࠧ<><E0A0A7><EFBFBD> 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> 200 x 100
|
||||||
|
fn_foto db 'foto.jpg',0
|
||||||
|
|
||||||
|
macro load_image_file path,buf,size { ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>㧪<EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
;path - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ப<EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC>
|
||||||
|
if path eqtype '' ;<3B><EFBFBD><E0AEA2>塞 <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ப<EFBFBD><E0AEAA> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD> path
|
||||||
|
jmp @f
|
||||||
|
local .path_str
|
||||||
|
.path_str db path ;<3B><>ନ<EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
db 0
|
||||||
|
@@:
|
||||||
|
;32 - <20>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> <20><>⥬
|
||||||
|
copy_path .path_str,[32],file_name,0x0
|
||||||
|
else
|
||||||
|
copy_path path,[32],file_name,0x0 ;<3B><>ନ<EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> 䠩<><E4A0A9> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>, <20><><EFBFBD>ࠧ㬥<E0A0A7><E3ACA5><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD>
|
||||||
|
end if
|
||||||
|
|
||||||
|
stdcall mem.Alloc, dword size ;<3B>뤥<EFBFBD>塞 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
mov [buf],eax
|
||||||
|
|
||||||
|
mov eax,70 ;70-<2D> <20>㭪<EFBFBD><E3ADAA><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> 䠩<><E4A0A9><EFBFBD><EFBFBD>
|
||||||
|
mov [run_file_70.Function], 0
|
||||||
|
mov [run_file_70.Position], 0
|
||||||
|
mov [run_file_70.Flags], 0
|
||||||
|
mov [run_file_70.Count], dword size
|
||||||
|
m2m [run_file_70.Buffer], [buf]
|
||||||
|
mov byte[run_file_70+20], 0
|
||||||
|
mov [run_file_70.FileName], file_name
|
||||||
|
mov ebx,run_file_70
|
||||||
|
int 0x40 ;<3B><><EFBFBD><EFBFBD>㦠<EFBFBD><E3A6A0> 䠩<> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
cmp ebx,0xffffffff
|
||||||
|
je @f
|
||||||
|
;<3B><>।<EFBFBD><E0A5A4>塞 <20><><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><>ॢ<EFBFBD><E0A5A2><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> image_data
|
||||||
|
stdcall dword[img_decode], dword[buf],ebx,0
|
||||||
|
mov dword[image_data],eax
|
||||||
|
;<3B>८<EFBFBD>ࠧ㥬 <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><>ଠ<EFBFBD><E0ACA0> rgb
|
||||||
|
stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
|
||||||
|
;㤠<>塞 <20>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> image_data
|
||||||
|
stdcall dword[img_destroy], dword[image_data]
|
||||||
|
@@:
|
||||||
|
}
|
||||||
|
|
||||||
|
align 4
|
||||||
|
start:
|
||||||
|
load_libraries l_libs_start,load_lib_end
|
||||||
|
|
||||||
|
;<3B><EFBFBD>ઠ <20><> <>쪮 㤠筮 <20><><EFBFBD>㧨<EFBFBD><E3A7A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
mov ebp,lib0
|
||||||
|
cmp dword [ebp+ll_struc_size-4],0
|
||||||
|
jz @f
|
||||||
|
mcall -1 ;exit not correct
|
||||||
|
@@:
|
||||||
|
mov ebp,lib1
|
||||||
|
cmp dword [ebp+ll_struc_size-4],0
|
||||||
|
jz @f
|
||||||
|
mcall -1 ;exit not correct
|
||||||
|
@@:
|
||||||
|
|
||||||
|
mcall 40,0x27
|
||||||
|
mcall 48,3,sc,sizeof.system_colors ;<3B><><EFBFBD><EFBFBD>砥<EFBFBD> <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> 梥<><E6A2A5>
|
||||||
|
|
||||||
|
load_image_file fn_foto, image_data_foto,IMAGE_FILE0_SIZE
|
||||||
|
stdcall [buf2d_create_f_img], buf_0,[image_data_foto] ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall mem.Free,[image_data_foto] ;<3B><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
load_image_file 'img0.png',image_data_gray,IMAGE_FILE1_SIZE
|
||||||
|
stdcall [buf2d_create_f_img], buf_1,[image_data_gray] ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall mem.Free,[image_data_gray] ;<3B><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
load_image_file 'img1.png',image_data_rgb, IMAGE_FILE1_SIZE
|
||||||
|
stdcall [buf2d_create_f_img], buf_2,[image_data_rgb] ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall mem.Free,[image_data_rgb] ;<3B><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
stdcall [buf2d_conv_24_to_8], buf_1,1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA7>筮<EFBFBD><E7ADAE><EFBFBD> 8<><38><EFBFBD>
|
||||||
|
stdcall [buf2d_conv_24_to_32],buf_2,buf_1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> rgba 32<33><32><EFBFBD>
|
||||||
|
|
||||||
|
stdcall [buf2d_bit_blt], buf_0, 10,170, buf_2 ;<3B><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> <20><>⮣<EFBFBD><E2AEA3>䨨
|
||||||
|
stdcall [buf2d_bit_blt_transp], buf_0, 210,270, buf_2 ;<3B><><EFBFBD>㥬 <20><EFBFBD><E0AEA7>筮<EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> <20><>⮣<EFBFBD><E2AEA3>䨨
|
||||||
|
stdcall [buf2d_bit_blt_alpha], buf_0, 410,170, buf_1,0xff8080 ;<3B><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> <20><>⮣<EFBFBD><E2AEA3>䨨
|
||||||
|
|
||||||
|
align 4
|
||||||
|
red_win:
|
||||||
|
call draw_window
|
||||||
|
|
||||||
|
align 4
|
||||||
|
still: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<>
|
||||||
|
mcall 10
|
||||||
|
|
||||||
|
cmp al,0x1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
jz red_win
|
||||||
|
cmp al,0x2
|
||||||
|
jz key
|
||||||
|
cmp al,0x3
|
||||||
|
jz button
|
||||||
|
|
||||||
|
jmp still
|
||||||
|
|
||||||
|
align 4
|
||||||
|
key:
|
||||||
|
push eax ebx
|
||||||
|
mcall 2
|
||||||
|
;...
|
||||||
|
pop ebx eax
|
||||||
|
jmp still
|
||||||
|
|
||||||
|
|
||||||
|
align 4
|
||||||
|
draw_window:
|
||||||
|
pushad
|
||||||
|
mcall 12,1
|
||||||
|
|
||||||
|
mov edx,[sc.work]
|
||||||
|
or edx,0x33000000
|
||||||
|
mcall 0,(20 shl 16)+670,(20 shl 16)+520,,,caption ;ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
stdcall [buf2d_draw], buf_0
|
||||||
|
|
||||||
|
mcall 12,2
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
|
||||||
|
head_f_i:
|
||||||
|
head_f_l db '<27><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> <20>訡<EFBFBD><E8A8A1>',0
|
||||||
|
|
||||||
|
system_dir0 db '/sys/lib/'
|
||||||
|
name_buf2d db 'buf2d.obj',0
|
||||||
|
err_message_found_lib0 db '<27><> 㤠<><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> buf2d.obj',0
|
||||||
|
err_message_import0 db '<27>訡<EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> buf2d.obj',0
|
||||||
|
|
||||||
|
system_dir1 db '/sys/lib/'
|
||||||
|
name_libimg db 'libimg.obj',0
|
||||||
|
err_message_found_lib1 db '<27><> 㤠<><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> libimg.obj',0
|
||||||
|
err_message_import1 db '<27>訡<EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> libimg.obj',0
|
||||||
|
|
||||||
|
;library structures
|
||||||
|
l_libs_start:
|
||||||
|
lib0 l_libs name_buf2d, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, import_buf2d_lib, err_message_import0, head_f_i
|
||||||
|
lib1 l_libs name_libimg, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l, import_libimg, err_message_import1, head_f_i
|
||||||
|
load_lib_end:
|
||||||
|
|
||||||
|
align 4
|
||||||
|
button:
|
||||||
|
mcall 17 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
cmp ah,1
|
||||||
|
jne still
|
||||||
|
.exit:
|
||||||
|
stdcall [buf2d_delete],buf_0 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_delete],buf_1 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_delete],buf_2 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
mcall -1 ;<3B><>室 <20><> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||||
|
|
||||||
|
image_data dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⨭<EFBFBD><E2A8AD> <20>㭪<EFBFBD><E3ADAA>ﬨ libimg
|
||||||
|
image_data_gray dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20> <20><>ଠ<EFBFBD><E0ACA0> 8-bit
|
||||||
|
image_data_rgb dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20> <20><>ଠ<EFBFBD><E0ACA0> rgb
|
||||||
|
image_data_foto dd 0
|
||||||
|
|
||||||
|
run_file_70 FileInfoBlock
|
||||||
|
caption db 'Draw images 13.09.11',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
sc system_colors ;<3B><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> 梥<><E6A2A5>
|
||||||
|
|
||||||
|
align 4
|
||||||
|
buf_0:
|
||||||
|
dd 0 ;㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
dw 5 ;+4 left
|
||||||
|
dw 5 ;+6 top
|
||||||
|
dd 640 ;+8 w
|
||||||
|
dd 480 ;+12 h
|
||||||
|
dd 0xffffff ;+16 color
|
||||||
|
db 24 ;+20 bit in pixel
|
||||||
|
|
||||||
|
align 4
|
||||||
|
buf_1:
|
||||||
|
dd 0 ;㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
dw 25 ;+4 left
|
||||||
|
dw 25 ;+6 top
|
||||||
|
dd 200 ;+8 w
|
||||||
|
dd 186 ;+12 h
|
||||||
|
dd 0 ;+16 color
|
||||||
|
db 24 ;+20 bit in pixel
|
||||||
|
|
||||||
|
align 4
|
||||||
|
buf_2:
|
||||||
|
dd 0 ;㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
dw 235 ;+4 left
|
||||||
|
dw 25 ;+6 top
|
||||||
|
dd 200 ;+8 w
|
||||||
|
dd 186 ;+12 h
|
||||||
|
dd 0 ;+16 color
|
||||||
|
db 24 ;+20 bit in pixel
|
||||||
|
|
||||||
|
align 4
|
||||||
|
import_libimg:
|
||||||
|
dd alib_init1
|
||||||
|
img_is_img dd aimg_is_img
|
||||||
|
img_info dd aimg_info
|
||||||
|
img_from_file dd aimg_from_file
|
||||||
|
img_to_file dd aimg_to_file
|
||||||
|
img_from_rgb dd aimg_from_rgb
|
||||||
|
img_to_rgb dd aimg_to_rgb
|
||||||
|
img_to_rgb2 dd aimg_to_rgb2
|
||||||
|
img_decode dd aimg_decode
|
||||||
|
img_encode dd aimg_encode
|
||||||
|
img_create dd aimg_create
|
||||||
|
img_destroy dd aimg_destroy
|
||||||
|
img_destroy_layer dd aimg_destroy_layer
|
||||||
|
img_count dd aimg_count
|
||||||
|
img_lock_bits dd aimg_lock_bits
|
||||||
|
img_unlock_bits dd aimg_unlock_bits
|
||||||
|
img_flip dd aimg_flip
|
||||||
|
img_flip_layer dd aimg_flip_layer
|
||||||
|
img_rotate dd aimg_rotate
|
||||||
|
img_rotate_layer dd aimg_rotate_layer
|
||||||
|
img_draw dd aimg_draw
|
||||||
|
|
||||||
|
dd 0,0
|
||||||
|
alib_init1 db 'lib_init',0
|
||||||
|
aimg_is_img db 'img_is_img',0 ;<3B><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> ᤥ<><E1A4A5><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
aimg_info db 'img_info',0
|
||||||
|
aimg_from_file db 'img_from_file',0
|
||||||
|
aimg_to_file db 'img_to_file',0
|
||||||
|
aimg_from_rgb db 'img_from_rgb',0
|
||||||
|
aimg_to_rgb db 'img_to_rgb',0 ;<3B>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RGB
|
||||||
|
aimg_to_rgb2 db 'img_to_rgb2',0
|
||||||
|
aimg_decode db 'img_decode',0 ;<3B><>⮬<EFBFBD><E2AEAC><EFBFBD><EFBFBD><EFBFBD>᪨ <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><>ଠ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
aimg_encode db 'img_encode',0
|
||||||
|
aimg_create db 'img_create',0
|
||||||
|
aimg_destroy db 'img_destroy',0
|
||||||
|
aimg_destroy_layer db 'img_destroy_layer',0
|
||||||
|
aimg_count db 'img_count',0
|
||||||
|
aimg_lock_bits db 'img_lock_bits',0
|
||||||
|
aimg_unlock_bits db 'img_unlock_bits',0
|
||||||
|
aimg_flip db 'img_flip',0
|
||||||
|
aimg_flip_layer db 'img_flip_layer',0
|
||||||
|
aimg_rotate db 'img_rotate',0
|
||||||
|
aimg_rotate_layer db 'img_rotate_layer',0
|
||||||
|
aimg_draw db 'img_draw',0
|
||||||
|
|
||||||
|
align 4
|
||||||
|
import_buf2d_lib:
|
||||||
|
dd sz_lib_init
|
||||||
|
buf2d_create dd sz_buf2d_create
|
||||||
|
buf2d_create_f_img dd sz_buf2d_create_f_img
|
||||||
|
buf2d_clear dd sz_buf2d_clear
|
||||||
|
buf2d_draw dd sz_buf2d_draw
|
||||||
|
buf2d_delete dd sz_buf2d_delete
|
||||||
|
buf2d_line dd sz_buf2d_line
|
||||||
|
buf2d_circle dd sz_buf2d_circle
|
||||||
|
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
|
||||||
|
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
|
||||||
|
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
|
||||||
|
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
|
||||||
|
buf2d_bit_blt dd sz_buf2d_bit_blt
|
||||||
|
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
|
||||||
|
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
|
||||||
|
buf2d_curve_bezier dd sz_buf2d_curve_bezier
|
||||||
|
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
|
||||||
|
buf2d_draw_text dd sz_buf2d_draw_text
|
||||||
|
dd 0,0
|
||||||
|
sz_lib_init db 'lib_init',0
|
||||||
|
sz_buf2d_create db 'buf2d_create',0
|
||||||
|
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
|
||||||
|
sz_buf2d_clear db 'buf2d_clear',0
|
||||||
|
sz_buf2d_draw db 'buf2d_draw',0
|
||||||
|
sz_buf2d_delete db 'buf2d_delete',0
|
||||||
|
sz_buf2d_line db 'buf2d_line',0
|
||||||
|
sz_buf2d_circle db 'buf2d_circle',0 ;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD>㦭<EFBFBD><E3A6AD><EFBFBD><EFBFBD>
|
||||||
|
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
|
||||||
|
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
|
||||||
|
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
|
||||||
|
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
|
||||||
|
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
|
||||||
|
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
|
||||||
|
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
|
||||||
|
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
|
||||||
|
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
|
||||||
|
sz_buf2d_draw_text db 'buf2d_draw_text',0
|
||||||
|
|
||||||
|
i_end:
|
||||||
|
rb 1024
|
||||||
|
stacktop:
|
||||||
|
sys_path rb 4096
|
||||||
|
file_name:
|
||||||
|
rb 4096
|
||||||
|
plugin_path:
|
||||||
|
rb 4096
|
||||||
|
openfile_path:
|
||||||
|
rb 4096
|
||||||
|
filename_area:
|
||||||
|
rb 256
|
||||||
|
mem:
|
318
programs/develop/libraries/buf2d/trunk/examples/e3_text.asm
Normal file
318
programs/develop/libraries/buf2d/trunk/examples/e3_text.asm
Normal file
@@ -0,0 +1,318 @@
|
|||||||
|
use32
|
||||||
|
org 0x0
|
||||||
|
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20>ᯮ<EFBFBD><E1AFAE>塞<EFBFBD><EFA5AC><EFBFBD> 䠩<><E4A0A9> <20>ᥣ<EFBFBD><E1A5A3> 8 <20><><EFBFBD><EFBFBD>
|
||||||
|
dd 0x1
|
||||||
|
dd start
|
||||||
|
dd i_end ;ࠧ<><E0A0A7><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
dd mem,stacktop
|
||||||
|
dd 0,sys_path
|
||||||
|
|
||||||
|
include '../../../../../macros.inc'
|
||||||
|
include '../../../../../proc32.inc'
|
||||||
|
include '../../../../../develop/libraries/box_lib/load_lib.mac'
|
||||||
|
include 'mem.inc'
|
||||||
|
include 'dll.inc'
|
||||||
|
|
||||||
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
|
||||||
|
|
||||||
|
struct FileInfoBlock
|
||||||
|
Function dd ?
|
||||||
|
Position dd ?
|
||||||
|
Flags dd ?
|
||||||
|
Count dd ?
|
||||||
|
Buffer dd ?
|
||||||
|
db ?
|
||||||
|
FileName dd ?
|
||||||
|
ends
|
||||||
|
|
||||||
|
IMAGE_FILE1_SIZE equ 128*144*3 ;ࠧ<><E0A0A7><EFBFBD> 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> 128 x 144
|
||||||
|
|
||||||
|
macro load_image_file path,buf,size { ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>㧪<EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
;path - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ப<EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC>
|
||||||
|
if path eqtype '' ;<3B><EFBFBD><E0AEA2>塞 <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ப<EFBFBD><E0AEAA> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD> path
|
||||||
|
jmp @f
|
||||||
|
local .path_str
|
||||||
|
.path_str db path ;<3B><>ନ<EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
db 0
|
||||||
|
@@:
|
||||||
|
;32 - <20>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> <20><>⥬
|
||||||
|
copy_path .path_str,[32],file_name,0x0
|
||||||
|
else
|
||||||
|
copy_path path,[32],file_name,0x0 ;<3B><>ନ<EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> 䠩<><E4A0A9> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>, <20><><EFBFBD>ࠧ㬥<E0A0A7><E3ACA5><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD>
|
||||||
|
end if
|
||||||
|
|
||||||
|
stdcall mem.Alloc, dword size ;<3B>뤥<EFBFBD>塞 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
mov [buf],eax
|
||||||
|
|
||||||
|
mov eax,70 ;70-<2D> <20>㭪<EFBFBD><E3ADAA><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> 䠩<><E4A0A9><EFBFBD><EFBFBD>
|
||||||
|
mov [run_file_70.Function], 0
|
||||||
|
mov [run_file_70.Position], 0
|
||||||
|
mov [run_file_70.Flags], 0
|
||||||
|
mov [run_file_70.Count], dword size
|
||||||
|
m2m [run_file_70.Buffer], [buf]
|
||||||
|
mov byte[run_file_70+20], 0
|
||||||
|
mov [run_file_70.FileName], file_name
|
||||||
|
mov ebx,run_file_70
|
||||||
|
int 0x40 ;<3B><><EFBFBD><EFBFBD>㦠<EFBFBD><E3A6A0> 䠩<> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
cmp ebx,0xffffffff
|
||||||
|
je @f
|
||||||
|
;<3B><>।<EFBFBD><E0A5A4>塞 <20><><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><>ॢ<EFBFBD><E0A5A2><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> image_data
|
||||||
|
stdcall dword[img_decode], dword[buf],ebx,0
|
||||||
|
mov dword[image_data],eax
|
||||||
|
;<3B>८<EFBFBD>ࠧ㥬 <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><>ଠ<EFBFBD><E0ACA0> rgb
|
||||||
|
stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
|
||||||
|
;㤠<>塞 <20>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> image_data
|
||||||
|
stdcall dword[img_destroy], dword[image_data]
|
||||||
|
@@:
|
||||||
|
}
|
||||||
|
|
||||||
|
align 4
|
||||||
|
start:
|
||||||
|
load_libraries l_libs_start,load_lib_end
|
||||||
|
|
||||||
|
;<3B><EFBFBD>ઠ <20><> <>쪮 㤠筮 <20><><EFBFBD>㧨<EFBFBD><E3A7A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
mov ebp,lib0
|
||||||
|
cmp dword [ebp+ll_struc_size-4],0
|
||||||
|
jz @f
|
||||||
|
mcall -1 ;exit not correct
|
||||||
|
@@:
|
||||||
|
mov ebp,lib1
|
||||||
|
cmp dword [ebp+ll_struc_size-4],0
|
||||||
|
jz @f
|
||||||
|
mcall -1 ;exit not correct
|
||||||
|
@@:
|
||||||
|
|
||||||
|
mcall 40,0x27
|
||||||
|
mcall 48,3,sc,sizeof.system_colors ;<3B><><EFBFBD><EFBFBD>砥<EFBFBD> <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> 梥<><E6A2A5>
|
||||||
|
|
||||||
|
stdcall [buf2d_create], buf_0 ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
load_image_file 'font8x9.bmp', image_data_foto,IMAGE_FILE1_SIZE
|
||||||
|
stdcall [buf2d_create_f_img], buf_1,[image_data_foto] ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall mem.Free,[image_data_foto] ;<3B><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
stdcall [buf2d_conv_24_to_8], buf_1,1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA7>筮<EFBFBD><E7ADAE><EFBFBD> 8 <20><><EFBFBD>
|
||||||
|
stdcall [buf2d_bit_blt_alpha], buf_0, 70,10, buf_1,0x20d020 ;<3B><><EFBFBD>㥬 <20><>室<EFBFBD><E5AEA4><EFBFBD> ⥪<>⮢<EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16*16
|
||||||
|
stdcall [buf2d_convert_text_matrix], buf_1
|
||||||
|
stdcall [buf2d_bit_blt_alpha], buf_0, 10,10, buf_1,0xff8080 ;<3B><><EFBFBD>㥬 <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<>⮢<EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1*256
|
||||||
|
stdcall [buf2d_draw_text], buf_0, buf_1,some_text,70,170,0x4040ff ;<3B><><EFBFBD>㥬 <20><>ப<EFBFBD> <20> ⥪<>⮬
|
||||||
|
|
||||||
|
align 4
|
||||||
|
red_win:
|
||||||
|
call draw_window
|
||||||
|
|
||||||
|
align 4
|
||||||
|
still: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 横<>
|
||||||
|
mcall 10
|
||||||
|
|
||||||
|
cmp al,0x1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
jz red_win
|
||||||
|
cmp al,0x2
|
||||||
|
jz key
|
||||||
|
cmp al,0x3
|
||||||
|
jz button
|
||||||
|
|
||||||
|
jmp still
|
||||||
|
|
||||||
|
align 4
|
||||||
|
key:
|
||||||
|
push eax ebx
|
||||||
|
mcall 2
|
||||||
|
;...
|
||||||
|
pop ebx eax
|
||||||
|
jmp still
|
||||||
|
|
||||||
|
|
||||||
|
align 4
|
||||||
|
draw_window:
|
||||||
|
pushad
|
||||||
|
mcall 12,1
|
||||||
|
|
||||||
|
mov edx,[sc.work]
|
||||||
|
or edx,0x33000000
|
||||||
|
mcall 0,(20 shl 16)+670,(20 shl 16)+520,,,caption ;ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
stdcall [buf2d_draw], buf_0
|
||||||
|
|
||||||
|
mcall 12,2
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
|
||||||
|
head_f_i:
|
||||||
|
head_f_l db '<27><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> <20>訡<EFBFBD><E8A8A1>',0
|
||||||
|
|
||||||
|
system_dir0 db '/sys/lib/'
|
||||||
|
name_buf2d db 'buf2d.obj',0
|
||||||
|
err_message_found_lib0 db '<27><> 㤠<><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> buf2d.obj',0
|
||||||
|
err_message_import0 db '<27>訡<EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> buf2d.obj',0
|
||||||
|
|
||||||
|
system_dir1 db '/sys/lib/'
|
||||||
|
name_libimg db 'libimg.obj',0
|
||||||
|
err_message_found_lib1 db '<27><> 㤠<><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> libimg.obj',0
|
||||||
|
err_message_import1 db '<27>訡<EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> libimg.obj',0
|
||||||
|
|
||||||
|
;library structures
|
||||||
|
l_libs_start:
|
||||||
|
lib0 l_libs name_buf2d, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, import_buf2d_lib, err_message_import0, head_f_i
|
||||||
|
lib1 l_libs name_libimg, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l, import_libimg, err_message_import1, head_f_i
|
||||||
|
load_lib_end:
|
||||||
|
|
||||||
|
align 4
|
||||||
|
button:
|
||||||
|
mcall 17 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
cmp ah,1
|
||||||
|
jne still
|
||||||
|
.exit:
|
||||||
|
stdcall [buf2d_delete],buf_0 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_delete],buf_1 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
mcall -1 ;<3B><>室 <20><> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||||
|
|
||||||
|
image_data dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⨭<EFBFBD><E2A8AD> <20>㭪<EFBFBD><E3ADAA>ﬨ libimg
|
||||||
|
image_data_gray dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20> <20><>ଠ<EFBFBD><E0ACA0> 8-bit
|
||||||
|
image_data_rgb dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD><EFBFBD> <20> <20><>ଠ<EFBFBD><E0ACA0> rgb
|
||||||
|
image_data_foto dd 0
|
||||||
|
|
||||||
|
run_file_70 FileInfoBlock
|
||||||
|
caption db 'Draw text 13.09.11',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
sc system_colors ;<3B><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> 梥<><E6A2A5>
|
||||||
|
|
||||||
|
align 4
|
||||||
|
buf_0:
|
||||||
|
dd 0 ;㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
dw 5 ;+4 left
|
||||||
|
dw 5 ;+6 top
|
||||||
|
dd 640 ;+8 w
|
||||||
|
dd 480 ;+12 h
|
||||||
|
dd 0xffffff ;+16 color
|
||||||
|
db 24 ;+20 bit in pixel
|
||||||
|
|
||||||
|
align 4
|
||||||
|
buf_1:
|
||||||
|
dd 0 ;㪠<><E3AAA0>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
dw 25 ;+4 left
|
||||||
|
dw 25 ;+6 top
|
||||||
|
dd 128 ;+8 w
|
||||||
|
dd 144 ;+12 h
|
||||||
|
dd 0 ;+16 color
|
||||||
|
db 24 ;+20 bit in pixel
|
||||||
|
|
||||||
|
some_text db '<27>ਬ<EFBFBD><E0A8AC> <20>뢮<EFBFBD><EBA2AE> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뢮<EFBFBD>:',13,13
|
||||||
|
db ' * <20> <20><><EFBFBD>쪮 <20><>ப',13
|
||||||
|
db ' * <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥<> ⥪<><E2A5AA><EFBFBD>',13,13
|
||||||
|
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 13 ᥭ<><E1A5AD><EFBFBD><EFBFBD><EFBFBD> 2011.',0
|
||||||
|
|
||||||
|
align 4
|
||||||
|
import_libimg:
|
||||||
|
dd alib_init1
|
||||||
|
img_is_img dd aimg_is_img
|
||||||
|
img_info dd aimg_info
|
||||||
|
img_from_file dd aimg_from_file
|
||||||
|
img_to_file dd aimg_to_file
|
||||||
|
img_from_rgb dd aimg_from_rgb
|
||||||
|
img_to_rgb dd aimg_to_rgb
|
||||||
|
img_to_rgb2 dd aimg_to_rgb2
|
||||||
|
img_decode dd aimg_decode
|
||||||
|
img_encode dd aimg_encode
|
||||||
|
img_create dd aimg_create
|
||||||
|
img_destroy dd aimg_destroy
|
||||||
|
img_destroy_layer dd aimg_destroy_layer
|
||||||
|
img_count dd aimg_count
|
||||||
|
img_lock_bits dd aimg_lock_bits
|
||||||
|
img_unlock_bits dd aimg_unlock_bits
|
||||||
|
img_flip dd aimg_flip
|
||||||
|
img_flip_layer dd aimg_flip_layer
|
||||||
|
img_rotate dd aimg_rotate
|
||||||
|
img_rotate_layer dd aimg_rotate_layer
|
||||||
|
img_draw dd aimg_draw
|
||||||
|
|
||||||
|
dd 0,0
|
||||||
|
alib_init1 db 'lib_init',0
|
||||||
|
aimg_is_img db 'img_is_img',0 ;<3B><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> ᤥ<><E1A4A5><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
aimg_info db 'img_info',0
|
||||||
|
aimg_from_file db 'img_from_file',0
|
||||||
|
aimg_to_file db 'img_to_file',0
|
||||||
|
aimg_from_rgb db 'img_from_rgb',0
|
||||||
|
aimg_to_rgb db 'img_to_rgb',0 ;<3B>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RGB
|
||||||
|
aimg_to_rgb2 db 'img_to_rgb2',0
|
||||||
|
aimg_decode db 'img_decode',0 ;<3B><>⮬<EFBFBD><E2AEAC><EFBFBD><EFBFBD><EFBFBD>᪨ <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><>ଠ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
aimg_encode db 'img_encode',0
|
||||||
|
aimg_create db 'img_create',0
|
||||||
|
aimg_destroy db 'img_destroy',0
|
||||||
|
aimg_destroy_layer db 'img_destroy_layer',0
|
||||||
|
aimg_count db 'img_count',0
|
||||||
|
aimg_lock_bits db 'img_lock_bits',0
|
||||||
|
aimg_unlock_bits db 'img_unlock_bits',0
|
||||||
|
aimg_flip db 'img_flip',0
|
||||||
|
aimg_flip_layer db 'img_flip_layer',0
|
||||||
|
aimg_rotate db 'img_rotate',0
|
||||||
|
aimg_rotate_layer db 'img_rotate_layer',0
|
||||||
|
aimg_draw db 'img_draw',0
|
||||||
|
|
||||||
|
align 4
|
||||||
|
import_buf2d_lib:
|
||||||
|
dd sz_lib_init
|
||||||
|
buf2d_create dd sz_buf2d_create
|
||||||
|
buf2d_create_f_img dd sz_buf2d_create_f_img
|
||||||
|
buf2d_clear dd sz_buf2d_clear
|
||||||
|
buf2d_draw dd sz_buf2d_draw
|
||||||
|
buf2d_delete dd sz_buf2d_delete
|
||||||
|
buf2d_resize dd sz_buf2d_resize
|
||||||
|
buf2d_line dd sz_buf2d_line
|
||||||
|
buf2d_rect_by_size dd sz_buf2d_rect_by_size
|
||||||
|
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
|
||||||
|
buf2d_circle dd sz_buf2d_circle
|
||||||
|
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
|
||||||
|
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
|
||||||
|
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
|
||||||
|
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
|
||||||
|
buf2d_bit_blt dd sz_buf2d_bit_blt
|
||||||
|
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
|
||||||
|
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
|
||||||
|
buf2d_curve_bezier dd sz_buf2d_curve_bezier
|
||||||
|
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
|
||||||
|
buf2d_draw_text dd sz_buf2d_draw_text
|
||||||
|
buf2d_crop_color dd sz_buf2d_crop_color
|
||||||
|
buf2d_offset_h dd sz_buf2d_offset_h
|
||||||
|
buf2d_flood_fill dd sz_buf2d_flood_fill
|
||||||
|
buf2d_set_pixel dd sz_buf2d_set_pixel
|
||||||
|
|
||||||
|
dd 0,0
|
||||||
|
sz_lib_init db 'lib_init',0
|
||||||
|
sz_buf2d_create db 'buf2d_create',0
|
||||||
|
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
|
||||||
|
sz_buf2d_clear db 'buf2d_clear',0
|
||||||
|
sz_buf2d_draw db 'buf2d_draw',0
|
||||||
|
sz_buf2d_delete db 'buf2d_delete',0
|
||||||
|
sz_buf2d_resize db 'buf2d_resize',0
|
||||||
|
sz_buf2d_line db 'buf2d_line',0
|
||||||
|
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
|
||||||
|
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
|
||||||
|
sz_buf2d_circle db 'buf2d_circle',0
|
||||||
|
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
|
||||||
|
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
|
||||||
|
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
|
||||||
|
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
|
||||||
|
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
|
||||||
|
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
|
||||||
|
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
|
||||||
|
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
|
||||||
|
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
|
||||||
|
sz_buf2d_draw_text db 'buf2d_draw_text',0
|
||||||
|
sz_buf2d_crop_color db 'buf2d_crop_color',0
|
||||||
|
sz_buf2d_offset_h db 'buf2d_offset_h',0
|
||||||
|
sz_buf2d_flood_fill db 'buf2d_flood_fill',0
|
||||||
|
sz_buf2d_set_pixel db 'buf2d_set_pixel',0
|
||||||
|
|
||||||
|
i_end:
|
||||||
|
rb 1024
|
||||||
|
stacktop:
|
||||||
|
sys_path rb 4096
|
||||||
|
file_name:
|
||||||
|
rb 4096
|
||||||
|
plugin_path:
|
||||||
|
rb 4096
|
||||||
|
openfile_path:
|
||||||
|
rb 4096
|
||||||
|
filename_area:
|
||||||
|
rb 256
|
||||||
|
mem:
|
189
programs/develop/libraries/buf2d/trunk/examples/e4_graf_ed.asm
Normal file
189
programs/develop/libraries/buf2d/trunk/examples/e4_graf_ed.asm
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
use32
|
||||||
|
org 0x0
|
||||||
|
db 'MENUET01' ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8 <20><><EFBFBD><EFBFBD>
|
||||||
|
dd 0x1
|
||||||
|
dd start
|
||||||
|
dd i_end ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
dd mem,stacktop
|
||||||
|
dd 0,cur_dir_path
|
||||||
|
|
||||||
|
include '../../../../../macros.inc'
|
||||||
|
include '../../../../../proc32.inc'
|
||||||
|
include '../../../../../develop/libraries/box_lib/load_lib.mac'
|
||||||
|
include 'mem.inc'
|
||||||
|
|
||||||
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, 0 ;dll.Load
|
||||||
|
|
||||||
|
buf2d_l equ word[edi+4] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
buf2d_t equ word[edi+6] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
align 4
|
||||||
|
start:
|
||||||
|
load_library vectors_name, cur_dir_path, library_path, system_path, \
|
||||||
|
err_message_found_lib, head_f_l, import_buf2d_lib, err_message_import, head_f_i
|
||||||
|
cmp eax,-1
|
||||||
|
jz button.exit
|
||||||
|
|
||||||
|
mcall 40,0x27
|
||||||
|
mcall 48,3,sc,sizeof.system_colors ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_create], buf_0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
align 4
|
||||||
|
red_win:
|
||||||
|
call draw_window
|
||||||
|
|
||||||
|
align 4
|
||||||
|
still:
|
||||||
|
mcall 10
|
||||||
|
cmp al,0x1 ;<3B><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
jz red_win
|
||||||
|
cmp al,0x2
|
||||||
|
jz key
|
||||||
|
cmp al,0x3
|
||||||
|
jz button
|
||||||
|
cmp al,0x6
|
||||||
|
jz mouse
|
||||||
|
jmp still
|
||||||
|
|
||||||
|
align 4
|
||||||
|
draw_window:
|
||||||
|
pushad
|
||||||
|
mcall 12,1
|
||||||
|
|
||||||
|
mov edx,[sc.work]
|
||||||
|
or edx,0x33000000
|
||||||
|
mcall 0,(50 shl 16)+500,(30 shl 16)+370,,,caption
|
||||||
|
|
||||||
|
stdcall [buf2d_draw], buf_0
|
||||||
|
|
||||||
|
mcall 12,2
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
|
||||||
|
align 4
|
||||||
|
key:
|
||||||
|
mcall 2
|
||||||
|
; cmp ah,27 ;Esc
|
||||||
|
; je button.exit
|
||||||
|
jmp still
|
||||||
|
|
||||||
|
align 4
|
||||||
|
button:
|
||||||
|
mcall 17 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
cmp ah,1
|
||||||
|
jne still
|
||||||
|
.exit:
|
||||||
|
stdcall [buf2d_delete],buf_0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
mcall -1 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
align 4
|
||||||
|
mouse:
|
||||||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
mcall 37,2 ;get mouse buttons
|
||||||
|
cmp al,1
|
||||||
|
jne @f
|
||||||
|
mcall 37,1 ;get mouse coords
|
||||||
|
mov ebx,eax
|
||||||
|
shr ebx,16 ;<3B> eax <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> 'x'
|
||||||
|
and eax,0xffff ;<3B> eax <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> 'y'
|
||||||
|
mov edi,buf_0
|
||||||
|
sub ax,buf2d_t ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
sub bx,buf2d_l
|
||||||
|
|
||||||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
;stdcall [buf2d_circle], edi, ebx, eax, 20, 0xff0000 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
;stdcall [buf2d_flood_fill], edi, ebx, eax, 0, 0xff,0xff0000 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
sub eax,5
|
||||||
|
sub ebx,5
|
||||||
|
stdcall [buf2d_filled_rect_by_size], edi, ebx,eax, 10,10, 0xff0000 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
stdcall [buf2d_draw], edi ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
@@:
|
||||||
|
jmp still
|
||||||
|
|
||||||
|
caption db 'Press left mouse button',0
|
||||||
|
sc system_colors ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
;--------------------------------------------------
|
||||||
|
align 4
|
||||||
|
import_buf2d_lib:
|
||||||
|
dd sz_lib_init
|
||||||
|
buf2d_create dd sz_buf2d_create
|
||||||
|
buf2d_create_f_img dd sz_buf2d_create_f_img
|
||||||
|
buf2d_clear dd sz_buf2d_clear
|
||||||
|
buf2d_draw dd sz_buf2d_draw
|
||||||
|
buf2d_delete dd sz_buf2d_delete
|
||||||
|
buf2d_resize dd sz_buf2d_resize
|
||||||
|
buf2d_line dd sz_buf2d_line
|
||||||
|
buf2d_rect_by_size dd sz_buf2d_rect_by_size
|
||||||
|
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
|
||||||
|
buf2d_circle dd sz_buf2d_circle
|
||||||
|
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
|
||||||
|
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
|
||||||
|
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
|
||||||
|
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
|
||||||
|
buf2d_bit_blt dd sz_buf2d_bit_blt
|
||||||
|
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
|
||||||
|
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
|
||||||
|
buf2d_curve_bezier dd sz_buf2d_curve_bezier
|
||||||
|
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
|
||||||
|
buf2d_draw_text dd sz_buf2d_draw_text
|
||||||
|
buf2d_crop_color dd sz_buf2d_crop_color
|
||||||
|
buf2d_offset_h dd sz_buf2d_offset_h
|
||||||
|
buf2d_flood_fill dd sz_buf2d_flood_fill
|
||||||
|
buf2d_set_pixel dd sz_buf2d_set_pixel
|
||||||
|
|
||||||
|
dd 0,0
|
||||||
|
sz_lib_init db 'lib_init',0
|
||||||
|
sz_buf2d_create db 'buf2d_create',0
|
||||||
|
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
|
||||||
|
sz_buf2d_clear db 'buf2d_clear',0
|
||||||
|
sz_buf2d_draw db 'buf2d_draw',0
|
||||||
|
sz_buf2d_delete db 'buf2d_delete',0
|
||||||
|
sz_buf2d_resize db 'buf2d_resize',0
|
||||||
|
sz_buf2d_line db 'buf2d_line',0
|
||||||
|
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
|
||||||
|
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
|
||||||
|
sz_buf2d_circle db 'buf2d_circle',0
|
||||||
|
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
|
||||||
|
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
|
||||||
|
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
|
||||||
|
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
|
||||||
|
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
|
||||||
|
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
|
||||||
|
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
|
||||||
|
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
|
||||||
|
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
|
||||||
|
sz_buf2d_draw_text db 'buf2d_draw_text',0
|
||||||
|
sz_buf2d_crop_color db 'buf2d_crop_color',0
|
||||||
|
sz_buf2d_offset_h db 'buf2d_offset_h',0
|
||||||
|
sz_buf2d_flood_fill db 'buf2d_flood_fill',0
|
||||||
|
sz_buf2d_set_pixel db 'buf2d_set_pixel',0
|
||||||
|
|
||||||
|
align 4
|
||||||
|
buf_0:
|
||||||
|
dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
dw 5 ;+4 left
|
||||||
|
dw 5 ;+6 top
|
||||||
|
dd 480 ;+8 w
|
||||||
|
dd 320 ;+12 h
|
||||||
|
.color: dd 0xffffff ;+16 color
|
||||||
|
db 24 ;+20 bit in pixel
|
||||||
|
|
||||||
|
;--------------------------------------------------
|
||||||
|
system_path db '/sys/lib/'
|
||||||
|
vectors_name db 'buf2d.obj',0
|
||||||
|
err_message_found_lib db 'Sorry I cannot load library buf2d.obj',0
|
||||||
|
head_f_i:
|
||||||
|
head_f_l db 'System error',0
|
||||||
|
err_message_import db 'Error on load import library buf2d.obj',0
|
||||||
|
;--------------------------------------------------
|
||||||
|
|
||||||
|
i_end: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
rb 2*4096
|
||||||
|
stacktop:
|
||||||
|
cur_dir_path:
|
||||||
|
rb 4096
|
||||||
|
library_path:
|
||||||
|
rb 4096
|
||||||
|
mem:
|
||||||
|
|
BIN
programs/develop/libraries/buf2d/trunk/examples/foto.jpg
Normal file
BIN
programs/develop/libraries/buf2d/trunk/examples/foto.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
BIN
programs/develop/libraries/buf2d/trunk/examples/img0.png
Normal file
BIN
programs/develop/libraries/buf2d/trunk/examples/img0.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.2 KiB |
BIN
programs/develop/libraries/buf2d/trunk/examples/img1.png
Normal file
BIN
programs/develop/libraries/buf2d/trunk/examples/img1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
48
programs/develop/libraries/buf2d/trunk/examples/mem.inc
Normal file
48
programs/develop/libraries/buf2d/trunk/examples/mem.inc
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
;-----------------------------------------------------------------------------
|
||||||
|
proc mem.Alloc,size ;/////////////////////////////////////////////////////////
|
||||||
|
;-----------------------------------------------------------------------------
|
||||||
|
push ebx ecx
|
||||||
|
mov ecx,[size]
|
||||||
|
;*** add ecx,4
|
||||||
|
mcall 68,12
|
||||||
|
;*** add ecx,-4
|
||||||
|
;*** mov [eax],ecx
|
||||||
|
;*** add eax,4
|
||||||
|
pop ecx ebx
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
;-----------------------------------------------------------------------------
|
||||||
|
proc mem.ReAlloc,mptr,size ;//////////////////////////////////////////////////
|
||||||
|
;-----------------------------------------------------------------------------
|
||||||
|
push ebx ecx edx
|
||||||
|
mov ecx,[size]
|
||||||
|
or ecx,ecx
|
||||||
|
jz @f
|
||||||
|
;*** add ecx,4
|
||||||
|
@@: mov edx,[mptr]
|
||||||
|
or edx,edx
|
||||||
|
jz @f
|
||||||
|
;*** add edx,-4
|
||||||
|
@@: mcall 68,20
|
||||||
|
or eax,eax
|
||||||
|
jz @f
|
||||||
|
;*** add ecx,-4
|
||||||
|
;*** mov [eax],ecx
|
||||||
|
;*** add eax,4
|
||||||
|
@@: pop edx ecx ebx
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
;-----------------------------------------------------------------------------
|
||||||
|
proc mem.Free,mptr ;//////////////////////////////////////////////////////////
|
||||||
|
;-----------------------------------------------------------------------------
|
||||||
|
push ebx ecx
|
||||||
|
mov ecx,[mptr]
|
||||||
|
or ecx,ecx
|
||||||
|
jz @f
|
||||||
|
;*** add ecx,-4
|
||||||
|
@@: mcall 68,13
|
||||||
|
pop ecx ebx
|
||||||
|
ret
|
||||||
|
endp
|
Reference in New Issue
Block a user