forked from KolibriOS/kolibrios
Removing the "blinking" of redrawing titlebar for skinned window (type III and IV)
git-svn-id: svn://kolibrios.org@2423 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
ca21d76937
commit
570e99f573
@ -317,22 +317,29 @@ drawwindow_IV:
|
|||||||
; shr esi,1
|
; shr esi,1
|
||||||
; and esi,0x007f7f7f
|
; and esi,0x007f7f7f
|
||||||
mov esi, [ebp+SKIN_DATA.colors.outer]
|
mov esi, [ebp+SKIN_DATA.colors.outer]
|
||||||
|
or esi, 1 shl 25 ; 0x02000000 used for draw_rectangle without top line
|
||||||
|
ror ebx, 16
|
||||||
|
add ebx, [_skinh]
|
||||||
|
sub bx, 1
|
||||||
|
rol ebx, 16
|
||||||
call draw_rectangle
|
call draw_rectangle
|
||||||
mov ecx, 3
|
mov ecx, 3
|
||||||
_dw3l:
|
_dw3l:
|
||||||
add eax, 1*65536-1
|
add eax, 1*65536-1
|
||||||
add ebx, 1*65536-1
|
add ebx, 0*65536-1
|
||||||
test ax, ax
|
test ax, ax
|
||||||
js no_skin_add_button
|
js no_skin_add_button
|
||||||
test bx, bx
|
test bx, bx
|
||||||
js no_skin_add_button
|
js no_skin_add_button
|
||||||
mov esi, [ebp+SKIN_DATA.colors.frame];[edi+24]
|
mov esi, [ebp+SKIN_DATA.colors.frame];[edi+24]
|
||||||
|
or esi, 1 shl 25; 0x02000000 used for draw_rectangle without top line
|
||||||
call draw_rectangle
|
call draw_rectangle
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz _dw3l
|
jnz _dw3l
|
||||||
mov esi, [ebp+SKIN_DATA.colors.inner]
|
mov esi, [ebp+SKIN_DATA.colors.inner]
|
||||||
|
or esi, 1 shl 25; 0x02000000 used for draw_rectangle without top line
|
||||||
add eax, 1*65536-1
|
add eax, 1*65536-1
|
||||||
add ebx, 1*65536-1
|
add ebx, 0*65536-1
|
||||||
test ax, ax
|
test ax, ax
|
||||||
js no_skin_add_button
|
js no_skin_add_button
|
||||||
test bx, bx
|
test bx, bx
|
||||||
|
@ -609,6 +609,9 @@ draw_rectangle: ;//////////////////////////////////////////////////////////////
|
|||||||
;> eax = pack[16(left), 16(right)]
|
;> eax = pack[16(left), 16(right)]
|
||||||
;> ebx = pack[16(top), 16(bottom)]
|
;> ebx = pack[16(top), 16(bottom)]
|
||||||
;> esi = color
|
;> esi = color
|
||||||
|
; ?? RR GG BB ; 0x01000000 negation
|
||||||
|
; ; 0x02000000 used for draw_rectangle without top line
|
||||||
|
; ; for example drawwindow_III and drawwindow_IV
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
push eax ebx ecx edi
|
push eax ebx ecx edi
|
||||||
|
|
||||||
@ -619,14 +622,17 @@ draw_rectangle: ;//////////////////////////////////////////////////////////////
|
|||||||
|
|
||||||
; set line color
|
; set line color
|
||||||
mov ecx, esi
|
mov ecx, esi
|
||||||
|
sub esi, 1 shl 25
|
||||||
; draw top border
|
; draw top border
|
||||||
rol ebx, 16
|
rol ebx, 16
|
||||||
push ebx
|
push ebx
|
||||||
rol ebx, 16
|
rol ebx, 16
|
||||||
pop bx
|
pop bx
|
||||||
|
test ecx, 1 shl 25
|
||||||
|
jnz @f
|
||||||
|
sub ecx, 1 shl 25
|
||||||
call [draw_line]
|
call [draw_line]
|
||||||
|
@@:
|
||||||
; draw bottom border
|
; draw bottom border
|
||||||
mov ebx, [esp - 2]
|
mov ebx, [esp - 2]
|
||||||
pop bx
|
pop bx
|
||||||
@ -828,22 +834,28 @@ drawwindow_III: ;//////////////////////////////////////////////////////////////
|
|||||||
mov esi, [edx + WDATA.cl_frames]
|
mov esi, [edx + WDATA.cl_frames]
|
||||||
shr esi, 1
|
shr esi, 1
|
||||||
and esi, 0x007f7f7f
|
and esi, 0x007f7f7f
|
||||||
|
or esi, 1 shl 25; 0x02000000 used for draw_rectangle without top line
|
||||||
|
ror ebx, 16
|
||||||
|
add ebx, [_skinh]
|
||||||
|
sub bx, 1
|
||||||
|
rol ebx, 16
|
||||||
call draw_rectangle
|
call draw_rectangle
|
||||||
|
|
||||||
push esi
|
push esi
|
||||||
mov ecx, 3
|
mov ecx, 3
|
||||||
mov esi, [edx + WDATA.cl_frames]
|
mov esi, [edx + WDATA.cl_frames]
|
||||||
|
or esi, 1 shl 25; 0x02000000 used for draw_rectangle without top line
|
||||||
|
|
||||||
.next_frame:
|
.next_frame:
|
||||||
add eax, 1 * 65536 - 1
|
add eax, 1 * 65536 - 1
|
||||||
add ebx, 1 * 65536 - 1
|
add ebx, 0 * 65536 - 1
|
||||||
call draw_rectangle
|
call draw_rectangle
|
||||||
dec ecx
|
dec ecx
|
||||||
jnz .next_frame
|
jnz .next_frame
|
||||||
|
|
||||||
pop esi
|
pop esi
|
||||||
add eax, 1 * 65536 - 1
|
add eax, 1 * 65536 - 1
|
||||||
add ebx, 1 * 65536 - 1
|
add ebx, 0 * 65536 - 1
|
||||||
call draw_rectangle
|
call draw_rectangle
|
||||||
|
|
||||||
; window caption
|
; window caption
|
||||||
|
@ -300,6 +300,8 @@ __sys_putpixel:
|
|||||||
; eax = x coordinate
|
; eax = x coordinate
|
||||||
; ebx = y coordinate
|
; ebx = y coordinate
|
||||||
; ecx = ?? RR GG BB ; 0x01000000 negation
|
; ecx = ?? RR GG BB ; 0x01000000 negation
|
||||||
|
; 0x02000000 used for draw_rectangle without top line
|
||||||
|
; for example drawwindow_III and drawwindow_IV
|
||||||
; edi = 0x00000001 force
|
; edi = 0x00000001 force
|
||||||
|
|
||||||
;;; mov [novesachecksum], dword 0
|
;;; mov [novesachecksum], dword 0
|
||||||
|
Loading…
Reference in New Issue
Block a user