Upgraded to Unreal 4.20.2

This commit is contained in:
vinfamy 2018-08-31 16:21:00 +07:00
parent 25e4e6739b
commit dd91765df6
27 changed files with 195 additions and 371 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

View file

@ -16,6 +16,7 @@ EditorStartupMap=/Game/Scenes/CentralLondon.CentralLondon
r.DefaultFeature.AntiAliasing=2 r.DefaultFeature.AntiAliasing=2
r.DefaultFeature.AutoExposure=False r.DefaultFeature.AutoExposure=False
r.TextureStreaming=True r.TextureStreaming=True
r.DefaultFeature.AmbientOcclusionStaticFraction=False
[/Script/Engine.UserInterfaceSettings] [/Script/Engine.UserInterfaceSettings]
RenderFocusRule=NavigationOnly RenderFocusRule=NavigationOnly
@ -36,11 +37,17 @@ bLoadWidgetsOnDedicatedServer=True
[/Script/Engine.Engine] [/Script/Engine.Engine]
NearClipPlane=1.000000 NearClipPlane=1.000000
MaximumLoopIterationCount=10000000 MaximumLoopIterationCount=1000000
MinDesiredFrameRate=30.000000
SmoothedFrameRateRange=(LowerBound=(Type=Inclusive,Value=22.000000),UpperBound=(Type=Exclusive,Value=60.000000))
bSmoothFrameRate=True
[/Script/Engine.RecastNavMesh] [/Script/NavigationSystem.RecastNavMesh]
bFixedTilePoolSize=False bFixedTilePoolSize=False
[/Script/Engine.EndUserSettings]
bSendAnonymousUsageDataToEpic=False
[/Script/Engine.PhysicsSettings] [/Script/Engine.PhysicsSettings]
DefaultGravityZ=-980.000000 DefaultGravityZ=-980.000000
DefaultTerminalVelocity=4000.000000 DefaultTerminalVelocity=4000.000000
@ -54,6 +61,7 @@ bEnablePCM=True
bEnableStabilization=False bEnableStabilization=False
bWarnMissingLocks=True bWarnMissingLocks=True
bEnable2DPhysics=False bEnable2DPhysics=False
PhysicErrorCorrection=(PingExtrapolation=0.100000,ErrorPerLinearDifference=1.000000,ErrorPerAngularDifference=1.000000,MaxRestoredStateError=1.000000,PositionLerp=0.000000,AngleLerp=0.400000,LinearVelocityCoefficient=100.000000,AngularVelocityCoefficient=10.000000,ErrorAccumulationSeconds=0.500000,ErrorAccumulationDistanceSq=15.000000,ErrorAccumulationSimilarity=100.000000)
LockedAxis=Invalid LockedAxis=Invalid
DefaultDegreesOfFreedom=Full3D DefaultDegreesOfFreedom=Full3D
BounceThresholdVelocity=200.000000 BounceThresholdVelocity=200.000000
@ -70,6 +78,8 @@ bDefaultHasComplexCollision=True
bSuppressFaceRemapTable=False bSuppressFaceRemapTable=False
bSupportUVFromHitResults=False bSupportUVFromHitResults=False
bDisableActiveActors=False bDisableActiveActors=False
bDisableKinematicStaticPairs=False
bDisableKinematicKinematicPairs=False
bDisableCCD=False bDisableCCD=False
bEnableEnhancedDeterminism=False bEnableEnhancedDeterminism=False
MaxPhysicsDeltaTime=0.033333 MaxPhysicsDeltaTime=0.033333
@ -81,5 +91,6 @@ SyncSceneSmoothingFactor=0.000000
AsyncSceneSmoothingFactor=0.990000 AsyncSceneSmoothingFactor=0.990000
InitialAverageFrameRate=0.016667 InitialAverageFrameRate=0.016667
PhysXTreeRebuildRate=10 PhysXTreeRebuildRate=10
DefaultBroadphaseSettings=(bUseMBPOnClient=False,bUseMBPOnServer=False,MBPBounds=(Min=(X=0.000000,Y=0.000000,Z=0.000000),Max=(X=0.000000,Y=0.000000,Z=0.000000),IsValid=0),MBPNumSubdivs=2)

View file

