You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Fixed GeometryCollections having uninitialized vertex color when the source mesh has no colors.
Fixed issue in BitStreamWriter_Writer when NumBits=32. #jira UE-110362 #rb graham.wihlidal #ROBOMERGE-OWNER: rune.stubbe #ROBOMERGE-AUTHOR: rune.stubbe #ROBOMERGE-SOURCE: CL 15675611 in //UE5/Release-5.0-EarlyAccess/... #ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533) #ROBOMERGE-CONFLICT from-shelf [CL 15676219 by rune stubbe in ue5-main branch]
This commit is contained in:
@@ -72,6 +72,8 @@ void FGeometryCollectionConversion::AppendStaticMesh(const UStaticMesh* StaticMe
|
||||
UV[VertexOffset] = VertexBuffer.StaticMeshVertexBuffer.GetVertexUV(VertexIndex, 0);
|
||||
if (VertexBuffer.ColorVertexBuffer.GetNumVertices() == VertexCount)
|
||||
Color[VertexOffset] = VertexBuffer.ColorVertexBuffer.VertexColor(VertexIndex);
|
||||
else
|
||||
Color[VertexOffset] = FLinearColor::White;
|
||||
}
|
||||
|
||||
// Triangle Indices
|
||||
@@ -654,6 +656,8 @@ void FGeometryCollectionConversion::AppendSkeletalMesh(const USkeletalMesh* Skel
|
||||
UV[VertexOffset] = VertexBuffers.StaticMeshVertexBuffer.GetVertexUV(VertexIndex, 0);
|
||||
if (VertexBuffers.ColorVertexBuffer.GetNumVertices() == VertexCount)
|
||||
Color[VertexOffset] = VertexBuffers.ColorVertexBuffer.VertexColor(VertexIndex);
|
||||
else
|
||||
Color[VertexOffset] = FLinearColor::White;
|
||||
}
|
||||
|
||||
int32 InitialIndex = -1;
|
||||
|
||||
@@ -278,6 +278,7 @@ void BitStreamWriter_Writer(inout FBitStreamWriterState State, uint Value, int N
|
||||
{
|
||||
State.BufferBits |= Value << State.BufferOffset;
|
||||
|
||||
// State.BufferOffset <= 31
|
||||
uint NextBufferOffset = State.BufferOffset + NumBits;
|
||||
|
||||
if (NextBufferOffset >= 32)
|
||||
@@ -285,7 +286,13 @@ void BitStreamWriter_Writer(inout FBitStreamWriterState State, uint Value, int N
|
||||
State.Output.InterlockedAnd(State.AlignedByteAddress, State.BufferMask);
|
||||
State.Output.InterlockedOr(State.AlignedByteAddress, State.BufferBits);
|
||||
State.BufferMask = 0;
|
||||
State.BufferBits = Value >> (32 - State.BufferOffset);
|
||||
|
||||
// Shifts are mod 32, so we need special handling when shift could be >= 32.
|
||||
// State.BufferOffset can only be 0 here if NumBits >= 32 and therefore CompileTimeMaxBits >= 32.
|
||||
if(CompileTimeMaxBits >= 32)
|
||||
State.BufferBits = State.BufferOffset ? (Value >> (32 - State.BufferOffset)) : 0u;
|
||||
else
|
||||
State.BufferBits = Value >> (32 - State.BufferOffset);
|
||||
State.AlignedByteAddress += 4;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// differences, etc.) replace the version GUID below with a new one.
|
||||
// In case of merge conflicts with DDC versions, you MUST generate a new GUID
|
||||
// and set this new GUID as the version.
|
||||
#define NANITE_DERIVEDDATA_VER TEXT("3AAB0510-8F1D-59F4-B3C9-91FADBE10CB5")
|
||||
#define NANITE_DERIVEDDATA_VER TEXT("3ABB0516-8F1E-59F6-B3CA-91FDDBF10CB5")
|
||||
|
||||
namespace Nanite
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user