revert experimental stuff that didn't really work better anyway. oops
This commit is contained in:
parent
4fa6e2abc0
commit
cf8071d119
43
DGLBLITA.ASM
43
DGLBLITA.ASM
|
@ -364,54 +364,51 @@ arg @@dest_y_inc:dword, @@src_y_inc:dword
|
||||||
|
|
||||||
mov edi, ebx ; dest pixels
|
mov edi, ebx ; dest pixels
|
||||||
mov esi, ecx ; source pixels
|
mov esi, ecx ; source pixels
|
||||||
mov ebp, eax ; WARNING: no named local access after this!
|
|
||||||
|
|
||||||
; ebp = number of 8-pixel runs
|
; eax = number of 8-pixel runs
|
||||||
; edx = line loop counter
|
; edx = line loop counter
|
||||||
; ebx = pixel data
|
|
||||||
; eax = pixel data
|
|
||||||
|
|
||||||
test edx, edx ; make sure there is >0 lines to be drawn
|
test edx, edx ; make sure there is >0 lines to be drawn
|
||||||
jz @@done
|
jz @@done
|
||||||
|
|
||||||
@@draw_line:
|
@@draw_line:
|
||||||
mov ecx, ebp ; ecx = counter of 8-pixel runs left to draw
|
mov ecx, eax ; ecx = counter of 8-pixel runs left to draw
|
||||||
@@draw_px_0:
|
@@draw_px_0:
|
||||||
mov bx, [esi+0] ; load src pixel
|
mov bx, [esi+0] ; load src pixel
|
||||||
mov ax, [esi+2]
|
|
||||||
test bl, bl
|
test bl, bl
|
||||||
jz @@draw_px_1 ; if it is color 0, skip it
|
jz @@draw_px_1 ; if it is color 0, skip it
|
||||||
mov [edi+0], bl ; otherwise, draw it onto dest
|
mov [edi+0], bl ; otherwise, draw it onto dest
|
||||||
@@draw_px_1:
|
@@draw_px_1:
|
||||||
test al, al
|
|
||||||
jz @@draw_px_2
|
|
||||||
mov [edi+2], al
|
|
||||||
@@draw_px_2:
|
|
||||||
test bh, bh
|
test bh, bh
|
||||||
jz @@draw_px_3
|
jz @@draw_px_2
|
||||||
mov [edi+1], bh
|
mov [edi+1], bh
|
||||||
|
@@draw_px_2:
|
||||||
|
mov bx, [esi+2]
|
||||||
|
test bl, bl
|
||||||
|
jz @@draw_px_3
|
||||||
|
mov [edi+2], bl
|
||||||
@@draw_px_3:
|
@@draw_px_3:
|
||||||
test ah, ah
|
test bh, bh
|
||||||
jz @@draw_px_4
|
jz @@draw_px_4
|
||||||
mov [edi+3], ah
|
mov [edi+3], bh
|
||||||
@@draw_px_4:
|
@@draw_px_4:
|
||||||
mov bx, [esi+4]
|
mov bx, [esi+4]
|
||||||
mov ax, [esi+6]
|
|
||||||
test bl, bl
|
test bl, bl
|
||||||
jz @@draw_px_5
|
jz @@draw_px_5
|
||||||
mov [edi+4], bl
|
mov [edi+4], bl
|
||||||
@@draw_px_5:
|
@@draw_px_5:
|
||||||
test al, al
|
|
||||||
jz @@draw_px_6
|
|
||||||
mov [edi+6], al
|
|
||||||
@@draw_px_6:
|
|
||||||
test bh, bh
|
test bh, bh
|
||||||
jz @@draw_px_7
|
jz @@draw_px_6
|
||||||
mov [edi+5], bh
|
mov [edi+5], bh
|
||||||
|
@@draw_px_6:
|
||||||
|
mov bx, [esi+6]
|
||||||
|
test bl, bl
|
||||||
|
jz @@draw_px_7
|
||||||
|
mov [edi+6], bl
|
||||||
@@draw_px_7:
|
@@draw_px_7:
|
||||||
test ah, ah
|
test bh, bh
|
||||||
jz @@end_8_run
|
jz @@end_8_run
|
||||||
mov [edi+7], ah
|
mov [edi+7], bh
|
||||||
@@end_8_run:
|
@@end_8_run:
|
||||||
add esi, 8 ; move src and dest up 8 pixels
|
add esi, 8 ; move src and dest up 8 pixels
|
||||||
add edi, 8
|
add edi, 8
|
||||||
|
@ -419,8 +416,8 @@ arg @@dest_y_inc:dword, @@src_y_inc:dword
|
||||||
jnz @@draw_px_0 ; if there are still more runs, draw them
|
jnz @@draw_px_0 ; if there are still more runs, draw them
|
||||||
|
|
||||||
@@end_line:
|
@@end_line:
|
||||||
add esi, [esp+20] ; move src and dest to start of next line
|
add esi, [@@src_y_inc] ; move src and dest to start of next line
|
||||||
add edi, [esp+16]
|
add edi, [@@dest_y_inc]
|
||||||
dec edx ; decrease line loop counter
|
dec edx ; decrease line loop counter
|
||||||
jnz @@draw_line ; keep going if there's more lines to draw
|
jnz @@draw_line ; keep going if there's more lines to draw
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue