From f29da4d0ece86e0e5b9dbd32aeebe27e1a317db1 Mon Sep 17 00:00:00 2001 From: IgorA Date: Sat, 12 Mar 2016 21:49:40 +0000 Subject: [PATCH] remove not used functions, panel buttons save as png git-svn-id: svn://kolibrios.org@6329 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/media/animage/trunk/animage.asm | 9 +- programs/media/animage/trunk/gif_lite.inc | 485 ------------------ .../media/animage/trunk/panel_buttons.gif | Bin 5511 -> 0 bytes .../media/animage/trunk/panel_buttons.png | Bin 0 -> 3514 bytes 4 files changed, 4 insertions(+), 490 deletions(-) delete mode 100644 programs/media/animage/trunk/gif_lite.inc delete mode 100644 programs/media/animage/trunk/panel_buttons.gif create mode 100644 programs/media/animage/trunk/panel_buttons.png diff --git a/programs/media/animage/trunk/animage.asm b/programs/media/animage/trunk/animage.asm index a27bbc9114..756f8b5e4b 100644 --- a/programs/media/animage/trunk/animage.asm +++ b/programs/media/animage/trunk/animage.asm @@ -44,7 +44,6 @@ include '../../../libio.inc' @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load COLOR_ORDER equ MENUETOS -include 'gif_lite.inc' include 'bmplib.inc' include 'dialog2.inc' include 'design.inc' @@ -55,7 +54,7 @@ include 'cursors.inc' include 'load_from_parameters.inc' START: - mcall 68,11 + mcall SF_SYS_MISC,SSF_HEAP_INIT load_libraries l_libs_start,end_l_libs @@ -64,7 +63,7 @@ load_libraries l_libs_start,end_l_libs ;-------------------------------------------------------- ;---------------set events mask-------------------------- ;-------------------------------------------------------- - mcall 40,0x80000067 ; 1100111b + mcall SF_SET_EVENTS_MASK,0x80000067 ; 1100111b ;--------------------------------------------------------- ;-----------------------init data------------------------- ;--------------------------------------------------------- @@ -77,7 +76,7 @@ include 'init_data.inc' call cleare_work_arrea call load_icons -;load cursors +;load cursors mov eax,CursorsID call load_cursors @@ -177,7 +176,7 @@ include 'width_lines.inc' ;---------------------------------------------------------- dd 0 panel_picture: -file 'panel_buttons.gif' +file 'panel_buttons.png' .end: ;****************cursors****************** brush_cursor: diff --git a/programs/media/animage/trunk/gif_lite.inc b/programs/media/animage/trunk/gif_lite.inc deleted file mode 100644 index 22322ef959..0000000000 --- a/programs/media/animage/trunk/gif_lite.inc +++ /dev/null @@ -1,485 +0,0 @@ -; GIF LITE v3.0 by Willow -; Written in pure assembler by Ivushkin Andrey aka Willow -; Modified by Diamond -; -; This include file will contain functions to handle GIF image format -; -; Created: August 15, 2004 -; Last changed: June 24, 2007 - -; Requires kglobals.inc (iglobal/uglobal macro) -; (program must 'include "kglobals.inc"' and say 'IncludeUGlobal' -; somewhere in uninitialized data area). - -; Configuration: [changed from program which includes this file] -; 1. The constant COLOR_ORDER: must be one of -; PALETTE - for 8-bit image with palette (sysfunction 65) -; MENUETOS - for MenuetOS and KolibriOS color order (sysfunction 7) -; OTHER - for standard color order -; 2. Define constant GIF_SUPPORT_INTERLACED if you want to support interlaced -; GIFs. -; 3. Single image mode vs multiple image mode: -; if the program defines the variable 'gif_img_count' of type dword -; somewhere, ReadGIF will enter multiple image mode: gif_img_count -; will be initialized with image count, output format is GIF_list, -; the function GetGIFinfo retrieves Nth image info. Otherwise, ReadGIF -; uses single image mode: exit after end of first image, output is -;
- -if ~ (COLOR_ORDER in ) -; This message may not appear under MenuetOS, so watch... - display 'Please define COLOR_ORDER: PALETTE, MENUETOS or OTHER',13,10 -end if - -if defined gif_img_count -; virtual structure, used internally - -struct GIF_list - NextImg rd 1 - Left rw 1 - Top rw 1 - Width rw 1 - Height rw 1 - Delay rd 1 - Displacement rd 1 ; 0 = not specified - ; 1 = do not dispose - ; 2 = restore to background color - ; 3 = restore to previous -if COLOR_ORDER eq PALETTE - Image rd 1 -end if -ends - -struct GIF_info - Left rw 1 - Top rw 1 - Width rw 1 - Height rw 1 - Delay rd 1 - Displacement rd 1 -if COLOR_ORDER eq PALETTE - Palette rd 1 -end if -ends - -; **************************************** -; FUNCTION GetGIFinfo - retrieve Nth image info -; **************************************** -; in: -; esi - pointer to image list header -; ecx - image_index (0...img_count-1) -; edi - pointer to GIF_info structure to be filled - -; out: -; eax - pointer to RAW data, or 0, if error - -GetGIFinfo: - push esi ecx edi - xor eax,eax - jecxz .eloop - .lp: - mov esi,[esi] - test esi,esi - jz .error - loop .lp - .eloop: - lodsd - movsd - movsd - movsd - movsd -if COLOR_ORDER eq PALETTE - lodsd - mov [edi],esi -else - mov eax,esi -end if - .error: - pop edi ecx esi - ret - -end if - -_null fix 0x1000 - -; **************************************** -; FUNCTION ReadGIF - unpacks GIF image -; **************************************** -; in: -; esi - pointer to GIF file in memory -; edi - pointer to output image list - -; out: -; eax - 0, all OK; -; eax - 1, invalid signature; -; eax >=8, unsupported image attributes -; - -ReadGIF: - push esi edi - mov [.cur_info],edi - xor eax,eax - mov [.globalColor],eax -if defined gif_img_count - mov [gif_img_count],eax - mov [.anim_delay],eax - mov [.anim_disp],eax -end if - inc eax - cmp dword[esi],'GIF8' - jne .ex ; signature - mov ecx,[esi+0xa] - add esi,0xd - mov edi,esi - test cl,cl - jns .nextblock - mov [.globalColor],esi - call .Gif_skipmap - .nextblock: - cmp byte[edi],0x21 - jne .noextblock - inc edi -if defined gif_img_count - cmp byte[edi],0xf9 ; Graphic Control Ext - jne .no_gc - movzx eax,word [edi+3] - mov [.anim_delay],eax - mov al,[edi+2] - shr al,2 - and eax,7 - mov [.anim_disp],eax - add edi,7 - jmp .nextblock - .no_gc: -end if - inc edi - .block_skip: - movzx eax,byte[edi] - lea edi,[edi+eax+1] - test eax,eax - jnz .block_skip - jmp .nextblock - .noextblock: - mov al,8 - cmp byte[edi],0x2c ; image beginning - jne .ex -if defined gif_img_count - inc [gif_img_count] -end if - inc edi - mov esi,[.cur_info] -if defined gif_img_count - add esi,4 -end if - xchg esi,edi -if defined GIF_SUPPORT_INTERLACED - movzx ecx,word[esi+4] - mov [.width],ecx - movzx eax,word[esi+6] - imul eax,ecx -if ~(COLOR_ORDER eq PALETTE) - lea eax,[eax*3] -end if - mov [.img_end],eax - inc eax - mov [.row_end],eax - and [.pass],0 - test byte[esi+8],40h - jz @f -if ~(COLOR_ORDER eq PALETTE) - lea ecx,[ecx*3] -end if - mov [.row_end],ecx -@@: -end if -if defined gif_img_count - movsd - movsd - mov eax,[.anim_delay] - stosd - mov eax,[.anim_disp] - stosd -else - movzx eax,word[esi+4] - stosd - movzx eax,word[esi+6] - stosd - add esi,8 -end if - push edi - mov ecx,[esi] - inc esi - test cl,cl - js .uselocal - push [.globalColor] - mov edi,esi - jmp .setPal - .uselocal: - call .Gif_skipmap - push esi - .setPal: - movzx ecx,byte[edi] - inc ecx - mov [.codesize],ecx - dec ecx -if ~(COLOR_ORDER eq PALETTE) - pop [.Palette] -end if - lea esi,[edi+1] - mov edi,.gif_workarea - xor eax,eax - lodsb ; eax - block_count - add eax,esi - mov [.block_ofs],eax - mov [.bit_count],8 - mov eax,1 - shl eax,cl - mov [.CC],eax - mov ecx,eax - inc eax - mov [.EOI],eax - mov eax, _null shl 16 - .filltable: - stosd - inc eax - loop .filltable -if COLOR_ORDER eq PALETTE - pop eax - pop edi - push edi - scasd - push esi - mov esi,eax - mov ecx,[.CC] -@@: - lodsd - dec esi - bswap eax - shr eax,8 - stosd - loop @b - pop esi - pop eax - mov [eax],edi -else - pop edi -end if -if defined GIF_SUPPORT_INTERLACED - mov [.img_start],edi - add [.img_end],edi - add [.row_end],edi -end if - .reinit: - mov edx,[.EOI] - inc edx - push [.codesize] - pop [.compsize] - call .Gif_get_sym - cmp eax,[.CC] - je .reinit - call .Gif_output - .cycle: - movzx ebx,ax - call .Gif_get_sym - cmp eax,edx - jae .notintable - cmp eax,[.CC] - je .reinit - cmp eax,[.EOI] - je .end - call .Gif_output - .add: - mov dword [.gif_workarea+edx*4],ebx - cmp edx,0xFFF - jae .cycle - inc edx - bsr ebx,edx - cmp ebx,[.compsize] - jne .noinc - inc [.compsize] - .noinc: - jmp .cycle - .notintable: - push eax - mov eax,ebx - call .Gif_output - push ebx - movzx eax,bx - call .Gif_output - pop ebx eax - jmp .add - .end: -if defined GIF_SUPPORT_INTERLACED - mov edi,[.img_end] -end if -if defined gif_img_count - mov eax,[.cur_info] - mov [eax],edi - mov [.cur_info],edi - add esi,2 - xchg esi,edi - .nxt: - cmp byte[edi],0 - jnz .continue - inc edi - jmp .nxt - .continue: - cmp byte[edi],0x3b - jne .nextblock - xchg esi,edi - and dword [eax],0 -end if - xor eax,eax - .ex: - pop edi esi - ret - -.Gif_skipmap: -; in: ecx - image descriptor, esi - pointer to colormap -; out: edi - pointer to area after colormap - - and ecx,111b - inc ecx ; color map size - mov ebx,1 - shl ebx,cl - lea ebx,[ebx*2+ebx] - lea edi,[esi+ebx] - ret - -.Gif_get_sym: - mov ecx,[.compsize] - push ecx - xor eax,eax - .shift: - ror byte[esi],1 - rcr eax,1 - dec [.bit_count] - jnz .loop1 - inc esi - cmp esi,[.block_ofs] - jb .noblock - push eax - xor eax,eax - lodsb - test eax,eax - jnz .nextbl - mov eax,[.EOI] - sub esi,2 - add esp,8 - jmp .exx - .nextbl: - add eax,esi - mov [.block_ofs],eax - pop eax - .noblock: - mov [.bit_count],8 - .loop1: - loop .shift - pop ecx - rol eax,cl - .exx: - xor ecx,ecx - ret - -.Gif_output: - push esi eax edx - mov edx,.gif_workarea - .next: - push word[edx+eax*4] - mov ax,word[edx+eax*4+2] - inc ecx - cmp ax,_null - jnz .next - shl ebx,16 - mov bx,[esp] - .loop2: - pop ax - - if COLOR_ORDER eq PALETTE - stosb - else - lea esi,[eax+eax*2] - add esi,[.Palette] - - if COLOR_ORDER eq MENUETOS - mov esi,[esi] - bswap esi - shr esi,8 - mov [edi],esi - add edi,3 - else - movsb - movsb - movsb - end if - end if - -if defined GIF_SUPPORT_INTERLACED - cmp edi,[.row_end] - jb .norowend - mov eax,[.width] -if ~(COLOR_ORDER eq PALETTE) - lea eax,[eax*3] -end if - push eax - sub edi,eax - add eax,eax - cmp [.pass],3 - jz @f - add eax,eax - cmp [.pass],2 - jz @f - add eax,eax -@@: - add edi,eax - pop eax - cmp edi,[.img_end] - jb .nextrow - mov edi,[.img_start] - inc [.pass] - add edi,eax - cmp [.pass],3 - jz @f - add edi,eax - cmp [.pass],2 - jz @f - add edi,eax - add edi,eax -@@: -.nextrow: - add eax,edi - mov [.row_end],eax - xor eax,eax -.norowend: -end if - - loop .loop2 - pop edx eax esi - ret - -uglobal -align 4 - ReadGIF.globalColor rd 1 - ReadGIF.cur_info rd 1 ; image table pointer - ReadGIF.codesize rd 1 - ReadGIF.compsize rd 1 - ReadGIF.bit_count rd 1 - ReadGIF.CC rd 1 - ReadGIF.EOI rd 1 -if ~(COLOR_ORDER eq PALETTE) - ReadGIF.Palette rd 1 -end if - ReadGIF.block_ofs rd 1 -if defined GIF_SUPPORT_INTERLACED - ReadGIF.row_end rd 1 - ReadGIF.img_end rd 1 - ReadGIF.img_start rd 1 - ReadGIF.pass rd 1 - ReadGIF.width rd 1 -end if -if defined gif_img_count - ReadGIF.anim_delay rd 1 - ReadGIF.anim_disp rd 1 -end if - ReadGIF.gif_workarea rb 16*1024 -endg diff --git a/programs/media/animage/trunk/panel_buttons.gif b/programs/media/animage/trunk/panel_buttons.gif deleted file mode 100644 index 209722825b99437b89aa93fbd485ac668d51b9c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5511 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 Y_*=jAAn@&D_;jD`rtI=y06^*g0OO=@c>n+a diff --git a/programs/media/animage/trunk/panel_buttons.png b/programs/media/animage/trunk/panel_buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..b693fe38462d1a5a8642c41b2c62698feedee352 GIT binary patch literal 3514 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 YW#*a}@PbVv|4hmz1{V5tx_4v$17dgTMgRZ+ literal 0 HcmV?d00001