mirror of
https://github.com/bevyengine/bevy
synced 2024-11-21 20:23:28 +00:00
Minimally fix the known unsoundness in bevy_mikktspace (#5299)
# Objective - 0.8 is coming soon, and our mikktspace implementation is unsound - see https://github.com/gltf-rs/mikktspace/issues/26 - Best not to ship that ## Solution - Fix the unsoundness in a minimal way - Obviously there might be others, but it seems unlikely we have any way to know about those
This commit is contained in:
parent
a63d761aa3
commit
25d222b73e
1 changed files with 4 additions and 6 deletions
|
@ -1060,8 +1060,8 @@ unsafe fn InitTriInfo<I: Geometry>(
|
|||
let mut bChooseOrientFirstTri: bool = false;
|
||||
if (*pTriInfos.offset((t + 1) as isize)).iFlag & 4i32 != 0i32 {
|
||||
bChooseOrientFirstTri = true
|
||||
} else if CalcTexArea(geometry, &*piTriListIn.offset((t * 3 + 0) as isize))
|
||||
>= CalcTexArea(geometry, &*piTriListIn.offset(((t + 1) * 3 + 0) as isize))
|
||||
} else if CalcTexArea(geometry, piTriListIn.offset((t * 3 + 0) as isize))
|
||||
>= CalcTexArea(geometry, piTriListIn.offset(((t + 1) * 3 + 0) as isize))
|
||||
{
|
||||
bChooseOrientFirstTri = true
|
||||
}
|
||||
|
@ -1503,9 +1503,7 @@ unsafe fn GenerateSharedVerticesIndexList<I: Geometry>(
|
|||
vP_1.z
|
||||
};
|
||||
let iCell_0 = FindGridCell(fMin, fMax, fVal_0);
|
||||
let mut pTable: *mut i32 = 0 as *mut i32;
|
||||
pTable = &mut piHashTable[piHashOffsets[iCell_0] as usize] as *mut i32;
|
||||
*pTable.offset(piHashCount2[iCell_0] as isize) = i as i32;
|
||||
piHashTable[(piHashOffsets[iCell_0] + piHashCount2[iCell_0]) as usize] = i as i32;
|
||||
piHashCount2[iCell_0] += 1;
|
||||
i += 1
|
||||
}
|
||||
|
@ -1525,7 +1523,7 @@ unsafe fn GenerateSharedVerticesIndexList<I: Geometry>(
|
|||
k = 0;
|
||||
while k < g_iCells {
|
||||
// extract table of cell k and amount of entries in it
|
||||
let mut pTable_0 = &mut piHashTable[piHashOffsets[k] as usize] as *mut i32;
|
||||
let pTable_0 = piHashTable.as_mut_ptr().offset(piHashOffsets[k] as isize);
|
||||
let iEntries = piHashCount[k] as usize;
|
||||
if !(iEntries < 2) {
|
||||
e = 0;
|
||||
|
|
Loading…
Reference in a new issue