Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 6113 → Rev 6112

/programs/develop/libraries/TinyGL/asm_fork/ztriangle.asm
1,3 → 1,9
;
; Макрос DRAW_LINE имеет параметр code, от которого зависит
; будет ли включен код или объявлены переменные.
; В версии на C++ параметра code нет, потому что там переменные
; можно ставить в любом месте функции, в asm версии такое не проходит.
;
 
INTERP_Z equ 1
 
230,20 → 236,29
 
DRAW_LINE_M equ 1
 
macro DRAW_LINE
macro DRAW_LINE code
{
if TGL_FEATURE_RENDER_BITS eq 24
if code eq 0
s dd ? ;uint
t dd ? ;uint
dsdx dd ? ;int
dtdx dd ? ;int
fz dd ? ;float
zinv dd ? ;float
end if
if code eq 1
mov eax,[x2]
sar eax,16
mov edi,[x1]
sub eax,edi
sub eax,[x1]
mov [n],eax ;n = (x2 >> 16) - x1
fld1
fild dword[z1]
fst dword[f_z] ;fz = (float)z1
fst dword[fz] ;fz = (float)z1
;fld1
fdivp
fstp dword[zinv] ;zinv = 1.0 / fz
mov edi,[x1]
imul edi,PSZB
add edi,[pp1] ;pp = (pp1 + x1 * PSZB)
mov eax,[x1]
277,9 → 292,9
fmul dword[zinv]
fistp dword[dtdx] ;dtdx = (int)( (dtzdx - tt*fdzdx)*zinv )
fld1
fld dword[f_z]
fld dword[fz]
fadd dword[fndzdx]
fst dword[f_z] ;fz += fndzdx
fst dword[fz] ;fz += fndzdx
;fld1
fdivp
fstp dword[zinv] ;zinv = 1.0 / fz
329,6 → 344,7
jmp .cycle_3
.cycle_3_end:
end if
end if
}
 
align 4
339,8 → 355,6
fndzdx dd ? ;float
ndszdx dd ? ;float
ndtzdx dd ? ;float
zinv dd ? ;float
f_z dd ? ;float - переменная отвечающая за геометрию текстуры
include 'ztriangle.inc'
 
end if
363,6 → 377,7
macro PUT_PIXEL _a
{
local .end_0
; int s,t;
mov eax,[z]
shr eax,ZB_POINT_Z_FRAC_BITS
mov [zz],eax
/programs/develop/libraries/TinyGL/asm_fork/ztriangle.inc
28,7 → 28,7
fdx2 dd ? ;float
fdy1 dd ? ;float
fdy2 dd ? ;float
fz dd ? ;float - переменная отвечающая за геометрию фигуры
fz dd ? ;float
d1 dd ? ;float
d2 dd ? ;float
pz1 dd ? ;unsigned short*
56,8 → 56,6
z dd ? ;uint
zz dd ? ;uint
 
n dd ? ;int - длинна горизонтальной линии в пикселях
 
if INTERP_Z eq 1
z1 dd ? ;int
dzdx dd ? ;int
81,16 → 79,15
dbdy dd ?
dbdl_min dd ?
dbdl_max dd ?
or1 dd ? ;uint
og1 dd ? ;uint
ob1 dd ? ;uint
end if
if INTERP_ST eq 1
s1 dd ? ;int
dsdx dd ? ;int
dsdy dd ? ;int
dsdl_min dd ? ;int
dsdl_max dd ? ;int
t1 dd ? ;int
dtdx dd ? ;int
dtdy dd ? ;int
dtdl_min dd ? ;int
dtdl_max dd ? ;int
109,12 → 106,21
s_z dd ? ;float
t_z dd ? ;float
end if
if (INTERP_ST eq 1) | (DRAW_LINE_M eq 1)
n dd ? ;int - длинна горизонтальной линии в пикселях
if INTERP_RGB eq 1
or1 dd ? ;uint
og1 dd ? ;uint
ob1 dd ? ;uint
end if
if INTERP_ST eq 1
s dd ? ;uint
t dd ? ;uint
dsdx dd ? ;int
dtdx dd ? ;int
end if
 
if DRAW_LINE_M eq 1
DRAW_LINE 0 ;переменные делаются в макросе
end if
 
endl
pushad
 
681,7 → 687,7
jle .end_w_lin
dec dword[nb_lines]
if DRAW_LINE_M eq 1
DRAW_LINE
DRAW_LINE 1
else
; generic draw line
mov eax,[x2]
872,6 → 878,7
fstp dword[tz1]
end if
.end_er:
 
; right edge
mov eax,[dx2dy2]
add [x2],eax
/programs/develop/libraries/TinyGL/asm_fork/examples/textures0.asm
File deleted
/programs/develop/libraries/TinyGL/asm_fork/examples/text_1.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Deleted: svn:mime-type
-application/octet-stream
\ No newline at end of property