@ -11,10 +11,11 @@ Build=IfProjectHasCode
BuildConfiguration=PPBC_Shipping BuildConfiguration=PPBC_Shipping
StagingDirectory=(Path="D:/LifePlay_Build") StagingDirectory=(Path="D:/LifePlay_Build")
FullRebuild=False FullRebuild=False
ForDistribution=True ForDistribution=False
IncludeDebugFiles=False IncludeDebugFiles=False
BlueprintNativizationMethod=Disabled BlueprintNativizationMethod=Disabled
bIncludeNativizedAssetsInProjectGeneration=False bIncludeNativizedAssetsInProjectGeneration=False
bExcludeMonolithicEngineHeadersInNativizedCode=False
UsePakFile=False UsePakFile=False
bGenerateChunks=False bGenerateChunks=False
bGenerateNoChunks=False bGenerateNoChunks=False
@ -37,6 +38,7 @@ bCompressed=False
bEncryptIniFiles=False bEncryptIniFiles=False
bEncryptPakIndex=False bEncryptPakIndex=False
bSkipEditorContent=False bSkipEditorContent=False
bSkipMovies=False
+DirectoriesToAlwaysStageAsNonUFS=(Path="Modules") +DirectoriesToAlwaysStageAsNonUFS=(Path="Modules")
bNativizeBlueprintAssets=False bNativizeBlueprintAssets=False
bNativizeOnlySelectedBlueprints=False bNativizeOnlySelectedBlueprints=False

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,100 +1,125 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15 # Visual Studio 15
VisualStudioVersion = 15.0.26730.16 VisualStudioVersion = 15.0.25807.0
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Engine", "Engine", "{B5CC4ECB-290E-4069-866D-0A91649F562B}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Engine", "Engine", "{3B9A8162-6232-4AE8-936D-3D30E00B53CD}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Games", "Games", "{A18D553A-642C-46D7-83C4-50948FA12BB5}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Games", "Games", "{3CC488BF-FFC0-4BEB-B580-18BEAFF21A36}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UE4", "Intermediate\ProjectFiles\UE4.vcxproj", "{9F3944BA-2428-4050-9FE9-59F6C136A3C4}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UE4", "Intermediate\ProjectFiles\UE4.vcxproj", "{8962C52B-11DB-42F4-9630-175AAC44A4E5}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LifePlay", "Intermediate\ProjectFiles\LifePlay.vcxproj", "{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LifePlay", "Intermediate\ProjectFiles\LifePlay.vcxproj", "{CDB20097-5BE4-4AE0-9917-9E106866611A}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
DebugGame Editor|HTML5 = DebugGame Editor|HTML5 DebugGame Editor|HTML5 = DebugGame Editor|HTML5
DebugGame Editor|Linux = DebugGame Editor|Linux
DebugGame Editor|Win32 = DebugGame Editor|Win32 DebugGame Editor|Win32 = DebugGame Editor|Win32
DebugGame Editor|Win64 = DebugGame Editor|Win64 DebugGame Editor|Win64 = DebugGame Editor|Win64
DebugGame|HTML5 = DebugGame|HTML5 DebugGame|HTML5 = DebugGame|HTML5
DebugGame|Linux = DebugGame|Linux
DebugGame|Win32 = DebugGame|Win32 DebugGame|Win32 = DebugGame|Win32
DebugGame|Win64 = DebugGame|Win64 DebugGame|Win64 = DebugGame|Win64
Development Editor|HTML5 = Development Editor|HTML5 Development Editor|HTML5 = Development Editor|HTML5
Development Editor|Linux = Development Editor|Linux
Development Editor|Win32 = Development Editor|Win32 Development Editor|Win32 = Development Editor|Win32
Development Editor|Win64 = Development Editor|Win64 Development Editor|Win64 = Development Editor|Win64
Development|HTML5 = Development|HTML5 Development|HTML5 = Development|HTML5
Development|Linux = Development|Linux
Development|Win32 = Development|Win32 Development|Win32 = Development|Win32
Development|Win64 = Development|Win64 Development|Win64 = Development|Win64
Shipping|HTML5 = Shipping|HTML5 Shipping|HTML5 = Shipping|HTML5
Shipping|Linux = Shipping|Linux
Shipping|Win32 = Shipping|Win32 Shipping|Win32 = Shipping|Win32
Shipping|Win64 = Shipping|Win64 Shipping|Win64 = Shipping|Win64
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame Editor|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame Editor|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame Editor|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|Linux.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame Editor|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|Linux.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame Editor|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame Editor|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame Editor|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|Linux.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.DebugGame|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|Linux.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development Editor|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development Editor|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development Editor|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development Editor|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.DebugGame|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development Editor|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development Editor|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|Linux.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|Linux.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Development|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development Editor|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Shipping|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Shipping|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Shipping|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|Linux.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Shipping|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|Linux.Build.0 = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Shipping|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{9F3944BA-2428-4050-9FE9-59F6C136A3C4}.Shipping|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame Editor|HTML5.ActiveCfg = HTML5_DebugGame_Editor|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame Editor|Win32.ActiveCfg = DebugGame_Editor|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Development|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame Editor|Win64.ActiveCfg = DebugGame_Editor|x64 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|HTML5.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame Editor|Win64.Build.0 = DebugGame_Editor|x64 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|HTML5.Build.0 = BuiltWithUnrealBuildTool|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame|HTML5.ActiveCfg = HTML5_DebugGame_Game|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|Linux.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame|HTML5.Build.0 = HTML5_DebugGame_Game|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|Linux.Build.0 = BuiltWithUnrealBuildTool|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame|Win32.ActiveCfg = DebugGame_Game|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|Win32.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame|Win32.Build.0 = DebugGame_Game|Win32 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|Win32.Build.0 = BuiltWithUnrealBuildTool|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame|Win64.ActiveCfg = DebugGame_Game|x64 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|Win64.ActiveCfg = BuiltWithUnrealBuildTool|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.DebugGame|Win64.Build.0 = DebugGame_Game|x64 {8962C52B-11DB-42F4-9630-175AAC44A4E5}.Shipping|Win64.Build.0 = BuiltWithUnrealBuildTool|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development Editor|HTML5.ActiveCfg = HTML5_Development_Editor|Win32 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame Editor|HTML5.ActiveCfg = HTML5_DebugGame_Editor|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development Editor|Win32.ActiveCfg = Development_Editor|Win32 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame Editor|Linux.ActiveCfg = Linux_DebugGame_Editor|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development Editor|Win64.ActiveCfg = Development_Editor|x64 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame Editor|Linux.Build.0 = Linux_DebugGame_Editor|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development Editor|Win64.Build.0 = Development_Editor|x64 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame Editor|Win32.ActiveCfg = DebugGame_Editor|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development|HTML5.ActiveCfg = HTML5_Development_Game|Win32 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame Editor|Win64.ActiveCfg = DebugGame_Editor|x64
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development|HTML5.Build.0 = HTML5_Development_Game|Win32 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame Editor|Win64.Build.0 = DebugGame_Editor|x64
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development|Win32.ActiveCfg = Development_Game|Win32 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|HTML5.ActiveCfg = HTML5_DebugGame_Game|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development|Win32.Build.0 = Development_Game|Win32 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|HTML5.Build.0 = HTML5_DebugGame_Game|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development|Win64.ActiveCfg = Development_Game|x64 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|Linux.ActiveCfg = Linux_DebugGame_Game|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Development|Win64.Build.0 = Development_Game|x64 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|Linux.Build.0 = Linux_DebugGame_Game|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Shipping|HTML5.ActiveCfg = HTML5_Shipping_Game|Win32 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|Win32.ActiveCfg = DebugGame_Game|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Shipping|HTML5.Build.0 = HTML5_Shipping_Game|Win32 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|Win32.Build.0 = DebugGame_Game|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Shipping|Win32.ActiveCfg = Shipping_Game|Win32 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|Win64.ActiveCfg = DebugGame_Game|x64
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Shipping|Win32.Build.0 = Shipping_Game|Win32 {CDB20097-5BE4-4AE0-9917-9E106866611A}.DebugGame|Win64.Build.0 = DebugGame_Game|x64
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Shipping|Win64.ActiveCfg = Shipping_Game|x64 {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development Editor|HTML5.ActiveCfg = HTML5_Development_Editor|Win32
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E}.Shipping|Win64.Build.0 = Shipping_Game|x64 {CDB20097-5BE4-4AE0-9917-9E106866611A}.Development Editor|Linux.ActiveCfg = Linux_Development_Editor|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Development Editor|Linux.Build.0 = Linux_Development_Editor|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Development Editor|Win32.ActiveCfg = Development_Editor|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Development Editor|Win64.ActiveCfg = Development_Editor|x64
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Development Editor|Win64.Build.0 = Development_Editor|x64
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|HTML5.ActiveCfg = HTML5_Development_Game|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|HTML5.Build.0 = HTML5_Development_Game|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|Linux.ActiveCfg = Linux_Development_Game|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|Linux.Build.0 = Linux_Development_Game|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|Win32.ActiveCfg = Development_Game|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|Win32.Build.0 = Development_Game|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|Win64.ActiveCfg = Development_Game|x64
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Development|Win64.Build.0 = Development_Game|x64
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|HTML5.ActiveCfg = HTML5_Shipping_Game|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|HTML5.Build.0 = HTML5_Shipping_Game|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|Linux.ActiveCfg = Linux_Shipping_Game|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|Linux.Build.0 = Linux_Shipping_Game|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|Win32.ActiveCfg = Shipping_Game|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|Win32.Build.0 = Shipping_Game|Win32
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|Win64.ActiveCfg = Shipping_Game|x64
{CDB20097-5BE4-4AE0-9917-9E106866611A}.Shipping|Win64.Build.0 = Shipping_Game|x64
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
GlobalSection(NestedProjects) = preSolution GlobalSection(NestedProjects) = preSolution
{9F3944BA-2428-4050-9FE9-59F6C136A3C4} = {B5CC4ECB-290E-4069-866D-0A91649F562B} {8962C52B-11DB-42F4-9630-175AAC44A4E5} = {3B9A8162-6232-4AE8-936D-3D30E00B53CD}
{0E67EEC4-D927-4AF3-AB4E-12742B770C2E} = {A18D553A-642C-46D7-83C4-50948FA12BB5} {CDB20097-5BE4-4AE0-9917-9E106866611A} = {3CC488BF-FFC0-4BEB-B580-18BEAFF21A36}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {29782850-2049-40D2-A595-0297FDE95DE3} SolutionGuid = {CF176613-D418-4296-84FA-7A73B43DC6C9}
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View file

@ -1,6 +1,6 @@
{ {
"FileVersion": 3, "FileVersion": 3,
"EngineAssociation": "4.18", "EngineAssociation": "4.20",
"Category": "", "Category": "",
"Description": "", "Description": "",
"Modules": [ "Modules": [
@ -18,89 +18,6 @@
{ {
"Name": "SteamVR", "Name": "SteamVR",
"Enabled": false "Enabled": false
},
{
"Name": "OculusVR",
"Enabled": false
},
{
"Name": "OnlineSubsystemIOS",
"Enabled": false,
"SupportedTargetPlatforms": [
"IOS",
"TVOS"
]
},
{
"Name": "OnlineSubsystemNull",
"Enabled": false
},
{
"Name": "OnlineSubsystemGooglePlay",
"Enabled": false,
"SupportedTargetPlatforms": [
"Android"
]
},
{
"Name": "OnlineSubsystemUtils",
"Enabled": false
},
{
"Name": "OnlineSubsystem",
"Enabled": false
},
{
"Name": "MobilePatchingUtils",
"Enabled": false
},
{
"Name": "HTML5Networking",
"Enabled": false
},
{
"Name": "MobileLauncherProfileWizard",
"Enabled": false
},
{
"Name": "TcpMessaging",
"Enabled": false
},
{
"Name": "UdpMessaging",
"Enabled": false
},
{
"Name": "AlembicImporter",
"Enabled": false
},
{
"Name": "SpeedTreeImporter",
"Enabled": false
},
{
"Name": "AndroidDeviceProfileSelector",
"Enabled": false
},
{
"Name": "IOSDeviceProfileSelector",
"Enabled": false
},
{
"Name": "LinuxDeviceProfileSelector",
"Enabled": false
},
{
"Name": "ExampleDeviceProfileSelector",
"Enabled": false
},
{
"Name": "AppleARKit",
"Enabled": false
},
{
"Name": "AndroidPermission",
"Enabled": false
} }
], ],
"TargetPlatforms": [ "TargetPlatforms": [

View file

@ -7,14 +7,6 @@ public class ModdingExtra : ModuleRules
public ModdingExtra(ReadOnlyTargetRules Target) : base(Target) public ModdingExtra(ReadOnlyTargetRules Target) : base(Target)
{ {
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
PublicIncludePaths.AddRange(
new string[] {
"ModdingExtra/Public"
// ... add public include paths required here ...
}
);
PrivateIncludePaths.AddRange( PrivateIncludePaths.AddRange(

View file

@ -170,11 +170,8 @@ void UStreetMapComponent::GenerateCollision()
} }
// Rebuild the body setup // Rebuild the body setup
#if WITH_EDITOR || WITH_RUNTIME_PHYSICS_COOKING
StreetMapBodySetup->InvalidatePhysicsData(); StreetMapBodySetup->InvalidatePhysicsData();
#endif
StreetMapBodySetup->CreatePhysicsMeshes(); StreetMapBodySetup->CreatePhysicsMeshes();
UpdateNavigationIfNeeded(); UpdateNavigationIfNeeded();
} }
@ -618,7 +615,7 @@ void UStreetMapComponent::UpdateNavigationIfNeeded()
{ {
if (bCanEverAffectNavigation || bNavigationRelevant) if (bCanEverAffectNavigation || bNavigationRelevant)
{ {
UNavigationSystem::UpdateComponentInNavOctree(*this); FNavigationSystem::UpdateComponentData(*this);
} }
} }

View file

@ -15,9 +15,15 @@ namespace UnrealBuildTool.Rules
"RHI", "RHI",
"RenderCore", "RenderCore",
"ShaderCore", "ShaderCore",
//"PropertyEditor"
} }
); );
}
if (Target.bBuildEditor == true)
{
//@TODO: Needed for FPropertyEditorModule::NotifyCustomizationModuleChanged()
//@TOOD: To move/implement in FStreetMapComponentDetails
PrivateDependencyModuleNames.Add("PropertyEditor");
}
}
} }
} }

