From 532075fe1813178575076b3288d2e1c52f4a6d36 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Tue, 21 Dec 2021 21:38:18 +0000 Subject: [PATCH] View3DS: better key and scroll support icons16.png: better icons 'run' and 'monitor/screensaver' some fixes git-svn-id: svn://kolibrios.org@9454 a494cfbc-eb01-0410-851d-a64ba20cac60 --- data/common/icons16.png | Bin 11949 -> 11935 bytes data/common/settings/system.ini | 2 +- data/eng/settings/menu.dat | 214 ++++++++++++++--------------- programs/cmm/lib/obj/libimg.h | 54 +------- programs/demos/view3ds/data.inc | 5 +- programs/demos/view3ds/view3ds.asm | 70 +++++++--- 6 files changed, 166 insertions(+), 179 deletions(-) diff --git a/data/common/icons16.png b/data/common/icons16.png index 19dd24a34e2d21e826609ee882dc8d970a3541a4..9556a299a5981a1577e9d8640a70452b72609f53 100644 GIT binary patch delta 11651 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 |@1 -00 3D Demos > |@2 -00 Graphics > |@3 -00 Multimedia > |@4 -00 Development > |@5 -00 System > |@7 -00 Data processing > |@10 -00 Network > |@11 -00 Other > |@14 -23 Game Center |allgames -60 System panel |syspanel -18 Documentation |docpack -53 Run |run -04 Shut down |end +58 Welcome |welcome.htm +00 2D Demos > |@1 +00 3D Demos > |@2 +00 Graphics > |@3 +00 Multimedia > |@4 +00 Development > |@5 +00 System > |@7 +00 Data processing > |@10 +00 Network > |@11 +00 Other > |@14 +23 Game Center |allgames +60 System panel |syspanel +18 Documentation |docpack +53 Run |run +04 Shut down |end #1 **** DEMOS -16 Fractal |demos/tinyfrac -16 Eyes |demos/eyes -16 Tube |demos/tube -16 Plasma |demos/plasma -16 Spiral |demos/spiral -16 Moveback |demos/movback -16 TranTest |demos/trantest -16 WEB |demos/web -16 FireWork |demos/firework -16 UnvWater |demos/unvwater +16 Fractal |demos/tinyfrac +16 Eyes |demos/eyes +16 Tube |demos/tube +16 Plasma |demos/plasma +16 Spiral |demos/spiral +16 Moveback |demos/movback +16 TranTest |demos/trantest +16 Web |demos/web +16 FireWork |demos/firework +16 UnvWater |demos/unvwater #2 **** 3D -15 ScreenSaver |3d/crownscr -15 3D-labyrinth |3d/free3d04 -15 3D-cube |3d/3dcube2 -15 Ray tracing |3d/ray -15 View3DS |3d/view3ds -15 Gears |3d/gears -15 3D-waved area |3d/3dwav +15 Crown Screensaver |3d/crownscr +15 Labyrinth |3d/free3d04 +15 Cube |3d/3dcube2 +15 Ray tracing |3d/ray +15 View3DS |3d/view3ds +15 Gears |3d/gears +15 Waved area |3d/3dwav #3 **** GRAPHICS -06 Kolibri Image Viewer |media/kiv -06 zSea Image Viewer * |/kolibrios/media/zsea/zsea -38 Animage |media/animage -38 IconEdit |media/iconedit -40 Image Filtering |media/imgf/imgf -52 Palitra |media/palitra -39 Pipet |develop/pipet +06 Kolibri Image Viewer |media/kiv +06 zSea Image Viewer * |/kolibrios/media/zsea/zsea +38 Animage |media/animage +38 IconEdit |media/iconedit +40 Image Filtering |media/imgf/imgf +52 Palitra |media/palitra +39 Pipet |develop/pipet #4 **** MULTIMEDIA -53 Pixie Audio |media/pixie -07 MidAMP |media/midamp -22 Toy piano |media/piano -11 Fplay Video * |/kolibrios/media/fplay +53 Pixie Audio |media/pixie +07 MidAMP |media/midamp +22 Toy piano |media/piano +11 Fplay Video * |/kolibrios/media/fplay #5 **** DEV -54 Flat Assembler |develop/fasm -03 Example.asm |example.asm -49 Debugger |develop/mtdbg -13 Debug Board |develop/board -09 KPack Archiver |kpack -20 Diff Tool |develop/diff -34 Base Converter |develop/h2d2b -59 Character table |develop/ASCIIVju -59 Key ASCII-codes |develop/keyascii -59 Key SCAN-codes |develop/scancode +54 Flat Assembler |develop/fasm +03 Example.asm |example.asm +49 Debugger |develop/mtdbg +13 Debug Board |develop/board +09 KPack Archiver |kpack +20 Diff Tool |develop/diff +34 Base Converter |develop/h2d2b +59 Character table |develop/ASCIIVju +59 Key ASCII-codes |develop/keyascii +59 Key SCAN-codes |develop/scancode #6 **** EMUL -24 DOSBox * |/kolibrios/emul/DosBox/dosbox -16 e80 (ZX Spectrum) * |/kolibrios/emul/e80/e80 -23 Gameboy Color * |/kolibrios/emul/gameboy -23 FCE Ultra (NES) * |/kolibrios/emul/fceu/fceu -23 ZSNES * |/kolibrios/emul/zsnes/zsnes -16 ScummVM * |/kolibrios/emul/scummvm +24 DOSBox * |/kolibrios/emul/DosBox/dosbox +16 e80 (ZX Spectrum) * |/kolibrios/emul/e80/e80 +23 Gameboy Color * |/kolibrios/emul/gameboy +23 FCE Ultra (NES) * |/kolibrios/emul/fceu/fceu +23 ZSNES * |/kolibrios/emul/zsnes/zsnes +16 ScummVM * |/kolibrios/emul/scummvm #7 **** SYSTEM -00 File Managers > |@8 -00 Accessibility > |@9 -59 Hotkeys |mykey -56 Clipboard viewer |develop/clipview -62 Calendar |calendar -33 Online update * |/kolibrios/utils/osupdate -48 Process manager |cpu -24 Terminal |terminal -05 Save ramdisk |rdsave -24 Shell |shell -51 Virtual disks |tmpdisk +00 File Managers > |@8 +00 Accessibility > |@9 +59 Hotkeys |mykey +56 Clipboard viewer |develop/clipview +62 Calendar |calendar +33 Online update * |/kolibrios/utils/osupdate +48 Process manager |cpu +24 Terminal |terminal +05 Save ramdisk |rdsave +24 Shell |shell +51 Virtual disks |tmpdisk #8 **** FM -50 Eolite |File Managers/Eolite -05 KFM2 |File Managers/kfm2 -20 fNav |File Managers/fNav/fNav -64 KFAR |File Managers/kfar -65 NDN * |/kolibrios/utils/ndn/ndn +50 Eolite |File Managers/Eolite +05 KFM2 |File Managers/kfm2 +20 fNav |File Managers/fNav/fNav +64 KFAR |File Managers/kfar +65 NDN * |/kolibrios/utils/ndn/ndn #9 **** ACCESSIBILITY -49 Screen magnifier |magnify -59 Screen keyboard |zkey +49 Screen magnifier |magnify +59 Screen keyboard |zkey #10 **** DATA PROCESSING -16 Calculator |calc -03 Tinypad |tinypad -28 CodeEdit |develop/cedit -21 Table processor |table -47 Graph builder |graph -16 Hex editor |develop/heed -09 Unarchiver Unz |unz +16 Calculator |calc +03 Tinypad |tinypad +28 CodeEdit |develop/cedit +21 Table processor |table +47 Graph builder |graph +16 Hex editor |develop/heed +09 Unarchiver Unz |unz #11 **** NETWORK -00 Clients > |@12 -00 Servers > |@13 -25 Network devices |network/netcfg -16 Network status |network/netstat +00 Clients > |@12 +00 Servers > |@13 +25 Network devices |network/netcfg +16 Network status |network/netstat #12 **** CLIENTS -13 IRC |network/ircc -20 FTP |network/ftpc -20 TFTP |network/tftpc -24 Ping |network/ping -24 Telnet |network/telnet -24 Synergy |network/synergyc -24 DNS lookup |network/nslookup -61 VNC Viewer |network/vncc -33 Downloader |network/downloader -12 Text-based browser |network/webview +13 IRC |network/ircc +20 FTP |network/ftpc +20 TFTP |network/tftpc +24 Ping |network/ping +24 Telnet |network/telnet +24 Synergy |network/synergyc +24 DNS lookup |network/nslookup +61 VNC Viewer |network/vncc +33 Downloader |network/downloader +12 Text-based browser |network/webview #13 **** SERVERS -24 FTP |network/ftpd +24 FTP |network/ftpd #14 **** OTHER -00 Emulators* > |@6 -16 Analog clock |aclock -16 Binary clock |demos/bcdclk -29 FB2 Reader |fb2read -53 Timer |timer -45 Screenshooter |scrshoot -45 Easyshot |easyshot -03 RTF reader |rtfread +00 Emulators* > |@6 +16 Analog clock |aclock +16 Binary clock |demos/bcdclk +29 FB2 Reader |fb2read +53 Timer |timer +45 Screenshooter |scrshoot +45 Easyshot |easyshot +03 RTF reader |rtfread ## diff --git a/programs/cmm/lib/obj/libimg.h b/programs/cmm/lib/obj/libimg.h index 9d3d598f4f..cc26554a55 100644 --- a/programs/cmm/lib/obj/libimg.h +++ b/programs/cmm/lib/obj/libimg.h @@ -173,12 +173,12 @@ struct libimg_image :void libimg_image::convert_into(dword _to) { img_convert stdcall(image, 0, _to, 0, 0); - $push eax - img_destroy stdcall(image); - $pop eax if (!EAX) { notify("'LibImg convertation error!'E"); } else { + $push eax + img_destroy stdcall(image); + $pop eax image = EAX; set_vars(); } @@ -230,52 +230,4 @@ struct libimg_image } } - - -///////////////////////////// -/* -// DRAW ICON PATTERN / TEMP -*/ -///////////////////////////// - -:void DrawIcon32(dword x,y, _bg, icon_n) { - static dword bg; - static dword pure_img32; - if (!pure_img32) || (bg!=_bg) { - bg = _bg; - if (pure_img32) img_destroy stdcall(pure_img32); - img_from_file stdcall("/sys/icons32.png"); - pure_img32 = EAX; - //now fill transparent with another color - EDX = ESDWORD[EAX+4] * ESDWORD[EAX+8] * 4 + ESDWORD[EAX+24]; - for (ESI = ESDWORD[EAX+24]; ESI < EDX; ESI += 4) { - if (DSDWORD[ESI]==0x00000000) DSDWORD[ESI] = bg; - } - } - img_draw stdcall(pure_img32, x, y, 32, 32, 0, icon_n*32); -} - -:int DrawIcon16(dword x,y, _bg, icon_n) { - static dword bg; - static dword pure_img16; - dword bgshadow; - int size; - if (!pure_img16) || (bg!=_bg) { - bg = _bg; - bgshadow = MixColors(bg, 0, 220); - if (pure_img16) img_destroy stdcall(pure_img16); - img_from_file stdcall("/sys/icons16.png"); - pure_img16 = EAX; - //now fill transparent with another color - EDX = ESDWORD[EAX+4] * ESDWORD[EAX+8] * 4 + ESDWORD[EAX+24]; - for (ESI = ESDWORD[EAX+24]; ESI < EDX; ESI += 4) { - if (DSDWORD[ESI]==0xffFFFfff) DSDWORD[ESI] = bg; - if (DSDWORD[ESI]==0xffCACBD6) DSDWORD[ESI] = bgshadow; - } - } - size = ESDWORD[pure_img16+4]; //get image width - img_draw stdcall(pure_img16, x, y, size, size, 0, icon_n*size); - return size; -} - #endif \ No newline at end of file diff --git a/programs/demos/view3ds/data.inc b/programs/demos/view3ds/data.inc index d8a36ce4ee..4a7d99d894 100644 --- a/programs/demos/view3ds/data.inc +++ b/programs/demos/view3ds/data.inc @@ -80,7 +80,7 @@ menu: db 2 ; button number = index db 'rotary ' ; label - db 3 ; max flag + 1 , if = 255, no flag + db 4 ; max flag + 1 , if = 255, no flag r_flag db 1 ; flag dd axl_f ; offset to flags description @@ -289,6 +289,7 @@ flags: ; flags description db ' y ' db 'x+y ' db ' x ' + db 'keys' onoff_f: db 'off ' db 'on ' @@ -353,7 +354,7 @@ base_vector: if Ext=SSE3 db ' (SSE3)' end if - db ' 0.074',0 + db ' 0.075',0 labellen: STRdata db '-1 ' lab_vert: diff --git a/programs/demos/view3ds/view3ds.asm b/programs/demos/view3ds/view3ds.asm index 9f7050d8e0..ec2ab00d32 100644 --- a/programs/demos/view3ds/view3ds.asm +++ b/programs/demos/view3ds/view3ds.asm @@ -1,5 +1,5 @@ -; application : View3ds ver. 0.074 - tiny .3ds and .asc files viewer +; application : View3ds ver. 0.075 - tiny .3ds and .asc files viewer ; with a few graphics effects demonstration. ; compiler : FASM ; system : KolibriOS @@ -18,6 +18,7 @@ ; 1) Read from a file (*.3DS standard) ; 2) Written in manually (at the end of the code) ; now not exist +format binary as "" SIZE_X equ 512 SIZE_Y equ 512 ; ///// I want definitely @@ -163,11 +164,8 @@ still: je key cmp eax,3 ; button event ? je button - cmp eax,6 ; mouse event ? - jne @f - cmp [edit_flag],1 ; handle mouse only when edit is active - jne @f - + + mov esi,eax mov eax,37 mov ebx,7 ; get mouse scroll int 0x40 @@ -176,7 +174,12 @@ still: je button.zoom_in cmp eax, 1 je button.zoom_out - + mov eax,esi + + cmp eax,6 ; mouse event ? + jne @f + cmp [edit_flag],1 ; handle mouse only when edit is active + jne @f mov eax,37 mov ebx,3 ;read mouse state int 0x40 @@ -214,24 +217,54 @@ still: key: ; key mov eax,2 ; just read it and ignore int 0x40 + shr eax,16 ; use scancodes (al) - cmp ah, '+' + cmp al, 013 ;+ je button.zoom_in - cmp ah, '=' - je button.zoom_in - cmp ah, '-' + cmp al, 012 ;- je button.zoom_out - cmp ah, 176 ;left + cmp al, 075 ;left je add_vec_buttons.x_minus - cmp ah, 179 ;right + cmp al, 077 ;right je add_vec_buttons.x_plus - cmp ah, 178 ;up + cmp al, 072 ;up je add_vec_buttons.y_minus - cmp ah, 177 ;down + cmp al, 080 ;down je add_vec_buttons.y_plus + cmp al, 073 ;page up + je .rot_inc_y + cmp al, 081 ;page down + je .rot_dec_y + cmp al, 051 ;< + je .rot_dec_x + cmp al, 052 ;> + je .rot_inc_x + cmp al, 057 ;space + je .rot_z jmp noclose + .rot_inc_x: + inc [angle_x] + and [angle_x],0xff + jmp noclose.end_rot + .rot_dec_x: + dec [angle_x] + and [angle_x],0xff + jmp noclose.end_rot + .rot_inc_y: + inc [angle_y] + and [angle_y],0xff + jmp noclose.end_rot + .rot_dec_y: + dec [angle_y] + and [angle_y],0xff + jmp noclose.end_rot + .rot_z: + inc [angle_z] + and [angle_z],0xff + jmp noclose.end_rot + button: ; button mov eax,17 ; get id int 0x40 @@ -303,6 +336,7 @@ still: .next_m4: cmp ah,14 jne @f + .xchg: call exchange @@: cmp ah,15 @@ -486,7 +520,7 @@ still: jne .no_x inc [angle_x] and [angle_x],0xff - mov [angle_z],0 + ;mov [angle_z],0 jmp .end_rot .no_x: @@ -494,7 +528,7 @@ still: jne .no_y inc [angle_y] and [angle_y],0xff - mov [angle_z],0 + ;mov [angle_z],0 jmp .end_rot .no_y: @@ -503,7 +537,7 @@ still: mov cx,[angle_x] inc cx and cx,0xff - mov [angle_z],0 + ;mov [angle_z],0 mov [angle_y],cx mov [angle_x],cx .end_rot: