mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-06 15:11:13 +00:00
Classic: add {,m,t}vlineasm1nonpow2, currently unreferenced from high-level drawing.
git-svn-id: https://svn.eduke32.com/eduke32@2806 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
5a96b4e572
commit
6c4c4fed15
2 changed files with 127 additions and 1 deletions
|
@ -29,11 +29,14 @@ extern int32_t __cdecl setvlinebpl(int32_t);
|
||||||
extern int32_t __cdecl fixtransluscence(int32_t);
|
extern int32_t __cdecl fixtransluscence(int32_t);
|
||||||
extern int32_t __cdecl prevlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
extern int32_t __cdecl prevlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
extern int32_t __cdecl vlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
extern int32_t __cdecl vlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
|
extern int32_t __cdecl vlineasm1nonpow2(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
extern int32_t __cdecl setuptvlineasm(int32_t);
|
extern int32_t __cdecl setuptvlineasm(int32_t);
|
||||||
extern int32_t __cdecl tvlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
extern int32_t __cdecl tvlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
|
extern int32_t __cdecl tvlineasm1nonpow2(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
extern int32_t __cdecl setuptvlineasm2(int32_t,int32_t,int32_t);
|
extern int32_t __cdecl setuptvlineasm2(int32_t,int32_t,int32_t);
|
||||||
extern int32_t __cdecl tvlineasm2(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
extern int32_t __cdecl tvlineasm2(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
extern int32_t __cdecl mvlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
extern int32_t __cdecl mvlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
|
extern int32_t __cdecl mvlineasm1nonpow2(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
extern int32_t __cdecl setupvlineasm(int32_t);
|
extern int32_t __cdecl setupvlineasm(int32_t);
|
||||||
extern int32_t __cdecl vlineasm4(int32_t,char *);
|
extern int32_t __cdecl vlineasm4(int32_t,char *);
|
||||||
extern int32_t __cdecl setupmvlineasm(int32_t);
|
extern int32_t __cdecl setupmvlineasm(int32_t);
|
||||||
|
@ -75,11 +78,14 @@ extern int32_t _cdecl setvlinebpl(int32_t);
|
||||||
extern int32_t _cdecl fixtransluscence(int32_t);
|
extern int32_t _cdecl fixtransluscence(int32_t);
|
||||||
extern int32_t _cdecl prevlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
extern int32_t _cdecl prevlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
extern int32_t _cdecl vlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
extern int32_t _cdecl vlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
|
extern int32_t _cdecl vlineasm1nonpow2(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
extern int32_t _cdecl setuptvlineasm(int32_t);
|
extern int32_t _cdecl setuptvlineasm(int32_t);
|
||||||
extern int32_t _cdecl tvlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
extern int32_t _cdecl tvlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
|
extern int32_t _cdecl tvlineasm1nonpow2(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
extern int32_t _cdecl setuptvlineasm2(int32_t,int32_t,int32_t);
|
extern int32_t _cdecl setuptvlineasm2(int32_t,int32_t,int32_t);
|
||||||
extern int32_t _cdecl tvlineasm2(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
extern int32_t _cdecl tvlineasm2(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
extern int32_t _cdecl mvlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
extern int32_t _cdecl mvlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
|
extern int32_t _cdecl mvlineasm1nonpow2(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
|
||||||
extern int32_t _cdecl setupvlineasm(int32_t);
|
extern int32_t _cdecl setupvlineasm(int32_t);
|
||||||
extern int32_t _cdecl vlineasm4(int32_t,char *);
|
extern int32_t _cdecl vlineasm4(int32_t,char *);
|
||||||
extern int32_t _cdecl setupmvlineasm(int32_t);
|
extern int32_t _cdecl setupmvlineasm(int32_t);
|
||||||
|
|
|
@ -27,6 +27,7 @@ SECTION .text
|
||||||
%define espbak _espbak
|
%define espbak _espbak
|
||||||
%define pow2char _pow2char
|
%define pow2char _pow2char
|
||||||
%define pow2long _pow2long
|
%define pow2long _pow2long
|
||||||
|
%define globaltilesizy _globaltilesizy
|
||||||
|
|
||||||
%define sethlinesizes _sethlinesizes
|
%define sethlinesizes _sethlinesizes
|
||||||
%define prosethlinesizes _prosethlinesizes
|
%define prosethlinesizes _prosethlinesizes
|
||||||
|
@ -41,11 +42,14 @@ SECTION .text
|
||||||
%define setuptvlineasm _setuptvlineasm
|
%define setuptvlineasm _setuptvlineasm
|
||||||
%define prevlineasm1 _prevlineasm1
|
%define prevlineasm1 _prevlineasm1
|
||||||
%define vlineasm1 _vlineasm1
|
%define vlineasm1 _vlineasm1
|
||||||
|
%define vlineasm1nonpow2 _vlineasm1nonpow2
|
||||||
%define mvlineasm1 _mvlineasm1
|
%define mvlineasm1 _mvlineasm1
|
||||||
|
%define mvlineasm1nonpow2 _mvlineasm1nonpow2
|
||||||
%define fixtransluscence _fixtransluscence
|
%define fixtransluscence _fixtransluscence
|
||||||
%define settransnormal _settransnormal
|
%define settransnormal _settransnormal
|
||||||
%define settransreverse _settransreverse
|
%define settransreverse _settransreverse
|
||||||
%define tvlineasm1 _tvlineasm1
|
%define tvlineasm1 _tvlineasm1
|
||||||
|
%define tvlineasm1nonpow2 _tvlineasm1nonpow2
|
||||||
%define vlineasm4 _vlineasm4
|
%define vlineasm4 _vlineasm4
|
||||||
%define provlineasm4 _provlineasm4
|
%define provlineasm4 _provlineasm4
|
||||||
%define setupvlineasm _setupvlineasm
|
%define setupvlineasm _setupvlineasm
|
||||||
|
@ -176,6 +180,8 @@ SECTION .text
|
||||||
EXTERN pow2char
|
EXTERN pow2char
|
||||||
EXTERN pow2long
|
EXTERN pow2long
|
||||||
|
|
||||||
|
EXTERN globaltilesizy
|
||||||
|
|
||||||
GLOBAL sethlinesizes
|
GLOBAL sethlinesizes
|
||||||
GLOBAL prosethlinesizes
|
GLOBAL prosethlinesizes
|
||||||
GLOBAL setvlinebpl
|
GLOBAL setvlinebpl
|
||||||
|
@ -189,11 +195,14 @@ SECTION .text
|
||||||
GLOBAL setuptvlineasm
|
GLOBAL setuptvlineasm
|
||||||
GLOBAL prevlineasm1
|
GLOBAL prevlineasm1
|
||||||
GLOBAL vlineasm1
|
GLOBAL vlineasm1
|
||||||
|
GLOBAL vlineasm1nonpow2
|
||||||
GLOBAL mvlineasm1 ;Masked vline
|
GLOBAL mvlineasm1 ;Masked vline
|
||||||
|
GLOBAL mvlineasm1nonpow2 ;Masked vline, non-power-of-2
|
||||||
GLOBAL fixtransluscence
|
GLOBAL fixtransluscence
|
||||||
GLOBAL settransnormal
|
GLOBAL settransnormal
|
||||||
GLOBAL settransreverse
|
GLOBAL settransreverse
|
||||||
GLOBAL tvlineasm1 ;Masked & transluscent vline
|
GLOBAL tvlineasm1 ;Masked & transluscent vline
|
||||||
|
GLOBAL tvlineasm1nonpow2 ;Masked & transluscent vline, non-power-of-2
|
||||||
GLOBAL vlineasm4
|
GLOBAL vlineasm4
|
||||||
GLOBAL provlineasm4
|
GLOBAL provlineasm4
|
||||||
GLOBAL setupvlineasm
|
GLOBAL setupvlineasm
|
||||||
|
@ -303,6 +312,12 @@ CDECLENDSET 3
|
||||||
ALIGN 16
|
ALIGN 16
|
||||||
setvlinebpl:
|
setvlinebpl:
|
||||||
CDECLBEGINSET 1
|
CDECLBEGINSET 1
|
||||||
|
mov dword [np2_fixchain1a+2], eax
|
||||||
|
mov dword [np2_fixchain1b+2], eax
|
||||||
|
|
||||||
|
mov dword [mnp2_fixchain1b+2], eax
|
||||||
|
mov dword [tnp2_fixchain1b+2], eax
|
||||||
|
|
||||||
mov dword [fixchain1a+2], eax
|
mov dword [fixchain1a+2], eax
|
||||||
mov dword [fixchain1b+2], eax
|
mov dword [fixchain1b+2], eax
|
||||||
mov dword [fixchain1m+2], eax
|
mov dword [fixchain1m+2], eax
|
||||||
|
@ -698,6 +713,35 @@ CDECLENDSET 6
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
ALIGN 16
|
||||||
|
vlineasm1nonpow2:
|
||||||
|
CDECLBEGINSET 6
|
||||||
|
mov dword [np2_do_palookup+2], ebx
|
||||||
|
push ebp
|
||||||
|
mov ebp, edx ; ebp: vertical place
|
||||||
|
mov ebx, eax ; ebx: vertical increment
|
||||||
|
mov eax, dword [globaltilesizy]
|
||||||
|
mov [np2_beginvline+1], eax
|
||||||
|
inc ecx
|
||||||
|
np2_fixchain1a: sub edi, 320
|
||||||
|
np2_beginvline: ; +1: y tile size
|
||||||
|
mov eax, 0x00000123
|
||||||
|
mul ebp
|
||||||
|
np2_fixchain1b: add edi, 320
|
||||||
|
and eax, 0x000000ff
|
||||||
|
mov al, byte [esi+edx]
|
||||||
|
add ebp, ebx
|
||||||
|
dec ecx
|
||||||
|
np2_do_palookup: ; +2: addr
|
||||||
|
mov al, byte [0xbeeff00d+eax]
|
||||||
|
mov byte [edi], al
|
||||||
|
jnz short np2_beginvline
|
||||||
|
mov eax, ebp
|
||||||
|
pop ebp
|
||||||
|
CDECLENDSET 6
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
ALIGN 16
|
ALIGN 16
|
||||||
mvlineasm1:
|
mvlineasm1:
|
||||||
CDECLBEGINSET 6
|
CDECLBEGINSET 6
|
||||||
|
@ -723,6 +767,36 @@ CDECLENDSET 6
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
ALIGN 16
|
||||||
|
mvlineasm1nonpow2:
|
||||||
|
CDECLBEGINSET 6
|
||||||
|
mov dword [mnp2_do_palookup+2], ebx
|
||||||
|
push ebp
|
||||||
|
mov ebp, edx ; ebp: vertical place
|
||||||
|
mov ebx, eax ; ebx: vertical increment
|
||||||
|
mov eax, dword [globaltilesizy]
|
||||||
|
mov [mnp2_beginvline+1], eax
|
||||||
|
mnp2_beginvline: ; +1: y tile size
|
||||||
|
mov eax, 0x00000123
|
||||||
|
mul ebp
|
||||||
|
and eax, 0x000000ff
|
||||||
|
mov al, byte [esi+edx]
|
||||||
|
cmp al, 255
|
||||||
|
je short mskipmask1
|
||||||
|
mnp2_do_palookup: ; +2: addr
|
||||||
|
mov al, byte [0xbeeff00d+eax]
|
||||||
|
mov byte [edi], al
|
||||||
|
mskipmask1:
|
||||||
|
add ebp, ebx
|
||||||
|
mnp2_fixchain1b: add edi, 320
|
||||||
|
sub ecx, 1
|
||||||
|
jnc short mnp2_beginvline
|
||||||
|
mov eax, ebp
|
||||||
|
pop ebp
|
||||||
|
CDECLENDSET 6
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
ALIGN 16
|
ALIGN 16
|
||||||
fixtransluscence:
|
fixtransluscence:
|
||||||
CDECLBEGINSET 1
|
CDECLBEGINSET 1
|
||||||
|
@ -735,6 +809,8 @@ CDECLBEGINSET 1
|
||||||
mov dword [tran2trab+2], eax
|
mov dword [tran2trab+2], eax
|
||||||
mov dword [tran2trac+2], eax
|
mov dword [tran2trac+2], eax
|
||||||
mov dword [tran2trad+2], eax
|
mov dword [tran2trad+2], eax
|
||||||
|
|
||||||
|
mov dword [tnmach4+2], eax
|
||||||
CDECLENDSET 1
|
CDECLENDSET 1
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
@ -759,6 +835,10 @@ settransnormal:
|
||||||
mov byte [transrev15+1], 9ah
|
mov byte [transrev15+1], 9ah
|
||||||
mov byte [transrev16+1], 0a7h
|
mov byte [transrev16+1], 0a7h
|
||||||
mov byte [transrev17+1], 82h
|
mov byte [transrev17+1], 82h
|
||||||
|
|
||||||
|
mov byte [ntransrev0+1], 80h
|
||||||
|
mov byte [ntransrev1+1], 27h
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
@ -782,6 +862,10 @@ settransreverse:
|
||||||
mov byte [transrev15+1], 0bah
|
mov byte [transrev15+1], 0bah
|
||||||
mov byte [transrev16+1], 87h
|
mov byte [transrev16+1], 87h
|
||||||
mov byte [transrev17+1], 0a2h
|
mov byte [transrev17+1], 0a2h
|
||||||
|
|
||||||
|
mov byte [ntransrev0+1], 0a0h
|
||||||
|
mov byte [ntransrev1+1], 7h
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
@ -818,6 +902,42 @@ fixchain1t: add edi, 320
|
||||||
CDECLENDSET 6
|
CDECLENDSET 6
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
ALIGN 16
|
||||||
|
tvlineasm1nonpow2:
|
||||||
|
CDECLBEGINSET 6
|
||||||
|
mov dword [tnp2_do_palookup+2], ebx
|
||||||
|
push ebp
|
||||||
|
mov ebp, edx ; ebp: vertical place
|
||||||
|
mov ebx, eax ; ebx: vertical increment
|
||||||
|
inc ecx
|
||||||
|
mov eax, dword [globaltilesizy]
|
||||||
|
mov [tnp2_beginvline+1], eax
|
||||||
|
tnp2_beginvline: ; +1: y tile size
|
||||||
|
mov eax, 0x00000123
|
||||||
|
mul ebp
|
||||||
|
and eax, 0x000000ff
|
||||||
|
mov al, byte [esi+edx]
|
||||||
|
cmp al, 255
|
||||||
|
je short tskipmask1
|
||||||
|
ntransrev0:
|
||||||
|
tnp2_do_palookup: ; +2: addr
|
||||||
|
mov al, byte [0xbeeff00d+eax]
|
||||||
|
ntransrev1:
|
||||||
|
mov ah, byte [edi]
|
||||||
|
tnmach4: mov al, byte [eax+88888888h] ;_luc[eax]
|
||||||
|
mov byte [edi], al
|
||||||
|
tskipmask1:
|
||||||
|
add ebp, ebx
|
||||||
|
tnp2_fixchain1b: add edi, 320
|
||||||
|
dec ecx
|
||||||
|
jnz short tnp2_beginvline
|
||||||
|
mov eax, ebp
|
||||||
|
pop ebp
|
||||||
|
CDECLENDSET 6
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
;eax: -------temp1-------
|
;eax: -------temp1-------
|
||||||
;ebx: -------temp2-------
|
;ebx: -------temp2-------
|
||||||
;ecx: dat dat dat dat
|
;ecx: dat dat dat dat
|
||||||
|
|
Loading…
Reference in a new issue