Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 8068 → Rev 8069

/programs/develop/libraries/TinyGL/asm_fork/ztriangle.asm
38,12 → 38,12
{
if TGL_FEATURE_RENDER_BITS eq 24
mov ecx,[p2]
mov eax,[ecx+offs_zbup_r]
mov [colorR],ah ;colorR=p2.r>>8
mov eax,[ecx+offs_zbup_g]
mov eax,[ecx+ZBufferPoint.r]
mov [colorB],ah ;colorB=p2.r>>8
mov eax,[ecx+ZBufferPoint.g]
mov [colorG],ah ;colorG=p2.g>>8
mov eax,[ecx+offs_zbup_b]
mov [colorB],ah ;colorB=p2.b>>8
mov eax,[ecx+ZBufferPoint.b]
mov [colorR],ah ;colorR=p2.b>>8
;else
;color=RGB_TO_PIXEL(p2.r,p2.g,p2.b)
end if
52,6 → 52,9
macro PUT_PIXEL _a
{
local .end_0
if _a eq 0
mov ebx,[dzdx]
end if
mov eax,[z]
shr eax,ZB_POINT_Z_FRAC_BITS
cmp ax,word[esi+2*_a] ;if (zz >= pz[_a])
59,17 → 62,15
;edi = pp
mov word[esi+2*_a],ax ;пишем в буфер глубины новое значение
if TGL_FEATURE_RENDER_BITS eq 24
mov ax,word[colorB] ;сохраняем colorB и colorG
mov word[edi+3*_a],ax
mov al,[colorR]
mov ah,[colorG]
mov word[edi+3*_a],ax
mov al,[colorB]
mov byte[edi+3*_a +2],al
;else
;pp[_a]=color
end if
.end_0:
mov eax,[dzdx]
add [z],eax
add [z],ebx
}
 
align 16
76,9 → 77,9
proc ZB_fillTriangleFlat, zb:dword, p0:dword, p1:dword, p2:dword
locals
if TGL_FEATURE_RENDER_BITS eq 24
colorR db ?
colorB db ?
colorG db ?
colorB db ? ;unsigned char
colorR db ? ;unsigned char
else
color dd ? ;int
end if
106,9 → 107,8
;edi = pp
mov word[esi+2*_a],ax ;пишем в буфер глубины новое значение
if TGL_FEATURE_RENDER_BITS eq 24
mov ebx,[or1]
mov eax,[og1]
mov al,bh
mov al,byte[or1+1]
mov word[edi+3*_a],ax
mov eax,[ob1]
mov byte[edi+3*_a +2],ah
117,12 → 117,14
;pp[_a] = RGB_TO_PIXEL(or1, og1, ob1)
;end if
.end_0:
mov eax,[dzdx]
add [z],eax
mov eax,[dgdx]
add [og1],eax
mov eax,[drdx]
add [or1],eax
if _a eq 0
mov ebx,[dzdx]
mov ecx,[dgdx]
mov edx,[drdx]
end if
add [z],ebx
add [og1],ecx
add [or1],edx
mov eax,[dbdx]
add [ob1],eax
}
137,13 → 139,13
s_bound:dword, t_bound:dword, s_log2:dword
mov eax,[zb]
mov ebx,[texture]
mov dword[eax+offs_zbuf_current_texture],ebx
mov dword[eax+ZBuffer.current_texture],ebx
mov ebx,[s_log2]
mov dword[eax+offs_zbuf_s_log2],ebx
mov dword[eax+ZBuffer.s_log2],ebx
mov ebx,[s_bound]
mov dword[eax+offs_zbuf_s_bound],ebx
mov dword[eax+ZBuffer.s_bound],ebx
mov ebx,[t_bound]
mov dword[eax+offs_zbuf_t_bound],ebx
mov dword[eax+ZBuffer.t_bound],ebx
ret
endp
 
153,13 → 155,13
macro DRAW_INIT
{
mov eax,[zb]
mov ebx,[eax+offs_zbuf_current_texture]
mov ebx,[eax+ZBuffer.current_texture]
mov [texture],ebx
mov ebx,[eax+offs_zbuf_s_log2]
mov ebx,[eax+ZBuffer.s_log2]
mov [s_log2],ebx ;s_log2 = zb.s_log2
mov ebx,[eax+offs_zbuf_s_bound]
mov ebx,[eax+ZBuffer.s_bound]
mov [s_bound],ebx ;s_bound = zb.s_bound
mov ebx,[eax+offs_zbuf_t_bound]
mov ebx,[eax+ZBuffer.t_bound]
mov [t_bound],ebx ;t_bound = zb.t_bound
}
 
181,7 → 183,7
and eax,[s_bound]
shr eax,ZB_POINT_TEXEL_SIZE
or ebx,eax
imul ebx,3
lea ebx,[ebx+2*ebx]
add ebx,[texture] ;ptr = texture + (((t & 0x3fc00000) | s) >> 14) * 3
mov ax,word[ebx]
mov word[edi+3*_a],ax ;pp[3 * _a]= ptr[0,1]
222,13 → 224,13
macro DRAW_INIT
{
mov eax,[zb]
mov ebx,[eax+offs_zbuf_current_texture]
mov ebx,[eax+ZBuffer.current_texture]
mov [texture],ebx
mov ebx,[eax+offs_zbuf_s_log2]
mov ebx,[eax+ZBuffer.s_log2]
mov [s_log2],ebx ;s_log2 = zb.s_log2
mov ebx,[eax+offs_zbuf_s_bound]
mov ebx,[eax+ZBuffer.s_bound]
mov [s_bound],ebx ;s_bound = zb.s_bound
mov ebx,[eax+offs_zbuf_t_bound]
mov ebx,[eax+ZBuffer.t_bound]
mov [t_bound],ebx ;t_bound = zb.t_bound
mov dword[esp-4],NB_INTERP
fild dword[esp-4]
261,7 → 263,7
and eax,[s_bound]
shr eax,ZB_POINT_TEXEL_SIZE
or ebx,eax
imul ebx,3
lea ebx,[ebx+2*ebx]
add ebx,[texture] ;ptr = texture + (((t & 0x3fc00000) | (s & 0x003FC000)) >> 14) * 3
mov ax,word[ebx]
mov word[edi+3*_a],ax ;pp[3 * _a]= ptr[0,1]