1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-08-17 18:36:43 +02:00
This commit is contained in:
XProger
2021-11-14 15:51:03 +03:00
parent 6cdaaec8ae
commit 2c2ded837d
2 changed files with 25 additions and 23 deletions

View File

@@ -218,10 +218,10 @@ void drawMesh(int32 meshIndex)
vIntensity = (uint16*)ptr; vIntensity = (uint16*)ptr;
ptr += vCount * sizeof(uint16); ptr += vCount * sizeof(uint16);
} }
#endif
if (MAX_VERTICES - gVerticesCount < vCount) if (MAX_VERTICES - gVerticesCount < vCount)
return; return;
#endif
if (MAX_FACES - gFacesCount < mesh->rCount + mesh->tCount + mesh->crCount + mesh->ctCount) if (MAX_FACES - gFacesCount < mesh->rCount + mesh->tCount + mesh->crCount + mesh->ctCount)
return; return;
@@ -757,8 +757,10 @@ void drawRoom(const Room* room, Camera* camera)
const RoomInfo* info = room->info; const RoomInfo* info = room->info;
const RoomData& data = room->data; const RoomData& data = room->data;
#ifndef __3DO__
if (MAX_VERTICES - gVerticesCount < info->verticesCount) if (MAX_VERTICES - gVerticesCount < info->verticesCount)
return; return;
#endif
if (MAX_FACES - gFacesCount < info->quadsCount + info->trianglesCount) if (MAX_FACES - gFacesCount < info->quadsCount + info->trianglesCount)
return; return;

View File

@@ -10,13 +10,13 @@ unpackMesh_asm__FPC10MeshVertexl
vertices RN r0 vertices RN r0
vptr RN r5 vptr RN r5
vCount RN r1 vCount RN r1
cx RN r2 cx RN r8
cy RN r3 cy RN r9
cz RN r4 cz RN r10
last RN lr last RN lr
n0 RN r6 n0 RN r3
n1 RN r8 n1 RN r5
n2 RN r10 n2 RN r7
res RN r1 res RN r1
DOT3_F16 EQU 0x5000C DOT3_F16 EQU 0x5000C
@@ -24,22 +24,22 @@ DOT3_F16 EQU 0x5000C
add last, vertices, vCount, lsl #2 add last, vertices, vCount, lsl #2
add last, last, vCount, lsl #1 add last, last, vCount, lsl #1
mov vptr, vertices ; save vertices ptr mov vptr, vertices ; save vertices ptr
ldr r2, =matrixPtr ldr r4, =matrixPtr
ldr r8, [r2] ; &m.e00 ldr r7, [r4] ; &m.e00
add r2, r8, #36 ; &m.e03 add r4, r7, #36 ; &m.e03
mov r0, r2 mov r0, r4
add r1, r8, #24 ; &m.e02 add r1, r7, #24 ; &m.e02
swi DOT3_F16 swi DOT3_F16
mov cz, r0, asr #10 mov cz, r0, asr #10
mov r0, r2 mov r0, r4
add r1, r8, #12 ; &m.e01 add r1, r7, #12 ; &m.e01
swi DOT3_F16 swi DOT3_F16
mov cy, r0, asr #10 mov cy, r0, asr #10
mov r0, r2 mov r0, r4
mov r1, r8 ; &m.e00 mov r1, r7 ; &m.e00
swi DOT3_F16 swi DOT3_F16
mov cx, r0, asr #10 mov cx, r0, asr #10
@@ -49,19 +49,19 @@ DOT3_F16 EQU 0x5000C
loop ldmia vertices!, {n0, n1, n2} ; load two encoded vertices loop ldmia vertices!, {n0, n1, n2} ; load two encoded vertices
cmp vertices, last cmp vertices, last
add r5, cx, n0, asr #16 add r2, cx, n0, asr #16 ; x
mov n0, n0, lsl #16 mov n0, n0, lsl #16
add r6, cy, n0, asr #16 add r3, cy, n0, asr #16 ; y
add r7, cz, n1, asr #16 add r4, cz, n1, asr #16 ; z
mov n1, n1, lsl #16 mov n1, n1, lsl #16
add r8, cx, n1, asr #16 add r5, cx, n1, asr #16 ; x
add r9, cy, n2, asr #16 add r6, cy, n2, asr #16 ; y
mov n2, n2, lsl #16 mov n2, n2, lsl #16
add r10, cz, n2, asr #16 add r7, cz, n2, asr #16 ; z
stmia res!, {r5, r6, r7, r8, r9, r10} stmia res!, {r2, r3, r4, r5, r6, r7}
blt loop blt loop
ldmfd sp!, {r4-r10, pc} ldmfd sp!, {r4-r10, pc}