View file

@ -6,158 +6,90 @@
#include "Runtime/Engine/Public/SceneManagement.h" #include "Runtime/Engine/Public/SceneManagement.h"
void FStreetMapVertexBuffer::InitRHI()
{
if( Vertices.Num() > 0 )
{
// Allocate our vertex buffer
FRHIResourceCreateInfo CreateInfo;
VertexBufferRHI = RHICreateVertexBuffer( Vertices.Num() * sizeof( Vertices[0] ), BUF_Static, CreateInfo );
// Load the vertex buffer with data
void* VertexBufferData = RHILockVertexBuffer( VertexBufferRHI, 0, Vertices.Num() * sizeof( Vertices[0] ), RLM_WriteOnly );
FMemory::Memcpy( VertexBufferData, Vertices.GetData(), Vertices.Num() * sizeof( FStreetMapVertex ) );
RHIUnlockVertexBuffer( VertexBufferRHI );
}
}
void FStreetMapIndexBuffer::InitRHI()
{
const int IndexCount = FMath::Max( Indices16.Num(), Indices32.Num() );
if( IndexCount > 0 )
{
const bool b32BitIndices = Indices32.Num() > Indices16.Num();
const uint8 IndexSize = b32BitIndices ? sizeof( Indices32[ 0 ] ) : sizeof( Indices16[ 0 ] );
const void* IndexSourceData;
if( b32BitIndices )
{
IndexSourceData = Indices32.GetData();
}
else
{
IndexSourceData = Indices16.GetData();
}
// Allocate our index buffer and load it with data
FRHIResourceCreateInfo CreateInfo;
IndexBufferRHI = RHICreateIndexBuffer( IndexSize, IndexCount * IndexSize, BUF_Static, CreateInfo );
void* IndexBufferData = RHILockIndexBuffer( IndexBufferRHI, 0, IndexCount * IndexSize, RLM_WriteOnly );
FMemory::Memcpy( IndexBufferData, IndexSourceData, IndexCount * IndexSize );
RHIUnlockIndexBuffer( IndexBufferRHI );
}
}
void FStreetMapVertexFactory::InitVertexFactory( const FStreetMapVertexBuffer& VertexBuffer )
{
// Setup the vertex factory streams
FDataType DataType;
DataType.PositionComponent = STRUCTMEMBER_VERTEXSTREAMCOMPONENT( &VertexBuffer, FStreetMapVertex, Position, VET_Float3 );
DataType.TextureCoordinates.Add( STRUCTMEMBER_VERTEXSTREAMCOMPONENT( &VertexBuffer, FStreetMapVertex, TextureCoordinate, VET_Float2 ) );
DataType.TangentBasisComponents[0] = STRUCTMEMBER_VERTEXSTREAMCOMPONENT( &VertexBuffer, FStreetMapVertex, TangentX, VET_PackedNormal);
DataType.TangentBasisComponents[1] = STRUCTMEMBER_VERTEXSTREAMCOMPONENT( &VertexBuffer, FStreetMapVertex, TangentZ, VET_PackedNormal);
DataType.ColorComponent = STRUCTMEMBER_VERTEXSTREAMCOMPONENT( &VertexBuffer, FStreetMapVertex, Color, VET_Color );
// Send it off to the rendering thread
check( !IsInActualRenderingThread() );
ENQUEUE_UNIQUE_RENDER_COMMAND_TWOPARAMETER(
InitStreetMapVertexFactory,
FStreetMapVertexFactory*, VertexFactory, this,
FDataType, DataType, DataType,
{
VertexFactory->SetData( DataType );
});
}
FStreetMapSceneProxy::FStreetMapSceneProxy(const UStreetMapComponent* InComponent) FStreetMapSceneProxy::FStreetMapSceneProxy(const UStreetMapComponent* InComponent)
: FPrimitiveSceneProxy(InComponent), : FPrimitiveSceneProxy(InComponent),
StreetMapComp(InComponent), StreetMapComp(InComponent),
CollisionResponse(InComponent->GetCollisionResponseToChannels()) CollisionResponse(InComponent->GetCollisionResponseToChannels()),
VertexFactory(GetScene().GetFeatureLevel(), "FStreetMapSceneProxy")
{ {
} }
void FStreetMapSceneProxy::Init(const UStreetMapComponent* InComponent, const TArray< FStreetMapVertex >& Vertices, const TArray< uint32 >& Indices)
void FStreetMapSceneProxy::Init( const UStreetMapComponent* InComponent, const TArray< FStreetMapVertex >& Vertices, const TArray< uint16 >& Indices )
{ {
// Copy 16-bit index data // Copy index buffer
IndexBuffer.Indices16 = Indices; IndexBuffer32.Indices = Indices;
InitAfterIndexBuffer( InComponent, Vertices );
}
void FStreetMapSceneProxy::Init( const UStreetMapComponent* InComponent, const TArray< FStreetMapVertex >& Vertices, const TArray< uint32 >& Indices )
{
// If we fit into a 16-bit index buffer, just use that
if( Vertices.Num() < 0xffff )
{
const int32 IndexCount = Indices.Num();
IndexBuffer.Indices16.AddUninitialized( IndexCount );
for( int32 Index = 0; Index < IndexCount; ++Index )
{
IndexBuffer.Indices16[ Index ] = Indices[ Index ];
}
}
else
{
// Copy 32-bit index data
IndexBuffer.Indices32 = Indices;
}
InitAfterIndexBuffer( InComponent, Vertices );
}
void FStreetMapSceneProxy::InitAfterIndexBuffer( const UStreetMapComponent* StreetMapComponent, const TArray< FStreetMapVertex >& Vertices )
{
MaterialInterface = nullptr; MaterialInterface = nullptr;
this->MaterialRelevance = StreetMapComponent->GetMaterialRelevance( GetScene().GetFeatureLevel() ); this->MaterialRelevance = InComponent->GetMaterialRelevance(GetScene().GetFeatureLevel());
// Copy vertex data // Copy vertex data
VertexBuffer.Vertices = Vertices; const int32 NumVerts = Vertices.Num();
TArray<FDynamicMeshVertex> DynamicVertices;
DynamicVertices.SetNumUninitialized(NumVerts);
for (int VertIdx = 0; VertIdx < NumVerts; VertIdx++)
{
const FStreetMapVertex& StreetMapVert = Vertices[VertIdx];
FDynamicMeshVertex& Vert = DynamicVertices[VertIdx];
Vert.Position = StreetMapVert.Position;
Vert.Color = StreetMapVert.Color;
Vert.TextureCoordinate[0] = StreetMapVert.TextureCoordinate;
Vert.TangentX = StreetMapVert.TangentX;
Vert.TangentZ = StreetMapVert.TangentZ;
}
VertexBuffer.InitFromDynamicVertex(&VertexFactory, DynamicVertices);
// Enqueue initialization of render resource
InitResources(); InitResources();
// Set a material // Set a material
{ {
if( StreetMapComponent->GetNumMaterials() > 0 ) if (InComponent->GetNumMaterials() > 0)
{ {
MaterialInterface = StreetMapComponent->GetMaterial( 0 ); MaterialInterface = InComponent->GetMaterial(0);
} }
// Use the default material if we don't have one set // Use the default material if we don't have one set
if( MaterialInterface == nullptr ) if (MaterialInterface == nullptr)
{ {
MaterialInterface = UMaterial::GetDefaultMaterial( MD_Surface ); MaterialInterface = UMaterial::GetDefaultMaterial(MD_Surface);
} }
} }
} }
FStreetMapSceneProxy::~FStreetMapSceneProxy() FStreetMapSceneProxy::~FStreetMapSceneProxy()
{ {
VertexBuffer.ReleaseResource(); VertexBuffer.PositionVertexBuffer.ReleaseResource();
IndexBuffer.ReleaseResource(); VertexBuffer.StaticMeshVertexBuffer.ReleaseResource();
VertexBuffer.ColorVertexBuffer.ReleaseResource();
IndexBuffer32.ReleaseResource();
VertexFactory.ReleaseResource(); VertexFactory.ReleaseResource();
} }
SIZE_T FStreetMapSceneProxy::GetTypeHash() const
{
static size_t UniquePointer;
return reinterpret_cast<size_t>(&UniquePointer);
}
void FStreetMapSceneProxy::InitResources() void FStreetMapSceneProxy::InitResources()
{ {
// Start initializing our vertex buffer, index buffer, and vertex factory. This will be kicked off on the render thread. // Start initializing our vertex buffer, index buffer, and vertex factory. This will be kicked off on the render thread.
BeginInitResource( &VertexBuffer ); BeginInitResource(&VertexBuffer.PositionVertexBuffer);
BeginInitResource( &IndexBuffer ); BeginInitResource(&VertexBuffer.StaticMeshVertexBuffer);
BeginInitResource(&VertexBuffer.ColorVertexBuffer);
VertexFactory.InitVertexFactory( VertexBuffer ); BeginInitResource(&IndexBuffer32);
BeginInitResource( &VertexFactory ); BeginInitResource(&VertexFactory);
} }
bool FStreetMapSceneProxy::MustDrawMeshDynamically( const FSceneView& View ) const bool FStreetMapSceneProxy::MustDrawMeshDynamically(const FSceneView& View) const
{ {
return ( AllowDebugViewmodes() && View.Family->EngineShowFlags.Wireframe ) || IsSelected(); return (AllowDebugViewmodes() && View.Family->EngineShowFlags.Wireframe) || IsSelected();
} }
@ -166,18 +98,18 @@ bool FStreetMapSceneProxy::IsInCollisionView(const FEngineShowFlags& EngineShowF
return EngineShowFlags.CollisionVisibility || EngineShowFlags.CollisionPawn; return EngineShowFlags.CollisionVisibility || EngineShowFlags.CollisionPawn;
} }
FPrimitiveViewRelevance FStreetMapSceneProxy::GetViewRelevance( const FSceneView* View ) const FPrimitiveViewRelevance FStreetMapSceneProxy::GetViewRelevance(const FSceneView* View) const
{ {
FPrimitiveViewRelevance Result; FPrimitiveViewRelevance Result;
Result.bDrawRelevance = IsShown(View); Result.bDrawRelevance = IsShown(View);
Result.bShadowRelevance = IsShadowCast(View); Result.bShadowRelevance = IsShadowCast(View);
const bool bAlwaysHasDynamicData = false; const bool bAlwaysHasDynamicData = false;
// Only draw dynamically if we're drawing in wireframe or we're selected in the editor // Only draw dynamically if we're drawing in wireframe or we're selected in the editor
Result.bDynamicRelevance = MustDrawMeshDynamically( *View ) || bAlwaysHasDynamicData; Result.bDynamicRelevance = MustDrawMeshDynamically(*View) || bAlwaysHasDynamicData;
Result.bStaticRelevance = !MustDrawMeshDynamically( *View ); Result.bStaticRelevance = !MustDrawMeshDynamically(*View);
MaterialRelevance.SetPrimitiveViewRelevance(Result); MaterialRelevance.SetPrimitiveViewRelevance(Result);
return Result; return Result;
} }
@ -189,10 +121,10 @@ bool FStreetMapSceneProxy::CanBeOccluded() const
} }
void FStreetMapSceneProxy::MakeMeshBatch( FMeshBatch& Mesh, FMaterialRenderProxy* WireframeMaterialRenderProxyOrNull, bool bDrawCollision) const void FStreetMapSceneProxy::MakeMeshBatch(FMeshBatch& Mesh, FMaterialRenderProxy* WireframeMaterialRenderProxyOrNull, bool bDrawCollision) const
{ {
FMaterialRenderProxy* MaterialProxy = NULL; FMaterialRenderProxy* MaterialProxy = NULL;
if( WireframeMaterialRenderProxyOrNull != nullptr ) if (WireframeMaterialRenderProxyOrNull != nullptr)
{ {
MaterialProxy = WireframeMaterialRenderProxyOrNull; MaterialProxy = WireframeMaterialRenderProxyOrNull;
} }
@ -207,43 +139,43 @@ void FStreetMapSceneProxy::MakeMeshBatch( FMeshBatch& Mesh, FMaterialRenderProxy
MaterialProxy = StreetMapComp->GetDefaultMaterial()->GetRenderProxy(IsSelected()); MaterialProxy = StreetMapComp->GetDefaultMaterial()->GetRenderProxy(IsSelected());
} }
} }
FMeshBatchElement& BatchElement = Mesh.Elements[0]; FMeshBatchElement& BatchElement = Mesh.Elements[0];
BatchElement.IndexBuffer = &IndexBuffer; BatchElement.IndexBuffer = &IndexBuffer32;
Mesh.bWireframe = WireframeMaterialRenderProxyOrNull != nullptr; Mesh.bWireframe = WireframeMaterialRenderProxyOrNull != nullptr;
Mesh.VertexFactory = &VertexFactory; Mesh.VertexFactory = &VertexFactory;
Mesh.MaterialRenderProxy = MaterialProxy; Mesh.MaterialRenderProxy = MaterialProxy;
Mesh.CastShadow = true; Mesh.CastShadow = true;
BatchElement.PrimitiveUniformBuffer = CreatePrimitiveUniformBufferImmediate(GetLocalToWorld(), GetBounds(), GetLocalBounds(), true, UseEditorDepthTest()); BatchElement.PrimitiveUniformBuffer = CreatePrimitiveUniformBufferImmediate(GetLocalToWorld(), GetBounds(), GetLocalBounds(), true, UseEditorDepthTest());
BatchElement.FirstIndex = 0; BatchElement.FirstIndex = 0;
const int IndexCount = FMath::Max( IndexBuffer.Indices16.Num(), IndexBuffer.Indices32.Num() ); const int IndexCount = IndexBuffer32.Indices.Num();
BatchElement.NumPrimitives = IndexCount / 3; BatchElement.NumPrimitives = IndexCount / 3;
BatchElement.MinVertexIndex = 0; BatchElement.MinVertexIndex = 0;
BatchElement.MaxVertexIndex = VertexBuffer.Vertices.Num() - 1; BatchElement.MaxVertexIndex = VertexBuffer.PositionVertexBuffer.GetNumVertices() - 1;
Mesh.ReverseCulling = IsLocalToWorldDeterminantNegative(); Mesh.ReverseCulling = IsLocalToWorldDeterminantNegative();
Mesh.Type = PT_TriangleList; Mesh.Type = PT_TriangleList;
Mesh.DepthPriorityGroup = SDPG_World; Mesh.DepthPriorityGroup = SDPG_World;
} }
void FStreetMapSceneProxy::DrawStaticElements( FStaticPrimitiveDrawInterface* PDI ) void FStreetMapSceneProxy::DrawStaticElements(FStaticPrimitiveDrawInterface* PDI)
{ {
const int IndexCount = FMath::Max( IndexBuffer.Indices16.Num(), IndexBuffer.Indices32.Num() ); const int IndexCount = IndexBuffer32.Indices.Num();
if( VertexBuffer.Vertices.Num() > 0 && IndexCount > 0 ) if (VertexBuffer.PositionVertexBuffer.GetNumVertices() > 0 && IndexCount > 0)
{ {
const float ScreenSize = 1.0f; const float ScreenSize = 1.0f;
FMeshBatch MeshBatch; FMeshBatch MeshBatch;
MakeMeshBatch( MeshBatch, nullptr); MakeMeshBatch(MeshBatch, nullptr);
PDI->DrawMesh( MeshBatch, ScreenSize ); PDI->DrawMesh(MeshBatch, ScreenSize);
} }
} }
void FStreetMapSceneProxy::GetDynamicMeshElements(const TArray<const FSceneView*>& Views, const FSceneViewFamily& ViewFamily, uint32 VisibilityMap, class FMeshElementCollector& Collector) const void FStreetMapSceneProxy::GetDynamicMeshElements(const TArray<const FSceneView*>& Views, const FSceneViewFamily& ViewFamily, uint32 VisibilityMap, class FMeshElementCollector& Collector) const
{ {
const int IndexCount = FMath::Max(IndexBuffer.Indices16.Num(), IndexBuffer.Indices32.Num()); const int IndexCount = IndexBuffer32.Indices.Num();
if (VertexBuffer.Vertices.Num() > 0 && IndexCount > 0) if (VertexBuffer.PositionVertexBuffer.GetNumVertices() > 0 && IndexCount > 0)
{ {
for (int32 ViewIndex = 0; ViewIndex < Views.Num(); ++ViewIndex) for (int32 ViewIndex = 0; ViewIndex < Views.Num(); ++ViewIndex)
{ {
@ -274,7 +206,7 @@ void FStreetMapSceneProxy::GetDynamicMeshElements(const TArray<const FSceneView*
} }
uint32 FStreetMapSceneProxy::GetMemoryFootprint( void ) const uint32 FStreetMapSceneProxy::GetMemoryFootprint(void) const
{ {
return sizeof( *this ) + GetAllocatedSize(); return sizeof(*this) + GetAllocatedSize();
} }

View file

@ -3,6 +3,7 @@
#include "Runtime/Engine/Public/PrimitiveSceneProxy.h" #include "Runtime/Engine/Public/PrimitiveSceneProxy.h"
#include "Runtime/Engine/Public/LocalVertexFactory.h" #include "Runtime/Engine/Public/LocalVertexFactory.h"
#include "Runtime/Engine/Public/DynamicMeshBuilder.h"
#include "StreetMapSceneProxy.generated.h" #include "StreetMapSceneProxy.generated.h"
/** A single vertex on a street map mesh */ /** A single vertex on a street map mesh */
@ -50,50 +51,6 @@ struct FStreetMapVertex
}; };
/** Street map mesh vertex buffer */
class FStreetMapVertexBuffer : public FVertexBuffer
{
public:
/** All of the vertices in this mesh */
TArray< FStreetMapVertex > Vertices;
// FRenderResource interface
virtual void InitRHI() override;
};
/** Street map mesh index buffer */
class FStreetMapIndexBuffer : public FIndexBuffer
{
public:
/** 16-bit indices */
TArray< uint16 > Indices16;
/** 32-bit indices */
TArray< uint32 > Indices32;
// FRenderResource interface
virtual void InitRHI() override;
};
/** Street map mesh vertex factory */
class FStreetMapVertexFactory : public FLocalVertexFactory
{
public:
/** Initialize this vertex factory */
void InitVertexFactory( const FStreetMapVertexBuffer& VertexBuffer );
};
/** Scene proxy for rendering a section of a street map mesh on the rendering thread */ /** Scene proxy for rendering a section of a street map mesh on the rendering thread */
class FStreetMapSceneProxy : public FPrimitiveSceneProxy class FStreetMapSceneProxy : public FPrimitiveSceneProxy
{ {
@ -112,23 +69,14 @@ public:
*/ */
void Init(const UStreetMapComponent* InComponent, const TArray< FStreetMapVertex >& Vertices, const TArray< uint32 >& Indices); void Init(const UStreetMapComponent* InComponent, const TArray< FStreetMapVertex >& Vertices, const TArray< uint32 >& Indices);
/**
* Init this street map mesh scene proxy for the specified component (16-bit indices)
*
* @param InComponent The street map mesh component to initialize this with
* @param Vertices The vertices for this street map mesh
* @param Indices The vertex indices for this street map mesh
*/
void Init(const UStreetMapComponent* InComponent, const TArray< FStreetMapVertex >& Vertices, const TArray< uint16 >& Indices);
/** Destructor that cleans up our rendering data */ /** Destructor that cleans up our rendering data */
virtual ~FStreetMapSceneProxy(); virtual ~FStreetMapSceneProxy();
protected: /** Return a type (or subtype) specific hash for sorting purposes */
SIZE_T GetTypeHash() const override;
/** Called from the constructor to finish construction after the index buffer is setup */ protected:
void InitAfterIndexBuffer(const class UStreetMapComponent* StreetMapComponent, const TArray< FStreetMapVertex >& Vertices);
/** Initializes this scene proxy's vertex buffer, index buffer and vertex factory (on the render thread.) */ /** Initializes this scene proxy's vertex buffer, index buffer and vertex factory (on the render thread.) */
void InitResources(); void InitResources();
@ -150,20 +98,16 @@ protected:
virtual FPrimitiveViewRelevance GetViewRelevance(const class FSceneView* View) const override; virtual FPrimitiveViewRelevance GetViewRelevance(const class FSceneView* View) const override;
virtual bool CanBeOccluded() const override; virtual bool CanBeOccluded() const override;
protected: protected:
/** Contains all of the vertices in our street map mesh */ /** Contains all of the vertices in our street map mesh */
FStreetMapVertexBuffer VertexBuffer; FStaticMeshVertexBuffers VertexBuffer;
/** All of the vertex indices in our street map mesh */ /** All of the vertex indices32 in our street map mesh */
FStreetMapIndexBuffer IndexBuffer; FDynamicMeshIndexBuffer32 IndexBuffer32;
/** Our vertex factory specific to street map meshes */ /** Our vertex factory specific to street map meshes */
FStreetMapVertexFactory VertexFactory; FLocalVertexFactory VertexFactory;
/** Cached material relevance */ /** Cached material relevance */
FMaterialRelevance MaterialRelevance; FMaterialRelevance MaterialRelevance;
@ -175,6 +119,4 @@ protected:
// The Collision Response of the component being proxied // The Collision Response of the component being proxied
FCollisionResponseContainer CollisionResponse; FCollisionResponseContainer CollisionResponse;
};
};