/programs/develop/libraries/TinyGL/asm_fork/zmath.inc |
---|
0,0 → 1,42 |
; Matrix & Vertex |
align 4 |
an180f dd 180.0 ;константа для вычисления углов |
struct M4 |
m rd 4*4 ;float[4][4] |
ends |
; макрос облегчающий доступ к элементам матрицы M4 |
; для доступа к элементам 1-й индекс множится на 16, 2-й на 4: |
; m[i1*16][i2*4], потом все пишется в регистр reg: |
; reg <-- m[i1][i2] |
macro M4_reg reg,m,i1,i2 |
{ |
mov reg,i1 ;1-й индекс |
if i2 eq 0 |
shl reg,4 |
else |
shl reg,2 |
add reg,i2 ;2-й индекс |
shl reg,2 |
end if |
add reg,m ;указатель на начало матрицы |
} |
struct M3 |
m rd 3*3 ;float[3][3] |
ends |
struct M34 |
m rd 3*4 ;float[3][4] |
ends |
struct V3 |
v rd 3 ;float[3] |
ends |
struct V4 |
v rd 4 ;float[4] |
ends |