Palitra: update by Vaicheslav97

git-svn-id: svn://kolibrios.org@9541 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2021-12-31 20:07:08 +00:00
parent 89cd2db0bd
commit 7b02f7b61d
4 changed files with 472 additions and 400 deletions

View File

@ -0,0 +1,270 @@
draw_palitra:
; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
;mcall SF_DRAW_RECT, 110 shl 16+148, 9 shl 16+148, [sc.work]
cmp [renmode],2
je cyrcle_draw
;cmp [renmode],1
;je picker_draw
cmp [renmode],0
je sheme_draw
ret
;.................................................................................................
; Žâà¨á®¢ª  ªà㣮¢®© ¤¨ £à ¬¬ë
;.................................................................................................
cyrcle_draw:
;mov eax,13
;mov edx,0x666666
;mov ebx,108*65536+152
;mov ecx,125*65536+33
;mcall
;mov edx,0xF3F3F3
;mov ebx,109*65536+150
;mov ecx,126*65536+31
;mcall
;mov eax,4 ; 4 - ¢ë¢¥á⨠áâபã ⥪áâ  ¢ ®ª­®
;mov ebx,115 shl 16+131 ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
;mov ecx,0x666666 ; 0xX0RRGGBB (RR, GG, BB § ¤ îâ 梥â ⥪áâ )
;mov edx,hint ; 㪠§ â¥«ì ­  ­ ç «® áâப¨
;mov esi,24 ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢
;mcall
;mov ebx,125 shl 16+144 ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
;mov edx,hint2 ; 㪠§ â¥«ì ­  ­ ç «® áâப¨
;mov esi,21 ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢
;mcall
;mov edx,[color]
;mov ebx,109*65536+150
;mov ecx, 10*65536+150
;mcall
call mouse_local ; ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® ®ª­ 
mov ecx, [mouse_x] ; § ­®á¨¬ ¢ ॣ¨áâà
mov edx, [mouse_y] ; § ­®á¨¬ ¢ ॣ¨áâà
cmp ecx, WIN_W-10
jg cyrcle_draw_2
cmp edx, WIN_H
jle end_cyrcle_draw
cyrcle_draw_2:
mcall SF_SLEEP,10
call desktop_get
call mouse_global
mov ebx,112*65536+11
mov esi,0 ; counter=8
circle_loop:
mov ecx, 10*65536+11
mov edi,0
circle_loop2:
call circle_pixel_read
mcall SF_DRAW_RECT
add ecx,11 shl 16
inc edi
cmp edi,13
jne circle_loop2
add ebx,11 shl 16
inc esi
cmp esi,13
jne circle_loop
mcall SF_DRAW_RECT, 177*65536+13, 76*65536+13, 0
mov ecx, [mouse_x]
mov edx, [mouse_y]
inc ecx
inc edx
mov ebx, edx
imul ebx, [desctop_w]
add ebx, ecx
mcall SF_GET_PIXEL
mov edx,eax
mcall SF_DRAW_RECT, 178*65536+11, 77*65536+11
ret
end_cyrcle_draw:
mcall SF_DRAW_RECT, 111*65536+145, 9*65536+145, 0x666666
ret
circle_pixel_read:
push ecx ebx
mov ecx, [mouse_x]
mov edx, [mouse_y]
inc ecx
add ecx, esi
cmp ecx, 6
jl _cpr_exit
sub ecx, 6
inc edx
add edx, edi
cmp edx, 6
jl _cpr_exit
sub edx, 6
mov ebx, edx
imul ebx, [desctop_w]
add ebx, ecx
mcall SF_GET_PIXEL
mov edx,eax
pop ebx ecx
ret
_cpr_exit:
xor edx,edx
pop ebx ecx
ret
;picker_draw:
;ret
;.................................................................................................
; Žâà¨á®¢ª  ä®­  ¯®¤ ª­®¯ª¨
;.................................................................................................
sheme_draw:
mov eax,SF_DRAW_RECT ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov edx,0x222222 ; 梥â
mov ecx, palitra_yw ; <EFBFBD> ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
mov esi,2 ; ‘ç¥â稪 «¨­¨© ¯®¤«®¦¥ª
re_draw:
mov ebx,palitra_xw ; <EFBFBD> ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov edi,2 ; ‘ç¥â稪 ª®«¨ç¥á⢠ ¯®¤«®¦¥ª
for_fon_loop:
int 0x40 ; <EFBFBD>à¥à뢠­¨¥
add ebx,(palitra_w+2) shl 16 ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® å
dec edi ; “¬¥­ìè ¥¬ áç¥â稪 ª­®¯®ª
cmp edi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
jnz for_fon_loop ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
dec esi ; “¬¥­ìè ¥¬ ¥£®
cmp esi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
mov ecx,(palitra_w+DRAWY+3) shl 16+palitra_w ; <EFBFBD> ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
jnz re_draw ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
;.................................................................................................
; Žâà¨á®¢ª  ª­®¯®ª ¯® 横«ã
;.................................................................................................
mov eax,SF_DRAW_RECT ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov edx,0x0FFFFFFF ; 梥â
mov esi,4 ; ‘ç¥â稪 ª®«¨ç¥á⢠  ¡§ æ¥¢ (#4,8)
mov ebx,(palitra_x-CELLW-3) shl 16+CELLW ; <EFBFBD> ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
for_abz:
;;push esi ; ‘®å࠭塞 §­ ç¥­¨¥ áç¥â稪  «¨­¨© ¢ á⥪
cmp esi,2
jne x2_line
mov ebx,(palitra_x-CELLW-3) shl 16+CELLW
x2_line:
add ebx,3 shl 16 ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® x
mov edi,8 ; ‘ç¥â稪 ª®«¨ç¥á⢠ ª­®¯®ª ¢ áâப¥
for_stolbik:
push edi ; ‘®å࠭塞 §­ ç¥­¨¥ áç¥â稪  «¨­¨© ¢ á⥪
mov edi,8 ; ‘ç¥â稪 ª®«¨ç¥á⢠ ª­®¯®ª ¢ áâப¥
mov ecx, (1-CELLW/3) shl 16+CELLW ; <EFBFBD> ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
cmp esi,2
jg y2_line ; …᫨ ¡®«ìè¥ 4 â® ¨£­®à¨¬
mov ecx,(palitra_w+4-(CELLW/3)) shl 16+CELLW
y2_line:
add ebx,(CELLW+1) shl 16 ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® x
for_loop:
add ecx,(CELLW+1) shl 16 ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® y
int 0x40 ; <EFBFBD>à¥à뢠­¨¥
call sub_red
dec edi ; “¬¥­ìè ¥¬ áç¥â稪 ª­®¯®ª
cmp edi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
jnz for_loop ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
call sub_green
pop edi ; ˆ­ ç¥ ¢®ááâ ­ ¢«¨¢ ¥¬ áç¥â稪 «¨­¨©
dec edi ; “¬¥­ìè ¥¬ ¥£®
cmp edi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
jnz for_stolbik ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
call sub_blue
;;pop esi ; ˆ­ ç¥ ¢®ááâ ­ ¢«¨¢ ¥¬ áç¥â稪 «¨­¨©
dec esi ; “¬¥­ìè ¥¬ ¥£®
cmp esi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
jnz for_abz ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_draw_palitra-------------------------------------------------------------------------------------
sub_red:
;.................................................................................................
; <EFBFBD> áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
;.................................................................................................
push eax
mov eax,[pnext]
;sub_red_0 ; palitra
cmp al,0
jne sub_red_1
sub edx,0x40
jmp sub_red_e
sub_red_1: ; random
cmp al,1
jne sub_red_2
sub edx,0x20
jmp sub_red_e
sub_red_2: ; gree
cmp al,2
jne sub_red_3
sub edx,0x010101
jmp sub_red_e
sub_red_3: ; red
cmp al,3
jne sub_red_4
sub edx,0x0101
jmp sub_red_e
sub_red_4: ; green
cmp al,4
jne sub_red_5
sub edx,0x010001
jmp sub_red_e
sub_red_5: ; blue
cmp al,5
jne sub_red_e
sub edx,0x010100
jmp sub_red_e
sub_red_e:
pop eax
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_sub_red------------------------------------------------------------------------------------------
sub_green:
;.................................................................................................
; <EFBFBD> áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
;.................................................................................................
push eax
mov eax,[pnext]
;sub_green_0
cmp al,0
jne sub_green_1
sub edx,0x4000
jmp sub_green_e
sub_green_1:
cmp al,1
jne sub_green_e
sub edx,0x2000
;jmp sub_green_e
sub_green_e:
pop eax
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_sub_green----------------------------------------------------------------------------------------
sub_blue:
;.................................................................................................
; <EFBFBD> áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
;.................................................................................................
push eax
mov eax,[pnext]
;sub_blue_0
cmp al,0
jne sub_blue_1
sub edx,0x600000
jmp sub_blue_e
sub_blue_1:
cmp al,1
jne sub_blue_e
sub edx,0x400000
;jmp sub_blue_e
sub_blue_e:
pop eax
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_sub_blue-----------------------------------------------------------------------------------------

View File

@ -1,3 +1,72 @@
draw_result:
;.................................................................................................
; <EFBFBD>®«ìè ï à ¬ª  ¢ë¢®¤  १ã«ìâ â 
;.................................................................................................
mcall SF_DRAW_RECT, <4,110>, <9,219-18>, [sc.work_graph]
mcall , <5,110-2>, <10,219-20>, [sc.work_light]
;.................................................................................................
; Žâà¨á®¢ª  १ã«ìâ â  æ¢¥â  ¢ hex color2
;.................................................................................................
mcall , (16+2) shl 16+15, (16+8) shl 16+15, 0x222222
; color 2 - draw color
mcall , (17+2) shl 16+13, (17+8) shl 16+13, [color2]
; color 1 - draw fringle
mcall , (11+2) shl 16+15, (12+8) shl 16+15, 0x222222
; color 2 - draw color
mcall , (12+2) shl 16+13, (13+8) shl 16+13, [color]
; value - draw fringle
mcall , (34+2) shl 16+72, (16+4) shl 16+15+4, 0x222222
; value - draw background
mcall , (35+2) shl 16+70, (17+4) shl 16+13+4, 0xFFFFFF
; ”ã­ªæ¨ï 47 - ¢ë¢®¤ ç¨á«  ¢ ®ª­®
;ebx - ¯ à ¬¥âàë ¯à¥®¡à §®¢ ­¨ï ç¨á«  ¢ ⥪áâ (HEX)
mcall SF_DRAW_NUMBER, 256+8 shl 16, [color], <40,22>, 0x10000000, 0
; äã­ªæ¨ï 4: ­ ¯¨á âì ⥪áâ ¢ ®ª­¥
; edx - à¨á㥬 '#'
; esi - ¤«¨­  ⥪áâ  ¢ ¡ ©â å
;mcall SF_DRAW_TEXT,38*65536+20,0,hex,1
;.................................................................................................
; Žâà¨á®¢ª  r g b §­ ç¥­¨©
;.................................................................................................
call get_spectr
movzx eax,[cred] ; ªà á­ë©
mov ebx,12*65536+196 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
movzx eax,[cgreen] ; §¥«¥­ë©
mov ebx,37*65536+196 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
movzx eax,[cblue] ; ᨭ¨©
mov ebx,62*65536+196 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
movzx eax,[calpha] ;  «ìä 
mov ebx,87*65536+196 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
;.................................................................................................
; ‚뢮¤¨¬ ¡ãª¢ë r g b a
;.................................................................................................
mov eax,SF_DRAW_TEXT ; 4 - ¢ë¢¥á⨠áâபã ⥪áâ  ¢ ®ª­®
mov ebx,17 shl 16+DRAWY+37 ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
mov ecx, 0x10000000 ; 0xX0RRGGBB (RR, GG, BB § ¤ îâ 梥â ⥪áâ )
add ecx, [sc.work_text]
mov edx,cname ; 㪠§ â¥«ì ­  ­ ç «® áâப¨
mov esi,1 ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢
newline: ; 横«
int 0x40 ; <EFBFBD>à¥à뢠­¨¥
add ebx,25 shl 16 ; „®¡ ¢«ï¥¬
inc edx ; „®¡ ¢«ï¥¬
cmp [edx],byte 'x' ; ‘à ¢­¥­¨¥ á ¡ ©â®¬ å
jne newline ; …᫨ ­¥ ­ã«ì ¨«¨ ­¥ à ¢­®
;................................................................................................. ;.................................................................................................
; Žâà¨á®¢ª  á« ©¤¥à®¢ ; Žâà¨á®¢ª  á« ©¤¥à®¢
;................................................................................................. ;.................................................................................................
@ -43,23 +112,23 @@
;................................................................................................. ;.................................................................................................
; Žâà¨á®¢ª  ¯®«§ã­ª®¢ ; Žâà¨á®¢ª  ¯®«§ã­ª®¢
;................................................................................................. ;.................................................................................................
mov ebx, 16*65536+16 mov ebx, 13*65536+13
mov ecx, 61*65536+61 mov ecx, (61-3)*65536+(61-3)
movzx eax,[cred] movzx eax,[cred]
call draw_slider call draw_slider
mov ebx, (16+25*1)*65536+(16+25*1) mov ebx, (13+25*1)*65536+(13+25*1)
mov ecx, 61*65536+61 mov ecx, (61-3)*65536+(61-3)
movzx eax,[cgreen] movzx eax,[cgreen]
call draw_slider call draw_slider
mov ebx, (16+25*2)*65536+(16+25*2) mov ebx, (13+25*2)*65536+(13+25*2)
mov ecx, 61*65536+61 mov ecx, (61-3)*65536+(61-3)
movzx eax,[cblue] movzx eax,[cblue]
call draw_slider call draw_slider
mov ebx, (16+25*3)*65536+(16+25*3) mov ebx, (13+25*3)*65536+(13+25*3)
mov ecx, 61*65536+61 mov ecx, (61-3)*65536+(61-3)
movzx eax,[calpha] movzx eax,[calpha]
call draw_slider call draw_slider
@ -115,13 +184,17 @@ or eax, edx
sub ecx, eax sub ecx, eax
add ecx, 127*65536+127 add ecx, 127*65536+127
add ecx, 1*65536+2 add ecx, 1*65536+5
mcall SF_DRAW_LINE, , , 0 mcall SF_DRAW_LINE, , , 0
add ebx, 9*65536+9 add ebx, 15*65536+15
int 0x40 int 0x40
sub ebx, 8*65536+1 sub ebx, 14*65536+1
sub ecx, 1*65536+2 sub ecx, 1*65536+5
int 0x40
mov edx, 0xFFFFFF
add ecx, 1*65536+1
int 0x40 int 0x40
mov edx, 0xE1E1E1 mov edx, 0xE1E1E1
@ -129,17 +202,17 @@ add ecx, 1*65536+1
int 0x40 int 0x40
add ecx, 1*65536+1 add ecx, 1*65536+1
int 0x40 int 0x40
add ecx, 1*65536+1
int 0x40
mov edx, 0xB9B9B9
add ecx, 1*65536+1
int 0x40
mov edx, 0 mov edx, 0
add ecx, 1*65536+1 add ecx, 1*65536+1
int 0x40 int 0x40
shr ebx, 16
shr ecx, 16
dec ecx
mcall SF_PUT_PIXEL, , , 0xF3F3F3
int 0x40
ret ret
;end_slider ;end_slider

View File

@ -0,0 +1,69 @@
; DrawRectangle3D not work
proc DrawRectangle3D, _x:word, _y:word, _w:word, _h:word, _color1:dword, _color2:dword
mov ebx,dword[_w]
add ebx,dword[_x] ;âăâ âŽç­Ž Ş Ş ď-⎠¤¨çě... ­ăŚ­Ž ŻĽŕĽŻ¨á âě :)
shl ebx,16
mov bx,1
mov ecx,dword[_h]
inc cx
mov edx,[_color2]
mcall SF_DRAW_RECT ; x+w,y,1,h+1,color2
rol ebx,16
sub bx,[_w]
ror ebx,16
dec cx
mov edx,[_color1]
mcall ;SF_DRAW_RECT x,y,1,h,color1
mov bx,[_h]
xchg bx,cx
mcall ;SF_DRAW_RECT x,y,w,1,color1
rol ecx,16
add cx,[_h]
ror ecx,16
mov edx,[_color2]
mcall ;SF_DRAW_RECT x,y+h,w,1,color2
ret
endp
proc DrawDeepRectangle, _x:word, _y:word, _w:word, _h:word, color1:dword, color2:dword
pusha
movzx ebx, [_x]
shl ebx, 16
or ebx, dword[_x]
add ebx, dword[_w]
movzx ecx, [_y]
shl ecx, 16
add ecx, dword[_y]
mcall SF_DRAW_LINE, , ,[color1] ; x+w,y,1,h+1,color2
sub ebx, dword[_w]
add ecx, dword[_h]
int 0x40
mov edx, dword[_w]
shl edx, 16
or edx, dword[_w]
add ebx, edx
mcall SF_DRAW_LINE, , ,[color2]
mov edx, dword[_w]
shl edx, 16
sub ebx, edx
mov edx, dword[_h]
shl edx, 16
add ecx, edx
mcall SF_DRAW_LINE, , ,[color2]
popa
ret
endp

