buf2d examples clean code
git-svn-id: svn://kolibrios.org@9675 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -82,6 +82,18 @@ namespace Kolibri // All kolibri functions, types and data are nested in the (
|
|||||||
else return 0;
|
else return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned long int FileCreate(FileInfoBlock* file_data, void *mem, int size)
|
||||||
|
{
|
||||||
|
file_data->Function = 2; //SSF_CREATE_FILE
|
||||||
|
file_data->Position = 0;
|
||||||
|
file_data->Flags = 0;
|
||||||
|
file_data->Count = size;
|
||||||
|
file_data->Buffer = (char*)mem;
|
||||||
|
|
||||||
|
if(!_FileAccess(file_data)) return file_data->Function;
|
||||||
|
else return 0;
|
||||||
|
}
|
||||||
|
|
||||||
// Inline functions.
|
// Inline functions.
|
||||||
|
|
||||||
inline unsigned long int FileGetLength(FileInfoBlock* file_data)
|
inline unsigned long int FileGetLength(FileInfoBlock* file_data)
|
||||||
|
90
programs/bcc32/include/l_buf2d.h
Normal file
90
programs/bcc32/include/l_buf2d.h
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
#ifndef __L_BUF2D_H_INCLUDED_
|
||||||
|
#define __L_BUF2D_H_INCLUDED_
|
||||||
|
//
|
||||||
|
// buf2d.obj
|
||||||
|
//
|
||||||
|
|
||||||
|
struct buf_2d_header
|
||||||
|
{
|
||||||
|
void* img_data;
|
||||||
|
short int left, top;
|
||||||
|
long size_x, size_y;
|
||||||
|
unsigned long color; //color
|
||||||
|
unsigned char bit_pp; //bit in pixel
|
||||||
|
};
|
||||||
|
|
||||||
|
const long BUF2D_OPT_CROP_TOP = 1;
|
||||||
|
const long BUF2D_OPT_CROP_LEFT = 2;
|
||||||
|
const long BUF2D_OPT_CROP_BOTTOM = 4;
|
||||||
|
const long BUF2D_OPT_CROP_RIGHT = 8;
|
||||||
|
const long BUF2D_BIT_OPT_CROP_TOP = 0;
|
||||||
|
const long BUF2D_BIT_OPT_CROP_LEFT = 1;
|
||||||
|
const long BUF2D_BIT_OPT_CROP_BOTTOM = 2;
|
||||||
|
const long BUF2D_BIT_OPT_CROP_RIGHT = 3;
|
||||||
|
|
||||||
|
//
|
||||||
|
// buf2d - import table
|
||||||
|
//
|
||||||
|
void (__stdcall* import_buf2d)() = (void (__stdcall*)())&"lib_init";
|
||||||
|
void (__stdcall* buf2d_create)(buf_2d_header* buf) = (void (__stdcall*)(buf_2d_header*))&"buf2d_create";
|
||||||
|
void (__stdcall* buf2d_create_f_img)(buf_2d_header* buf, void* img_data) = (void (__stdcall*)(buf_2d_header*, void*))&"buf2d_create_f_img";
|
||||||
|
void (__stdcall* buf2d_clear)(buf_2d_header* buf, long color) = (void (__stdcall*)(buf_2d_header*, long))&"buf2d_clear";
|
||||||
|
void (__stdcall* buf2d_draw)(buf_2d_header* buf) = (void (__stdcall*)(buf_2d_header*))&"buf2d_draw";
|
||||||
|
void (__stdcall* buf2d_delete)(buf_2d_header* buf) = (void (__stdcall*)(buf_2d_header*))&"buf2d_delete";
|
||||||
|
void (__stdcall* buf2d_resize)(buf_2d_header* buf, long n_w, long n_h, long opt) = (void (__stdcall*)(buf_2d_header*, long, long, long))&"buf2d_resize";
|
||||||
|
void (__stdcall* buf2d_rotate)(buf_2d_header* buf, long angle) = (void (__stdcall*)(buf_2d_header*, long))&"buf2d_rotate";
|
||||||
|
void (__stdcall* buf2d_line)(buf_2d_header* buf, long x1, long y1, long x2, long y2, long color) = (void (__stdcall*)(buf_2d_header*, long, long, long, long, long))&"buf2d_line";
|
||||||
|
void (__stdcall* buf2d_line_sm)(buf_2d_header* buf, long x1, long y1, long x2, long y2, long color) = (void (__stdcall*)(buf_2d_header*, long, long, long, long, long))&"buf2d_line_sm";
|
||||||
|
void (__stdcall* buf2d_rect_by_size)(buf_2d_header* buf, long x1, long y1, long w, long h, long color) = (void (__stdcall*)(buf_2d_header*, long, long, long, long, long))&"buf2d_rect_by_size";
|
||||||
|
void (__stdcall* buf2d_filled_rect_by_size)(buf_2d_header* buf, long x1, long y1, long w, long h, long color) = (void (__stdcall*)(buf_2d_header*, long, long, long, long, long))&"buf2d_filled_rect_by_size";
|
||||||
|
void (__stdcall* buf2d_circle)(buf_2d_header* buf, long x, long y, long r, long color) = (void (__stdcall*)(buf_2d_header*, long, long, long, long))&"buf2d_circle";
|
||||||
|
void (__stdcall* buf2d_img_hdiv2)(buf_2d_header* buf) = (void (__stdcall*)(buf_2d_header*))&"buf2d_img_hdiv2";
|
||||||
|
void (__stdcall* buf2d_img_wdiv2)(buf_2d_header* buf) = (void (__stdcall*)(buf_2d_header*))&"buf2d_img_wdiv2";
|
||||||
|
void (__stdcall* buf2d_conv_24_to_8)(buf_2d_header* buf24, long opt_rgb) = (void (__stdcall*)(buf_2d_header*, long))&"buf2d_conv_24_to_8";
|
||||||
|
void (__stdcall* buf2d_conv_24_to_32)(buf_2d_header* buf24, buf_2d_header* buf8) = (void (__stdcall*)(buf_2d_header*, buf_2d_header*))&"buf2d_conv_24_to_32";
|
||||||
|
void (__stdcall* buf2d_bit_blt)(buf_2d_header* buf0, long x, long y, buf_2d_header* buf1) = (void (__stdcall*)(buf_2d_header*, long, long, buf_2d_header*))&"buf2d_bit_blt";
|
||||||
|
void (__stdcall* buf2d_bit_blt_transp)(buf_2d_header* buf0, long x, long y, buf_2d_header* buf32) = (void (__stdcall*)(buf_2d_header*, long, long, buf_2d_header*))&"buf2d_bit_blt_transp";
|
||||||
|
void (__stdcall* buf2d_bit_blt_alpha)(buf_2d_header* buf0, long x, long y, buf_2d_header* buf8) = (void (__stdcall*)(buf_2d_header*, long, long, buf_2d_header*))&"buf2d_bit_blt_alpha";
|
||||||
|
void (__stdcall* buf2d_curve_bezier)(buf_2d_header* buf, long p1, long p2, long p3, long color) = (void (__stdcall*)(buf_2d_header*, long, long, long, long))&"buf2d_curve_bezier";
|
||||||
|
void (__stdcall* buf2d_convert_text_matrix)(buf_2d_header* buf) = (void (__stdcall*)(buf_2d_header*))&"buf2d_convert_text_matrix";
|
||||||
|
void (__stdcall* buf2d_draw_text)(buf_2d_header* buf, buf_2d_header* buf_txt, char* txt, long x, long y, long color) = (void (__stdcall*)(buf_2d_header*, buf_2d_header*, char*, long, long, long))&"buf2d_draw_text";
|
||||||
|
void (__stdcall* buf2d_crop_color)(buf_2d_header* buf, long color, long opt) = (void (__stdcall*)(buf_2d_header*, long, long))&"buf2d_crop_color";
|
||||||
|
void (__stdcall* buf2d_offset_h)(buf_2d_header* buf, long dy) = (void (__stdcall*)(buf_2d_header*, long))&"buf2d_offset_h";
|
||||||
|
void (__stdcall* buf2d_flood_fill)(buf_2d_header* buf, long x, long y, long opt, long color1, long color2) = (void (__stdcall*)(buf_2d_header*, long, long, long, long, long))&"buf2d_flood_fill";
|
||||||
|
void (__stdcall* buf2d_set_pixel)(buf_2d_header* buf, long x, long y, long color) = (void (__stdcall*)(buf_2d_header*, long, long, long))&"buf2d_set_pixel";
|
||||||
|
long (__stdcall* buf2d_get_pixel)(buf_2d_header* buf, long x, long y) = (long (__stdcall*)(buf_2d_header*, long, long))&"buf2d_get_pixel";
|
||||||
|
void (__stdcall* buf2d_flip_h)(buf_2d_header* buf) = (void (__stdcall*)(buf_2d_header*))&"buf2d_flip_h";
|
||||||
|
void (__stdcall* buf2d_flip_v)(buf_2d_header* buf) = (void (__stdcall*)(buf_2d_header*))&"buf2d_flip_v";
|
||||||
|
void (__stdcall* buf2d_filter_dither)(buf_2d_header* buf, long opt) = (void (__stdcall*)(buf_2d_header*, long))&"buf2d_filter_dither";
|
||||||
|
|
||||||
|
/*
|
||||||
|
void (__stdcall* buf2d_vox_brush_create)(buf_2d_header* buf, long* opt) = (void (__stdcall*)(buf_2d_header*, long*))&"buf2d_vox_brush_create";
|
||||||
|
"buf2d_vox_brush_delete
|
||||||
|
"buf2d_vox_obj_get_img_w_3g
|
||||||
|
"buf2d_vox_obj_get_img_h_3g
|
||||||
|
"buf2d_vox_obj_draw_1g
|
||||||
|
"buf2d_vox_obj_draw_3g
|
||||||
|
"buf2d_vox_obj_draw_3g_scaled
|
||||||
|
"buf2d_vox_obj_draw_pl
|
||||||
|
"buf2d_vox_obj_draw_pl_scaled
|
||||||
|
"buf2d_vox_obj_draw_3g_shadows
|
||||||
|
*/
|
||||||
|
asm{
|
||||||
|
dd 0,0
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool buf2d_create_ex(buf_2d_header* buf, long l, long t, long w, long h, unsigned long c=0xffffff, unsigned char bit_pp=24)
|
||||||
|
{
|
||||||
|
buf->left=l;
|
||||||
|
buf->top=t;
|
||||||
|
buf->size_x=w;
|
||||||
|
buf->size_y=h;
|
||||||
|
buf->color=c;
|
||||||
|
if(bit_pp!=8 && bit_pp!=24 && bit_pp!=32) return false;
|
||||||
|
buf->bit_pp=bit_pp;
|
||||||
|
buf2d_create(buf);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
@@ -17,7 +17,7 @@ start:
|
|||||||
cmp eax,-1
|
cmp eax,-1
|
||||||
jz button.exit
|
jz button.exit
|
||||||
|
|
||||||
mcall 40,0x27
|
mcall SF_SET_EVENTS_MASK, 0x27
|
||||||
stdcall [buf2d_create], buf_0 ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
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, 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_line], buf_0, 60, 120, 110, 20, 0xd000 ;<3B><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -31,7 +31,7 @@ red_win:
|
|||||||
|
|
||||||
align 4
|
align 4
|
||||||
still:
|
still:
|
||||||
mcall 10
|
mcall SF_WAIT_EVENT
|
||||||
cmp al,1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
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
|
jz red_win
|
||||||
cmp al,2
|
cmp al,2
|
||||||
@@ -43,21 +43,21 @@ still:
|
|||||||
align 4
|
align 4
|
||||||
draw_window:
|
draw_window:
|
||||||
pushad
|
pushad
|
||||||
mcall 12,1
|
mcall SF_REDRAW, SSF_BEGIN_DRAW
|
||||||
|
|
||||||
;mov edx,0x32000000
|
;mov edx,0x32000000
|
||||||
mov edx,0x33000000
|
mov edx,0x33000000
|
||||||
mcall 0,(50 shl 16)+330,(30 shl 16)+275,,,caption
|
mcall SF_CREATE_WINDOW, (50 shl 16)+330,(30 shl 16)+275,,,caption
|
||||||
|
|
||||||
stdcall [buf2d_draw], buf_0
|
stdcall [buf2d_draw], buf_0
|
||||||
|
|
||||||
mcall 12,2
|
mcall SF_REDRAW, SSF_END_DRAW
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
key:
|
key:
|
||||||
mcall 2
|
mcall SF_GET_KEY
|
||||||
|
|
||||||
cmp ah,27 ;Esc
|
cmp ah,27 ;Esc
|
||||||
je button.exit
|
je button.exit
|
||||||
@@ -66,12 +66,12 @@ key:
|
|||||||
|
|
||||||
align 4
|
align 4
|
||||||
button:
|
button:
|
||||||
mcall 17 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
mcall SF_GET_BUTTON
|
||||||
cmp ah,1
|
cmp ah,1
|
||||||
jne still
|
jne still
|
||||||
.exit:
|
.exit:
|
||||||
stdcall [buf2d_delete],buf_0 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
stdcall [buf2d_delete],buf_0 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
mcall -1 ;<3B><>室 <20><> <20>ணࠬ<E0AEA3><E0A0AC>
|
mcall SF_TERMINATE_PROCESS
|
||||||
|
|
||||||
caption db 'Test buf2d library, [Esc] - exit',0
|
caption db 'Test buf2d library, [Esc] - exit',0
|
||||||
|
|
||||||
@@ -134,9 +134,6 @@ lib0_name db 'buf2d.obj',0
|
|||||||
i_end: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
i_end: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
rb 1024
|
rb 1024
|
||||||
stacktop:
|
stacktop:
|
||||||
cur_dir_path:
|
cur_dir_path rb 4096
|
||||||
rb 4096
|
library_path rb 4096
|
||||||
library_path:
|
|
||||||
rb 4096
|
|
||||||
mem:
|
mem:
|
||||||
|
|
||||||
|
@@ -17,7 +17,7 @@ start:
|
|||||||
cmp eax,-1
|
cmp eax,-1
|
||||||
jz button.exit
|
jz button.exit
|
||||||
|
|
||||||
mcall 40,0x27
|
mcall SF_SET_EVENTS_MASK, 0x27
|
||||||
stdcall [buf2d_create], buf_0 ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
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, 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_line], buf_0, 60, 120, 110, 20, 0xd000 ;<3B><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -31,10 +31,8 @@ start:
|
|||||||
|
|
||||||
;<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> <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>:
|
;<3B><><EFBFBD>諮<EFBFBD><E8ABAE> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <><E1ABA5>騬<EFBFBD> <20><>ப<EFBFBD><E0AEAA><EFBFBD>:
|
||||||
;xor ecx,ecx
|
;movzx ecx,word[buf_1.size_x]
|
||||||
;xor eax,eax
|
;movzx eax,word[buf_1.size_y]
|
||||||
;mov cx,word[buf_1.size_x]
|
|
||||||
;mov ax,word[buf_1.size_y]
|
|
||||||
;imul ecx,eax
|
;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>
|
;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 mem_copy, dword[buf_0],dword[buf_1],ecx
|
||||||
@@ -52,7 +50,7 @@ red_win:
|
|||||||
|
|
||||||
align 4
|
align 4
|
||||||
still:
|
still:
|
||||||
mcall 10
|
mcall SF_WAIT_EVENT
|
||||||
cmp al,1 ;<3B><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
cmp al,1 ;<3B><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
jz red_win
|
jz red_win
|
||||||
cmp al,2
|
cmp al,2
|
||||||
@@ -64,21 +62,21 @@ still:
|
|||||||
align 4
|
align 4
|
||||||
draw_window:
|
draw_window:
|
||||||
pushad
|
pushad
|
||||||
mcall 12,1
|
mcall SF_REDRAW, SSF_BEGIN_DRAW
|
||||||
|
|
||||||
;mov edx,0x32000000
|
;mov edx,0x32000000
|
||||||
mov edx,0x33000000
|
mov edx,0x33000000
|
||||||
mcall 0,(50 shl 16)+330,(30 shl 16)+275,,,caption
|
mcall SF_CREATE_WINDOW, (50 shl 16)+330,(30 shl 16)+275,,,caption
|
||||||
|
|
||||||
stdcall [buf2d_draw], buf_0
|
stdcall [buf2d_draw], buf_0
|
||||||
|
|
||||||
mcall 12,2
|
mcall SF_REDRAW, SSF_END_DRAW
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
key:
|
key:
|
||||||
mcall 2
|
mcall SF_GET_KEY
|
||||||
|
|
||||||
cmp ah,27 ;Esc
|
cmp ah,27 ;Esc
|
||||||
je button.exit
|
je button.exit
|
||||||
@@ -87,13 +85,13 @@ key:
|
|||||||
|
|
||||||
align 4
|
align 4
|
||||||
button:
|
button:
|
||||||
mcall 17 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
mcall SF_GET_BUTTON
|
||||||
cmp ah,1
|
cmp ah,1
|
||||||
jne still
|
jne still
|
||||||
.exit:
|
.exit:
|
||||||
stdcall [buf2d_delete],buf_0 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
stdcall [buf2d_delete],buf_0 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
stdcall [buf2d_delete],buf_1 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
stdcall [buf2d_delete],buf_1 ;㤠<>塞 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
mcall -1 ;<3B><>室 <20><> <20>ணࠬ<E0AEA3><E0A0AC>
|
mcall SF_TERMINATE_PROCESS
|
||||||
|
|
||||||
caption db 'Test buf2d library, [Esc] - exit',0
|
caption db 'Test buf2d library, [Esc] - exit',0
|
||||||
|
|
||||||
@@ -166,9 +164,6 @@ lib0_name db 'buf2d.obj',0
|
|||||||
i_end: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
i_end: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
rb 1024
|
rb 1024
|
||||||
stacktop:
|
stacktop:
|
||||||
cur_dir_path:
|
cur_dir_path rb 4096
|
||||||
rb 4096
|
library_path rb 4096
|
||||||
library_path:
|
|
||||||
rb 4096
|
|
||||||
mem:
|
mem:
|
||||||
|
|
||||||
|
@@ -20,8 +20,8 @@ start:
|
|||||||
cmp eax,-1
|
cmp eax,-1
|
||||||
jz button.exit
|
jz button.exit
|
||||||
|
|
||||||
mcall 40,0x27
|
mcall SF_SET_EVENTS_MASK, 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>
|
mcall SF_STYLE_SETTINGS, SSF_GET_COLORS,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>
|
stdcall [buf2d_create], buf_0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
@@ -30,55 +30,55 @@ red_win:
|
|||||||
|
|
||||||
align 4
|
align 4
|
||||||
still:
|
still:
|
||||||
mcall 10
|
mcall SF_WAIT_EVENT
|
||||||
cmp al,0x1 ;<3B><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
cmp al,1 ;<3B><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
jz red_win
|
jz red_win
|
||||||
cmp al,0x2
|
cmp al,2
|
||||||
jz key
|
jz key
|
||||||
cmp al,0x3
|
cmp al,3
|
||||||
jz button
|
jz button
|
||||||
cmp al,0x6
|
cmp al,6
|
||||||
jz mouse
|
jz mouse
|
||||||
jmp still
|
jmp still
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
draw_window:
|
draw_window:
|
||||||
pushad
|
pushad
|
||||||
mcall 12,1
|
mcall SF_REDRAW, SSF_BEGIN_DRAW
|
||||||
|
|
||||||
mov edx,[sc.work]
|
mov edx,[sc.work]
|
||||||
or edx,0x33000000
|
or edx,0x33000000
|
||||||
mcall 0,(50 shl 16)+500,(30 shl 16)+370,,,caption
|
mcall SF_CREATE_WINDOW, (50 shl 16)+500,(30 shl 16)+370,,,caption
|
||||||
|
|
||||||
stdcall [buf2d_draw], buf_0
|
stdcall [buf2d_draw], buf_0
|
||||||
|
|
||||||
mcall 12,2
|
mcall SF_REDRAW, SSF_END_DRAW
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
key:
|
key:
|
||||||
mcall 2
|
mcall SF_GET_KEY
|
||||||
; cmp ah,27 ;Esc
|
; cmp ah,27 ;Esc
|
||||||
; je button.exit
|
; je button.exit
|
||||||
jmp still
|
jmp still
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
button:
|
button:
|
||||||
mcall 17 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
mcall SF_GET_BUTTON
|
||||||
cmp ah,1
|
cmp ah,1
|
||||||
jne still
|
jne still
|
||||||
.exit:
|
.exit:
|
||||||
stdcall [buf2d_delete],buf_0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
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>
|
mcall SF_TERMINATE_PROCESS
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
mouse:
|
mouse:
|
||||||
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
;<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
|
mcall SF_MOUSE_GET, SSF_BUTTON ;get mouse buttons
|
||||||
cmp al,1
|
cmp al,1
|
||||||
jne @f
|
jne @f
|
||||||
mcall 37,1 ;get mouse coords
|
mcall SF_MOUSE_GET, SSF_WINDOW_POSITION ;get mouse coords
|
||||||
mov ebx,eax
|
mov ebx,eax
|
||||||
shr ebx,16 ;<3B> eax <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> 'x'
|
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'
|
and eax,0xffff ;<3B> eax <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> 'y'
|
||||||
@@ -173,9 +173,6 @@ lib0_name db 'buf2d.obj',0
|
|||||||
i_end: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
i_end: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
rb 2*4096
|
rb 2*4096
|
||||||
stacktop:
|
stacktop:
|
||||||
cur_dir_path:
|
cur_dir_path rb 4096
|
||||||
rb 4096
|
library_path rb 4096
|
||||||
library_path:
|
|
||||||
rb 4096
|
|
||||||
mem:
|
mem:
|
||||||
|
|
||||||
|
@@ -68,11 +68,11 @@ start:
|
|||||||
stdcall [buf2d_vox_brush_create], buf_vox, vox_6_7_z ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD>ᥫ<EFBFBD><E1A5AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
stdcall [buf2d_vox_brush_create], buf_vox, vox_6_7_z ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD>ᥫ<EFBFBD><E1A5AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
stdcall mem.Alloc,max_open_file_size
|
stdcall mem.Alloc,max_open_file_size
|
||||||
mov dword[open_file_vox],eax
|
mov [open_file_vox],eax
|
||||||
|
|
||||||
copy_path f_name,[32],file_name,0
|
copy_path f_name,[32],file_name,0
|
||||||
|
|
||||||
mov eax,70 ;70-<2D> <20>㭪<EFBFBD><E3ADAA><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> 䠩<><E4A0A9><EFBFBD><EFBFBD>
|
mov eax,SF_FILE
|
||||||
mov [run_file_70.Function], 0
|
mov [run_file_70.Function], 0
|
||||||
mov [run_file_70.Position], 0
|
mov [run_file_70.Position], 0
|
||||||
mov [run_file_70.Flags], 0
|
mov [run_file_70.Flags], 0
|
||||||
@@ -230,13 +230,11 @@ name_buf2d db 'buf2d.obj',0
|
|||||||
|
|
||||||
align 16
|
align 16
|
||||||
i_end: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
i_end: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
file_name:
|
file_name rb 4096
|
||||||
rb 4096
|
cur_dir_path rb 4096
|
||||||
cur_dir_path:
|
library_path rb 4096
|
||||||
rb 4096
|
|
||||||
library_path:
|
|
||||||
rb 4096
|
|
||||||
rb 1024
|
rb 1024
|
||||||
stacktop:
|
stacktop:
|
||||||
mem:
|
mem:
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user