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

View File

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