View File

@ -74,16 +74,31 @@
include '../../../KOSfuncs.inc' include '../../../KOSfuncs.inc'
include '../../../dll.inc' include '../../../dll.inc'
include 'draw_sliders.inc'
include 'draw_utils.inc'
include 'draw_palitra.inc'
WIN_W = 394 ; è¨à¨­  ®ª­  WIN_W = 394 ; è¨à¨­  ®ª­ 
WIN_H = 251 ; ¢ëá®â  ®ª­  WIN_H = 251 ; ¢ëá®â  ®ª­ 
WIN_X = 250 ; ª®®à¤¨­ â  å ®ª­  WIN_X = 250 ; ª®®à¤¨­ â  å ®ª­ 
WIN_Y = 190 ; ª®®à¤¨­ â  ã ®ª­  WIN_Y = 190 ; ª®®à¤¨­ â  ã ®ª­ 
CELLW = 8 ; not used yet, but has to be :) Left_Border=4
SliderPanel_W = 110
DRAWY = 9 DRAWY = 9
CELLW = 11; 11 ; not used yet, but has to be :)
ICONX = WIN_W - 35 ICONX = WIN_W - 35
SLIDEW = 25 SLIDEW = 25
palitra_x = Left_Border+SliderPanel_W+12
palitra_w = CELLW*(8)+8+1
palitra_xw = palitra_x shl 16 + palitra_w
palitra_yw = DRAWY shl 16 + palitra_w
START: START:
mcall SF_SYS_MISC,SSF_HEAP_INIT ; ¨­¨æ¨ «¨§ æ¨ï ªãç¨ mcall SF_SYS_MISC,SSF_HEAP_INIT ; ¨­¨æ¨ «¨§ æ¨ï ªãç¨
mcall SF_SYS_MISC, SSF_MEM_OPEN, i18_name mcall SF_SYS_MISC, SSF_MEM_OPEN, i18_name
@ -272,7 +287,7 @@ draw_main:
call draw_palitra ; <20>ˆ“…Œ <20>ˆ<CB86> call draw_palitra ; <20>ˆ“…Œ <20>ˆ<CB86>
call draw_result ; <20>ˆ“…Œ <20>…‡“œ call draw_result ; <20>ˆ“…Œ <20>…‡“œ
mcall SF_DEFINE_BUTTON, <110,147>, <DRAWY,147>, 0x07+BT_HIDE mcall SF_DEFINE_BUTTON, <palitra_x,palitra_w*2+1 > , <DRAWY,palitra_w*2+2>, 0x07+BT_HIDE ; palitra
add edx,1++BT_NOFRAME add edx,1++BT_NOFRAME
mcall , <10,22>, <62,128> ; <20>¨á㥬 ­¥¢¨¤¨¬ãî ª­®¯ªã ¯®¤ á« ©¤¥à®¬ red mcall , <10,22>, <62,128> ; <20>¨á㥬 ­¥¢¨¤¨¬ãî ª­®¯ªã ¯®¤ á« ©¤¥à®¬ red
@ -296,31 +311,7 @@ draw_main:
mcall SF_REDRAW,SSF_END_DRAW mcall SF_REDRAW,SSF_END_DRAW
ret ret
proc DrawRectangle3D, _x:word, _w:word, _y:word, _h:word, color1:dword, color2:dword
mov ebx,[_w]
add ebx,[_x] ;âãâ â®ç­® ª ª ï-â® ¤¨çì... ­ã¦­® ¯¥à¥¯¨á âì :)
shl ebx,16
mov bx,1
mov ecx,[_h]
inc cx
mov edx,[_color2]
mcall SF_DRAW_RECT ; x+w,y,1,h+1,color2
rol ebx,16
sub bx,[_w]
ror ebx,16
dec cx
mov edx,[_color1]
mcall ;SF_DRAW_RECT x,y,1,h,color1
mov bx,[_h]
xchg bx,cx
mcall ;SF_DRAW_RECT x,y,w,1,color1
rol ecx,16
add cx,[_h]
ror ecx,16
mov edx,[_color2]
mcall ;SF_DRAW_RECT x,y+h,w,1,color2
ret
endp
;#___________________________________________________________________________________________________ ;#___________________________________________________________________________________________________
;****************************************************************************************************| ;****************************************************************************************************|
@ -333,26 +324,34 @@ endp
;................................................................................................. ;.................................................................................................
; button_next_colorsheme ; button_next_colorsheme
mcall SF_DEFINE_BUTTON, <ICONX,21>, <DRAWY,21>, 12+BT_HIDE mcall SF_DEFINE_BUTTON, <ICONX,21>, <DRAWY,21>, 12+BT_HIDE
; circle diagram
add ecx,19 shl 16 ; move rect ; palitra button ; ID = 14
add edx,3 ; ID = 15 mcall , ,(DRAWY+150) shl 16 + 21, 14+BT_HIDE
mcall
; pipet button ; ID = 15
mcall , , (DRAWY+150) shl 16 + 21, 15+BT_HIDE
mov ebx,[icons18bg] mov ebx,[icons18bg]
add ebx,18*18*4*53 add ebx,18*18*4*53
mcall SF_PUT_IMAGE_EXT, ebx, <18,18>, <ICONX+2,DRAWY+2>, 32, 0, 0 mcall SF_PUT_IMAGE_EXT, ebx, <18,18>, <ICONX+2,DRAWY+2>, 32, 0, 0
add ebx,18*18*4*(39-53) add ebx,18*18*4*(39-53)
mov edx,ICONX*65536+WIN_H-90 mov edx,(ICONX+2)*65536+WIN_H-90
mcall mcall
mov ebx,[icons18] mov ebx,[icons18]
add ebx,18*18*4*(52-39) add ebx,18*18*4*(53-1)
sub edx,40 sub edx,40
mcall mcall
;stdcall DrawRectangle3D ICONX, DRAWY, 22, 22, [sc.work_light], [sc.work_dark] ;Leency: draw rectangle around the button, buggy now stdcall DrawDeepRectangle, ICONX, DRAWY, 22, 22, [sc.work_light], [sc.work_dark]
stdcall DrawDeepRectangle, ICONX, DRAWY+110, 22, 22, [sc.work_light], [sc.work_dark]
stdcall DrawDeepRectangle, ICONX, DRAWY+150, 22, 22, [sc.work_light], [sc.work_dark]
;stdcall DrawRectangle3D, ICONX, DRAWY, 22, 22, [sc.work_light], [sc.work_dark] ;Leency: draw rectangle around the button, buggy now
;mov eax,13 ; draw rect ;mov eax,13 ; draw rect
;mov ebx,266 shl 16+16 ; [x] + [size] ;mov ebx,266 shl 16+16 ; [x] + [size]
;mov ecx,9 shl 16+16 ; [y] + [size] ;mov ecx,9 shl 16+16 ; [y] + [size]
@ -395,7 +394,7 @@ endp
;------------------------------------------------------------------------------------------------+ ;------------------------------------------------------------------------------------------------+
draw_bottom_panel: ; Žâà¨á®¢ª  ­¨¦­¥© ¯ ­¥«¨ draw_bottom_panel: ; Žâà¨á®¢ª  ­¨¦­¥© ¯ ­¥«¨
;................................................................................................. ;.................................................................................................
mcall SF_DEFINE_BUTTON, ((60+70) shl 16)+90, (225 shl 16)+16, 14, [sc.work_button] mcall SF_DEFINE_BUTTON, ((60+70) shl 16)+90, ((WIN_H-26) shl 16)+16, 14, [sc.work_button]
add ebx, 100 shl 16 add ebx, 100 shl 16
add edx, 2 add edx, 2
@ -404,7 +403,7 @@ endp
; Write string ; Write string
mov ecx,[sc.work_text] ; RGB mov ecx,[sc.work_text] ; RGB
or ecx, 1 shl 31 or ecx, 1 shl 31
mcall SF_DRAW_TEXT, (60) shl 16+230, ,bground mcall SF_DRAW_TEXT, (60) shl 16+(WIN_H-21), ,bground
mov ecx, [sc.work_button_text] mov ecx, [sc.work_button_text]
or ecx, 1 shl 31 or ecx, 1 shl 31
@ -417,7 +416,7 @@ endp
mov edx, bground2 mov edx, bground2
int 0x40 int 0x40
mcall SF_DRAW_LINE, 4 shl 16+(380), (219) shl 16+219, 0x00666666 mcall SF_DRAW_LINE, 4 shl 16+(WIN_W-14), (WIN_H-32) shl 16+(WIN_H-32), 0x00666666
ret ; return ret ; return
;................................................................................................. ;.................................................................................................
@ -559,349 +558,10 @@ mouse_get:
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥ ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_mouse_get---------------------------------------------------------------------------------------- ;end_mouse_get----------------------------------------------------------------------------------------
draw_palitra:
; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
;mcall SF_DRAW_RECT, 110 shl 16+148, 9 shl 16+148, [sc.work]
cmp [renmode],2
je cyrcle_draw
;cmp [renmode],1
;je picker_draw
cmp [renmode],0
je sheme_draw
ret
;.................................................................................................
; Žâà¨á®¢ª  ªà㣮¢®© ¤¨ £à ¬¬ë
;.................................................................................................
cyrcle_draw:
;mov eax,13
;mov edx,0x666666
;mov ebx,108*65536+152
;mov ecx,125*65536+33
;mcall
;mov edx,0xF3F3F3
;mov ebx,109*65536+150
;mov ecx,126*65536+31
;mcall
;mov eax,4 ; 4 - ¢ë¢¥á⨠áâபã ⥪áâ  ¢ ®ª­®
;mov ebx,115 shl 16+131 ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
;mov ecx,0x666666 ; 0xX0RRGGBB (RR, GG, BB § ¤ îâ 梥â ⥪áâ )
;mov edx,hint ; 㪠§ â¥«ì ­  ­ ç «® áâப¨
;mov esi,24 ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢
;mcall
;mov ebx,125 shl 16+144 ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
;mov edx,hint2 ; 㪠§ â¥«ì ­  ­ ç «® áâப¨
;mov esi,21 ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢
;mcall
;mov edx,[color]
;mov ebx,109*65536+150
;mov ecx, 10*65536+150
;mcall
call mouse_local ; ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® ®ª­ 
mov ecx, [mouse_x] ; § ­®á¨¬ ¢ ॣ¨áâà
mov edx, [mouse_y] ; § ­®á¨¬ ¢ ॣ¨áâà
cmp ecx, WIN_W-10
jg cyrcle_draw_2
cmp edx, WIN_H
jle end_cyrcle_draw
cyrcle_draw_2:
mcall SF_SLEEP,10
call desktop_get
call mouse_global
mov ebx,112*65536+11
mov esi,0 ; counter=8
circle_loop:
mov ecx, 10*65536+11
mov edi,0
circle_loop2:
call circle_pixel_read
mcall SF_DRAW_RECT
add ecx,11 shl 16
inc edi
cmp edi,13
jne circle_loop2
add ebx,11 shl 16
inc esi
cmp esi,13
jne circle_loop
mcall SF_DRAW_RECT, 177*65536+13, 76*65536+13, 0
mov ecx, [mouse_x]
mov edx, [mouse_y]
inc ecx
inc edx
mov ebx, edx
imul ebx, [desctop_w]
add ebx, ecx
mcall SF_GET_PIXEL
mov edx,eax
mcall SF_DRAW_RECT, 178*65536+11, 77*65536+11
ret
end_cyrcle_draw:
mcall SF_DRAW_RECT, 111*65536+145, 9*65536+145, 0x666666
ret
circle_pixel_read:
push ecx ebx
mov ecx, [mouse_x]
mov edx, [mouse_y]
inc ecx
add ecx, esi
cmp ecx, 6
jl _cpr_exit
sub ecx, 6
inc edx
add edx, edi
cmp edx, 6
jl _cpr_exit
sub edx, 6
mov ebx, edx
imul ebx, [desctop_w]
add ebx, ecx
mcall SF_GET_PIXEL
mov edx,eax
pop ebx ecx
ret
_cpr_exit:
xor edx,edx
pop ebx ecx
ret
;picker_draw:
;ret
;.................................................................................................
; Žâà¨á®¢ª  ä®­  ¯®¤ ª­®¯ª¨
;.................................................................................................
sheme_draw:
mov eax,SF_DRAW_RECT ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov edx,0x222222 ; 梥â
mov ecx,9 shl 16+73 ; <20> ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
mov esi,2 ; ‘ç¥â稪 «¨­¨© ¯®¤«®¦¥ª
re_draw:
mov ebx,110 shl 16+73 ; <20> ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov edi,2 ; ‘ç¥â稪 ª®«¨ç¥á⢠ ¯®¤«®¦¥ª
for_fon_loop:
int 0x40 ; <20>à¥à뢠­¨¥
add ebx,75 shl 16 ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® å
dec edi ; “¬¥­ìè ¥¬ áç¥â稪 ª­®¯®ª
cmp edi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
jnz for_fon_loop ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
dec esi ; “¬¥­ìè ¥¬ ¥£®
cmp esi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
mov ecx,84 shl 16+73 ; <20> ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
jnz re_draw ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
;.................................................................................................
; Žâà¨á®¢ª  ª­®¯®ª ¯® 横«ã
;.................................................................................................
mov eax,SF_DRAW_RECT ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov edx,0x0FFFFFFF ; 梥â
mov esi,4 ; ‘ç¥â稪 ª®«¨ç¥á⢠  ¡§ æ¥¢ (#4,8)
mov ebx,99 shl 16+8 ; <20> ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
for_abz:
;;push esi ; ‘®å࠭塞 §­ ç¥­¨¥ áç¥â稪  «¨­¨© ¢ á⥪
cmp esi,2
jne x2_line
mov ebx,99 shl 16+8
x2_line:
add ebx,3 shl 16 ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® x
mov edi,8 ; ‘ç¥â稪 ª®«¨ç¥á⢠ ª­®¯®ª ¢ áâப¥
for_stolbik:
push edi ; ‘®å࠭塞 §­ ç¥­¨¥ áç¥â稪  «¨­¨© ¢ á⥪
mov edi,8 ; ‘ç¥â稪 ª®«¨ç¥á⢠ ª­®¯®ª ¢ áâப¥
mov ecx, 1 shl 16+8 ; <20> ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
cmp esi,2
jg y2_line ; …᫨ ¡®«ìè¥ 4 â® ¨£­®à¨¬
mov ecx,76 shl 16+8
y2_line:
add ebx,9 shl 16 ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® x
for_loop:
add ecx,9 shl 16 ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® y
int 0x40 ; <20>à¥à뢠­¨¥
call sub_red
dec edi ; “¬¥­ìè ¥¬ áç¥â稪 ª­®¯®ª
cmp edi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
jnz for_loop ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
call sub_green
pop edi ; ˆ­ ç¥ ¢®ááâ ­ ¢«¨¢ ¥¬ áç¥â稪 «¨­¨©
dec edi ; “¬¥­ìè ¥¬ ¥£®
cmp edi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
jnz for_stolbik ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
call sub_blue
;;pop esi ; ˆ­ ç¥ ¢®ááâ ­ ¢«¨¢ ¥¬ áç¥â稪 «¨­¨©
dec esi ; “¬¥­ìè ¥¬ ¥£®
cmp esi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
jnz for_abz ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_draw_palitra-------------------------------------------------------------------------------------
sub_red:
;.................................................................................................
; <20> áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
;.................................................................................................
push eax
mov eax,[pnext]
;sub_red_0 ; palitra
cmp al,0
jne sub_red_1
sub edx,0x40
jmp sub_red_e
sub_red_1: ; random
cmp al,1
jne sub_red_2
sub edx,0x20
jmp sub_red_e
sub_red_2: ; gree
cmp al,2
jne sub_red_3
sub edx,0x010101
jmp sub_red_e
sub_red_3: ; red
cmp al,3
jne sub_red_4
sub edx,0x0101
jmp sub_red_e
sub_red_4: ; green
cmp al,4
jne sub_red_5
sub edx,0x010001
jmp sub_red_e
sub_red_5: ; blue
cmp al,5
jne sub_red_e
sub edx,0x010100
jmp sub_red_e
sub_red_e:
pop eax
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_sub_red------------------------------------------------------------------------------------------
sub_green:
;.................................................................................................
; <20> áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
;.................................................................................................
push eax
mov eax,[pnext]
;sub_green_0
cmp al,0
jne sub_green_1
sub edx,0x4000
jmp sub_green_e
sub_green_1:
cmp al,1
jne sub_green_e
sub edx,0x2000
;jmp sub_green_e
sub_green_e:
pop eax
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_sub_green----------------------------------------------------------------------------------------
sub_blue:
;.................................................................................................
; <20> áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
;.................................................................................................
push eax
mov eax,[pnext]
;sub_blue_0
cmp al,0
jne sub_blue_1
sub edx,0x600000
jmp sub_blue_e
sub_blue_1:
cmp al,1
jne sub_blue_e
sub edx,0x400000
;jmp sub_blue_e
sub_blue_e:
pop eax
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_sub_blue-----------------------------------------------------------------------------------------
draw_result:
;.................................................................................................
; <20>®«ìè ï à ¬ª  ¢ë¢®¤  १ã«ìâ â 
;.................................................................................................
mcall SF_DRAW_RECT, <4,110>, <9,219-18>, [sc.work_graph]
mcall , <5,110-2>, <10,219-20>, [sc.work_light]
;.................................................................................................
; Žâà¨á®¢ª  १ã«ìâ â  æ¢¥â  ¢ hex color2
;.................................................................................................
mcall , (16+2) shl 16+15, (16+8) shl 16+15, 0x222222
; color 2 - draw color
mcall , (17+2) shl 16+13, (17+8) shl 16+13, [color2]
; color 1 - draw fringle
mcall , (11+2) shl 16+15, (12+8) shl 16+15, 0x222222
; color 2 - draw color
mcall , (12+2) shl 16+13, (13+8) shl 16+13, [color]
; value - draw fringle
mcall , (34+2) shl 16+72, (16+4) shl 16+15+4, 0x222222
; value - draw background
mcall , (35+2) shl 16+70, (17+4) shl 16+13+4, 0xFFFFFF
; ”ã­ªæ¨ï 47 - ¢ë¢®¤ ç¨á«  ¢ ®ª­®
;ebx - ¯ à ¬¥âàë ¯à¥®¡à §®¢ ­¨ï ç¨á«  ¢ ⥪áâ (HEX)
mcall SF_DRAW_NUMBER, 256+8 shl 16, [color], <40,22>, 0x10000000, 0
; äã­ªæ¨ï 4: ­ ¯¨á âì ⥪áâ ¢ ®ª­¥
; edx - à¨á㥬 '#'
; esi - ¤«¨­  ⥪áâ  ¢ ¡ ©â å
;mcall SF_DRAW_TEXT,38*65536+20,0,hex,1
;.................................................................................................
; Žâà¨á®¢ª  r g b §­ ç¥­¨©
;.................................................................................................
call get_spectr
movzx eax,[cred] ; ªà á­ë©
mov ebx,12*65536+196 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
movzx eax,[cgreen] ; §¥«¥­ë©
mov ebx,37*65536+196 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
movzx eax,[cblue] ; ᨭ¨©
mov ebx,62*65536+196 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
movzx eax,[calpha] ;  «ìä 
mov ebx,87*65536+196 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
;.................................................................................................
; ‚뢮¤¨¬ ¡ãª¢ë r g b a
;.................................................................................................
mov eax,SF_DRAW_TEXT ; 4 - ¢ë¢¥á⨠áâபã ⥪áâ  ¢ ®ª­®
mov ebx,17 shl 16+DRAWY+37 ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
mov ecx, 0x10000000 ; 0xX0RRGGBB (RR, GG, BB § ¤ îâ 梥â ⥪áâ )
add ecx, [sc.work_text]
mov edx,cname ; 㪠§ â¥«ì ­  ­ ç «® áâப¨
mov esi,1 ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢
newline: ; 横«
int 0x40 ; <20>à¥à뢠­¨¥
add ebx,25 shl 16 ; „®¡ ¢«ï¥¬
inc edx ; „®¡ ¢«ï¥¬
cmp [edx],byte 'x' ; ‘à ¢­¥­¨¥ á ¡ ©â®¬ å
jne newline ; …᫨ ­¥ ­ã«ì ¨«¨ ­¥ à ¢­®
;.................................................................................................
; Žâà¨á®¢ª  á« ©¤¥à®¢
;.................................................................................................
include 'draw_sliders.inc'
draw_value: draw_value:
;................................................................................................. ;.................................................................................................
@ -1245,7 +905,7 @@ circle:
amain db 'style',0 amain db 'style',0
aprogram db 'bg_program',0 aprogram db 'bg_program',0
aparam db 'bg_param',0 aparam db 'bg_param',0
i18_name db 'ICONS18',0 i18_name db 'ICONS18',0
i18bg_name db 'ICONS18W',0 i18bg_name db 'ICONS18W',0